The Advance Positional schema activity defines the procedure to read data from and write data to a multiple record format file. You can do this by specifying the names and positions of the fields from which you want to fetch the data from.
Steps to create Advance Positional schema
On the Adeptia Suite homepage, go to Configure > Services > Schema and then click the Adv. Positional. The Manage Adv. Positional Schema screen is displayed.
- Click the Create New link. This action will show the Create Advance Positional Schema screen.
- Enter the name and description for Advance Positional Schema in the Name and Description text boxes respectively.
- You need to create the schema definition for the Advance Positional Schema. You can define the schema in three ways. These are outlined as:
- Import Definition file
- Use Data Dictionary
- Enter the Fields Sequentially
Select the Import Definition File radio button, select the type of file from the dropdown list, and then click the Browse button to select the file that you want to use for defining the schema using the definition file .
To define the schema using a data dictionary, click the Use Data Dictionary radio button, select the name of the data dictionary from the dropdown list, and then click the Select Record button. This will display you the Select Record screen.
To know, how to create Data Dictionary, refer to the Creating Data Dictionary section.
This screen will display you the name of the data dictionary and a list of all the records that are in the dictionary. Select the checkbox against the record that you want to display in the Advance Positional schema.
To display all records, select the Select All checkbox.
Click OK. This closes the Select Record screen and displays the selected records under Record Definition on the Manage Advance Positional Schema screen. You can view or delete a record from this screen by clicking the appropriate button for that record.
To enter the fields manually, select the Enter the Fields Sequentially Using radio button and then click Record Definition. This action will further expand to display the Record Definition fields.
- Enter the name and description of the field in the FieldName and Description textboxes respectively.
- Select the type of data from the Type dropdown list.
- If data type is Date, select the format of date and time from the DateFormat and TimeFormat dropdown lists respectively.
- To define field position select one of the following options:
- Field Length
- Start & End Positions
- To define the field position using field length, select the Field Length radio button and then enter the length of the field in the Length field.
- To define the field position using start and end position, select the Start & End Position radio buttons.
- Enter the start position of the field in the Start textbox.
Enter the end position of the field in the End textbox.
The starting position of a row in a positional file is 1.
In a positional file, the schema counts a tab as one position and not eight positions.
By default, the schema creates these field positions in a sequence. You can also create a schema with fields that are not in sequence. For details, refer to the Defining Field Positions Non-Sequentially section.Select the alignment of the field from the Align dropdown list.
From Align select
L if the field is left aligned.
R if the field is right aligned.
To insert rows, specify the number and position of the rows that you want to add in the Number of Rows and at Position fields respectively and then click the Add Row button. You can add a maximum of 99 rows at a time.Select the Skip checkbox if you want to skip some fields while generating the XML for your schema. For example, your source file has over 1500 fields, but you only need to use 1000 fields. This Skip checkbox will omit the 500 unrequired fields and it will not read them when it parses the data to XML. However, the fields will be visible in the file. If you create the schema using an existing XSD, then the skipped fields will appear blank. However, when you will use the same schema in other activities such as Mapping, it will display all the fields of the file.
The skipping of fields is useful in case where a standard XSD has a large number of fields. Skipping reduces the size of the XML which will now contain the fields that we require.
While editing an existing schema, the field file that you will download, the Adeptia Suite will represent the skipped fields by 'T' and the unskipped fields by 'F' (see Figure 225). This depiction will remain the same while viewing the Print-Friendly Page.Enter the name of any field in the Record Identifier textbox and the value of the field in the Value textbox.
Record Identifier is used to identify the records which will be parsed through this definition.
In Value you can also use regular expressions. To use regular expression enable Is Regex.- Click Add Record to define another set of data and repeat the steps from 6 to 20.
- After defining records you need to define their hierarchy. This is mandatory for creating an Advance Positional schema.
Once you finish adding the records, defining the Record Identifiers, and their values, click the Refresh button under Hierarchy Definition. This populates the Record Identifiers of the defined records, in the Record ID field under Hierarchy Definition.
- Select a record from the Record ID list box.
- Select Y or N from the Required list box to indicate if a record will appear in the source file.
- In the minoccur field, enter the minimum number of occurrences that you want a record to appear in the source file. If the Required field has the value as 'Y', then the minoccur field should at least have a minimum 1 occurrence in the source file. If the Required field has the value as 'N', then the minoccur field can be 0.
- In the maxoccur field enter the maximum number of occurrences that you want a record to appear in the source file. The maximum allowable value that you can enter in the maxoccur field is 2147483647.
Using Hierarchy at Root Level
Steps to use a hierarchy at the Root Level
Click the Add RootRecord button. This creates a record at the same level as that of the previous root record as shown in the figure.
- Select a record from the Record ID field and enter all the related information.
Repeat step 24-27 to create another root record.
Every record must have a unique Record ID. For example, if the first root record is John , then you need to select Stationary in the next root record.
Using Record at Child Level
- Steps to use a record at the Child Level
Click the Add Child button. This creates a child record at a level below the Root record as shown in the figure.
- Select a record in the Record ID field of the child record and enter all the related information.
Repeat step 24-27 to create a child record.
A parent and child record must have a unique Record ID in one hierarchy. For example, if John is the parent record, then you need to select Stationary as the child record. Similarly, if you create another child record under Stationary, then you need to select North as its Record ID.
You can remove a record by selecting the record and clicking the Remove button. This will display you a confirmation delete dialog box on clicking OK this action will delete the record.
Alternately, if you delete the last fieldname of a record and then save the schema, this action will delete the entire field. For example, a record has three fields – Name, Description, and Age. Now deleting Age will result in deletion of the entire field.
If a record has one or more child records then, deleting the parent record will result in deletion of all of its child records.Click Advanced Properties. Advanced properties of an advance positional schema is shown below.
- Click the Populate button to view the XML code for the hierarchy you had just made.
As this field is editable, you can edit or enter new XML code for the hierarchy and this code will then override the existing hierarchy. In case there are numerous records then, you can create a flat hierarchy and edit that XML code to change the hierarchy as per your wish.
We recommend you to copy this XML code, edit it in another XML editor, and then make any changes. Once you are done with the changes, you can paste it into the Hierarchy XML field. Once you update the XML code, you should not click the Populate button again or make any changes to the Hierarchy, as these actions will then replace your XML code with the original XMLcode.
- If the source file does not have any carriage return then disable the Handle CR/LF (Source Data) checkbox.
By default, this option is checked, as the schema expects a file with a carriage return. This option is applicable only if you are using the schema at the source end. - Enter the record separator for the target records in the Target Record Separator textbox.
- If you want to pass a specific length of data and ignore the rest of the data then you can select the Data Truncation checkbox.
- If you want that the target record identifier in XML should match with the value specified in the schema then you need to select the Validate Target Record Identifier checkbox.
By default, this checkbox is unchecked. This means that if the Record Identifier Value is not exactly same, then it will not generate error records.
- If you want to parse the data even if the number of fields in the data file are less than the number of fields specified in the schema then, select the Allow Less Fields checkbox.
If you use the schema at the source end and check the Allow Less Fields checkbox then the schema will parse the input data and insert the empty tag for missing fields. If you use the schema at the target end then, the schema will write all the incoming tags in XML as input. If you want to generate error records when the number of fields in the source data is more than the number of fields specified in the schema then, uncheck the Allow More Fields checkbox.
If this checkbox is checked then your Process Flow will only parse those fields that you specify in your schema. It will ignore all the other fields.
You can filter the invalid XML characters by selecting the Filter Invalid XML Characters checkbox. If you want to prevent the abortion of the mapping process due to the invalid XML characters then this checkbox will help you achieve that.
To learn about other Advanced Properties refer to the Changing Advanced Properties section.
- Click the Save button.
Defining Field Positions Non-Sequentially
By default, XML creates the fields of a schema sequentially. At times, you may need to create a schema with field positions that are not in sequence. For example, there are 500 fields in the source file and you need to create a schema by using only 200 fields. But these 200 fields are not sequential. In such a case, you can create a schema by defining the start and end position of these fields in a non-sequential manner.
Steps to define field positions non-sequentially
- Click the Start & End Positions radio button.
- Enter the name and description of the field in the FieldName and Description textboxes respectively.
- Select the type of data from the Type dropdown list.
- The default value of the start position in the Start field is 1. You can edit the start position as per your requirement.
- Enter the end position of the field in the End field after which you want to create a field position that is not in sequence.
- In the next Start field, you can define a new start position for this field. For example, if the field that you made has 1 and 10 in the Start and End field respectively, so now you can define a start position (other than 11) such as 15 and the end position such as 25 for this new field that you are creating.
This implies that, when you create a schema, field1 will have 10 positions. However, field2 will start at the 15th position. The positions between 11 and 14 will remain blank.
You can also change the field positions non-sequentially, while editing the schema.
This feature is available for Advance Positional and Positional Schemas only.
Viewing Print Page
You can view the summary, record definition, and hierarchies of a schema in edit mode.
Steps to view Print page
- On the Adeptia Suite homepage, click the Develop tab.
- Go to Services > Schema and then click Adv. Positional. The Manage Advance Positional Schema screen is displayed.
Click the schema to view it in Edit mode or click the More Actions icon under the Actions column and select the View option. Clicking this link will display you the Edit Advance Positional Schema screen.
- Click the Print button. This action will display you the Summary screen.
You can print a summary of the EDI segment definition and hierarchies too.
Similarly, you can view the Print-friendly page for the Positional Data Dictionary, by clicking the Print-friendly Page button on the Edit Positional Data Dictionary screen.
Special Usage Scenario
Enable IsRemoveHeader Attribute
If you use Advance Positional schema as a target schema then, you can set the IsRemoveHeader attribute. This attribute will help you to skip the insertion/update of a record from the source file to the target database. You only need to set the IsRemoveHeader attribute to 'True'. This attribute is set in the Data Mapper, while mapping source and target schemas.
Steps to set IsRemoveHeader attribute
In the Data Mapper, load the source and target schemas. In the target schema, there is an IsRemoveHeader attribute.
- Create a constant that has a value 'true' and map it to IsRemoveHeader attribute of the target schema.
Save the Mapping activity.
To learn how to use Data Mapper, refer to the Using Data Mapper section.