(Пожалуйста, проверьте мое всплывающее примечание внизу этого вопроса, прежде чем отмечать меня. Спасибо!)
У меня есть проблема в BizTalk, когда я могу достичь желаемого отображения только за несколько шагов и хотел бы получить результат, используя одну карту.
Пример моего входного XML выглядит следующим образом:
<Books>
<Book><Title>The BFG</Title><ISBN>0-224-02040-4</ISBN></Book>
<Book><Title>The Hobbit</Title><ISBN>978-0261102217</ISBN></Book>
<Book><Title>BizTalk Server 2010 Unleashed</Title><ISBN>978-0-672-33118-7</ISBN></Book>
</Books>
<Revisions>
<Revision><ISBN>0-224-02040-4</ISBN><Version>1</Version><Published>1970-08-22T00:00:00</Published></Revision>
<Revision><ISBN>0-224-02040-4</ISBN><Version>2</Version><Published>1975-09-25T00:00:00</Published></Revision>
<Revision><ISBN>0-224-02040-4</ISBN><Version>3</Version><Published>1990-09-16T00:00:00</Published></Revision>
<Revision><ISBN>978-0-672-33118-7</ISBN><Version>1</Version><Published>2010-03-28T00:00:00</Published></Revision>
<Revision><ISBN>978-0261102217</ISBN><Version>1</Version><Published>1960-09-25T00:00:00</Published></Revision>
<Revision><ISBN>978-0-672-33118-7</ISBN><Version>2</Version><Published>2011-09-16T00:00:00</Published></Revision>
<Revisions>
Мой желаемый выходной XML для этого примера: -
<HistoricBooks>
<FirstIssue><ISBN>0-224-02040-4</ISBN><Title>The BFG</Title><FirstPublished>1970-08-22T00:00:00</FirstPublished><FirstIssue>
<FirstIssue><ISBN>978-0261102217</ISBN><Title>The Hobbit</Title><FirstPublished>1960-09-25T00:00:00</FirstPublished><FirstIssue>
<FirstIssue><ISBN>978-0-672-33118-7</ISBN><Title>BizTalk Server 2010 Unleashed</Title><FirstPublished>2010-03-28T00:00:00</FirstPublished><FirstIssue>
</HistoricBooks>
Первая проблема, с которой я столкнулся, заключается в том, что функтоиды BizTalk Minimum и CumulativeMinimum требуют ввода числовых значений и не работают с датами. Поэтому первая часть моего вопроса...
Как лучше всего выполнить минимальные и максимальные функции для элементов даты на карте BizTalk?
Вторая проблема, с которой я столкнулся, связана с тем, как кумулятивные функтоиды понимают масштаб. Параметр области действия указывает глубину накопления (весь документ, родитель, дедушка и бабушка и т. д.), но в этом случае нецелесообразно просто брать минимум по всем дочерним элементам <revisions>
. Мне нужно быть более избирательным. Поэтому вторая часть моего вопроса...
Какой функтоид следует использовать для выборочного накопления дат в моих иерархиях XML и как этого добиться?
Я знаю, что это двойной вопрос. Я также знаю, что есть несколько способов получить ответы, но многие из них приведут к сложному, неопрятному и плохо работающему коду. Я хочу избежать этого. Я также знаю, что этого можно легко добиться, изменив исходную или конечную схемы или не используя BizTalk. Эти маршруты для меня не открыты. Поэтому этот вопрос требует примеров, показывающих простое и элегантное решение проблемы с помощью BizTalk. Если вы не желаете давать ответ, пожалуйста, не наказывайте человека, который желает улучшить свои знания и навыки.