EDI X12 Implementation with C#
Asked Answered
P

3

8

Our company is selling medical supplies, we have a website that we sell our products online. We are working with suppliers, who sends products to our customers when we receive new order. Currently we are handle this manually. We receive order in our website and phone / fax / email order to product supplier, they sends products to customer, and notify to us with shipping information and we notify customer.

This process is getting hard to handle lately. We are not using any B2B solution so far, but we need implement an EDI solution now. Our biggest supplier is using EDI standarts.

As far as i understand, process will be like below;

  1. When we recieve an order, we create X12 document, and send this document via FTP, SFTP or VAN.
  2. Our supplier receive X12 document and process it. And send a invoice formatted as X12.
  3. We receive invoice and parse it to our system.
  4. Our supplier sends shipping information formatted as X12 when they ships products to customer.
  5. We receive shipping information document and parse it.

I have some questions about this process.

  1. First and most important question: Am i understand right? :)
  2. What programs / tools i need to as a developer?
  3. I know its not wise thing to write our own X12 parser. We need an external application. But what kind an application we need? Do we need a big application like BizTalk? or some helper libraries like
  4. Our supplier supports FTP, SFTP and VAN for data communication, which communication we should choose? which one is simplier and fast to understand?

Sorry, i know, i have lots of questions :) Any help will be appreciated.

Priscillaprise answered 23/5, 2013 at 21:15 Comment(7)
I wouldn't recommend doing it yourself. If they support cXML or some such (as Richard mentioned), maybe - but as soon as you support one EDI document, they'll ask for another. And another. Then you'll get someone asking for UN/EDIFACT (another standard), then cXML, then different connection protocols/networks... I'd buy commercial software or contract with a VAN.Stowe
I think Will makes a very good point here.Sendoff
Thanks Will, you are right. If i do by myself, it can be painful later. I'm .net developer, if i will choose Microsoft BizTalk for EDI process, will it be a good choise?Priscillaprise
@Priscillaprise - I wouldn't recommend BizTalk for your scenario. It is fairly expensive, and IMHO, the UX/UI is terrible. If you're looking for a Microsoft-based translation product, check out Delta from Liaison (liaison.com/products/transform/delta). Combine that with their ECS product, and you have a solid application integration framework that will easily compete with BizTalk at a fraction of the cost / learning curve.Jacklighter
Just for completeness, there is an opensource library to do this Called Edi.Net and its build to support .Net full Framework as well as netstandard 1.0 onwards. Disclaimer I am the author of the libHospitalet
@Hospitalet Do you know the pros and cons of using your library vs a paid alternative either library or service provider. Is this adequate for handling edi for a small/medium sized business?Ligation
@bakalolo I honestly dont know since I have used the library for my needs and it worked as coded. Joke aside you have to balance payed solution and suppot vs free and no support. You should make a proof of concept to deside for yourself.Hospitalet
F
4
  1. The description of your process looks OK. 1/ Following the order from your customer, you create and send an X12 850 (Purchase Order) to your supplier. 2/ Your supplier might send you an X12 855 (Purchase Order Acknowledgment) to confirm your order, this is an interesting (business) information that you might "forward" to your customer. 3/ Finally, together with the actual shipping of the goods to your customer, your supplier will send you an X12 856 (Ship Notice/Manifest), as well as an X12 810 (Invoice). This is a fairly simple/classic EDI flow.

  2. BizTalk would be the Microsoft-world recommendation, but it might be quite expensive/over-sized for such a flow. If you are a .NET developer and like to do things on your own, generating 850, and reading 855, 856 and 810 is not as complex as it might seem ;-) I have personally developed a way to parse/serialise X12 to/from XML using XSLT scripts (that can be run easily from almost any programming language, including the .NET ones) and I hope it demystifies X12 syntax ;-) If you can share the MIGs (Message Implementation Guidelines) from your suppliers, I can have a look and check if my technique could suit your needs. The XML representation should be yours, following the data model of your application, and should then allow you to develop the functionality around the EDI documents as usual!

  3. See above ;-)

  4. You are lucky!!! Your supplier supports FTP, it's the simplest one, easier/cheaper to implement! Think about the way you are doing it today - i.e. email - you do not need high security... What you need is AUTOMATION, please stay focused on that and don't be distracted by high security needs! My advice ;-)

Fluorescence answered 29/5, 2013 at 5:59 Comment(6)
Hi Babelabout, our company insists to use BizTalk server. I install BizTalk server, and setup parties as descripted on some tutorial. My next goal is create and parse x12 documents. Can i use BizTalk for create X12 documents? or should i write my own code for that?Priscillaprise
BizTalk can create the X12 message. You do not need to write your own code.Fluorescence
How can BizTalk create X12 message? We have a C# website, when user creates an order, we have all information to create X12 message. Is there a any helper class for create X12 messages in BizTalk assemblies? Or any other method i can use?Priscillaprise
Your C# application should create an XML file (invent your own simple grammar) and send it to BizTalk. Then, you create your XML-to-X12 mapping and BizTalk will deliver the X12 message.Fluorescence
Another commercial option: orionhealth.com/symphonia-messaging-and-mapping-toolsAeroscope
@Fluorescence that is disgusting seems like same amount of work as using a sraight to x12 approachLigation
S
2
  1. EDI is a very old standard for formatting data. I would highly recommend making sure your supplier does not support a newer standard like SOAP Web Services in addition to EDI.

  2. Any programming language will do. Stick with what you are familiar with. In .net the FileSystemWatcher class would be very helpful.

  3. BizTalk is a comprehensive tool and expensive tool so I would be tempted to look at the helper libraries you have discovered first. EDI itself is quite simple - generally there are many comprehensive specifications for the exchange of different types of data, but they all break down into the same general structuring of ASCII text.

  4. FTP is the simplest but not secure. SFTP is almost as simple and secure. I'm not familiar with VAN.

Sendoff answered 23/5, 2013 at 21:29 Comment(2)
VAN is Value-Added Network. It's basically a third-party company that will handle the translations and communications (often with multiple vendors/suppliers/partners) for you.Stowe
Thanks for your answer @RichardTeviotdale, sadly our partner is not using SOAP or something like that for integration. Right now i'm thinking using BizTalk. I think BizTalk is handling all process but i'm not sure if it is the right choice.Priscillaprise
I
0

you take a look at bots open source edi translator (http://bots.sourceforge.net). Handles x12, xml, edifact etc, and the communications you want.

Impersonalize answered 24/5, 2013 at 9:36 Comment(1)
Thanks for answer, but i'm not familiar with python, so i'm looking for .net solutions first.Priscillaprise

© 2022 - 2024 — McMap. All rights reserved.