Java library for Java to EDI conversion

27.9k views Asked by At

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!

5

There are 5 answers

7
Ben On BEST ANSWER

Trial download for Smooks?! You don't need a license. There's also good documentation.

Check it out:

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

4
Coder On

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

2
Andrew On

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.

0
Calipso On

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

0
SD Shaw On

I agree that there are very few open source libraries in the market which can help on EDI to xml conversion. Many of them have not been updated for years. I visited the "Smooks" site and it seems, that the project has been discontinued.

If you are okay with paying for a solution, you may give EDI parser from Progress a try.

It comes with a free trial version for 15 days and the apis are very easy to use and integrate in your project.

It does not only support EDI to xml conversion, but also EDI to CSV conversion (you have the option to decide the delimiter).