Как создать сопоставление, когда на входе у нас будет две схемы и на выходе будет одна схема и какое-то условие для отображения?Biztalk две схемы и функционал петли с условием
Ввод представляет собой встроенную схему и содержит схему счетов-фактур и клиентов. Оба они имеют номер CustomerNumber и DepartmentCode существуют только в схеме Invoices.
[СОСТОЯНИЕ]
Мэпп только этот DepartmentCode если CUSTOMERNUMBER такой же как на счете-фактуре и данных клиентов (линия).
If Invoice.CustomerNumber == Customer.CustomerNumber then map Invoice.DepartmentCode.
Я пытался использовать loop, равное и значение отображения functoid, но без ожидаемых результатов, второй думаю, что я пытался использовать «Инлайн шаблон XSLT вызова», но я получил сообщение об ошибке на обработку.
[Код XSLT-functoid]
<xsl:template name="GetDepartmenCodeByCustomerNumber">
<xsl:param name="CustomerNumber" />
<xsl:if test="$CustomerNumber != ''">
<xsl:element name="DepartmentCode">
<xsl:value-of select="//s1:Customer[s1:CustomerNumber=$CustomerNumber]/s1:DepartmentCode/text()" />
</xsl:element>
</xsl:if>
</xsl:template>
Пример:
Входной
<ROOT>
<Invoices>
<Invoice>
<CustomerNumber>123</CustomerNumber>
<DepartmentCode>321</DepartmentCode>
</Invoice>
</Invoices>
<Customers>
<Customer>
<CustomerNumber>123</CustomerNumber>
</Customer>
<Customer>
<CustomerNumber>222</CustomerNumber>
</Customer>
</Customers>
</ROOT>
Ожидать
<Document>
<CustomerNumber>123</CustomerNumber>
<DepartmentCode>321</DepartmentCode>
</Document>
Например, мне нужно равное CustomerNumber из сегмента Invoice и Customer.
Проверьте параметры (ввод/вывод) для этих функтоидов. [Concatenate] (http://imgur.com/1qVM3MD), [Кумулятивный] (http://imgur.com/3NoxIAc). Для этого [TLoop] (http://imgur.com/MUUQ1dP) эти параметры правильные? и во-вторых, мне не нужно создавать таблицы на нем? Я думаю, мне нужно добавить «0» во второй параметр для [Большого] (http://imgur.com/ypHxweb), я прав? [TExtractor] (http://imgur.com/8LD1JXL) зависит от функции loop loop, что мне нужно для решения проблемы с предупреждениями (для всего этого типа)? – Nerus
В TLoop вам нужно использовать в качестве второго параметра количество столбцов, которые вы хотите, поэтому добавьте «3» в качестве второго параметра. Как только это будет сделано, вы можете настроить столбцы в таблице Looping Grid. В Greater yes, вам нужно добавить «0» для сравнения.В TExtractors вам нужно добавить в качестве вторых параметров номер столбца. У вас есть 3 столбца в таблице, поэтому используйте «1», «, 2» и «3» для них согласно столбцу, который вы получаете. –
Отлично работает, THX !!! – Nerus