1

尽管循环是 X12 中的一种逻辑概念(在文本中没有直接物理表示),但每个事务集都定义了一组它可以包含的循环,包括循环的标识符和它们的排序。我的问题是,一般来说,排序循环的规则是什么?是否有一组简洁的规则可以用一些代码来表达,这些代码应该能够采用一组循环(具有已知的标识符,例如 1000A、2300BB 等)并正确地对它们进行排序?

我的问题的上下文是我正在开发一个通用库,应用程序将使用该库来构建 X12 文档/事务集的模型(并写出这样的模型所代表的文本)。它具有表示元素、段和循环的对象。在特定循环中对段进行排序很容易,它们由实施指南规定。但我试图让循环排序(在事务集中)一般工作;这就是我要问的

似乎一般规则是循环根据其标识符进行排序,使用数字部分作为主排序键,字母部分作为辅助排序键。当然,包含在其他循环中的分层循环将以该排序顺序放置在父循环之前和循环之后(例如:1000A、2000A、2010A、2010B、2100、2300 - 其中 2010A 和 2010B 是 2000A 的子代)。

我了解规范和实施指南包含所有这些信息;我正在寻找关于循环排序(而不是段排序)的包罗万象的规则。有没有简洁的方法来表达规则的算法?甚至有一个硬性规定吗?

4

1 回答 1

0

正如我在评论中提到的,该标准具有循环值。看看我的联络字典查看器的屏幕截图。CLM 段的 LOOP 值为 100。下面的段是 CLM 段的子段(扩展标记)。任何“顺序”都可以由合作伙伴任意定义,也可以是任何(未定义的)顺序,只要数据是合格的。但是该循环最多可以发生 100 次,并且可以在循环值内有重复的段。

实施指南将为您提供您的合作伙伴希望它们的正确顺序。看起来您正在编写自己的语法验证引擎。

在此处输入图像描述

于 2014-12-16T18:31:34.157 回答