Database Tour Documentation | |
Field Mappings File |
Field mappings files contain source-to-target field mappings for export and import operations. Use them whenever you need the same field mappings to be used more than once. They can be also used when exporting data from command line or action files.
It is supported two formats of field mappings files: XML (recommended) and plain text.
This format is flexible and extendable and therefore is recommended to use whenever possible.
Such field mappings files can be created either in the Export dialog on the Field Mappings step or manually using a text editor. When creating the files manually please note that they must conform to XML standards and contain byte order marks at the beginning if needed.
The file contains an optional common part and a series of field mappings. The common part may include some technical information like application name and version, and key fields for special cases of exporting data to databases and SQL script.
Each mapping must contain 2 parts: source and target.
The source part must contain a FieldName attribute with the physical name of the source field or a dynamic expression.
The target part can have a variable number of attributes (either FieldName or FileName or both must be filled):
FieldName
Specifies the physical name of the target field (column).
Target formats: All
FieldType
Specifies the type of the target field (column). For SQL databases, it should be a SQL type supported by the target database. For non-SQL databases (e.g. ASCII tables), it should be a type supported by the target database.
Target formats: Database, SQL
FieldSize
Specifies the maximum number of characters for text fields (columns) or total number of digits for fields (columns) holding floating-point numbers.
Target formats: Database, SQL
FieldScale
Specifies the scale (number of digits to the right of the decimal point) for fields (columns) holding floating-point numbers.
Target formats: Database, SQL
FieldNotNull
A value of 1 means that the field will NOT accept NULL values.
Target formats: Database, SQL
FieldDefaultValue
Specifies the default value for the field.
Target formats: Database, SQL
PrimaryKey
Specifies whether the field is a part of the primary key or not.
Target formats: Database, SQL
FieldSQLSpecification
Specifies full SQL specification of the field (without field name). See example below.
Target formats: Database, SQL
FieldDescription
Specifies the field description (currently, Oracle, SQL Server, PostgreSQL, and MySQL databases only).
Target formats: Database, SQL
FileName
Specifies path of file to store contents of the source field. If not empty, the contents of the source field will be saved into a separate file specified by this attribute. The target folder must exist. The file path should be a dynamic expression returning a unique file name, otherwise the file will be overwritten for each exported record. For database images, the file extension will define the target image format, so it is possible to convert the image format. See example below.
Target formats: All
Attention! There are no overwrite prompts for these files.
TotalsExpression
Specifies expression the result of which should be shown in the target file after exporting all source records. It can be a dynamic or constant expression.
Target formats: All, except Database, SQL, DBF
Example of the Access-to-Oracle field mappings file in XML format:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Source-to-Target mappings for Payments aggregation -->
<FieldMappings>
<Software>Database Tour Pro</Software>
<KeyFields>PAYMENT_ID</KeyFields>
<Items>
<FieldMapping>
<Source>
<FieldName>PaymentId</FieldName>
</Source>
<Target>
<FieldName>PAYMENT_ID</FieldName>
<FieldType>INTEGER</FieldType>
<PrimaryKey>1</PrimaryKey>
</Target>
</FieldMapping>
<FieldMapping>
<Source>
<FieldName>Department</FieldName>
</Source>
<Target>
<FieldName>DEPARTMENT</FieldName>
<FieldType>VARCHAR2</FieldType>
<FieldSize>20</FieldSize>
<FieldDescription>Department Name</FieldDescription>
</Target>
</FieldMapping>
<FieldMapping>
<Source>
<FieldName>ActualityDate</FieldName>
</Source>
<Target>
<FieldName>ACTUALITY_DATE</FieldName>
<FieldType>DATE</FieldType>
<FieldDescription>Date of Payment</FieldDescription>
</Target>
</FieldMapping>
<FieldMapping>
<Source>
<FieldName>PaymentSum</FieldName>
</Source>
<Target>
<FieldName>PAYMENT_SUM</FieldName>
<FieldType>NUMBER</FieldType>
<FieldSize>12</FieldSize>
<FieldScale>2</FieldScale>
<FieldDescription>Payment Amount</FieldDescription>
</Target>
</FieldMapping>
<FieldMapping>
<Source>
<!-- dynamic expressions are possible: -->
<FieldName>vle_expr(0.1 * dataset_field_val(1, 'PaymentSum'))</FieldName>
</Source>
<Target>
<FieldName>COMMISSION_SUM</FieldName>
<FieldType>NUMBER</FieldType>
<FieldSize>12</FieldSize>
<FieldScale>2</FieldScale>
<FieldDefaultValue>0</FieldDefaultValue>
<FieldSQLSpecification>NUMBER(12, 2) DEFAULT 0<
<FieldDescription>Commission Amount</FieldDescription>
</Target>
</FieldMapping>
<FieldMapping>
<Source>
<FieldName>Notes</FieldName>
</Source>
<Target>
<FieldName>NOTES</FieldName>
<FieldType>VARCHAR2</FieldType>
<FieldSize>400</FieldSize>
<FieldSQLSpecification>VARCHAR2(400)</FieldSQLSpecification>
<FieldDescription>Notes regarding the payment</FieldDescription>
<!-- we use value of the unique PaymentId field to ensure we get a unique file path for each record: -->
<FileName>vle_expr(extract_file_path(target_file_name(1)) + 'notes' + to_string(dataset_field_val(1, 'PaymentId')) + '.txt')</FileName>
</Target>
</FieldMapping>
</Items>
</FieldMappings>
Such files consist of series of SourceFieldName=TargetFieldName pairs, one mapping per line. It is recommended that field names not contain equal signs. Instead of source field names, dynamic expressions can be used (see example below). Lines with a semicolon at the beginning are ignored as comments. Blank lines are allowed.
Such files can have any extension and can be created in any text editor. When creating the files please include byte order marks at the beginning if needed.
Example of the field mappings file in text format:
;Source-to-Target mappings for Payments exporting
Department=DEPARTMENT
ActualityDate=ACTUALITY_DATE
PaymentCount=PAYMENT_COUNT
PaymentSum=PAYMENT_SUM
;dynamic expressions are possible:
vle_expr(0.1 * dataset_field_val(1, 'PaymentSum'))=COMMISSION_SUM
Notes
Target FieldName attributes, if contain characters, uncommon for field names in the target database (i.e. spaces etc.), should be enclosed in double quotes or square brackets according to the rules of the target database.