Overzicht Koppelingen

Koppelen met IBM i en AS400

Je AS400 draait al twintig jaar zonder klagen. Alleen praat hij met niets. Je webshop kent de actuele voorraad niet, de facturen gaan met de hand naar de boekhouding en klanten bellen voor informatie die allang in het systeem staat. Wij bouwen de laag ertussen zodat die data gaat stromen, zonder dat er iemand aan het systeem zelf komt.
Koppelen met IBM i en AS400

Wat we wel en niet doen

Hier zijn we graag duidelijk over, want het scheelt je een verkeerd gesprek.

Wij zijn geen RPG- of COBOL-ontwikkelaars. We programmeren niet op de IBM i en we beheren hem niet. Moet er iets op het systeem zelf gebeuren, dan doet jouw IBM i-partij of je eigen beheerder dat, en werken wij daarmee samen.

Wat we wel doen is alles aan de buitenkant. Lezen uit Db2 for i, aansluiten op wat er ontsloten is, de laag ertussen bouwen die vertaalt en cachet, en de webshop, het portaal of het dashboard dat er gebruik van maakt.

Dat is een bewuste afbakening en tegelijk een voordeel: een koppeling van ons levert nooit een change op je productiesysteem op.

Eerst even de naamgeving

IBM bracht de AS/400 uit in 1988, hernoemde het platform in 2000 naar iSeries, in 2006 naar System i en sinds 2008 heet het besturingssysteem IBM i, draaiend op IBM Power-hardware. In de praktijk zeggen mensen nog steeds AS400, ook als er een Power10 in het rek staat.

Wat wel uitmaakt is je release. IBM ondersteunt op dit moment 7.4, 7.5 en 7.6. Voor 7.4 loopt de standaardondersteuning af op 30 september 2026, daarna alleen nog tegen meerprijs. Draai je op Power8, dan is 7.4 het eindstation. Power9 komt tot 7.5, Power10 en Power11 draaien ook 7.6.

Voor een koppeling is dat vooral relevant vanwege TLS-ondersteuning op oudere releases. Blokkerend is het zelden, maar het bepaalt wel of er een proxy tussen moet.

Vier routes naar buiten

Db2 for i uitlezen via SQL

De snelste route en meestal de eerste stap. Db2 for i is een volwaardige SQL-database, ook al zijn de tabellen ooit met DDS aangemaakt als physical files. We benaderen hem met de ODBC-driver uit IBM i Access Client Solutions, met JTOpen (de opensource Java-toolbox), of vanuit PHP, Python en Node.js.

Voor lezen is dit ideaal. Voorraad, prijzen, artikelgegevens en orderstatus halen we op zonder dat er iets aan het systeem verandert. Nodig van jouw kant: netwerktoegang en een gebruikersprofiel met leesrechten op de juiste bibliotheken.

Rechtstreeks in tabellen schrijven doen we niet. Dan omzeil je de validatie en de bedrijfsregels die in de bestaande programma’s zitten, en dat gaat een keer mis.

Aanroepen wat er ontsloten is

Voor schrijven, en voor alles waar bedrijfslogica bij komt kijken, roepen we liever een programma aan dan dat we een tabel aanpassen. Dan blijven de regels op één plek staan.

Is er al een webservice, dan gebruiken we die. Is die er nog niet, dan is dat werk voor de IBM i-kant. Het systeem heeft daar Integrated Web Services voor aan boord, waarmee een bestaand RPG- of COBOL-programma als REST-service gepubliceerd wordt zonder dat de code herschreven hoeft te worden.

Zit de logica verweven met de schermafhandeling, dan is hij niet aanroepbaar en moet dat stuk eerst afgesplitst worden naar een service programma. Ook dat ligt bij de IBM i-kant. Wat wij wel doen is scherp maken welke functie we precies nodig hebben, met welke parameters en welk retourformaat. Dat maakt dat gesprek een stuk korter.

Data queues en de IFS

De klassieke manier om asynchroon te koppelen, en nog steeds uitstekend. Een data queue is razendsnel en ontkoppelt beide kanten volledig: het ene systeem zet er iets in, het andere haalt het eruit wanneer het uitkomt. Valt de verbinding weg, dan blijft de wachtrij staan.

Voor bestandsuitwisseling gebruiken we de IFS. Minder elegant, maar voor nachtelijke batches met leveranciers of vervoerders vaak precies goed genoeg.

De laag ertussen

Hier zit het meeste van ons werk. We zetten een aparte laag naast de IBM i, meestal in Laravel of Node. Die praat aan de ene kant met Db2 en met wat er ontsloten is, en biedt aan de andere kant een moderne API aan.

Vier redenen waarom die laag er hoort te zijn:

  • Cachen. Een drukke webshop mag niet bij elke paginaweergave de Power-machine bevragen.
  • Vertalen. Van cryptische veldnamen en packed decimals naar begrijpelijke JSON.
  • Beveiligen. Tokens en rate limiting die je niet op de IBM i zelf wilt regelen.
  • Doorontwikkelen. Een wijziging in de frontend leidt nooit tot een change op productie.

Voor het bouwwerk eromheen zetten we onze Laravel-specialisten in, of we werken vanuit Node als het landschap daarom vraagt.

Zo ziet dat er in de praktijk uit

Voor Drankdozijn draait de AS/400 ongewijzigd door als kern, met de webshop er volledig omheen gebouwd.

  • Alle productinformatie wordt via een JSON-koppeling uit het bestaande systeem opgehaald
  • Het productfilter toont realtime de actuele voorraad en data uit de AS/400
  • De webshop is viertalig, waarbij elk land zijn eigen checkout-regels en prijsafspraken volgt
  • Betalingen lopen via Adyen
  • Transactionele e-mails gaan via Mailgun, automatisch getriggerd op het juiste moment

Waar het in de praktijk misgaat

Dit is het deel waar ervaring het verschil maakt. Een paar dingen komen in vrijwel elk IBM i-project terug.

Tekens die verminken. IBM i slaat data op in EBCDIC en de buitenwereld werkt in UTF-8. Die vertaling gaat vanzelf goed, behalve als een veld CCSID 65535 heeft. Dat betekent letterlijk “niet converteren” en het resultaat is een kolom vol vraagtekens of ruis. Wij inventariseren dit vooraf, op job-, bestands- en veldniveau, zodat het niet halverwege de bouw opduikt.

Datums die geen datums zijn. In legacy-bestanden staat een datum vaak als achtcijferig getal, of als zescijferig getal met een apart eeuwveld ernaast. Soms is 0 een geldige waarde die “onbekend” betekent. Dat moet je weten voordat je gaat rekenen of sorteren.

Getallen die geen getallen zijn. Packed en zoned decimal velden kunnen ongeldige inhoud bevatten die jarenlang onopgemerkt bleef, omdat het bestaande programma dat veld nooit las. Zodra je er een SQL-query op loslaat, krijg je een decimal data error.

Veldnamen van tien tekens. CUSNBR, ORDDAT, WHSLOC. Kort, cryptisch en soms hergebruikt voor iets anders dan de naam suggereert. Een mappingdocument is geen luxe maar het halve project, en dat maken we samen met degene die het systeem kent.

Autorisaties. Wij vragen om een eigen gebruikersprofiel met precies de rechten die nodig zijn op precies de objecten die nodig zijn. Het aanmaken ligt bij je beheerder, maar wij leveren de exacte lijst aan zodat er niets ruimer wordt ingesteld dan nodig.

Performance. Een query die op duizend testregels prima loopt, kan op veertig miljoen productieregels de machine op de knieën krijgen. Wij meten dat vooraf en signaleren waar een index ontbreekt. Het aanleggen gebeurt in overleg met de beheerder.

Wat we aan de andere kant koppelen

Zodra de data eruit komt, gaat hij meestal ergens anders naartoe. De koppelingen die we in combinatie met een IBM i het vaakst bouwen:

Zo beginnen we

We starten met een korte verkenning, samen met degene die het systeem kent. Welke release en hardware draait er, welke bestanden zijn relevant, hoe zit het met CCSID’s en autorisaties, en is beschikbaar wat we nodig hebben of moet er nog iets ontsloten worden.

Daaruit komt een concreet beeld van de route, de risico’s en de volgorde. Vervolgens bouwen we het kleinst mogelijke stuk dat echt werkt, bijvoorbeeld alleen de voorraadstand, en zetten dat in productie. Pas als dat stabiel draait, breiden we uit.

Op een systeem dat de hele bedrijfsvoering draagt voer je geen experimenten uit, ook niet vanaf de buitenkant.

Deze content is met AI-ondersteuning geschreven en nagelopen door het Smit-team.
Meer cases

Hoe ideeën werkelijkheid worden

Geen theorie, maar echte trajecten. Bekijk hoe richting, techniek en ontwerp samen zorgen voor resultaat dat blijft staan.

Hoe vertaal je meer dan 100 jaar natuurlijk vertrouwen naar een digitale omgeving? Voor VSM ontwikkelden we een website die bezoekers direct helpt vinden wat ze zoeken.
Politieke reclame, volledig transparant. Wij bouwden hét centrale platform voor EU 2024/900 compliance binnen de Nederlandse mediasector.
Een digitale vertaling van vakmanschap en rijplezier. Met ruimte voor historie, community en een configurator die maatwerk tot leven brengt.
Een IBM i koppeling als fundament, aangevuld met een viertalige webshop, Adyen-betalingen, geautomatiseerde e-mails en een vernieuwd design.
Hét startpunt voor de audioprofessional. Wij vertaalden de visie van Audify naar een schaalbaar platform waar onderzoek, inspiratie en community elkaar versterken.
Een gebruiksvriendelijk leerplatform dat zorgprofessionals ondersteunt met overzicht, consistente communicatie en een professionele leerervaring, online en offline.
Meer artikelen

Inzichten uit ons digitaal vakmanschap

Van praktijkverhalen en slimme oplossingen tot updates uit ons eigen team. Een inkijk in wat ons bezighoudt, wat we ontdekken en hoe ideeën langzaam vorm krijgen.

Veelgestelde vragen

Programmeren jullie zelf op de AS400?

Nee. Wij zijn geen RPG- of COBOL-ontwikkelaars en we beheren het systeem niet. Wij werken aan de buitenkant: lezen uit Db2 for i, aansluiten op wat er ontsloten is, en de API-laag en applicaties eromheen bouwen. Moet er iets op de IBM i zelf gebeuren, dan doet jouw IBM i-partij dat en werken wij daarmee samen.

Moet er iets aan onze bestaande code veranderen?

Voor lezen niet. Data uit Db2 for i halen we op zonder dat er iets aan het systeem verandert. Voor schrijven en voor functies met bedrijfslogica is een aanroepbaar programma of webservice nodig. Bestaat die al, dan sluiten we erop aan. Bestaat die nog niet, dan specificeren wij precies wat er nodig is en publiceert de IBM i-kant het.

Is een IBM i-koppeling realtime of alleen batch?

Beide kan. Lezen uit Db2 for i gaat realtime, en met een cachelaag ervoor blijft de belasting op het systeem laag. Voor schrijven werken we vaak met data queues, waarmee je vrijwel realtime werkt terwijl beide systemen losgekoppeld blijven. Nachtelijke batches gebruiken we alleen waar dat functioneel volstaat.

Wat hebben jullie van ons nodig om te kunnen beginnen?

Netwerktoegang tot het systeem, een gebruikersprofiel met leesrechten op de relevante bibliotheken, en iemand die het systeem kent en een paar uur beschikbaar is. Dat laatste is het belangrijkst. Zonder iemand die kan uitleggen wat ORDSTS betekent, wordt elk mappingdocument giswerk.

Werkt dit ook op oudere releases zoals 7.3?

Meestal wel, met beperkingen. Je loopt aan tegen verouderde TLS-ondersteuning, wat we oplossen met een proxy ertussen. Wel merken we op dat 7.3 sinds september 2023 buiten standaardondersteuning valt en 7.4 vanaf 30 september 2026.

Belast een koppeling ons productiesysteem?

Merkbaar minder dan mensen verwachten, mits je cachet. Voorraadstanden en prijzen halen we periodiek op en serveren we vanuit de tussenlaag, zodat piekverkeer op de webshop nooit één op één op de Power-machine terechtkomt. Alleen waar echt realtime nodig is, gaat de vraag door naar het systeem.

Rashudy/ VUmc

Voor de ontwikkeling van een kennisplatform van een nieuw team binnen het VUmc, zijn we de samenwerking aangegaan met SMIT. Dit heeft een prettige en vakkundige samenwerking opgeleverd, waarin SMIT. onze wensen begrijpt en hier vakkundig en constructief over mee kan denken. Wij zijn erg tevreden over het resultaat en deze samenwerking!

5.0
Star Star Star Star Star
Marijn/ Drankdozijn

SMIT is voor ons een betrouwbare partner op IT gebied. We werken al 19 jaar samen. We zijn met onze webshop Drankdozijn altijd vooruitstrevend en daar past SMIT heel goed bij. Innovatieve ideeën worden met SMIT werkelijkheid. Naast een digitale strategie staat digital security bij SMIT centraal, wat voor ons als e-commerce bedrijf een vertrouwd gevoel geeft.

5.0
Star Star Star Star Star
Irma/ Audify

We werken al lange tijd samen met SMIT en zijn zeer tevreden over de samenwerking. Het team is uiterst deskundig en denkt proactief mee over marketingoplossingen met creatieve, waardevolle ideeën die ons echt verder helpen. Als het nodig is, spelen ze kort op de bal en handelen ze snel en direct. Een betrouwbare partner waar we graag mee blijven werken!

5.0
Star Star Star Star Star
Ellen/ Boehringer

Voor een complex portal hebben wij SMIT Digitaal Vakmanschap ingeschakeld. Na wat opstartproblemen is er door de werknemers van SMIT een waardevolle tool ontwikkeld, waar zowel wij als onze klanten, elke dag dankbaar gebruik van maken.

4.0
Star Star Star Star
Ard/ NIPO

In maart 2024 is onze nieuwe website gelanceerd. Gemaakt door en gehost bij SMIT. Design was op basis van corporate huisstijl met eigen stijlelementen. Veel aandacht is gegeven aan site performance, waardoor website hoog scoort op SEO, accessibility en best practices.

5.0
Star Star Star Star Star
Nick/ Mannenbox

SMIT heeft ons super geholpen met het zetten van de volgende stap met onze webshop. Wij hadden behoefte aan een partij die ons kon faciliteren in een stabiele server die bestand is tegen pieken in bezoekersaantallen. SMIT heeft meer dan dat geleverd. Een uiterst professionele partij, heel toegankelijk, snel in hun reactie en ze weten echt waar ze het over hebben. Aanrader!

5.0
Star Star Star Star Star
Marco/ VOO

SMIT is technisch sterk, ze kunnen goed luisteren naar de businessvraag achter de it-oplossing en zijn zakelijk betrouwbaar. Kortom: een goede partner voor je IT-innovaties.

5.0
Star Star Star Star Star