首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌套重复节点的Biztalk Flatfile模式的划分

嵌套重复节点的Biztalk Flatfile模式的划分
EN

Stack Overflow用户
提问于 2016-03-23 12:50:48
回答 1查看 374关注 0票数 4

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

平版文件:

代码语言:javascript
复制
ABC DEF  1234.456789012345678
000000123456L01   Supplier 0
001000123456L01   00301Address 1                                 
000001234567L01   Supplier 1
001001234567L01   00301Address 2
001001234567L01   00301Address 3
001001234567L01   00302Address 4

从1000开始的线路是供应商,从001开始是供应商地址。字符4-15是供应商代码.

目前,我无法超越输出一个记录与每个供应商的所有地址:

代码语言:javascript
复制
<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>

然而,预期的产出是每个供应商地址一个记录:

代码语言:javascript
复制
<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模式来完成上面的工作呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-23 14:22:28

使用平面文件反汇编程序不能在一次传递中做到这一点。没有办法向它表明某些节点需要分组/拆分/等等。不过,在地图中这样做是相当简单的。创建一个结构类似于第一个的新架构,但是有一个额外的根节点来允许Record重复,您的映射将如下所示:

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36178715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档