0

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

4

3 回答 3

3

要将数据作为 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

于 2014-12-02T06:06:15.857 回答
1

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

于 2013-10-08T21:09:52.467 回答
0

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

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

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

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

于 2013-10-08T16:12:00.683 回答