实施指南
实施指南告诉您贸易合作伙伴对您的期望。如果您的贸易伙伴将向您发送采购订单,则实施指南将告诉您这些采购订单是什么样的。每个贸易伙伴的格式都会有所不同,但通常看起来像这样。

本实施指南基于 850 采购订单的 X12 EDI 规范。不过,该规范比您需要的要广泛得多,因为它满足了任何人在采购订单中可能想要的一切。例如,它包含用于指定其他文书工作的字段。您的贸易伙伴不需要它 — 甚至无法处理它 — 因此他们向您发送了一份实施指南,其中仅包含他们期望的字段。换句话说,实施指南是 X12 EDI 规范的子集,您只需处理该子集。
当然,我不知道你在和谁交易,我也不知道你在处理哪种类型的文件,所以我在这里可能会介绍比你需要的更多的内容。请记住:参考实现指南并忽略其中没有的所有内容,以免让您发疯。
段
如果您的贸易伙伴向您发送了一份文档,您可能希望日期如下所示。
"shippingDate": "2022-04-28T13:05:37Z"
但是,EDI 不同。相反,它看起来像这样。
DTM*11*20220428*130537*UT
每个字段都位于其自己的行上,只是它不称为字段;它称为 Segment。每个分段都以一个代码开头,该代码告诉您分段包含的数据类型。 DTM
表示该区段表示日期和时间。
EDI 实际上有三个不同的部分来表示日期和时间:DTM、DTP 和 G62。DTM 是最常见的,但也是最复杂的,所以我最后谈谈这个问题。幸运的是,我将向您展示的有关 G62 和 DTP 的所有内容也适用于 DTM。
更复杂的是,日期和时间并不总是用这些专用区段之一表示;有时它们被嵌入到完全不同的细分中。这些区段采用专用日期和时间区段的零碎部分,并称它们为自己的区段。
G62 系列
日期
G62 段表示这样的日期。
G62*11*20220428
该片段的最后一个元素并不难理解:它是实际日期。它始终采用 YYYYMMDD 格式。中间还有一个元素,目前尚不清楚它的含义。假设您有一个货件状态更新文档,其中包含两个不同的日期。
"shippedDate": "2022-04-28"
"estimatedDeliveryDate": "2022-04-29"
在 EDI 中,这将是这样的。
G62*11*20220428
G62*17*20220429
EDI 没有命名字段。相反,它使用代码。 11
代表Shipped on This Date
和 17
代表Estimated Delivery Date
。如果您查看可能代码的完整列表,您会发现其中有 137 个。这很多。它们都有名字,但这些名字并不能很好地解释它们的含义。这时,您需要查看贸易伙伴为您提供的实施指南。

如您所见,您的贸易伙伴只会向您发送 11
或17
.这是有道理的,因为像这样的代码BC - Publication Date
在货物状态更新的上下文中没有任何意义。
时间
我给出的示例只显示了一个日期,但G62
也可以包含时间。事实上,G62
的完整规范如下所示。

同样,实现指南将告诉您是否需要完整的 segment,但是由于我们已经看到了日期的示例,因此让我们看一下时间示例。
G62***8*1547*LT
包含日期相关信息的元素留空。分隔符*
仍然存在,否则我们将不知道跳过了多少字段。所以,这就是 G62
8
之间的那三个星号的含义:跳过两个日期字段。
1547
是时间:下午 3:47。它始终以 24 小时制指定。该示例显示了可能的最短时间格式,但时间也可以包含秒甚至几分之一秒。
FormatExampleMeaningHHMM0905
9:05 ,AMHHMMSS192851
7:28:51 ,PMHHMMSSD1045378
10:45:37.8, AMHHMMSSDD23074291
11:07:42.91 下午
如果您想确定需要处理哪种格式,则必须查看实施指南。
示例中的 8
是你正在处理的时间类型的代码,就像 11
和17
日期类型的代码一样。 8
是Actual Pickup Time
。您可以查找所有可能的代码,但最好参考您的实现指南。
最后一个元素指定时区。当你查找时区代码时,一些描述可能有点令人困惑,但有办法让这一切变得疯狂。 表示 UTC+08 和 UTC-03。换句话说,Equivalent to ISO P08
Equivalent to ISO M03
,末尾的数字是与 UTC 的偏移量,其中 P
意味着+
和 M
意味着-
。
在此示例中,时区为LT
,表示Local Time
。这取决于哪个时区的上下文。如果您正在处理货件状态更新,那么取件的当地时间是取件发生地的当地时间是理所当然的。
日期时间Date-time
由于G62
可以同时表示日期和时间,因此它也可以表示日期时间。
G62*11*20220428*8*1547*LT
此部分告诉您,包裹于当地时间 2022 年 4 月 28 日下午 3:47 发货。实际上,您不太可能在同一 segment 中同时获得日期限定符 (11
) 和 time 限定符 (8
),因为它们传达的信息相似,但请检查您的实施指南以确保。
DTP
DTP 段也用于表示日期和时间,但它比 G62 段更灵活。DTP 几乎可以表达 G62 所能表达的所有内容(除了时区和几分之一秒),并且它还具有一些额外的功能。

日期Date
一个简单的日期如下所示。
DTP*11*D8*20220428
如您所见,日期在结尾。第一个元素与 G62 相同:它告诉您正在处理的是什么样的日期。该值11
的含义为Shipped
,因此这与 G62 相同,即使它的描述略有不同。不过,DTP 的整个可能代码列表要长得多;超过一千种可能性。请务必查看您的实施指南,看看哪些与您相关。
中间的元素是新的。它指定要使用的格式。 D8
表示这是 YYYYMMDD 格式的日期。这就是 DTP 比 G62 更灵活的地方:您可以使用不同的格式。例如,D6
表示 YYMMDD 格式的日期,TT
表示 MMDDYY 格式的日期,CY
表示以年和季度表示的日期,例如 20221
指 2022 年第 1 季度。最后一个问题很有趣,因为没有办法用常规的日期格式来表达季度的概念。
时间Time
DTP 也可以做时间。
DTP*11*TM*1547
TM
表示 HHMM 格式的时间,与 G62 一样,DTP 始终使用 24 小时制。另一个代码是 ,表示 HHMMSS 格式的时间。没有代码允许您指定秒的小数部分,因此这是 DTP 所不具备的 G62 功能。DTP 也不提供指定时区的方法。TS
日期时间
表示日期时间不需要任何额外的字段,只需要不同的格式限定符。
DTP*11*DT*202204281547
如您所料,DT
表示 YYYYMMDDHHMM 格式的日期时间,示例中的日期时间为 2022 年 4 月 28 日下午 3:47。如果限定符设置为RTS
代替DT
,则日期时间也将包含秒。
范围Range
DTP 真正胜过 G62 的地方在于它能够表示日期范围。
DTP*135*RD8*20211224-20220104
这表示 2021 年 12 月 24 日至 2022 年 1 月 4 日。与以前一样,RD8
限定符以 YYYYMMDD-YYYMMDD 格式提供确切的格式和表示日期范围。还有一些范围包括时间,有些范围只使用年,以及介于两者之间的所有内容。您可以查看限定符的完整列表,但最好查看贸易伙伴的实施指南。
DTM
DTM 段是在 EDI 中表示日期和时间的最常用方式。它也是最灵活的,因为它同时具有 G62 元件和 DTP 元件的功能。这也将使它成为最令人困惑的,除了您已经见过 G62 和 DTP,所以关于 DTM 没有什么可说的了。

如您所见,它只是 G62 元素和 DTP 元素的组合。您确实需要弄清楚哪些元素被使用,哪些被忽略,但现在,您也知道如何做到这一点:查看实现指南。
其他段
如果您必须处理 850 采购订单,您会发现它包含一个名为 BEG 的段,并且该段有一个表示日期的元素。它与您在 G62 或 DTM 中找到的元素相同,即以 YYYYMMDD 格式表示的日期,只是嵌入在与日期无关的区段中。对于采购订单,它表示采购商定义的采购订单日期。
不过,这并不仅限于 BEG 细分市场。例如,B10 区段包括日期和时间。AT7 段包括日期、时间和时间代码,CUR 段具有日期和时间以及日期/时间限定符。还有更多很多这样的细分市场。这需要处理很多事情,但有一个省钱:它们都使用了本文中描述的元素的组合,所以到现在为止,你应该已经做好了处理它们的能力。
评论 (0)