Java library for Java to EDI conversion

匿名 (未验证) 提交于 2019-12-03 08:42:37

问题:

I am looking for a Java library that does Java to EDI conversion - more specifically an EDI 835 format used in Healthcare. Although a lot of libraries promise Java to EDI conversion, there is no documentation or code samples available for the same on their sites. Here is a list of libraries I have tried so far with no luck:

1. EdiReader(EdiWriter is commercial and does not have a trial download).
2. Smooks(No trial download and documentation does not mention Java to EDI conversion).
3. Open Business Objects - OBOE from americancoders.com(Has a trial download but Java to EDI not mentioned).
4. Oakland data transformer(This doesn't even let me download the library and docs).

Does anyone know other solutions that might be helpful ?
I am open to any commercial solution too.

Thanks!

回答1:

Trial download for smooks?! You dont need a license. Theres also a good documentation. Check it out: http://www.smooks.org/

IMHO I would go with smooks if you want no commercial solution.



回答2:

If you're open to a commercial solution, you may want to look at Altova's MapForce. It has a drag-drop mapper that you can create your map, and then it generates code to plug into your application. MapForce

"Java to EDI" seems to be a popular misnomer. In your case, you are creating a standardized text document (in this case an 835 EDI document) from source data (RDBMS, XML, flat file, iDoc, etc). Java is the conduit. You are basically trying to reinvent a 30+ year old wheel by writing your own translator / parser and that is usually done without the benefits of EDI syntax checking / FA reconciliation / robust partner tools. If I wanted to stop that kind of insanity, I'd look at Liaison and their tools, specifically ECS and Delta. Those tools are Windows-based, so that might not be an option, but for an inexpensive commercial tool that can integrate easily with your architecture, your ROI would be apparent quickly.



回答3:

There is not much Open source Java EDI APIs. But still, there are some as you provided.

I have also searched many.

Smook needs some XML configuration to read the particular EDI file.

Then I tried EDI Reader. Actually EDI reader is available to download from internet.

For me it was the only one that helped me to convert one EDI file to XML. Even the generated XML was somewhat complicated. But you can use any other API to parse the XML. Here is the download link for EDI Reader.

Read about EDI Reader, and for example programs, downloads.

It is a ZIP file Contains JAR files and some example JAVA codes



回答4:

If you are thinking to implement the solution with Smooks, I just refer some useful information from Smooks' Documentation:

Java to Text (XML, CSV, EDI etc)

As stated in other parts of this guide, the Smooks core runtime works by processing a stream of SAX events produced by an input Source of some type (XML, EDI, Java etc) and using those events to trigger Visitor logic. In the case of a Java Source (see previous section on "Java to Java"), Smooks uses XStream to generate this stream of SAX events.

Sometimes, however, you just want to apply a template (e.g. a FreeMarker template) to a Java Source object model and produce XML, CSV, EDI etc. You don't want to incur the wasted overhead of generating a stream of SAX events that you are not going to use. To do this, you need to tell the Smooks core runtime to not generate the stream of events. This can be done in one of 2 ways.

By calling setEventStreamRequired(false) on the JavaSource instance being supplied to Smooks.filterSource:

JavaSource javaSource = new JavaSource(orderBean);  // Turn streaming off via the JavaSource... javaSource.setEventStreamRequired(false);  smooks.filterSource(javaSource, result); 

Or, by turning off the "http://www.smooks.org/sax/features/generate-java-event-stream" feature in the Smooks configuration:

<reader>     <features>         <setOff feature="http://www.smooks.org/sax/features/generate-java-event-stream" />     </features> </reader>  <!-- Other Smooks configurations e.g. a FreeMarker template... --> 

When applying the FreeMarker template, the name of the templating context beans (i.e. the names used in your template) depends on the Object type in the JavaSource:

If the object is a Map, then that Map instance becomes the templating context and so you can just use the Map entry keys as the bean names in your template. For non-Map objects, the JavaSource class takes the Object Class SimpleName and creates a JavaBean property name from it. This is the name of the context bean used for the templating. So, if the bean class name is com.acme.Order, then the context bean name, for the purpose of templating, will be "order".

Source: http://www.smooks.org/guide



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!