从PHP到XML再到X12 EDI转换

时间:2013-10-08 09:30:44

标签: php edi

我已经编写了PHP代码来计算Estes Carrier的运费,现在我需要将EDI文件发送给运营公司。我没有EDI代码知识。我研究了204马达载荷招标,但对我没有帮助。我需要先将我的PHP代码转换为XML然后转换为x12 EDI格式吗?如何?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

EDI只是一个符合标准的文本文档。标准发布(非免费),但要求204的人应该能够为您提供实施指南(IG)。 IG将按您需要发送的顺序告诉您需要发送的内容。如果没有IG,您可以通过Google获取样本并开始构建。在测试文档时,合作伙伴会告诉您需要更改的内容。

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

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

答案 2 :(得分:0)

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