Developing Sun Master Indexes (Repository)

Creating the Master Index Database (Repository)

Once you have customized the configuration files and generated the master index application, you can create the master index database. Before you begin, make sure you have Oracle or SQL Server installed on the database server.

During this process you can define custom startup data, such as code lists and source systems. The wizard defines SQL statements in the Code List and Systems SQL files (codelist.sql and system.sql) to insert startup data into the database based on information you specify, and you can customize the statements to insert the data relevant to your object structure. The code lists you define are used to translate processing codes from incoming messages into descriptions for the EDM fields and to create drop-down lists for EDM fields. System information is required in order to add records to the master index application.

Follow these steps to create the database.

You can also delete the database for testing purposes using the supplied script. See Deleting Master Index Database Tables (Repository) for more information.

Step 1: Analyze the Master Index Database Requirements (Repository)

Before you begin to create the master index database, perform an analysis of the structure of the legacy data to be stored in the database and determine the amount of data that will be processed daily. During the analysis, be sure to define the processing codes that need to be stored in the common maintenance tables and the systems that will share data with the master index application. You should also know the length and format of the local IDs assigned by each system.

A database administrator who is familiar with your data and processing requirements should perform this task. After this task is complete, continue to Step 2: Create a Master Index Database and User (Repository).

For additional information and guidelines about how to set up your database, see Master Index Database Scripts and Design (Repository).

Step 2: Create a Master Index Database and User (Repository)

Before beginning this step, complete Step 1: Analyze the Master Index Database Requirements (Repository). After you create the database instance and user, continue to Step 3: Define Master Index Database Indexes (Repository) if you want to define additional database indexes; otherwise skip to Step 4: Define Master Index External Systems (Repository).

For this step you need to create a database in which the master index database instance will be created. Use your Oracle or SQL Server tools to create the database. Using these tools, you define tablespaces, including their sizes and locations; extents; and dump file, log file, and rollback file sizes and locations. Make sure these issues have been thoroughly analyzed and designed before creating the database.

Once you create the database, you can use standard SQL to create the master index application user for the database. The user you create in this step will be used to create the database structure and to connect to the database through the EDM and through the application server.

For Oracle, assign the user to the “connect” and “resource” roles for the master index tablespaces. For example:


create user username identified by password;
grant connect, resource to username;
commit;

where username is the login ID of the administrator user and password is the login password of the administrator user.

For SQL Server, assign this user to the “db_owner” role. You need to create the server login, create the user, and then assign the user to the role. For example:


CREATE LOGIN loginname WITH PASSWORD = ’password’, DEFAULT_DATABASE = database; 
CREATE USER username FOR LOGIN loginname; USE database;
EXECUTE sp_addrolemember ’db_owner’, ’ username’ GO

where loginname is the login ID for the administrator user, password is the login password, database is the database name, and username is the owner of the database tables created in the master index database.


Note –

SQL Server allows Windows Authentication, where only a user name is required. Java CAPS products require full authentication, including both a user name and password. You need to create a database user specifically for the master index application.


If you prefer to assign individual permissions to the user instead of roles, the following permissions are needed.

  • alter any index

  • delete any table

  • alter any procedure

  • drop any index

  • alter any table

  • drop any procedure

  • alter any trigger

  • drop any table

  • create any index

  • drop any trigger

  • create procedure

  • drop any view

  • create session

  • insert any table

  • create table

  • select any table

  • create trigger

  • update any table

  • create view

 

Step 3: Define Master Index Database Indexes (Repository)

To optimize data processing in the master index application, you can define additional indexes for the database tables that store object data. Best practice is to define indexes for each field used for searching, blocking, or matching. You can define these indexes in the Create Application_name Database file file or create a new script. Before you begin this step, complete Step 2: Create a Master Index Database and User (Repository).

ProcedureTo Define an Index

  1. Under the master index project in the Projects window, expand Database Scripts and then open the Create Application_name Database file in the NetBeans editor.

  2. Do any of the following:

    • Remove an existing index definition (not recommended).

    • Create new index definitions for the required fields.

    • Modify an existing index definition.

  3. Save and close the file.

  4. Continue to Step 4: Define Master Index External Systems (Repository).

Step 4: Define Master Index External Systems (Repository)

A SQL script is automatically created to insert the systems you specified in the wizard. These statements are provided in the Systems file in the master index project. Before you begin this step, complete Step 2: Create a Master Index Database and User (Repository) and, optionally, Step 3: Define Master Index Database Indexes (Repository).

ProcedureTo Define an External System

  1. Under the master index project in the Projects window, expand Database Scripts and then open the Systems file in the NetBeans editor.

  2. For each system, create an INSERT statement using the column descriptions in Master Index Database Table Description for sbyn_systems (Repository) to define the VALUES clause.

    For example:


    INSERT into sbyn_systems (systemcode, description, status, id_length, 
    format, input_mask, value_mask, create_date, create_userid) VALUES (’ARS’, 
    ’Automated Registration System’, ’A’, 10, ’[0-9]{10}’, ’DDD-DDD-DDDD’, 
    ’DDD^DDD^DDDD’, sysdate, ”admin’);
  3. Delete any default INSERT statements you do not need.

  4. Save and close the file.

  5. Continue to Step 5: Define Master Index Code Lists (Repository).

Master Index Database Table Description for sbyn_systems (Repository)

The following table lists and describes the columns in the sbyn_systems database table so you can create SQL statements to insert source system information into the master index database.

Column 

Description 

systemcode

The unique processing code of the system. This field accepts any of the following characters:

  • ! _ ~ ( ) { } + \Q # $ % & : ; - /

  • a-z

  • A-Z

  • 0-9

  • þ ÿ Þ ß ’à-ö ø-ý À-Ö Ø-Ý

description

A brief description of the system, or the system name. 


Tip –

It is best to keep this short if possible; these values appear in the tree views on the Enterprise Data Manager and can cause the box containing the tree views to increase in width to accommodate all characters.


status 

The status of the system in the master index system. Specify A for active or D for deactivated.

id_length 

The length of the local identifiers assigned by the system. This length does not include any additional characters added by the input mask (see below).


Note –

The default maximum length of the LID database columns is 25. If the system generates longer local IDs, be sure to increase the length of all LID columns in the database.


format 

The required data pattern for the local IDs assigned by the system. For more information about possible values and using Java patterns, see “Patterns” in the class list for java.util.regex in the Javadocs provided with Java. Note that the pattern specified here might be further restricted by the input mask described below.

input_mask

A mask used by the EDM to add punctuation to the local ID. For example, you can add an input mask to display the local IDs with hyphens or constant characters. To define an input mask, enter a character type for each character in the field and place any necessary punctuation between the types. For example, to insert a hyphen after the second and fifth characters in an 8-digit ID, the input mask would be DD-DDD-DDD. The following character types can be used; any other characters are treated as constants.

  • D - indicates a numeric character.

  • L - indicates an alphabetic character.

  • A - indicates an alphanumeric character.

If you use an input mask, you should also define a value mask to remove the punctuation from the stored value. 

value_mask

A mask used to strip any extra characters that were added by the input mask. This mask ensures that data is stored in the database in the correct format. 

To specify a value mask, type the same value entered for the input mask, but type an “x” in place of each punctuation mark. Using the 8-digit input mask described above, you would specify a value mask of DDxDDDxDDD. This strips the hyphens before storing the ID in the database.

create_date

The date the system information was inserted into the database. You can specify “sysdate” for this column, or use the variables defined in of the sample script. 

create_userid

The logon ID of the user who inserted the system information into the database. You can enter the logon ID or use the variables defined in of the sample script. 

Step 5: Define Master Index Code Lists (Repository)

You only need to perform this step if you defined any fields in the object structure to have a code module. The SQL script for entering processing codes and descriptions into the database is written in PL/SQL. The wizard creates a stanza in the Code List file (located under the Database Script node of the project) for each code list you specified in the field properties. You need to customize the file by defining the entries for each code list. This script inserts data into two tables: sbyn_common_header, which lists the types of common table data, and sbyn_common_detail, which lists each common table data element. Before you begin this step, complete Step 4: Define Master Index External Systems (Repository).


Note –

The codes you specify in this file can be no longer than eight characters (the codes are the second value in the value list for each common table data type and data element).


ProcedureTo Customize Common Table Data for Oracle

  1. Under the master index project in the Projects window, expand Database Scripts and then open the Code Lists file in the NetBeans editor.

  2. Scroll to the following line.

    codes tCodeList := tCodeList(

    The statements following this line must be customized.

  3. In the first code list stanza, change “module description” in the first line to a brief description of the code type.

    For example:

    -- **** PHONTYPE **** tCode(’L’, ’PHONTYPE’, ’TELEPHONE TYPE’),

  4. Create the entries for the module using the following syntax:

    tCode(’V’, ’code’, ’code description’),

    where “code” is the processing code of the data element and “code description” is the description of the element as you want it to appear on the Enterprise Data Manager windows. For example:

    -- **** PHONTYPE **** tCode(’L’, ’PHONTYPE’, ’TELEPHONE TYPE’), tCode(’V’, ’H’, ’HOME’), tCode(’V’, ’C’, ’CELL’), tCode(’V’, ’F’, ’FAX’), tCode(’V’, ’O’, ’OFFICE’), tCode(’V’, ’HB’, ’HOME BUSINESS’),

  5. Repeat the previous two steps for each code list type defined in the file.

  6. If you specified additional code list fields in the Object Definition file and the Enterprise Data Manager file after the database scripts were generated, add a new stanza for each new code type.

  7. In the last code module stanza, make sure each line except the last contains a comma at the end.

    For example:

    -- **** ADDRTYPE **** tCode(’L’, ’ADDRTYPE’, ’ADDRESS TYPE’), tCode(’V’, ’H’, ’HOME’), tCode(’V’, ’B’, ’BUSINESS’), tCode(’V’, ’M’, ’MAILING’)

  8. Save and close the file.

  9. Do one of the following:

ProcedureTo Customize Common Table Data for SQL Server

  1. Under the master index project in the Projects window, expand Database Scripts and then open the Code Lists file in the NetBeans editor.

  2. Scroll to the following line.

    begin

    The statements following this line must be customized.

  3. In the first code list stanza, change “module description” in the first line to a brief description of the code type.

    For example:

    -- **** PHONTYPE **** insert into @codelist values(’L’, ’PHONTYPE’, ’TELEPHONE TYPE’)

  4. Create the entries for the module using the following syntax:

    insert into @codelist values(’V’, ’code’, ’code description’)

    where “code” is the processing code of the data element and “code description” is the description of the element as you want it to appear on the Enterprise Data Manager windows. For example:

    -- **** PHONTYPE **** insert into @codelist values(’L’, ’PHONTYPE’, ’TELEPHONE TYPE’) insert into @codelist values(’V’, ’H’, ’HOME’) insert into @codelist values(’V’, ’C’, ’CELL’) insert into @codelist values(’V’, ’F’, ’FAX’) insert into @codelist values(’V’, ’O’, ’OFFICE’) insert into @codelist values(’V’, ’HB’, ’HOME BUSINESS’)

  5. Repeat the previous two steps for each code list type defined in the file.

  6. If you specified additional code list fields in the Object Definition file and the Enterprise Data Manager file, add a new stanza for each new code type.

  7. Save and close the file.

  8. Do one of the following:

Step 6: Define Master Index User Code Lists (Repository)

If you specified a value for theConstrained By and User Code properties of a field, you must define the user code values for those fields. Below is a sample insert statement for the sbyn_user_code table.

insert into sbyn_user_code (code_list, code, descr, format, input_mask, value_mask) values (’AUXIDDEF’, ’CC’, ’CREDIT CARD’, ’[0-9]{16}’, ’DDDD-DDDD-DDDD-DDDD’, ’DDDD^DDDD^DDDD^DDDD’);

To learn more about the sbyn_user_code table, see Master Index Database Table Description for sbyn_user_code (Repository). Complete Step 5: Define Master Index Code Lists (Repository) before beginning this step.

ProcedureTo Define a User Code List

  1. In the Projects window, right-click the Database Script node of the master index project.

  2. In the Database context menu, select New.

  3. Enter the name of the script, and then click OK.

    The file opens in the NetBeans editor.

  4. Use the above sample to define a value for the user code drop-down list and the required format for the dependent fields.

  5. Repeat the above step for each drop-down list value and type (for example you might have one list for credit cards and another for postal codes and their corresponding cities).

  6. Save and close the file.

  7. Continue to Step 7: Create Custom Master Index Database Scripts (Repository) or to Step 8: Create the Master Index Database Structure (Repository) if you do not need to create any custom database scripts.

Master Index Database Table Description for sbyn_user_code (Repository)

The following table lists and describes the columns in the sbyn_user_code database table so you can create SQL statements to insert user code data into the master index database.

Column Name 

Description 

code_list

The code list name of the user code type (using the credit card example above, this might be similar to “CREDCARD”). This column links the values for each list. 

code

The processing code of each user code element. 

description

A brief description or name for the user code element. This is the value that appears in the drop-down list. 

format

The required data pattern for the field that is constrained by the user code. For more information about possible values and using Java patterns, see “Patterns” in the class list for java.util.regex in the Javadocs provided with Java. Note that the pattern might be further restricted by the value of the input mask described below.

input-mask

A mask used by the EDM to add punctuation to the constrained field. For example, the input mask DD-DDD-DDD inserts a hyphen after the second and fifth characters in an 8-digit ID. If you use an input mask, you should also use a value mask to strip the punctuation for database storage (see below).

The following character types can be used. 

  • D – Numeric character

  • L – Alphabetic character

  • A – Alphanumeric character

value-mask

A mask used to strip any extra characters that were added by the input mask for database storage. The value mask is the same as the input mask, but with an “x” in place of each punctuation mark. Using the input mask described above, the value mask is DDxDDDxDDD. This strips the hyphens before storing the ID.

Step 7: Create Custom Master Index Database Scripts (Repository)

You can insert additional information into the database by creating a custom script under the Database Script node. For information about the structure of the master index database, see Understanding Sun Master Index Processing (Repository).

ProcedureTo Create a Custom Script

  1. In the master index project, right-click the Database Script node.

  2. Click New.

  3. Enter the name of the script, and then click OK.

    The new script appears under the Database Script node.

  4. Double-click the new script.

    The text editor appears.

  5. In the text editor, create the SQL script to insert the custom data.

  6. Save and close the file.

  7. Continue to Step 8: Create the Master Index Database Structure (Repository).

Step 8: Create the Master Index Database Structure (Repository)

After you create the database instance and customize the database scripts, you can create the master index tables and insert the custom data.

ProcedureTo Create the Database Structure

  1. In the master index project, right-click the Database Script node, and then select Properties from the Database Script context menu.

    The Properties of Database Script dialog box appears.

  2. Do one of the following:

    • For Oracle: In the Database Server field, change <host> to the database server address and change <SID> to the SID name of the database you created in Step 2: Create a Master Index Database and User (Repository). If Oracle is not listening on the default port, 1521, enter the correct port number. You can use “localhost” as the hostname if the database resides on the same machine as NetBeans.

      For example:

      jdbc:oracle:thin:@localhost:1521:IndexDB

    • For SQL Server: In the Database Server field, change the URL to the following:

      jdbc:sqlserver://server:port;databaseName=database

      where server is the address of the database server, port is the port number on which SQL Server is listening, and database is the name of the database. You can use “localhost” for the hostname if the database resides on the same machine as NetBeans.

  3. In the Password field, enter the password of the administrator user you created when you created the database (creating an administrator user is described under Step 2: Create a Master Index Database and User (Repository)).

  4. In the User field, enter the administrator user’s logon ID.


    Note –

    Make sure you enter the database logon credentials for the administrator user you created. You cannot use the logon credentials for the default system user (the database tables will be created, but the master index application will not function correctly).


  5. Close the dialog box by clicking the “X” icon in the upper right corner of the dialog box.

  6. Right-click Createapp_name (where app_name is the name of the master index application) Database, and then select Run. On the confirmation dialog box, click OK.

  7. For each additional script to run against the database, right-click the name of the script, and then select Run. On the confirmation dialog box, click OK.

Step 9: Specify a Starting EUID for a Master Index (Repository)

By default, the EUIDs assigned by the master index application start with “0”, with padded zeroes added to the left to make the EUID number the correct length (for more information, see Understanding Sun Master Index Configuration Options (Repository)). You can modify this numbering format by changing the value of the seq_name column of the sbyn_seq_table database table where the sequence name is “EUID”. For example:

update sbyn_seq_table set seq_count=1000000001 where seq_name=’EUID’;