Функтоид BizTalk для получения самой последней даты?

У меня есть схема с дочерними элементами cType, cDate. На карте у меня есть функтоид цикла, выводящий все элементы, где cType = 'registration', все это работает нормально.

Я также хочу добавить к той же карте функтоид, который после фильтрации типов «регистрации» отображает только тот, у которого самая последняя дата.

Я вижу, что есть функтоид Макса, но я предполагаю, что это не для дат.

Может ли кто-нибудь указать мне правильное направление здесь?


person DarkW1nter    schedule 22.02.2016    source источник
comment
Да, функции Max и Cumulative Max предназначены только для числовых значений, а не для дат. Вам, вероятно, придется сделать это с помощью пользовательского XSLT в скриптовом функтоиде. Другой вариант описан здесь social.msdn.microsoft.com/Forums/en-US/   -  person Dijkgraaf    schedule 23.02.2016


Ответы (1)


Да, функции Max и Cumulative Max предназначены только для числовых значений, а не для дат.

У вас есть два варианта. Напишите его как пользовательский XSLT или используйте набор функтоидов, как показано ниже, как Как получить минимальную и максимальную дату на карте

введите здесь описание изображения

  1. Функтоид Date
  2. Функтоид Scripting с кодом, показанным ниже, с входными данными cDate и функтоидом Date.
  3. Функтоид Equal с постоянным значением registration и входным cType
  4. Функтоид Value Mapping с входными данными Equal и функтоидами сценариев.
  5. Функтоид Совокупный максимум с вводом функтоида сопоставления значений
  6. Функтоид Equal с входными значениями совокупного максимума и функтоидов сценариев.
  7. Функтоид And с входными данными для двух одинаковых функтоидов.

Код в скриптовом функтоиде

public int DateDiff(DateTime cDate, DateTime today)
{
    return (cDate - today).Days;
}

По сути, если cType = Registration И дата является максимальной датой регистрации, сопоставьте ее.

Вход

<ns0:Registrations xmlns:ns0="http://Scratch.Registration">
  <Registration>
    <cType>registration</cType>
    <cDate>1999-05-31</cDate>
  </Registration>
  <Registration>
    <cType>registration</cType>
    <cDate>2016-05-31</cDate>
  </Registration>
  <Registration>
    <cType>not</cType>
    <cDate>2016-08-31</cDate>
  </Registration>
</ns0:Registrations>

Выход

<ns0:Registrations xmlns:ns0="http://Scratch.Registration">
    <Registration>
        <cType>registration</cType>
        <cDate>2016-05-31</cDate>
    </Registration>
</ns0:Registrations>
person Dijkgraaf    schedule 24.02.2016