当EDI文件格式化为可读性时,我可以使用Smooks (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 (未格式化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段,因为配置segment="

“而失败。是否可以读取这些类型的EDI消息。或者这是不现实的EDI信息?我相信按照EDI X12标准,传输返回和行提要不是必需字符。我想知道如何读取这个未格式化的EDI,以及如何为这个未格式化的EDI配置分隔符。
发布于 2016-03-14 15:08:28
您的ISA段无效:
"DFDF"
,但不应超过2个字符。"SDFDSF"
,但不应超过2个字符。"FHGFH "
,长度为12个字符,但应该为15 (包括whitespacE)。这就抛出了整个段,从"I“到段终止符应该是,确切地说是106个字符(不包括可选的尾随\r\n
),但最终得到108个字符(同样,不包括回车或行提要)。ISA段是唯一有这些限制的部分--如果它关闭,解析器将不知道如何解析文件的其余部分。我怀疑你编辑了你的ISA试图匿名,但你几乎肯定有同样的问题(或其中一些)与你的尖锐的ISA -检查什么是106字符,你会发现它是一个\r
(或ASCII 10),这就是为什么Smooks把它作为你的片段终结者。
https://stackoverflow.com/questions/35780645
复制相似问题