【问题标题】:BizTalk xml file to a flatfile formatBizTalk xml 文件转换为平面文件格式
【发布时间】:2011-03-23 08:02:15
【问题描述】:

BizTalk 相对较新;我可以使用经验丰富的帮助。

我不得不尝试将源 XML 文档映射到平面文件 TAB 分隔的目标。我的源文档有一些嵌套节点,我需要遍历它们并将它们每个转换为平面文件文档上的一行;经典的销售订单抬头/明细关系。结果需要我为子节点中的每个嵌套元素重复标题信息。

我尝试过使用循环 functoid 的解决方案,但我不确定如何正确表示目标列表。我错过了显而易见的事情吗?我应该将“循环”输出参数链接到哪个目标行元素?

为了演示,这里是我正在使用的架构示例。

SOURCE SCHEMA(不能修改源结构)

  • 架构\
  • 销售订单\
  • 销售订单\订单\
  • 订单\实体
  • 订单\客户名称
  • 订单\地址
  • 订单\详情\
  • 订单\详细信息\msrp
  • 订单\详情\型号
  • 订单\详情\sku

目标架构

  • 架构\
  • \root\
  • 固体
  • 客户名
  • 地址
  • 等等……

平面文件输出(每个细节项一行)

  • soid 客户名称地址 msrp modelno sku
  • soid 客户名称地址 msrp modelno sku

任何人都可以为我指明正确的方向吗?

【问题讨论】:

    标签: biztalk biztalk-mapper


    【解决方案1】:

    您需要将 Looping Functoid 从您想要生成新记录的源节点链接到(通常)目标的外部记录节点(通常是 Root 的第一个子节点,但并非总是如此)。这基本上会告诉地图“每次你在我的源中看到一个新的blah,就在我的目的地创建一个全新的记录。”

    【讨论】:

    • 您好,感谢您的回答。我试图将源“salesorders\orders”节点链接到我的“循环”functoid,然后将 functoid 链接到记录的第一个子节点。我仍然无法每 x 个子元素重现 x 行数。所以基本上是指我的示例模式;我将订单/soid 拖放到我的 functoid,然后将连接从 functoid 拖放到节点 \root\soid。没有运气:(
    • 您的目标架构是否设置为循环结构?请记住,在模式中,根(或多或少)指的是文件。因此,根据我所看到的,您在那里有一个单一的记录模式。我期望的是一个名为“Order”的 Root 子记录,它将具有 SOID、custName 等的子元素/属性。“Order”将设置为 Min Occurs = 1,Max Occurs = Unbounded。然后,您将循环 functoid 连接到“订单”节点。
    猜你喜欢
    • 1970-01-01
    • 2011-05-27
    • 1970-01-01
    • 2018-08-08
    • 2012-06-23
    • 1970-01-01
    • 1970-01-01
    • 2020-04-18
    • 2012-12-20
    相关资源
    最近更新 更多