Wie, ik?
Ik heb de afgelopen 2 weken geprobeerd een functie iets generieker te krijgen. We hebben een programma dat uit een heleboel bronnen diverse acties kan ondernemen. Een van die acties is "Start A". Nu kan het starten van A uit verschillende hoeken gebeuren. Iemand kan met een PDA een bepaalde barcode scannen, een voice-response-dinges bellen en wat getalletjes inrossen, etc. Tevens is er de mogelijkheid het starten van A te plannen en dus alarm te geven als A niet wordt gestart door desbetreffende persoon etc.
En al die dingen moeten gecontroleerd / teruggekoppeld / afgevlagd worden zodra A gestart wordt. Een soort stroomschema is dus:
Persoon Start A ->
- Programma vinkt B af
- Programma koppelt C terug
- Programma zet status D in E
- Programma zus
- Programma zo.
"Programma" zou eigenlijk een service moeten zijn. Is het niet. "Programma" is eigenlijk een WTF op zichzelf overigens, er zijn klanten waarbij we in het weekeinde met VPN en RDP inloggen om "Programma" te resetten zodat het niet vastloopt

, maar even voor dit "Starten A".
"Programma" is dus een Windows programma, formpje en alles. En nu komt het: dat formpje heeft een knop "Start A", oftewel de zoveelste manier om A te starten. Echter, die knop zet geen item in een queue en roept geen businessobjecten aan. Was het maar zo'n feest dat een van beiden erin zou zitten (Nu ja, we hebben wel een queue-achtig-iets: tekstbestanden op een FTP-server). Nee, de knop gaat zelf in allerlei databases dingen aanpassen. Het stroomschema van die knop:
Persoon Start A ->
- Programma zus
- Programma vinkt B af
Mijn taak de afgelopen 2 weken: zorgen dat zowel de knop als alle andere mogelijkheden om A te starten allemaal hetzelfde doen. Probleem daarbij is echter wel dat de goede "Start A" een interne procedure in een (Delphi) TTimer.OnTimer is. Vrij letterlijk met 30 globale variabelen, aanroepen naar 15 andere (gedeelde) interne procedures etc
Om daar dus de scope van te kunnen veranderen (intern in een private procedure naar een public procedure) moet ik VEEL aanpassen, alle 30 globale vars meegeven (ik heb ze nu in 2 records gegroepeerd, maar echt mooi is het natuurlijk niet
Terwijl ik dit typ bedenk ik me dat ik ook een bestandje naar de FTP kan uploaden om zo A te laten starten, maar aan de andere kant is dat ongetwijfeld niet real-time genoeg voor ze... Die timer liep iedere 2 minuten af (standaard en minimumwaarde, langzamer kan), en dat heb ik laatst al aan moeten passen naar een minimum van 15 seconde. Ik kan niet wachten tot de hoster in de telefoon klimt waarom er iedere 15 seconde de hele FTP-site leeggezogen wordt, keer 10 (10 klanten die ieder "Programma" draaien).