2016-05-05 2 views
-1

У меня есть XML-схема, где есть повторяющийся внутренний узел. Существует вероятность того, что счет Внутреннего узла может быть равен 0. Если значение внутреннего узла не передается в файле XML, оно бросает исключение отображения. Мне нужно подсчет внутреннего узла и отобразить его, только если счетчик больше 0. Как это можно сделать в Biztalk Mapper?Как получить счет повторяющегося узла в Biztalk Mapping?

Вот пример XML-файл:

<ns0:OrderDetails xmlns:ns0="http://OrderDetails.Input"> 
    <OrderNo>10</OrderNo> 
    <OrderName>OrderName_0</OrderName> 
    <Description>Description_0</Description> 
    <TotalAmount>10</TotalAmount> 
    <OrderItemDetails><!-- Repeating Node --> 
    <ItemID>ItemID_0</ItemID> 
    <ItemName>ItemName_0</ItemName> 
    <ItemDescription>ItemDescription_0</ItemDescription> 
    <Quantity>10</Quantity> 
    <UnitPrice>10</UnitPrice> 
    <TotalItemPrice>10</TotalItemPrice> 
    </OrderItemDetails> 
    <OrderItemDetails> 
    <ItemID>ItemID_0</ItemID> 
    <ItemName>ItemName_0</ItemName> 
    <ItemDescription>ItemDescription_0</ItemDescription> 
    <Quantity>10</Quantity> 
    <UnitPrice>10</UnitPrice> 
    <TotalItemPrice>10</TotalItemPrice> 
    </OrderItemDetails> 
    <OrderItemDetails> 
    <ItemID>ItemID_0</ItemID> 
    <ItemName>ItemName_0</ItemName> 
    <ItemDescription>ItemDescription_0</ItemDescription> 
    <Quantity>10</Quantity> 
    <UnitPrice>10</UnitPrice> 
    <TotalItemPrice>10</TotalItemPrice> 
    </OrderItemDetails> 
</ns0:OrderDetails> 
+1

Может быть может дать нам больше информации добавив карту, которую вы имеете до сих пор, и целевую схему к вашим требованиям Тион? – Gruff

+1

То, что вы описываете, не должно происходить, поэтому происходит что-то еще. Вы должны отправить точное сообщение об ошибке для нас, чтобы помочь вам. –

+0

Как уже говорилось, без целевой схемы и вашей карты мы не можем воспроизвести проблему. Также нам нужно исключение, которое вы получаете. – Dijkgraaf

ответ

0

Чтобы получить количество повторяющегося узла, используйте Record Count Functoid под Advanced Functoids.

Ниже карты работают как с вашим образцом, так и с сообщением без OrderItemDetails.

Примечание: Я поставил Мин Происходит от OrderItemDetails до 0

enter image description here

сообщения без OrderItemDetails

<ns0:OrderDetails xmlns:ns0="http://OrderDetails.Input"> 
    <OrderNo>10</OrderNo> 
    <OrderName>OrderName_0</OrderName> 
    <Description>Description_0</Description> 
    <TotalAmount>10</TotalAmount> 
</ns0:OrderDetails> 

Выход:

<ns0:OrderDetails xmlns:ns0="http://OrderDetails.Input"> 
    <OrderNo>10</OrderNo> 
    <OrderName>OrderName_0</OrderName> 
    <Description>Description_0</Description> 
    <TotalAmount>10</TotalAmount> 
    <ns0:Count>0</ns0:Count> 
</ns0:OrderDetails> 
Смежные вопросы