EDIFACT复合元素标记为条件数据元素

时间:2014-07-31 17:39:46

标签: edifact

我遇到过将EDIFACT复合元素标记为必需元素但有所有条件数据元素的情况。

我不明白这是怎么可能的,因为如果没有提供所有数据元素,将不会呈现复合。如果第一个元素1001是强制性的,那么我可以理解,但因为它没有任何意义。

以下是一个例子:

010    C002 DOCUMENT/MESSAGE NAME                      M    1
       1001  Document name code                        C      an..3
       1131  Code list identification code             C      an..17
       3055  Code list responsible agency code         C      an..3
       1000  Document name                             C      an..35

我觉得这很混乱,不知道如何应对这种情况。我目前正在使用C#开发API来生成和处理EDIFACT消息,我不知道如何验证以及如何呈现上面的示例。

任何EDIFACT专家都可以为我澄清这个吗?

**更新**

我怀疑复合是强制性的,需要提供至少一个的数据元素 - 这只是基于常识和我已经知道的EDIFACT的有根据的猜测。 / p>

3 个答案:

答案 0 :(得分:1)

确实意味着必须存在至少一个子元素。 在这种情况下: 要么使用文档代码1001 或描述1000。 元素1131和3055的功能有点类似于xml中的名称空间。

答案 1 :(得分:0)

我的猜测是强制性的,因为它是片段中的第一个元素,所以如果它是空的,它也需要在片段中。

澄清自己:

  • DOC +' C0002元素存在,但它为空(无数据)。
  • DOC'没有意义

答案 2 :(得分:0)

C0002复合通常用于BGM段,它始终存在于EDIFACT消息中,因为它是有效载荷中的第一个段,它标识当前消息。 BGM.C0002:1001标识消息功能,例如BGM + 381:...'表示商业发票,BGM + 382:......'表示信用票据

因此始终需要C0002:1001元素。 1131元素标识从中提取先前值的代码列表。

在元素3055中,报告负责该代码清单的机构。

第二个非常重要的元素是1000.标准不要求它,但通常用于识别消息的号码,如发票号16/000213

得出结论:在C0002中有两个要素应被视为强制性的:1001和1000.

基本上,这也适用于DOC段,其中引用了业务文档。