【问题标题】:BizTalk XML paired ITEM to FLATTEN outputBizTalk XML 将 ITEM 配对到 FLATTEN 输出
【发布时间】:2015-02-11 13:40:46
【问题描述】:

请帮助解决这张地图。这里我有带有 HDR、DTL、FTR 的 XML; DTL 具有成对的 ITEM-BANK、ITEM-BANK、ITEM-BANK 详细信息。我需要将其展平以在一条记录中输出。

业务规则: 1) 如果 ID 元素为空,则为 COMMENT,并将在 COMMENT 输出 XML 中聚合“Party 的地址 + Party 的邮政编码 + 派对的 Postbus”。 2) 如果ID为BANK则有银行明细,TAG元素ID有ID值参考上面的ITEM。

XSD POCProducts : http://pastebin.com/XNaq40vZ

POC 地图:

预期/希望出局:

<ns0:PRODUCTS xmlns:ns0="http://TEST.Schema.FlatFile.POCProducts">
  <PRODUCT ProdName="Wonder Power" ProdDesc="Wonder power  DESC">
    <ITEMS>
      <ITEMS>
        <ID>1010</ID>
        <CODE>KG</CODE>
        <UNIT>C0001</UNIT>
        <DESC>Wonder Power 10*10ml</DESC>
        <BankCode>A1</BankCode>
        <BankDesc>Bank XXXX Code</BankDesc>
      </ITEMS>
      <ITEMS>
        <ID>2020</ID>
        <CODE>KG</CODE>
        <UNIT>C0001</UNIT>
        <DESC>Wonder Supper 50*50ml</DESC>
        <BankCode>A2</BankCode>
        <BankDesc>Bank yyyyy Code</BankDesc>
      </ITEMS>
    </ITEMS>
    <VAT>5390</VAT>
    <AMT>880099</AMT>
    <Comment>Address of Party + Zipcode of Party + Postbus of Party</Comment>
  </PRODUCT>
</ns0:PRODUCTS>

当前输出 XML:

<ns0:PRODUCTS xmlns:ns0="http://TEST.FlatFile.POCProducts">
  <PRODUCT ProdName="Wonder Power" ProdDesc="Wonder power  DESC">
    <ITEMS>
      <ITEMS>
        <ID>1010</ID>
        <CODE>KG</CODE>
        <UNIT>C0001</UNIT>
        <DESC>Wonder Power 10*10ml</DESC>
      </ITEMS>
      <ITEMS>
        <ID>2020</ID>
        <CODE>KG</CODE>
        <UNIT>C0001</UNIT>
        <DESC>Wonder Supper 50*50ml</DESC>
      </ITEMS>
    </ITEMS>
    <VAT>5390</VAT>
    <AMT>880099</AMT>
    <Comments>Address of Party</Comments>
    <Comments>Zipcode of Party</Comments>
    <Comments>Postbus of Party</Comments>
  </PRODUCT>
</ns0:PRODUCTS>

输入 XML:

<POC xmlns="http://TEST.Schema.FlatFile.POC">
  <HDR xmlns="">
    <ProdName>Wonder Power</ProdName>
    <ProdDesc>Wonder power DESC</ProdDesc>
    <Filler></Filler>
  </HDR>
  <DTL xmlns="">
    <ID>1010</ID>
    <CODE>KG</CODE>
    <TAG>C0001</TAG>
    <DESC>Wonder Power 10*10ml</DESC>
    <FILLER></FILLER>
  </DTL>
  <DTL xmlns="">
    <ID>BANK</ID>
    <CODE>A1</CODE>
    <TAG>1010</TAG>
    <DESC>Bank XXXX Code</DESC>
    <FILLER></FILLER>
  </DTL>
  <DTL xmlns="">
    <ID>2020</ID>
    <CODE>KG</CODE>
    <TAG>C0001</TAG>
    <DESC>Wonder Supper 50*50ml</DESC>
    <FILLER></FILLER>
  </DTL>
  <DTL xmlns="">
    <ID>BANK</ID>
    <CODE>A2</CODE>
    <TAG>2020</TAG>
    <DESC>Bank yyyyy Code</DESC>
    <FILLER></FILLER>
  </DTL>
  <DTL xmlns="">
    <ID></ID>
    <CODE></CODE>
    <TAG>Address of Party</TAG>
    <DESC></DESC>
    <FILLER></FILLER>
  </DTL>
  <DTL xmlns="">
    <ID></ID>
    <CODE></CODE>
    <TAG></TAG>
    <DESC>Zipcode of Party</DESC>
    <FILLER></FILLER>
  </DTL>
  <DTL xmlns="">
    <ID></ID>
    <CODE></CODE>
    <TAG></TAG>
    <DESC>Postbus of Party</DESC>
    <FILLER></FILLER>
  </DTL>
  <FTR xmlns="">
    <VAT>5390</VAT>
    <TOTAL>880099</TOTAL>
    <FILLER></FILLER>
  </FTR>
</POC>

【问题讨论】:

  • POCProduct.xsd 中的 Comment 节点在哪里??
  • 对不起,我错误地上传了MAP的旧图
  • “Party的地址+Party的Zipcode+Party的Postbus”只是需要硬编码还是来自输入?
  • 它不是硬编码的...它来自输入文件它可以是输入文件中的任何值...
  • XSD POCProducts : pastebin.com/XNaq40vZ

标签: xml xsd biztalk biztalk-mapper


【解决方案1】:

Comment 节点输出没那么难:

您可以简单地将 ID 链接到 Logic Equal 以测试它是否为空,然后将结果连接到值映射,取决于这些 cmets 来自您的 Src、TAG 或 DESC 或两者的位置,将该节点链接到值映射也。将值映射输出连接到字符串 concat func 就足够了。

【讨论】:

  • 嗨 Zee,它不起作用,因为它在以下输出中给出“聚会地址聚会的邮政编码聚会的邮政巴士评论>”我需要一个评论元素,上面给出的所有数据连接在一起..
  • SAM:我添加了一个屏幕截图。你的映射是这样的吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-12
  • 1970-01-01
  • 2017-09-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多