无法读取EDI文件
我能够读取使用的Smooks EDI文件(1.5),当它被格式化为可读性 -无法读取EDI文件
ISA*SD* *DFDF* *SDFDSF*FHGFH *44*GHGHGHG *GHGH*GHGHGH*^*GHGHG*46345345*B*4*:~
GS*SS*2323*23232*232323*32323*1*X*FDFGDFGDF~
GE*YTRY*DF~
IEA*DF*DGHJGHHGG~
要阅读此,我使用的下面配置
<medi:delimiters segment=" " field="*"
component="^" sub-component="~" escape="?" />
但它失败了,当我试图读取相同的分隔符配置以下EDI(电子数据交换格式化)段
ISA*SD* *DFDF* *SDFDSF*FHGFH *44*GHGHGHG *GHGH*GHGHGH*^*GHGHG*46345345*B*4*:~GS*SS*2323*23232*232323*32323*1*X*FDFGDFGDF~GE*YTRY*DF~IEA*DF*DGHJGHHGG~
她问题是,所有的细分代码都在同一行。我知道它未能阅读EDI细分的原因,因为配置细分=“

”,因此失败。是否有可能读取这些类型的EDI消息。或者这是不切实际的EDI消息?我相信回车和换行,不需要通过 EDI X12字符standard.i想知道如何阅读本格式化EDI和如何配置分隔符为这个未格式化的EDI
您的ISA部分无效:
- ISA03具有
"DFDF"
的值,但不应该长于2个字符 - ISA05具有
"SDFDSF"
的值,但应不超过2个字符 - ISA06的值为
"FHGFH "
,长度为12个字符,但应为15(包括whitespacE)。 - ISA08和ISA13也是一个字符太短
这引发了整个段关断,它从“I”到该段终止子应该是恰好 106个字符(不包括可选的尾随\r\n
) ,但你最终得到108(再次,不包括回车或换行)。 ISA段是唯一具有这些限制的块 - 如果关闭,解析器将不知道如何解析文件的其余部分。我怀疑你编辑了你的ISA来尝试匿名它,但你几乎可以肯定与你的acutal ISA有相同的问题(或者其中一些) - 检查第106个字符是什么,你会发现它是一个\r
(或ASCII 10 ),这就是为什么Smooks将它作为你的分段终结者。
丹正是那么说的。您不必在分析器中定义分隔符,因为这些分隔符是在ISA段中定义的。唯一可行的方法是如果ISA段使用固定宽度的字段,那么您必须使它们正确。 – Mufaka
段终止符显然是波浪号(〜)。组件分隔符是冒号。从Liaison下载EDI记事本,这样你就可以知道你在看什么。 – Andrew
我检查了EDI notepad.i中的这些edi消息,可以看到分隔符[段终止符(〜),元素分隔符(*),子元素分隔符(:)和重复字符]。我的问题是,我可以使用什么字符来配置smooks的分隔符段代码来阅读这些类型的EDI消息? – JToddler
细分是代字号。 – Andrew