当前位置:首页 » 技术资料 » 通用知识 » 正文

X12 文件格式入门

在本文档中,我将使用 856 发货通知作为示例。如果您想知道 856 船舶通知到底是什么,那么您来对地方了。无论如何,这是示例。

ISA*00*          *00*          *ZZ*MYORG          *ZZ*Interchange Rec*200831*2324*U*00501*100030537*0*P*>~
GS*SH*MYORG*Interchange Rec*20200831*2324*200030537*X*005010~
ST*856*300089443~
BSN*00*P1982123*20200831*2324*0001~
DTM*011*20200831*2324~
HL*1**S~
TD1*CTN*1****G*2*LB~
TD5**2*FDE*U********3D*3D*3D~
DTM*011*20200831~
N1*ST*SOO KIM*92*DROPSHIP CUSTOMER~
N3*26218 QUENTIN TURNPIKE~
N4*REANNAFORT*MS*51135~
HL*2*1*O~
PRF*1881225***20200831~
HL*3*2*P~
MAN*CP*037178019302492~
HL*4*3*I~
LIN*1*VC*11216.32*SK*RGR-11216.32~
SN1*1*1*EA~
PID*F****ALL TERRAIN ENTRY GUARD KIT 2020 JEEP WRANGLER J~
CTT*4~
SE*20*300089443~
GE*1*200030537~
IEA*1*100030537~

什么是 EDI?

EDI 是企业来回发送文档的一种结构化方式。它可以是:

  • 采购订单(“我想买这个!),
  • 发票(“请按照这个付我钱!”),
  • 船舶通知(“我给你发了这个!),
  • 或 300+ 其他交易类型中的任何一种。

将其视为 JSON 模式,以涵盖所有可能的业务交易和详细信息,但在 JSON、XML 或万维网发明之前。

您可能会听到人们谈论 X12 EDI。这只是 EDI 的一种特定格式。另一个常见的是 EDIFACT。我们将在此处重点介绍 X12 EDI。

您可能还听说过 5010 或 4010 。这些是 EDI 的特定版本(正式名称为版本)。考虑一个版本控制的 API,当您增加版本时,它可能会有很小但破坏性的变化。EDI 是一个旧标准,多年来需要进行一些更改。

结构

段、元素和分隔符(Segments, elements, and separators)

当您第一次查看 856 发货通知时,您会看到以下内容:

ISA*00*          *00*          *ZZ*MYORG          *ZZ*Interchange Rec*200831*2324*U*00501*100030537*0*P*>~
GS*SH*MYORG*Interchange Rec*20200831*2324*200030537*X*005010~
ST*856*300089443~
BSN*00*P1982123*20200831*2324*0001~
DTM*011*20200831*2324~
…

这让人感到不知所措。

请注意,此特定 EDI 文档的示例分为 5 行。(完整文档有 24 行,如文章开头所示。每条线称为一个线段。每个区段都分为多个元素。

让我们首先分解第 1 行上发生的事情。

  1. 它以 . 开头。这是区段名称。我们通常会通过名称来引用细分受众群。“哦,他们缺少 ABC 段”或“这是 XYZ 段中的无效值”。这是 ISA 段。
  2. 有一堆字母和数字,用*分隔。星号用作元素之间的分隔符(从技术上讲,紧随其后的第四个字符是元素分隔符,但通常是 a )。元素通常由其在特定段中的数字索引来引用。例如,请注意 ISA 段的末尾附近200831。这被称为 ISA09,因为它是 ISA 段中的第九个元素。当您查看区段的定义时,您将看到它引用了 YYMMDD 格式的交换日期。因此,是 2020 年 8 月 31 日。

在我们目前查看的文件中,每个段都在不同的行上。有时你会得到一个全部在一行上的文件。EDI 文档通常使用 ~\n换行符来区分段。(从技术上讲,它是ISA段中的第 105 个字节。在审阅文档时,我发现根据句段分隔符将其拆分为新行要容易得多。

常见细分

现在我们已经了解了 Segment、Elements 和 Separator 的基础知识,让我们看看一些常见的 Segment。具体来说,我们将查看 ISAGSST

ISA

我们在上一节中查看了 ISA 部分。这将始终是 EDI 文档中的第一行。它称为交换,包含适用于整个文档的元数据。这包括文档的日期和时间、控制编号(类似于自动递增的主键)、是否为测试文档等。

通常,一个文档中只有一个 ISA 段,但有些组织将多个 EDI 文档合并为一个。

GS

GS 段将永远是下一个。它是功能组,它包含有关组内事务的其他元数据。最重要的值是最后一个值 (GS08),它指示文档使用的 X12 版本。在上面的示例中,此元素的值为 .这表明它使用的是005010 版本。

X12 规范允许在单个文档中使用多个功能组。

ST

ST 段用于正在发送的实际交易。这就是节目的明星,也是我们所有人来到这里的原因。它可以是发票、采购订单或许多交易类型中的任何其他类型。

每个功能组可以有多个事务。

ST01 标识给定事务的事务类型。在上面的示例中,856 ,它映射到船舶通知。

其他常见的交易类型包括:

  • 214 运输承运人货件状态消息
  • 810 发票
  • 850 采购订单
  • 855 采购订单确认
  • 940 仓库发货单
  • 945 仓库发货通知
  • 还有几百个……

Closing segments关闭段

最后,对于每个关键部分,都有一个结束段(正式名称为 trailer 段)来指示它们何时结束。这些结束段包括校验和和控制编号。

上面的代码片段显示了我们的船舶通知示例的最后三行。SE 段表示 ST 块的结束。SE01 是指 ST 块内的 Segment 数。该值表示该交易中有 20 个客户细分。SE02 是与 ST 段中的控制编号匹配的控制编号。

同样,GE 段表示以 GS 开头的官能团的结尾。GE01 表示功能组中包含的交易数量,GE02 是该组的控制编号。与 IEA 相同,它关闭 ISA 块。

实施指南

X12 规格很广泛,大多数公司并不需要所有这些。因此,公司将限制他们支持的内容。这些条款可以由具有最大市场力量的贸易伙伴决定和标准化,也可以由两个贸易伙伴共同协议。

因此,您可能会获得一份实施指南,说明您的贸易伙伴支持哪些内容。我们将看一个 856 船舶通知的映射指南示例。此处有两种页面:概述页面和区段详细信息页面。

概述

概览页面显示此特定交易中允许的所有区段。

的Req 列显示区段是强制性的 (M) 还是可选的 (O)。

对于此交易,只有两个段是可选的。

Max Use 列显示区段可以重复的最大次数。

例如,DTM 区段最多可以使用 10 次,这意味着发货通知可以有 10 个与之关联的日期。

循环是可以重复的段的集合,在本例中最多可重复 200 次。

一个循环还可以包含其他循环。

请注意,重复是乘法的。顶层循环可以重复 200,000 次,内循环可以重复 200 次,因此 N1、N3 和 N4 段可以包括 200,000 × 200 = 40,000,000 次。

再看一下示例文档,可以看到 HL 循环的多次迭代。

详情

概述通常不会超过一两页。实施指南的其余部分由区段详细信息页面组成。这是 PRF 部分的一个。

详细信息页面描述了区段中的每个元素。

例如,PRF01 段是必需的,最多可以有 22 个字符。

PRF06 段是可选的,最多可以有 30 个字符。

有时,元素将接受少量映射到特定值的代码,类似于枚举。您可以在 DTM 的详细信息页面上查看该示例。

未经允许不得转载:北京聚信万通科技有限公司 » X12 文件格式入门
分享到
0

相关推荐

评论 (0)

联系我们

sinowintop

复制已复制
contact@sinowintop.com复制已复制
13810521470复制已复制
微信公众号
sinowintop复制已复制
关注官方微信,了解最新资讯
contact-img
客服邮箱