Шаг 5. Преобразование схемы с неструктурированными файлами в схему вставки для таблицы OrderDetails

Обновлено: Август 2015 г.

В этом разделе содержатся инструкции по созданию Преобразование для сопоставления схемы сообщения неструктурированного файла со схемой операции Insert в таблице OrderDetails в SQL Server. Прежде чем создать Преобразование, рассмотрим две схемы, чтобы понять, что требуется сделать для Преобразование.

Ниже находится моментальный снимок двух схем.

Схемы «Неструктурированный файл» и «Вставка»

В следующей таблице содержатся требования к сопоставлению и Операция сопоставления, с помощью которых выполняется следующее.

 

Что нужно сопоставить? Как выполняется?

Узел OrderId в исходной схеме сопоставляется непосредственно с узлом OrderId в схеме назначения.

В двух схемах непосредственно соединяются два узла.

Поскольку узел OrderDetails в схеме неструктурированного файла является повторяющимся узлом, должны быть добавлены все значения в узле Quantity, и совокупное значение необходимо передать на узел QuantityOrdered в схеме назначения.

Узлы Quantity и QuantityOrdered подключаются с помощью Cumulative Sum Операция сопоставления (Совокупная сумма).

Узел TotalAmount в схеме назначения должен содержать совокупное значение произведения (Unit Price * Quantity).

Инструкции по тому, как задать их, см. в разделе Сопоставление элемента TotalAmount

  1. В Visual Studio щелкните правой кнопкой мыши проект FTP_EAI_Tutorial, выберите пункт Добавить, затем пункт Новый элемент.

  2. В диалоговом окне Добавление нового элемента выберите Сопоставление, укажите имя Map.trfm и нажмите кнопку ОК.

  3. В обозревателе решений дважды щелкните файл Map.trfm, чтобы открыть Преобразование. В области конструирования Преобразование выберите в качестве исходной схемы PO.xsd, а в качестве схемы назначения — FTPEAITutorial_TableOperation.dbo.OrderDetails.xsd.

  4. На панели элементов из категории Операции списка перетащите Операция сопоставления Создание списка в область конструирования Преобразование. Дважды щелкните Операция сопоставления, нажмите знак плюса и введите Amount в качестве имени участника. Укажите для параметра Member Type значение Number и нажмите кнопку ОК.

    Таким образом в памяти будет создана переменная Amount.

  5. В списке Операция сопоставления добавьте операцию ForEach Loop Операция сопоставления (Для каждой петли), а затем подключите ее к элементу OrderDetails в исходной схеме. Это требуется, поскольку элемент OrderDetails является повторяющимся элементом в схеме сообщений.

  6. В операции ForEach Loop Операция сопоставления (Для каждой петли) добавьте Arithmetic Expression Операция сопоставления (Арифметическое выражение). Подключите элементы UnitPrice и Quantity из исходной схемы в Операция сопоставления. Дважды щелкните Операция сопоставления, чтобы открыть диалоговое окно Настройка арифметического выражения, и в поле Введите арифметическое выражение введите UnitPrice * Quantity.

  7. К этому моменту значение UnitPrice * Quantity для каждой итерации элемента OrderDetails подсчитано. После этого необходимо назначить это значение переменной Amount, созданной как часть операции List (Список). Для этого необходимо включить операцию Add Item to List (Добавить элемент в список) в операции ForEach Loop (Для каждой петли) и подключить ее к операции Arithmetic Expression (Арифметическое выражение). Это назначает значение из операции Arithmetic Expression Операция сопоставления (Арифметическое выражение) (Unit Price * Quantity) переменной Amount, созданной как часть операции List (Список).

  8. В операции List (Список) может быть несколько определенных переменных. Даже если в обучении определена только одна переменная (Amount), чтобы выбрать эту переменную, необходимо настроить Преобразование. Для этого используется операция Select Entries Операция сопоставления (Выбрать сущности).

    Перетащите операцию Select Entries Операция сопоставления (Выбрать сущности) в рабочую область конструирования и подключите ее к операции Create List (Создать список). Дважды щелкните Select Entries Операция сопоставления (Выбрать сущности), чтобы открыть диалоговое окно Настройка выбранных сущностей и в поле Выбор участников установите флажок напротив переменной Amount.

  9. После этого необходимо выполнить совокупную сумму значения в переменной Amount. Для этого следует добавить значение Cumulative Sum Операция сопоставления (Совокупная сумма) и подключить его к Select Entries Операция сопоставления (Выбранные сущности). Дважды щелкните Cumulative Sum Операция сопоставления (Совокупная сумма) и введите в текстовом поле следующее выражение:

    item.Amount
    

    После этого необходимо подключить Cumulative Sum Операция сопоставления (Совокупная сумму) к элементу TotalAmount в схеме назначения. Преобразование должно выглядеть следующим образом (только для сопоставления элемента TotalAmount в схеме назначения):

    Операция сопоставления для вычисления общего количества

    noteПримечание
    Сопоставление, доступное как часть выборки FTP_EAI_Tutorial, см. на сайте http://go.microsoft.com/fwlink/?LinkId=247973.

См. также

Показ: