webMethods针对edi做的功能是很完善的,is里面单独有一个wmedi的包,里面有各种对于edi数据操作的方法,包括格式转换,envelop的添加等。
edi格式的转换主要有三种类型:edi/UNEDIFACT的解析和转换,xml到edi的转换,FlatFile的解析和转换。
1、edi/UNEDIFACT:将edi解析成doc,映射到自己定义的DB的doc,将DB的doc用jdbc adpater batch insert到DB。再从DB中拿出来db的doc list,映射到edi的doc,再转换成string
2、xml:从xml读成一个DOC,再从doc中映射到edi的doc,将edi的doc放到DB。从DB拿出来,做成EDI的doc,再将其转变为XML
3、FF:自己做好一个dictionary,再建好spec,之后参照edi的做法
在wmEDI包中,十分重要的两个方法有两个,一个是wm.b2b.edi:convertToString,还有一个是wm.b2b.edi:convertToValues(转换为Document)。在转换过程中可以对其进行检验,看是否符合Dictionary的数据规则,如果不符合,则isValid返回false。想要查看具体错误的话只要把其中的returnErrors参数设置为both就可以了。
除了上述的两种方法,这个包中还有很多EDI的工具,例如添加报头的wm.b2b.edi.util:addGroupEnvelope和wm.b2b.edi.util:addICEnvelope(对String的EDI进行报头的添加),wm.b2b.edi:SEFParse生成EDI Schema的程序,wm.b2b.edi:envelopeProcess从String到EDI document的方法等等。