Generate Repository Schema utility

The Generate Repository Schema utility generates a Synergy Data Language description of your repository to a file. This description is referred to as a schema. See Synergy Data Language for more information about Synergy Data Language and possible uses for a repository schema file.

Note

You can also run this utility from the command line. See Exporting and importing Synergy Data Language Files (rpsutl).

1. Select Utilities > Generate Repository Schema. The default repository filenames displayed are determined by the logic discussed in Determining the repository files used.

1. Generating a repository schema.

2. Enter data in each field as instructed below.

Repository main file

Enter or select the name of the repository main file from which a schema should be generated.

Repository text file

Enter or select the name of the repository text file from which a schema should be generated.

Export to

Indicate whether you want to generate schema to one file (default) or generate the schema for each repository definition to its own file. Selecting Separate files creates files (with predefined filenames) in the directory specified in the Schema dir field. (If the RPS_SCHEMA_EXPORT_ON_EXIT environment variable is set to 1, Export to defaults to "One file," and if it's set to 2, Export to defaults to "Separate files.")

Schema file

Enter the name of the file into which the repository schema should be generated. If you don’t specify an extension, it defaults to .ddf. By default, the file is created in the current directory. (If the RPS_SCHEMA_EXPORT_ON_EXIT environment variable is set to 1, Schema file defaults to the value of RPS_SCHEMA_EXPORT_FIL, if set, or schema.sdl if not set.)

Schema dir

Enter the name of the directory into which the separate schema files will be generated. The filenames will be in the format

type-name.sdl

where type is one of the following: fmt, tpl, enm, fil, or str, and name is the name of the repository definition. Existing files will be overwritten. (If the RPS_SCHEMA_EXPORT_ON_EXIT environment variable is set to 2, Schema dir defaults to the value of RPS_SCHEMA_EXPORT_DIR, if set.)

Option

Indicate whether you want to generate a schema for all definitions in the repository or for specific (selected) definitions. Selecting Specific enables you to generate schema for a specific format, enumeration, template, structure, file, or any combination thereof.        

Note

When exporting to One file, if you select All, the generated schema file will be valid for use by the Load Repository Schema utility. The Specific option could result in a Synergy Data Language file that contains duplicate definitions or missing (referenced) definitions, and which therefore may not be valid for use by the Load Repository Schema utility. See General usage rules for a description of the allowed structure of a repository schema file.

Tip

When selecting specific definitions, you can enter a partial name combined with wildcard characters (* or ?) to specify a set of definitions.

For the Format, Enumeration, Template, Structure, and File fields, you can select from a list of definitions by selecting Utility Functions > List Selections.

Generate structure timestamps

Select this option to include the date and time that each structure definition was last modified. This option adds the MODIFIED keyword to each generated structure definition. If you manually edit the schema, you should update this value for any structures that you change. See STRUCTURE for more information.

Exclude headers

Select this option to suppress the generation of the header block at the top of the generated schema file(s). This makes it possible to use schema files more effectively with version-control change tracking. This option is always set when exporting to separate files.

Format

If you selected Specific in the Option field, enter the name of a format definition to generate.

Enumeration

If you selected Specific in the Option field, enter the name of an enumeration definition to generate.

Template

If you selected Specific in the Option field, enter the name of a template definition to generate.

Structure

If you selected Specific in the Option field, enter the name of a structure definition to generate. This can be the name of an alias structure, but you must type it in, rather than select it using the List Selections option.

Keys, Relations, Aliases

If you selected Specific in the Option field and specified a structure name, indicate whether you want to generate the keys, relations, and aliases. By default, all definitions associated with a structure are generated; clear the check boxes for those you do not want generated.

To control these options when you want to generate all structures, select Specific in the Option field and enter “*” in the Structure field.

File

If you selected Specific in the Option field, enter the name of a file definition to generate.

Structures, Keys, Relations, Aliases

If you selected Specific in the Option field and specified a filename in the File field, indicate whether you want to generate the file’s assigned structures as well. If you select Structures, all definitions associated with each assigned structure are generated by default; clear the check boxes for Keys, Relations, and Aliases if you do not want to generate those definitions.

To control these options when you want to generate all files, select Specific in the Option field and enter “*” in the File field.

3. Exit the window to generate the repository schema.

As the repository schema is being generated, status messages are displayed in the lower-left corner of the window. When processing is complete, a message that lists the number of each type of definition generated is displayed.

4. To return to the Utilities menu, press Enter.

Synergy Data Language file header

The output file generated by this utility includes a header that lists the name and version of the repository being generated, the date and time the utility was run, and information about the export options that were chosen. Possible export options include the following:

[ALL]|[FORMAT=name][ENUMERATION=name][TEMPLATE=name][STRUCTURE=name][FILE=name]

Additionally, the [STRUCTURE] and [FILE] options may include abbreviations relative to the generated output. Possible abbreviations include the following:

-K = Exclude keys

-R = Exclude relations

-A = Exclude aliases

+S = Include assigned structures

For example, if you select Specific in the Option field, specify “*” in the Structure field, and clear the default Keys setting, the information in the export options line in the output file would look like this:

;  EXPORT OPTIONS : [STRUCTURE-K=*]

If you select Specific in the Option field, specify the file definition name CUSTOMER, and choose to generate its assigned structures but not their aliases, the export options line would look like this:

;  EXPORT OPTIONS : [FILE+S-A=CUSTOMER]

The file below is an example of the Synergy Data Language output generated by the Generate Repository Schema utility when the All option is selected.

;  SYNERGY DATA LANGUAGE OUTPUT
;
;  REPOSITORY     : RPSDAT:rpsmain
;                 : RPSDAT:rpstext
;                 : Version 9.1
;
;  GENERATED      : 06-AUG-2009, 13:23:30
;                 : Version 9.1.5
;  EXPORT OPTIONS : [ALL]


Format STD_ID   Type NUMERIC   "ZZ-Z"

Template DIG8DATE   Type DATE   Size 8   Stored YYYYMMDD
   Description "8-digit date"
   Date Today   Date Short

Structure EMPLOYEE   DBL ISAM
   Description "Employee master file

Field EMP_ID   Type DECIMAL   Size 3
   Description "Employee ID"
   Report Just LEFT   Format STD_ID
   Break   Required   Paint "*"

Field EMP_NAME   Type ALPHA   Size 25
   Description "Employee name"
   Info Line "Enter your full name."

Field EMP_DEPT   Type DECIMAL   Size 2
   Description "Department ID"
   Report Just LEFT

Field EMP_MNGR   Type DECIMAL   Size 3
   Description "Manager ID"
   Report Just LEFT

Field EMP_TITLE   Type ALPHA   Size 25
   Description "Title"
   Uppercase

Field EMP_DATE   Template DIG8DATE
   Description "Starting date"

Field EMP_STATUS   Type ALPHA   Size 1
   Description "Employee status"
   Selection List 2 2 3  Entries "A", "I", "V"

Key EMPLOYEE_ID   ACCESS   Order ASCENDING   Dups NO
   Segment FIELD   EMP_ID

Structure ORDER   DBL ISAM
   Description "Sales order management"

Field ORD_ID   Type DECIMAL   Size 6
   Description "Order ID"
   Report Just LEFT   Break   Noterm   Blankifzero

Field ORD_ITEM   Type DECIMAL   Size 3
   Description "Order item (product ID)"
   Report Just LEFT   Range 1 100

Field ORD_DATE   Template DIG8DATE
   Description "Order initiated date"

Field ORD_SUB   Type DECIMAL   Size 2   Dimension 2:2 
   Overlay ORD_DATE:0
   Description "Order date subscripted"
   Report Just LEFT

Field ORD_STATUS   Type ALPHA   Size 1    
   Description "Status"
   Allow "O", "S", "B"   

Field ORD_DESC   Type ALPHA   Size 40
   Description "Status description"

Key ORDER_ID   ACCESS   Order ASCENDING   Dups NO    
   Segment FIELD   ORD_ID

Key PRODUCT_ID   ACCESS   Order ASCENDING   Dups YES 
   Segment FIELD   ORD_ITEM   

Structure PRODUCT   DBL ISAM  
   Description "Product management"

Format MONEY   Type NUMERIC   "$######.##"   Justify RIGHT  

Field PRDT_ID   Type DECIMAL   Size 3
   Description "Product ID"   
   Report Just LEFT   Format STD_ID    
   Prompt "ID: "   Break   Required  

Field PRDT_NAME   Type ALPHA   Size 25    
   Description "Product name"  
   Prompt "Name: "   Uppercase

Field PRDT_PRICE   Type DECIMAL   Size 8   Precision 2  
   Description "Product price"
   Report Just LEFT   Format MONEY
   Prompt "Price: "   Nodecimal   Blankifzero

Field PRDT_MNGER   Type DECIMAL   Size 3  
   Description "Product manager ID"
   Report Just LEFT 

Field PRDT_DATE   Template DIG8DATE 
   Description "Product available date" 

Field PRDT_STATUS   Type ALPHA   Size 1   
   Description "Prdt portability status"  
   Prompt "Status: "   Allow "A", "D", "O", "I"   

Field PRDT_DESC   Type ALPHA   Size 40   
   Description "Status description"
   Prompt "Description: "

Key PRODUCT_ID   ACCESS   Order ASCENDING   Dups NO  
   Segment FIELD   PRDT_ID    

Key PRDT_MANAGER_ID   ACCESS   Order ASCENDING   Dups YES 
   Segment FIELD   PRDT_MNGER 

Relation  1   PRODUCT PRODUCT_ID   ORDER PRODUCT_ID

Relation  2   PRODUCT PRODUCT_ID   EMPLOYEE EMPLOYEE_ID 

File EMPLOYEE   DBL ISAM   "DAT:employee.ism"
   Description "Employee master file"   
   Assign EMPLOYEE  

File ORDER   DBL ISAM   "DAT:order.ism" 
   Description "Sales order management file" 
   Assign ORDER

File PRODUCT   DBL ISAM   "DAT:product.ism"  
   Description "Product management file"
   Assign PRODUCT