gpt4 book ai didi

xsd - 使用嵌套重复节点对 Biztalk 平面文件架构进行分批

转载 作者:行者123 更新时间:2023-12-03 18:26:06 26 4
gpt4 key购买 nike

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

平面文件:

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 架构才能完成上述操作?

最佳答案

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

looping split map sample

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

关于xsd - 使用嵌套重复节点对 Biztalk 平面文件架构进行分批,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36178715/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com