Файл відповідностей полів

Файли відповідностей полів містять відповідності полів джерело-ціль для операцій експорту та імпорту. Використовуйте файли відповідності полів при необхідності вжити одні і ті ж самі відповідності полів більше одного разу.

Підтримуються два типи форматів файлів відповідності полів: XML (рекомендований) та текст.

Формат XML

Даний формат є гнучким і розширюваним, тому рекомендується до використання скрізь, де можливо. Кожна відповідність повинна містити атрибути джерела із вказаним FieldName (назва поля) та атрибути цілі зі змінним набором атрибутів:

Цільовий атрибут Цільовий формат Опис
FieldName Всі Фізична назва цільового поля (колонки). Обов'язковий атрибут.
FieldType База даних, SQL Тип цільового поля (колонки). Для баз даних SQL це повинен бути SQL-тип, що підтримується цільовою базою даних. Для інших баз даних це повинен бути тип, що підтримується цільовою базою даних
FieldSize База даних, SQL Максимальне число символів текстових полів або максимальна кількість розрядів для полів (колонок), що містять числа з плаваючою точкою.
FieldScale База даних, SQL Кількість розрядів праворуч від десяткової точки для полів (колонок), що містять числа з плаваючою точкою.
FieldNotNull База даних, SQL Значення 1 значить, що поле не приймає значень NULL.
FieldDefaultValue База даних, SQL Визначає значення по замовчанню для поля.
FieldSQLSpecification База даних, SQL Визначає повну специфікацію SQL для поля (без імені поля). Наприклад: VARCHAR(32) NOT NULL

Такі файли можуть бути створені або в діалозі Експорту на кроці Відповідність полів,або вручну з використанням текстового редактора. При створенні файлів вручну майте на увазі, що вони повинні відповідати стандартам XML та містити (при потребі) маркер порядку байтів (BOM) на початку.

Приклад файлу відповідності полів для експорту Access-до-Oracle:

<?xml version="1.0" encoding="UTF-8"?>
<-- Source-to-Target mappings for Payments aggregation -->
<FieldMappings>
  <Items>
    <FieldMapping>
      <Source>
        <FieldName>Department</FieldName>
      </Source>
      <Target>
        <FieldName>DEPARTMENT</FieldName>
        <FieldType>VARCHAR2</FieldType>
        <FieldSize>20</FieldSize>
      </Target>
    <FieldMapping>
      <Source>
        <FieldName>ActualityDate</FieldName>
      </Source>
      <Target>
        <FieldName>ACTUALITY_DATE</FieldName>
        <FieldType>DATE</FieldType>
      </Target>
    </FieldMapping>
    <FieldMapping>
      <Source>
        <FieldName>PaymentCount</FieldName>
      </Source>
      <Target>
        <FieldName>PAYMENT_COUNT</FieldName>
        <FieldType>INTEGER</FieldType>
      </Target>
    </FieldMapping>
    <FieldMapping>
      <Source>
        <FieldName>PaymentSum</FieldName>
      </Source>
      <Target>
        <FieldName>PAYMENT_SUM</FieldName>
        <FieldType>NUMERIC</FieldType>
        <FieldPrecision>12</FieldPrecision>
        <FieldScale>2</FieldScale>
      </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>NUMERIC</FieldType>
        <FieldPrecision>12</FieldPrecision>
        <FieldScale>2</FieldScale>
      </Target>
    </FieldMapping>
  </Items>
</FieldMappings>

Текстовий формат

Такі файли складаються з пар НазваПоляДжерела=НазваПоляЦілі, одна відповідність на строчку. Рекомендується, щоб назви полів не містили знаку рівності. Замість назви поля джерела можна використовувати динамічний вираз (див. приклад нижче). Строчки, що починаються на крапку з комою, вважаються коментарем і ігноруються програмою. Допускаються пусті строчки.

Такі файли можуть мати будь-яке розширення, їх можна створювати у будь-якому текстовому редакторі. При створенні файлів майте на увазі, що вони повинні відповідати стандартам XML та містити (при потребі) маркер порядку байтів (BOM) на початку.

Приклад файлу відповідностей полів у текстовому форматі:

;Source-to-Target mappings for Payments aggregation
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

Зауваження
Цільовий атрибут FieldName, якщо містить символи, не типові для назв полів цільової бази даних (наприклад, пробіли і т.д.), повинен братися в лапки або квадратні дужки у відповідності до правил цільової бази даних.