Automatisering & Scripting
Automation Scripts & Legacy PL/SQL Vervanging
Ontwerp en implementatie van een bibliotheek van Maximo automation scripts ter vervanging van legacy PL/SQL-triggers, event-driven verwerking via Azure Service Bus en een gestructureerde datamappinglaag.
Challenge
The challenge
De organisatie had jaren aan bedrijfslogica verzameld in Oracle PL/SQL-triggers die direct op het Maximo-schema waren geplaatst. Deze triggers waren niet gedocumenteerd, moeilijk te testen en blokkeerden de databasemigratie naar SQL Server, omdat SQL Server stored procedures qua syntax en gedrag wezenlijk verschillen.
Buiten de database-afhankelijkheid had de bestaande aanpak geen gestandaardiseerde logging, geen foutafhandelingspatronen en geen traceerbaarheid — waardoor het oplossen van productie-incidenten een tijdrovend handmatig proces was. Diverse integraties maakten gebruik van polling-patronen die latentie introduceerden en onnodige databasebelasting veroorzaakten.
Approach
The approach
- Alle PL/SQL-triggers en -procedures gecatalogiseerd per functioneel domein: levenscyclus werkorders, assetupdates, PM-generatie en goedkeuringsrouting. Elk item gekoppeld aan een doelautomation script of integratie-event.
- Maximo automation scripts in Jython geïmplementeerd volgens een gestandaardiseerde sjabloon: gestructureerde logging naar een aangepaste logtabel, uitzonderingsafhandeling met rollback-ondersteuning en een configuratiegedreven aanpak zonder hardgecodeerde waarden.
- Op polling gebaseerde integraties vervangen door Azure Service Bus-subscriptions, waarmee integratielatentie sterk werd gereduceerd en onnodige databasebelasting werd geëlimineerd.
- Een datamappinglaag geïntroduceerd met Python-gebaseerde transformatiescripts voor inkomende en uitgaande payloads, waarbij bedrijfslogica werd gescheiden van transportlogica.
- Een testinfrastructuur opgezet via een speciale TST Maximo-omgeving, waar scripts met gecontroleerde invoerdata konden worden geactiveerd en gevalideerd.
Ontwerpprincipe
Elk automation script is configuratiegedreven. Bedrijfsregels worden opgeslagen in een MAXVARS- of aangepaste configuratietabel — niet hardgecodeerd in de scriptlogica. Dit maakt configuratiewijzigingen door niet-ontwikkelaars mogelijk zonder scriptuitrol en maakt elk script afzonderlijk testbaar.
Outcome
The result
- Alle Oracle-specifieke PL/SQL uit het Maximo-schema verwijderd, waarmee de SQL Server-migratie werd gedeblokkeerd.
- Integratielatentie met meer dan 60% gereduceerd door event-driven Service Bus-messaging in plaats van polling.
- Gestandaardiseerde automation script-bibliotheek met consistente foutafhandeling, logging en configuratiepatronen — meer dan 30 scripts.
- Verbeterde reactietijd bij incidenten: gestructureerde logs brengen de oorzaak nu binnen minuten aan het licht.
- Automation scripts volledig versiebeheerd in Azure DevOps met geautomatiseerde uitrolpipelines.
Technology
Technology stack
Maximo Automation ScriptsJythonAzure Service BusPythonAzure DevOps
Similar challenge in your environment?
Discuss the specifics with Magiq Minds. No generic advice — just a direct technical conversation about your situation.