Java library for Java to EDI conversion
Asked Answered
A

5

10

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!

Archegonium answered 5/12, 2013 at 12:36 Comment(0)
L
4

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.

Lemmy answered 5/12, 2013 at 12:38 Comment(7)
I have tried Smooks but the documentation and code samples don't mention Java to EDI conversion anywhere. The same is with the other libraries I have mentioned in the question.Archegonium
Its mentioned here: issues.jboss.org/secure/attachment/12329888/… and as you might have read, you can also apply your own logic to smooks for transformation. :)Lemmy
Am I the only one that has no clue what "Java to EDI conversion" means? What data exactly would be converted!?Aria
EDI stands for "Electronic Data Interchange" and is a set of standards for the exchange of information. For example, the standard UN/EDIFACT (United Nations Electronic Data Interchange For Administration, Commerce and Transport) provides standard messages which allow multi-country and multi-industry exchange of business processes. It defines the syntax how the messages have to look like and so on..And he wants a java class which represents an EDI (in his case the standard for Healthcare) to be converted back into the specific EDI standard syntax. Hope this helped,there are no more chars left:DLemmy
@Lemmy Thanks for your help! Your comment about "applying my own logic" was really helpful :)Archegonium
This should no longer be the correct answer as this project isn't supported anymoreBounds
@Demodave: The Smooks repository seems to have had quite a lot of activity during 2020.Bodily
L
5

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.

Linger answered 5/12, 2013 at 14:31 Comment(2)
Thanks for the answer! Sorry, I don't have the reputation to vote for your answer :(Archegonium
it is your question. If you think it is the answer you want, you should be able to mark it as such.Linger
L
4

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.

Lemmy answered 5/12, 2013 at 12:38 Comment(7)
I have tried Smooks but the documentation and code samples don't mention Java to EDI conversion anywhere. The same is with the other libraries I have mentioned in the question.Archegonium
Its mentioned here: issues.jboss.org/secure/attachment/12329888/… and as you might have read, you can also apply your own logic to smooks for transformation. :)Lemmy
Am I the only one that has no clue what "Java to EDI conversion" means? What data exactly would be converted!?Aria
EDI stands for "Electronic Data Interchange" and is a set of standards for the exchange of information. For example, the standard UN/EDIFACT (United Nations Electronic Data Interchange For Administration, Commerce and Transport) provides standard messages which allow multi-country and multi-industry exchange of business processes. It defines the syntax how the messages have to look like and so on..And he wants a java class which represents an EDI (in his case the standard for Healthcare) to be converted back into the specific EDI standard syntax. Hope this helped,there are no more chars left:DLemmy
@Lemmy Thanks for your help! Your comment about "applying my own logic" was really helpful :)Archegonium
This should no longer be the correct answer as this project isn't supported anymoreBounds
@Demodave: The Smooks repository seems to have had quite a lot of activity during 2020.Bodily
C
1

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).

Cockrell answered 31/5, 2019 at 11:43 Comment(0)
T
0

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

Thebaine answered 5/12, 2013 at 12:48 Comment(4)
Thanks Shiju! But I need Java to EDI conversion and not EDI to Java or EDI to XML. Most of the libraries let you do EDI to XML conversion easily and I have tried a few of them. But my problem is Java to EDI conversion.Archegonium
I am not sure whether the EDI Reader does JAVA to EDI. Please check the Example java classes in the zip if you downloadedThebaine
I already did :) I went through each and every example but unfortunately the package only reads EDI documents and converts them to XML or other formats and not vice versa.Archegonium
One of the main reasons for lacking open source APIs is because there are many versions of the ANSI X12 standard which are not published for free. To do it right, and have syntax / dictionary checking, you would need to load those dictionaries. Maintenance would be a nightmare, making giving it away for "free" an unlikely proposition. Of course, you could half-ass a data parser for inbound and call it open, but it wouldn't be of much worth.Linger
N
0

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

Naarah answered 20/2, 2017 at 15:24 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.