Mulesoft X12 EDI 837:交换控制编号

问题描述

使用 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,则改为允许处理 收到交换以继续并将其留给应用程序流 跟踪数字并适当处理。