问题描述
使用 X12 连接器(使用默认配置)读取 EDI 837 文件时出现以下错误。
架构:005010 版本标识符后缀:X222A1
Errors=[X12Error(1,true,INTERCHANGE_NOTE,025,Duplicate Interchange Control Number,INTERCHANGE_LEVEL,261478,-1,Duplicate interchange control number 261478)]
运行时:4.3
下面的配置xml
<file:config name="File_Config" doc:name="File Config" doc:id="8542781c-f67d-4d79-9648-b2d15ab37b0c" />
<x12:config name="X12_EDI_Config" doc:name="X12 EDI Config" doc:id="bbe0ec79-d418-41d0-a8b2-4c154b0428b2" versionIdentifierSuffix="X222A1">
<x12:schemas >
<x12:schema value="/x12/005010/837.esl" />
</x12:schemas>
</x12:config>
<flow name="ediFlow" doc:id="70290c60-1e47-43e1-b759-144cbbf24716" >
<file:listener doc:name="On New or Updated File" doc:id="777e4c99-b633-426b-b94e-1e7f4d7190b2" autoDelete="true" config-ref="File_Config" directory="C:\test">
<scheduling-strategy >
<fixed-frequency />
</scheduling-strategy>
</file:listener>
<x12:read doc:name="Read" doc:id="9deb24c2-97c0-438e-a8f7-f88416164b67" config-ref="X12_EDI_Config" target="edidata"/>
<logger level="INFO" doc:name="Logger" doc:id="6969a6c5-9918-42f2-96b7-14e74684c422" message="EDI 837 file: #[vars.edidata]"/>
</flow>
</mule>
解决方法
数据似乎包含重复的交换控制编号。默认情况下,如果发生这种情况,连接器将引发错误。如果您想忽略在连接器“Require unique interchanges”的配置中设置为 false 的重复项。此配置的文档说:
需要唯一的交换控制号 (ISA13) 才能收到 互换。正常行为是记录交换号码 先前处理并拒绝任何重复的交换号码 相同的合作伙伴(由交换发送方和接收方确定 鉴别)。如果为 false,则改为允许处理 收到交换以继续并将其留给应用程序流 跟踪数字并适当处理。