【问题标题】:From PHP to XML and then X12 EDI conversion从 PHP 到 XML 再到 X12 EDI 转换
【发布时间】:2013-10-15 03:45:42
【问题描述】:

我已经编写了 PHP 代码来计算 Estes Carrier 的运费,现在我需要制作 EDI 文件以发送给运营商公司。我没有 EDI 代码知识。我研究了大约 204 辆汽车承运人装载招标,但没有帮助我更多。我需要先将我的 PHP 代码转换为 XML,然后再转换为 x12 EDI 格式吗?怎么样?

【问题讨论】:

    标签: php edi


    【解决方案1】:

    要将数据作为 EDI 输出,您需要对数据进行格式化,以便 具有以下 EDI 结构:

    ISA - 交换标头 - 包含一般发送者和接收者信息
    GS - 功能组标题 - 文档类型信息
    ST - 事务集标头 - 指示事务集和事务标识符的开始
    ...
    ... 根据您的交易集,ST 和 SE 之间会有不同的细分。
    ...
    SE - 交易集预告片 - 表示交易结束
    GE - 功能组预告片
    IEA - 换乘拖车

    段包含多个元素,元素包含数据片段。

    这是一个 EDI 214 示例,其中段由 ~ 分隔,元素由 * 分隔:

     ISA*00* *00* *08*9251750000 *08*1234567890 *030627*1304*U*00401*000001403*0*P*>~
     GS*QM*8019721193*1234567890*20030627*1304*1403*X*004010~
     ST*214*8101~
     B10*5896152*5896152*XX~
     N1*SH*BAW PLASTICS INCORPORATED~
     N3*CENTURY IBUSINES CTR*2148 CENTURY DRIVE~
     N4*JEFERSON HILS*PA*15025~
     G62*86*2050812~
     N1*CN*FINSH LINE~
     N3*308 NMITOEFER OAD*~
     N4*INDIANAPOLIS*IN*46235~
     G62*17*2050816~
     LX*1~
     AT7*D1*NS*2050815*132*LT~
     MS1*INDIANAPOLIS*IN*USA~
     MS2*CWCE*04937~
     Q7*DCAS*1~
     AT8*GL*41923~
     SE*18*48101~
     GE*1*1403~
     IEA*1*000001403~
    

    您需要遵循 x12 标准来构建或解析 EDI。

    以下是标准 EDI 文档类型的列表:http://www.edibasics.com/edi-resources/document-standards/ansi/

    我只是在谷歌上四处寻找 EDI 规范以了解如何布置我的数据,例如,这里是 EDI 214 的规范: http://ffportal.freightforce.com/technology/edi/EDI214.pdf

    【讨论】:

      【解决方案2】:

      您无需先将其转换为 XML。这是一个浪费的步骤(恕我直言)。您应该能够编写代码从 DB -> EDI。

      EDI 只是一个符合标准的文本文档。这些标准已发布(不是免费的),但需要 204 的人应该能够为您提供实施指南 (IG)。此 IG 会按照您需要发送的顺序告诉您需要发送的内容。如果 IG 不可用,您可以在 Google 上获取示例并开始构建它。测试文档时,合作伙伴会告诉您需要更改的内容。

      会有诸如段、元素、分隔符、终止符之类的术语。创建文本文件时,您需要创建段(N1,REF)作为示例。您还需要在文件中放置正确的分隔符,并使用正确的段终止符(通常在合作伙伴之间达成一致,但常见的是:*、^、~。IG 可能没有信封(ISA 和 GS 段)。您需要将它们放入文件中并正确递增控制计数器。

      我的标准通常答案仍然适用:我确定翻译的预算中没有 $$。这将是最好的方法,而不是用 PHP 代码重新发明轮子。翻译器内置了语法检查、拖放映射、数据建模。消除了一些学习曲线。

      【讨论】:

        【解决方案3】:

        大多数 edi 设置是这样的:
        - 您从您的应用程序中生成一个导出文件。例如 xml、csv、固定记录等(在 edi 中称为“内部文件”)
        - edi 翻译器将其翻译成 x12
        - 沟通。
        接收x12反转:通信->翻译->导入
        专注于应用程序中的良好导入/导出,而不是 x12;这就是翻译人员所做的。
        有很好的开源翻译器,例如http://bots.sourceforge.net,但还有更多(谷歌!)。有些只能使用 xml 作为内部格式;如果您愿意,您必须将导出编写为 xml。

        【讨论】:

          猜你喜欢
          • 2010-11-21
          • 2012-02-10
          • 2014-11-24
          • 2017-07-02
          • 2012-01-10
          • 2010-11-03
          • 2013-01-16
          • 1970-01-01
          相关资源
          最近更新 更多