【问题标题】:Debatching Biztalk Flatfile Schema with nested repeating nodes使用嵌套重复节点对 Biztalk 平面文件架构进行分批
【发布时间】:2016-03-23 12:50:48
【问题描述】:

我有一个带有嵌套重复节点的平面文件,需要将其分批处理到单个记录。

平面文件:

ABC DEF  1234.456789012345678
000000123456L01   Supplier 0
001000123456L01   00301Address 1                                 
000001234567L01   Supplier 1
001001234567L01   00301Address 2
001001234567L01   00301Address 3
001001234567L01   00302Address 4

以 000 开头的行是供应商,以 001 开头的行是供应商地址。 字符 4-15 是供应商代码。

目前我只能输出一条记录,每个供应商的所有地址:

<Record>
  <Supplier>
    <Supplier_code>001234567L01</Supplier_code>
    <Supplier_name>Supplier 1</Supplier_name>
  </Supplier>
  <Address>
    <Supplier_address>Address_2</Supplier_address>
    <Supplier_address>Address_3</Supplier_address>
    <Supplier_address>Address_4</Supplier_address>
  </Address>
</Record>

但是,预期的输出是每个供应商地址一条记录:

<Record>
  <Supplier>
    <Supplier_code>001234567L01</Supplier_code>
    <Supplier_name>Supplier 1</Supplier_name>
  </Supplier>
  <Address>
    <Supplier_address>Address_2</Supplier_address>
  </Address>
</Record>

<Record>
  <Supplier>
    <Supplier_code>001234567L01</Supplier_code>
    <Supplier_name>Supplier 1</Supplier_name>
  </Supplier>
  <Address>
    <Supplier_address>Address_3</Supplier_address>
  </Address>
</Record>


<Record>
  <Supplier>
    <Supplier_code>001234567L01</Supplier_code>
    <Supplier_name>Supplier 1</Supplier_name>
  </Supplier>
  <Address>
    <Supplier_address>Address_4</Supplier_address>
  </Address>
</Record>

我需要如何更改我的 FlatFile 架构才能完成上述操作?

【问题讨论】:

    标签: xsd biztalk biztalk-2013


    【解决方案1】:

    您不能使用平面文件反汇编程序一次性完成此操作。没有办法向它表明某些节点需要分组/拆分/等。不过,在地图中执行此操作相当简单。创建一个与您的第一个架构类似的新架构,但有一个额外的根节点以允许 Records 重复,您的地图将如下所示:

    只需确保在Supplier_address 元素和目标Record 节点上正确设置MaxOccurs(可能是unbounded)。将此映射添加到您的接收端口,它将根据需要进入 MessageBox 拆分。请注意,您确实需要一个新模式,因为您不能拥有具有多个根节点的消息。如果您需要进一步分批,可以将其设置为信封模式,让请求响应端口订阅它,并在响应端使用 XML 反汇编程序对其进行分批。您唯一的其他选择是在平面文件 dasm 完成其魔力之后在自定义管道组件中执行此操作。

    【讨论】:

    • 感谢您的回答,我已经怀疑这是不行的。自定义管道组件有点太多了,我想保持开箱即用。所以,它是一张地图。按照您提供的示例,我得到了它的工作。
    猜你喜欢
    • 1970-01-01
    • 2016-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2023-03-22
    相关资源
    最近更新 更多