Выражения в службах BizTalk — использование и примеры

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

Список Операция сопоставления выражений в Службы BizTalk Microsoft Azure.

 

Операция сопоставления Описание Параметры Вывод

Арифметическое выражение

Оценивает математическое выражение с использованием входных параметров и постоянных значений. Арифметические выражения состоят из следующих операторов.

  • Сложение

  • Вычитание

  • Умножение

  • Деление

  • Модуль

  • Абсолютное значение

  • Maximum

  • Minimum

  • Округление

  • Квадратный корень

Может иметь от 0 до 100 дополнительных входных параметров.

 

Ввод

Числовое значение.

Арифметическое выражение

Математическое выражение, заданное с использованием входных параметров и постоянных значений.

noteПримечание
Максимальная длина выражения составляет 1024 знака.

Числовое значение, являющееся результатом вычисления.

См. раздел Примеры арифметических выражений: Службы BizTalk.

логических выражений;

Оценивает условие и выводит логическое значение оценки. Логические выражения состоят из следующих операторов.

  • Операторы сравнения:

    >

    <

    >=

    <=

    ==

    !=

  • Логическое отрицание (!)

  • Условный оператор AND (&&)

    Условный оператор OR (||)

Может иметь от 0 до 100 дополнительных входных параметров.

 

Ввод

Может быть числовым, строковым или логическим значением.

логических выражений;

Выражение, заданное с использованием входных параметров и постоянных значений, результатом которого является логическое значение.

noteПримечание
Максимальная длина выражения составляет 1024 знака.

Если логическое выражение оценивается как истинное, возвращается значение True. В противном случае возвращается значение False.

См. раздел Примеры логических выражений: Службы BizTalk.

выражений If-Then-Else.

Оценивает оператор, результатом которого может быть одно из двух возможных значений.

Может иметь от 0 до 100 дополнительных входных параметров.

 

Ввод

Может быть числовым, строковым или логическим значением.

Условие

Выражение, заданное с использованием входных параметров и постоянных значений.

Then значение

Если оператор или выражение оценивается как True, используется это значение.

Else значение

Если оператор или выражение оценивается как False, используется это значение.

noteПримечание
Максимальная длина выражения составляет 1024 знака.

Результат зависит от оценки True или False условного выражения.

Если оценка True, то используется Then значение. Если оценка False, то используется Else значение.

См. раздел Пример выражения If-Then-Else. Службы BizTalk.

Условное назначение

Возвращает значение одного из двух входных параметров. Если первое входное значение оценивается как True, то узел в выходном документе создается со вторым входным значением. Если первое входное значение оценивается как False, то в выходном документе соответствующий узел не создается.

Требуется ровно два следующих входных параметра.

 

Условие

Выражение, результатом оценки которого является логическое значение. Может быть:

  • связью из узла дерева;

  • связь из Операция сопоставления;

Assign Value (Назначаемое значение)

Значение, которое назначается целевому узлу, если условие оценивается как True.

noteПримечание
Этот Операция сопоставления может быть связан только с целевым узлом дерева.

Если условие имеет значение "true", то создается узел с входным значением Assign Value (Назначаемое значение).

См. раздел Пример условного назначения: Службы BizTalk.

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

 

Функция Выражение Описание

Exists

Exists(Имя_исходного_узла)

Требуется один входной параметр, являющийся именем элемента в исходном документе. Если элемент существует, возвращается значение True. В противном случае возвращается значение False.

IsDate

IsDate(Ввод1)

Требуется один входной параметр с типом "string". С помощью метода DateTime.TryParse() входной параметр анализируется на соответствие объекту DateTime. Если этот параметр проанализирован успешно, возвращается значение True. В противном случае возвращается значение False.

IsEmpty

IsEmpty(Ввод1)

Требуется один входной параметр с типом "string". Если этот параметр пустой или имеет значение NULL, возвращается значение True. В противном случае возвращается значение False. Если этот параметр не является строковым объектом, возвращается значение True.

IsNil

IsNil(Имя_исходного_узла)

Требуется один аргумент, являющийся именем элемента в исходном документе. Если элемент существует, и xsi:nil имеет значение True, то возвращается значение True. В противном случае возвращается значение False.

IsNumber

IsNumber(Ввод1)

Требуется один входной параметр с типом "string". С помощью метода DateTime.TryParse() выполняется анализ, является ли этот параметр числом с двойной точностью. Если этот параметр проанализирован успешно, возвращается значение True. В противном случае возвращается значение False.

noteПримечание
Запятая "," поддерживается как разделитель разрядов, а точка "." поддерживается как десятичный разделитель.

ImportantВажно!
Все Операция сопоставления и функции могут использоваться с другими Операция сопоставления и функциями, за исключением Exists и IsNil. Exists и IsNil указывают на один узел в исходном документе.

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

  • логических выражений;

  • Арифметическое выражение

  • выражений If-Then-Else.

Этапы.

  1. Откройте Проект служб BizTalk или проект артефактов службы BizTalk в Visual Studio.

  2. Дважды щелкните компонент Преобразование (TRFM-файл), чтобы открыть конструктор Преобразование.

  3. В панели инструментов Преобразование щелкните Параметры.

Вкладка Обработка ошибок

На вкладке Обработка ошибок следующие Операция сопоставления выражений им��ют два варианта поведения.

  • Логическое выражение.

    • Ошибка сопоставления. Все Преобразование отменяется. Поскольку Преобразование выполняются в конвейере, ошибка возникает в конвейере, и затем эта ошибка отправляется обратно клиенту, отправившему сообщение.

    • Результат — значение по умолчанию False. Если происходит сбой Операция сопоставления, в качестве результата возвращается значение False.

  • Арифметическое выражение.

    • Ошибка сопоставления. Все Преобразование отменяется. Поскольку Преобразование выполняются в конвейере, ошибка возникает в конвейере, и затем эта ошибка отправляется клиенту, отправившему сообщение.

    • Результат — значение по умолчанию NaN. Если происходит сбой Операция сопоставления, в качестве результата возвращается значение NaN (Not a Number — не число).

    • Результат — значение по умолчанию 0. Если происходит сбой Операция сопоставления, в качестве результата возвращается ноль (0).

  • Выражение If-Then-Else.

    • Ошибка сопоставления. Все Преобразование отменяется. Поскольку Преобразование выполняются в конвейере, ошибка возникает в конвейере, и затем эта ошибка отправляется обратно клиенту, отправившему сообщение.

    • Output Null/Zero/False based on type of output (Результат Null/Zero/False на основе типа результата). Если происходит сбой Операция сопоставления, то в качестве результата возвращается значение Null, Zero или False на основе типа результата.

Вкладка Обработка пустых данных

На вкладке Обработка пустых данных имеется три параметра.

  • Consider empty nodes in cumulative operations (Учитывать пустые узлы в кумулятивных операциях). По умолчанию этот флажок не установлен. Если этот флажок не установлен, то пустые узлы не включаются в итерацию. Если этот флажок установлен, то в итерацию включаются все узлы, в том числе пустые.

    ПРИМЕР. Имеется документ с 10 узлами <записей>. Три из этих узлов <записей> пустые. Если флажок Consider empty nodes in iterations (Учитывать пустые узлы в итерациях) не установлен, то Операция сопоставления возвращает значение 7. Если флажок Consider empty nodes in iterations (Учитывать пустые узлы в итерациях) установлен, то Операция сопоставления возвращает значение 10.

  • Consider empty nodes in iterations (Учитывать пустые узлы в итерациях). По умолчанию этот флажок не установлен. Если этот флажок не установлен, то пустые узлы не включаются в итерацию. Если этот флажок установлен, то в итерацию включаются все узлы, в том числе пустые.

    ПРИМЕР. Имеется документ с 10 узлами <записей>. Три из этих узлов <записей> пустые. Если флажок Consider empty nodes in iterations (Учитывать пустые узлы в итерациях) не установлен, то Операция сопоставления выполняет итерацию семь раз, для непустых узлов. В результате в целевом объекте создается семь узлов <записей>. Если флажок Consider empty nodes in iterations (Учитывать пустые узлы в итерациях) установлен, то Операция сопоставления выполняет итерацию 10 раз для всех узлов, включая пустые. В результате в целевом объекте создается 10 узлов <записей>.

  • Target Node Generation (Создание целевого узла). Если задано учитывать пустые узлы, то можно указать, следует ли создавать пустой узел в результате. В частности:

    • Do not generate empty nodes (Не создавать пустые узлы) — значение по умолчанию.

    • Generate empty nodes (Создавать пустые узлы).

    ПРИМЕР. Имеется документ с 10 узлами <записей>. Три из этих узлов <записей> пустые. Если флажок Consider empty nodes in cumulative operations (Учитывать пустые узлы в кумулятивных операциях) или Consider empty nodes in iterations (Учитывать пустые узлы в итерациях) не установлен, то Операция сопоставления выполняет итерацию семь раз, для непустых узлов. В результате в целевом объекте создается семь узлов <записей>. Если флажок Consider empty nodes in iterations (Учитывать пустые узлы в итерациях) установлен, то Операция сопоставления выполняет итерацию 10 раз для всех узлов, включая пустые. В результате в целевом объекте создается 10 узлов <записей>.

См. также

Показ: