Документація Database Tour Зміст Індекс

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

 

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

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

Формат XML

Даний формат є гнучким і розширюваним, тому рекомендується до використання скрізь, де можливо.

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

Файл містить необов'язкову спільну частину та ряд відповідностей полів. Спільна частина може включати деяку технічну інформацію (наприклад, назву програми та її версію), а також ключові поля для спеціальних випадків експорту до баз даних або скрипта SQL.

Кожна відповідність полів повинна містити 2 частини: для джерела і для цілі.

Частина для джерела має містити атрибут FieldName - назва поля джерела або динамічний вираз.

Частина для цілі може містити змінний набір атрибутів (повинно бути заповнено як мінімум FieldName або FileName):

FieldName

Фізична назва цільового поля (колонки).

Цільові формати: Всі

FieldType

Тип цільового поля (колонки). Для баз даних SQL це повинен бути SQL-тип, що підтримується цільовою базою даних. Для інших баз даних це повинен бути тип, що підтримується цільовою базою даних.

Цільові формати: База даних, SQL

FieldSize

Максимальне число символів текстових полів або максимальна кількість розрядів для полів (колонок), що містять числа з плаваючою точкою.

Цільові формати: База даних, SQL

FieldScale

Кількість розрядів праворуч від десяткової точки для полів (колонок), що містять числа з плаваючою точкою.

Цільові формати: База даних, SQL

FieldNotNull

Значення 1 значить, що поле не приймає значень NULL.

Цільові формати: База даних, SQL

FieldDefaultValue

Визначає значення по замовчанню для поля.

Цільові формати: База даних, SQL

PrimaryKey

Вказує, чи є поле частиною первинного ключа.

Цільові формати: База даних, SQL

FieldSQLSpecification

Визначає повну специфікацію SQL для поля (без імені поля). Див. приклад нижче.

Цільові формати: База даних, SQL

FieldDescription

Визначає опис поля (наразі лише для баз даних Oracle, SQL Server, PostgreSQL, MySQL).

Цільові формати: База даних, SQL

FileName

Вказує шлях до файлу, в якому повинен бути збережений вміст поля джерела. Якщо цей атрибут не пустий, вміст поля джерела буде збережено до окремого файлу, вказаного цим атрибутом. Цільова тека повинна існувати. Шлях до файлу повинен бути динамічним виразом, що повертає унікальний рядок, інакше файл буде перезаписано для кожного експортованого запису. Для картинок з баз даних розширення файлу визначає цільовий формат картинки, тобто можлива конвертація формату картинки. Див. приклад нижче.

Цільові формати: Всі

Увага! Немає попередження про перезапис для цих файлів.

TotalsExpression

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

Цільові формати: Всі, крім База даних, SQL, DBF

Приклад формату XML

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

<?xml version="1.0" encoding="UTF-8"?>
<!-- Відповідності Джерело-Ціль для агрегації платежів -->
<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>
        <!-- можливі динамічні вирази: -->
        <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>
        <!-- використовуємо унікальне поле PaymentId, що мати унікальний шлях до файлу для кожного запису: -->
        <FileName>vle_expr(extract_file_path(target_file_name(1)) + 'notes' + to_string(dataset_field_val(1, 'PaymentId')) + '.txt')</FileName>
      </Target>
    </FieldMapping>
  </Items>
</FieldMappings>

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

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

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

Приклад текстового формату

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

;Відповідності Джерело-Ціль для експорту платежів
Department=DEPARTMENT
ActualityDate=ACTUALITY_DATE
PaymentCount=PAYMENT_COUNT
PaymentSum=PAYMENT_SUM
;можливі динамічні вирази:
vle_expr(0.1 * dataset_field_val(1, 'PaymentSum'))=COMMISSION_SUM

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