Home / Blog / EDI X12 940 mapping naar XML met C#
EDI X12 940 mapping naar XML met C#

EDI X12 940 mapping naar XML met C#

EDI is een industriestandaard voor elektronische uitwisseling van business transacties. Het EDI 940 bestand beschrijft een Warehouse Shipping Order in het supply chain proces.

 

Doel

Om het door de eindklant aangeleverde EDI X12 940 bestand te kunnen verwerken moet het vertaald worden naar een XML-formaat wat het WMS systeem gebruikt.

Voorbeeld EDI X12 940 bestand

Om een indruk te krijgen van het EDI formaat hieronder een voorbeeld van de eerste regels. Elke regel begint met een data identifier. In vergelijking met XML of JSON een stuk minder flexibel om direct te verwerken in een programmeertaal als C#.

ISA*01*0000000000*01*0000000000*ZZ*ABCDEFGHIJKLMNO*ZZ*123456789012345*101127*1719*U*00400*000003438*0*P*>
GS*OW*7705551212*3111350000*20000128*0557*3317*T*004010UCS
ST*940*0001
W05*N*538686**001001*538686
N1*ST*ABC COMPANY*ZZ*00046349
N3*2100 Street
N4*Amsterdam*NH*1234

BizTalk Server

Een mogelijkheid die ik onderzocht heb is het gebruik van Microsoft BizTalk Server. Dit is een krachtig product om met behulp van een grafische interface mappings op stellen en te beheren. De server kan bestanden oppakken via SFTP, vertalen via de ingestelde mapping en via SFTP weer terugzetten op een server voor verdere verwerking door het WMS systeem. Echter het opzetten van deze omgeving vereist diverse servers met de nodige beheer en hostingkosten. Zoals gebruikelijk maak ik per project een kosten-baten analyse en scoort deze oplossing in dit geval niet goed.


Altova MapForce

MapForce is een standalone applicatie. Met grafische interface van de applicatie kan je een mapping opstellen. De applicatie heeft templates voor diverse EDI formaten. Met formule blokken kunnen samengestelde velden verwerkt worden om b.v. het straat en huisnummer veld tot een tekstveld samen te voegen.
Met de applicatie genereer je vervolgens C# code (of Java). Het resultaat project bestand kan je direct opnemen in de Visual Studio solution. De kracht is dat je de mapping direct kan aanspreken vanuit de code, zonder tussenkomst van een extra serverlaag.

De gegenereerde projecten in Visual Studio:


Mapping methode aanroep

 

De uiteindelijke methode aanroep van de gegenereerde mapping. Als input een string van het EDI bericht en als output de string met de XML.
 edi940 mapping

 

De mapping van EDI 940 naar XML


Mapping


Conclusie

Door voor dit project Altova MapForce in te zetten is een aanzienlijke kostenbesparing gerealiseerd t.o.v. de inzet van BizTalk. Een nadeel kan zijn dat deze oplossing volledig geintegreerd is in de applicatie en dat via BizTalk de beheersbaarheid en schaalbaarheid beter te garanderen zijn.

Contact