The Advanced 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.
To create an Advanced Positional Schema:
Go to Develop > Services > Schema > Adv. Positional.
- Click Create New.
- Type the name and description of the new Advanced Positional Schema in the Name and Description.
- Select the definition mode for the Advanced Positional Schema. You can define the schema in the following three ways:
- Import Definition file
- Use Data Dictionary
- Enter the Fields Sequentially
If you have selected Import Definition File as a definition mode, select the type of file from the Definition File (XSD or Field), and then click the Choose File to select the file that you want to use for defining the schema using the definition file.
If you have selected Use Data Dictionary as a definition mode, then do the following:
Select the name of the data dictionary from the Data Dictionary, and then click Select Record. This will display the Select Record window.
This screen displays the name of the data dictionary and the list of all records that are in the dictionary. Select the checkbox against the record that you want to display in the Advanced Positional Schema.
Click Select All checkbox to display all records.- Click OK. This closes the Select Record window and displays the selected records under the Record Definition. You can view or delete a record from this screen by clicking the appropriate button (View or Delete) for that record.
If you have selected Enter the Fields Sequentially as a definition mode, then do the following:
Select the field position - Field Length or Start & End Positions.
Field Length: Select this option if the field length is used to set the field positions.
Start & End Positions: Select this option if the start and end positions are used to set the field positions.Expand Record Definition or it will be automatically expanded on the selection of this option.
- Type the name and description of the field in the FieldName and Description.
- Select the data type from the Type - number, string, or date.
- If the data type is date, select the format of the date and time from the Date Format and Time Format.
- If you have selected Field Length as a field separator then type the length of the field in the Length.
If you have selected Start & End Positions as a field separator then type the start and end positions in the Start and End.
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 a sequence. For more details, click here.
Select the alignment of the field from the Align. Select L for left aligned and R for right aligned.
Select 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 that will now contain the required fields.
While editing an existing schema, the field file that you will download, Adeptia Suite will represent the skipped fields by 'T' and unskipped fields by 'F'. This depiction will remain same while viewing the Print-Friendly Page.- Type the name of any field in the Record Identifier and the value of the field in the Value. Record Identifier is used to identify the records that will be parsed through this definition. You can also use the regular expression as a value by clicking Is Regex.
- Click Add Record to define another set of data and repeat the steps.
- 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 Refresh 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.
- 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 8-11 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 8-11 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.