You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Boomi中映射EDI文件循环项并解决重复数据问题

解决Boomi EDI到Flat File映射中非循环数据重复问题

问题场景

你使用Boomi的EDI Profile解析以下ORDERS报文:

UNH+19472232+ORDERS:D:96A:UN:EAN008'
BGM+220::9+19472232'
DTM+137:20170823:102'
DTM+2:20171031:102'
NAD+BY+8714252029536::9'
NAD+SU+4046568000003::9'
NAD+DP+8714252029536::9'
NAD+IV+8714252029536::9'
NAD+UC+8714252029536::9'
LIN+1++8718885840155:EN'
PIA+5+69706-333-000:SA'
QTY+21:3:PCE'
LIN+2++9000068400333:EN'
PIA+5+68400-333-000:SA'
QTY+21:3:PCE'

映射到Flat File后,LIN/PIA/QTY循环项正常,但UNH/BGM/DTM/NAD等头部数据随每次LIN循环重复输出:

19472232 ORDERS D 96A UN EAN008
220    19472232
137 20170823 102
2 20171031 102
BY87142520295369
SU40465680000039
DP87142520295369
IV87142520295369
UC87142520295369
18718885840155EN
569706-333-000SA
213PCE
19472232 ORDERS D 96A UN EAN008
220    19472232
137 20170823 102
2 20171031 102
BY87142520295369
SU40465680000039
DP87142520295369
IV87142520295369
UC87142520295369
29000068400333EN
568400-333-000SA
213PCE

核心原因

Boomi的映射会跟随源数据的循环节点迭代输出。如果将非循环的头部字段和循环的LIN节点映射到Flat File的同一层级,每处理一个LIN项,头部字段就会被重复输出一次。

解决方法

1. 重构Flat File Profile结构

  • 创建两级结构:头部段(包含UNH/BGM/DTM/NAD对应输出行)和循环项段(包含LIN/PIA/QTY对应输出行)。
  • 设置头部段的最大出现次数为1,循环项段的最大出现次数为无限制(或设为9999等足够大的数值)。

2. 调整映射逻辑

  • 将EDI Profile中的UNH/BGM/DTM/NAD字段映射到Flat File的头部段对应的字段/行,确保这些字段仅关联到非循环的头部节点。
  • 将LIN/PIA/QTY字段映射到Flat File的循环项段内部,并且以EDI Profile中的LIN循环节点作为映射的迭代源(即循环项的映射根节点为LIN)。

3. 用缓存确保头部只输出一次(备选方案)

如果无法调整Profile结构,可通过Boomi的流程组件实现:

  • 使用Map Shape提取头部数据,存入Document Cache Shape(设置缓存键为唯一标识,比如UNH的报文编号)。
  • 使用另一个Map Shape处理循环数据,在输出前从缓存中读取头部数据,仅输出一次头部,再遍历输出所有循环项。

4. 验证EDI Profile结构

确认EDI Profile中UNH/BGM/DTM/NAD节点的最大出现次数设置为1,LIN节点的最大出现次数设置为>1,避免源结构定义错误导致的迭代问题。

验证步骤

  1. 在Boomi中预览EDI解析结果,确认头部数据仅出现1次,LIN循环为多实例。
  2. 测试映射,检查Flat File输出是否头部仅输出一次,循环项正常迭代。

内容的提问来源于stack exchange,提问作者Wolf Alexander

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 23:34:59