我正在使用 Oracle SOA Suite B2B 组件来处理 EDIFACT 文件。我需要处理一个 +2Gb 文件,它不能一次全部处理。我需要将文件拆分为较小的文件,然后将它们全部处理。是否有任何 Java 应用程序可以帮助我解决这个拆分问题?..
或者如果我尝试开发它,较小的 EDIFACT 文件的格式应该如何才能处理它们?
谢谢,
EDIFACT
交换文件由段组成。每个段都以段分隔符结束。因此,编写一个小程序将文件拆分为两个或更多较小的部分会很容易。请注意,可以在第一段 ( UNA
) 中选择段分隔符。
但是,这种拆分会影响EDIFACT
文件的整体结构。需要对交换/消息结构有更深入的了解才能找到可行的拆分位置。
EDIFACT
交汇处的整体结构如下:
Service String Advice UNA Optional
+----- Interchange Header UNB Mandatory
| +--- Functional Group Header UNG Conditional
| | +- Message Header UNH Mandatory
| | | User Data Segments As required
| | +- Message Trailer UNT Mandatory
| +--- Functional Group Trailer UNE Conditional
+----- Interchange Trailer UNZ Mandatory
如果您的大文件包含许多消息(以段开头UNH
和结尾UNT
),您可以沿消息边界拆分并添加人工UNB/UNZ
信封。