Nu om dage taler IT branchen rigtig meget om genbrug. En af de klassiske udfordringer i den forbindelse er, at mange installationer siden tidernes morgen har lavet to udgaver af mange under-programmer, en til online og en til batch. Det skyldes typisk, at under-programmet for at kunne udføre sin funktion skal benytte forskellige API'er afhængig af, om under-programmet benyttes i online eller i batch.
For at kunne bruge samme under-program til at kalde et online API og et batch API, så må under-programmet være i stand til at finde ud af, om det bliver eksekveret i online eller i batch. Nu er definitionen af online ret afhængig af, hvad den enkelte installation benytter som transaktionsprocessor. Men batch er næsten altid et job, der bliver udført under kontrol af JES. Dette tip viser, hvordan man finder ud af om ens program bliver eksekveret under JES eller ej. I de to program-eksempler er BATCH altså lig JES og ONLINE alt det andet.
Først lidt COBOL-kode til at finde ud af om et program kører online eller batch:
Og herefter en PL/1 procedure, der gør det samme.
Og til sidst lidt om faldgruberne. Det er muligt, men sjældent benyttet, at køre CICS som et batch job. Her vil tippet falde håbløst til jorden. Det skelner heller ikke mellem et started task og et TSO online task, og kan dermed ikke benyttes til at finde ud af, om programmet bliver afviklet under TSO eller CICS eller IMS eller noget helt tredie for den sags skyld.