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:
De uiteindelijke methode aanroep van de gegenereerde mapping. Als input een string van het EDI bericht en als output de string met de XML.
De mapping van EDI 940 naar XML