尽管循环是 X12 中的一种逻辑概念(在文本中没有直接物理表示),但每个事务集都定义了一组它可以包含的循环,包括循环的标识符和它们的排序。我的问题是,一般来说,排序循环的规则是什么?是否有一组简洁的规则可以用一些代码来表达,这些代码应该能够采用一组循环(具有已知的标识符,例如 1000A、2300BB 等)并正确地对它们进行排序?
我的问题的上下文是我正在开发一个通用库,应用程序将使用该库来构建 X12 文档/事务集的模型(并写出这样的模型所代表的文本)。它具有表示元素、段和循环的对象。在特定循环中对段进行排序很容易,它们由实施指南规定。但我试图让循环排序(在事务集中)一般工作;这就是我要问的
似乎一般规则是循环根据其标识符进行排序,使用数字部分作为主排序键,字母部分作为辅助排序键。当然,包含在其他循环中的分层循环将以该排序顺序放置在父循环之前和循环之后(例如:1000A、2000A、2010A、2010B、2100、2300 - 其中 2010A 和 2010B 是 2000A 的子代)。
我了解规范和实施指南包含所有这些信息;我正在寻找关于循环排序(而不是段排序)的包罗万象的规则。有没有简洁的方法来表达规则的算法?甚至有一个硬性规定吗?