• Home
  • Blog

Archieven

  • mei 2025
  • april 2025
  • oktober 2024
  • september 2024
  • september 2023
  • maart 2022
  • maart 2021
  • september 2020
  • september 2019
  • februari 2019
  • september 2018
  • september 2016
  • september 2015
Davici
  • Home
  • Blog

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

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.

Tags

.NET Azure C# CTO Database DevOps Docker EDI Git HA IT developement director Microservices PostgreSQL SFTP Softwareontwikkeling Visual Studio Windows

Recent Posts

  • SFTP Server with SSH, Chroot, and authorized_keys

  • Technical Debt: een strategische aanpak voor duurzame softwareontwikkeling

  • How to set timezone in a Docker Windows Container

  • How to install fonts in a Docker Windows Container

  • Why WebView2 Applications Face Issues in the Program Files Folder (And How to Fix Them)

Tags: .NET,C#,EDI

Contact

Breda, Noord-Brabant, Nederland
info@davici.nl
K.v.K. 20099979
Twitter
LinkedIn

OVERIGE

  • Algemene Voorwaarden
  • Privacybeleid
  • Cookiebeleid

Copyright © 2025 — Davici. Alle rechten voorbehouden.

Designed by WPZOOM

Beheer toestemming
Om de beste ervaringen te bieden, gebruiken wij technologieën zoals cookies om informatie over je apparaat op te slaan en/of te raadplegen. Door in te stemmen met deze technologieën kunnen wij gegevens zoals surfgedrag of unieke ID's op deze site verwerken. Als je geen toestemming geeft of uw toestemming intrekt, kan dit een nadelige invloed hebben op bepaalde functies en mogelijkheden.
Functioneel Altijd actief
De technische opslag of toegang is strikt noodzakelijk voor het legitieme doel het gebruik mogelijk te maken van een specifieke dienst waarom de abonnee of gebruiker uitdrukkelijk heeft gevraagd, of met als enig doel de uitvoering van de transmissie van een communicatie over een elektronisch communicatienetwerk.
Voorkeuren
De technische opslag of toegang is noodzakelijk voor het legitieme doel voorkeuren op te slaan die niet door de abonnee of gebruiker zijn aangevraagd.
Statistieken
De technische opslag of toegang die uitsluitend voor statistische doeleinden wordt gebruikt. De technische opslag of toegang die uitsluitend wordt gebruikt voor anonieme statistische doeleinden. Zonder dagvaarding, vrijwillige naleving door je Internet Service Provider, of aanvullende gegevens van een derde partij, kan informatie die alleen voor dit doel wordt opgeslagen of opgehaald gewoonlijk niet worden gebruikt om je te identificeren.
Marketing
De technische opslag of toegang is nodig om gebruikersprofielen op te stellen voor het verzenden van reclame, of om de gebruiker op een site of over verschillende sites te volgen voor soortgelijke marketingdoeleinden.
Beheer opties Beheer diensten Beheer {vendor_count} leveranciers Lees meer over deze doeleinden
Bekijk voorkeuren
{title} {title} {title}