Das ist das Programm, welches über das API QUSLJOB die Jobs ermittelt, die den Selektionskriterien in der *ENTRY PLIST entsprechen. Das Programm habe ich vor über 10 Jahren in RPG III programmiert und dann später nur nach RPG IV umgesetzt. So sieht das Teil auch aus, aber es tut seinen Dienst. Ich habe es seinerzeit MOD014R genannt.

PHP-Code:
 *-------------------------------------------------------------------------------------------*
 *                                                                                           *
 * 
Jobs im System ermitteln                                                                  *
 *                                                                                           *
 *-------------------------------------------------------------------------------------------*
 *                                                                                           
 * 
Allgemeine Felddeklarationen API                                                          
D USRSPC          S             20A   INZ
('MOD014U   QTEMP     ')                            
D CURENT          S             10S 0                                                        
 
Binäre Felddefinitionen                                                                   
D                 DS                                                                         
D USSIZE                  1      4B 0                                                        
D GENLEN                  5      8B 0                                                        
D RTVLEN                  9     12B 0                                                        
D STRPOS                 13     16B 0                                                        
D NUMFLD                 17     20B 0                                                        
D KEYFLD                 21     24B 0                                                        
 
Jobname                                                                                   
D JOJOB           DS                                                                         
D  JOJONA                 1     10                     
D  JOJOBE                11     20                     
D  JOJONR                21     26                     
 
Headerdaten Userspace                               
D GENHDR          DS                                   
D  OFFSET                 1      4B 0                  
D  NUMENT                 9     12B 0                  
D  LSTSIZ                13     16B 0                  
 
Satzaufbau Format JOBL0200                          
D RTVVAR          DS                                   
D  JAJONA                 1     10                     
D  JAJOBE                11     20                     
D  JAJONR                21     26                     
D  JAINJI                27     42                     
D  JAJOST                43     52                     
D  JAJOTY                53     53                     
D  JAJOUT                54     54                     
D  JARESV                55     56                     
D  JAAJS                 81     84                     
 
Fehlermeldungen API                                 
D ERRCOD          DS                                   
D  BYTPRO                 1      4B 0                  
D  BYTAVA                 5      8B 0                  
D  EXCID                  9     15                     
D  RSRVD                 16     16                                                                    
D  EXCDTA                17    116                                                                    
 
*                                                                                                    
 *-------------------------------------------------------------------------------------------*        
 *                                                                                                    
 * 
ÜBERGABEPARAMTER FÜR DIESES PROGRAMM                                                               
 
*                                                                                                    
C     *ENTRY        PLIST                                                                             
C                   PARM                    P0_PRCSTS        10            
<--> VERARBEITUNGSSTATUS   
C                   PARM                    P0_JONA          10            
<--> JOBNAME               
C                   PARM                    P0_JOBE          10            
<--> JOBBENUTZERNAME       
C                   PARM                    P0_JONR           6            
<--> JOBNUMMER             
C                   PARM                    P0_JOST          10            
<--> JOBSTATUS             
C                   PARM                    P0_JOTY           1            
<--> JOBTYP                
C                   PARM                    P0_JOUT           1            
<--- JOBUNTERTYP           
C                   PARM                    P0_AJS            4            
<--- AKTIVER JOBSTATUS     
 
*                                                                                                    
 *-------------------------------------------------------------------------------------------*        
 *                                                                                                    
 * 
INFORMATIONEN ZU DEN JOBS IN DEN USERSPACE STELLEN                                                 
C                   
IF        P0_PRCSTS '*OPEN'                                                     
C                   EXSR      SR005                                                                   
C                   
ENDIF                                                                             
 * 
INFORMATIONEN ZU DEN JOBS AUS DEM USERSPACE ABRUFEN                                                
C                   
IF        P0_PRCSTS '*QUERY'                                              
C                   EXSR      SR010                                                             
C                   
ENDIF                                                                       
 * 
PROGRAMMENDE                                                                                 
C                   
IF        P0_PRCSTS '*CLOSE'                                              
C                   SETON                                        LR                             
C                   
ELSE                                                                        
C                   RETURN                                                                      
C                   ENDIF                                                                       
 *                                                                                              
 *-------------------------------------------------------------------------------------------*  
 * 
INFORMATIONEN ZU DEN JOBS IN DEN USERSPACE STELLEN                                        *  
 *-------------------------------------------------------------------------------------------*  
 *                                                                                              
C     SR005         BEGSR                                                                       
 
VERARBEITUNGSSTATUS SETZEN                                                                   
C                   MOVEL
(P)  '*CLOSE'      P0_PRCSTS                                           
 
ERSTELLUNG EINES USERSPACES                                                                  
C                   MOVE      
*BLANKS       ERRCOD                                              
C                   Z
-ADD     *ZERO         BYTPRO                                              
C                   CALL      
'QUSCRTUS'                                                        
C                   PARM                    USRSPC                                              
C                   PARM      
*BLANKS       USEXAT           10                                 
C                   PARM      1024          USSIZE                                              
C                   PARM      
' '           USINIT            1           
C                   PARM      
'*CHANGE '    USAUTH           10           
C                   PARM      
*BLANKS       USTEXT           50           
C                   PARM      
'*YES    '    USREPL           10           
C                   PARM                    ERRCOD                        
C                   
IF        EXCID = *BLANKS                             
 
EINSTELLEN DER JOBS IN DEN USERSPACE                                   
C                   MOVE      P0_JONA       JOJONA                        
C                   MOVE      P0_JOBE       JOJOBE                        
C                   MOVE      P0_JONR       JOJONR                        
C                   Z
-ADD     1             NUMFLD                        
C                   Z
-ADD     0101          KEYFLD                        
C                   MOVE      
*BLANKS       ERRCOD                        
C                   Z
-ADD     *ZERO         BYTPRO                        
C                   CALL      
'QUSLJOB'                                   
C                   PARM                    USRSPC                        
C                   PARM      
'JOBL0200'    JOFONA            8           
C                   PARM                    JOJOB                         
C                   PARM                    P0_JOST                       
C                   PARM                    ERRCOD                        
C                   PARM                    P0_JOTY                       
C                   PARM                    NUMFLD                        
C                   PARM                    KEYFLD                        
C                   
IF        EXCID = *BLANKS                             
 
ABRUF DER HEADERINFORMATIONEN DES USERSPACE                                                   
C                   Z
-ADD     125           STRPOS                                               
C                   Z
-ADD     16            GENLEN                                               
C                   MOVE      
*BLANKS       ERRCOD                                               
C                   Z
-ADD     *ZERO         BYTPRO                                               
C                   CALL      
'QUSRTVUS'                                                         
C                   PARM                    USRSPC                                               
C                   PARM                    STRPOS                                               
C                   PARM                    GENLEN                                               
C                   PARM                    GENHDR                                               
C                   PARM                    ERRCOD                                               
C                   
IF        EXCID = *BLANKS                                                    
C                   Z
-ADD     *ZERO         CURENT                                               
C                   MOVEL
(P)  '*QUERY'      P0_PRCSTS                                            
C                   
ENDIF                                                                        
C                   ENDIF                                                                        
C                   ENDIF                                                                        
C                   ENDSR                                                                        
 
*                                                                                               
 *-------------------------------------------------------------------------------------------*   
 * 
INFORMATIONEN ZU DEN JOBS AUS DEM USERSPACE ABRUFEN                                       *   
 *-------------------------------------------------------------------------------------------*   
 *                                                                                               
C     SR010         BEGSR                                                                        
 
FEHLERKENNZEICHEN SETZEN                                                     
C                   MOVEL
(P)  '*CLOSE'      P0_PRCSTS                           
 
NÄCHSTE LISTENPOSITION                                                       
C                   ADD       1             CURENT                              
 
KEINE EINTRÄGE MEHR IN DER LISTE VORHANDEN                                   
C                   
IF        CURENT NUMENT                                   
 
USERSPACE LÖSCHEN                                                            
C                   MOVE      
*BLANKS       ERRCOD                              
C                   Z
-ADD     *ZERO         BYTPRO                              
C                   CALL      
'QUSDLTUS'                                        
C                   PARM                    USRSPC                              
C                   PARM                    ERRCOD                              
 
ÜBERGABEPARAMETER LÖSCHEN                                                    
C                   EXSR      SR015                                             
C                   
ELSE                                                        
 * 
ABRUF DER EINTRÄGE IM USERSPACE                                              
C                   
EVAL      STRPOS OFFSET + ((CURENT 1) * LSTSIZ) + 1     
C                   Z
-ADD     LSTSIZ        RTVLEN                              
C                   MOVE      
*BLANKS       ERRCOD                              
C                   Z
-ADD     *ZERO         BYTPRO                              
C                   CALL      
'QUSRTVUS'                                        
C                   PARM                    USRSPC                              
C                   PARM                    STRPOS                              
C                   PARM                    RTVLEN                              
C                   PARM                    RTVVAR                                              
C                   PARM                    ERRCOD                                              
C                   
IF        EXCID = *BLANKS                                                   
C                   MOVE      JAJONA        P0_JONA                                             
C                   MOVE      JAJOBE        P0_JOBE                                             
C                   MOVE      JAJONR        P0_JONR                                             
C                   MOVE      JAJOST        P0_JOST                                             
C                   MOVE      JAJOTY        P0_JOTY                                             
C                   MOVE      JAJOUT        P0_JOUT                                             
C                   MOVE      JAAJS         P0_AJS                                              
C                   MOVEL
(P)  '*QUERY'      P0_PRCSTS                                           
C                   
ENDIF                                                                       
C                   ENDIF                                                                       
C                   ENDSR                                                                       
 
*                                                                                              
 *-------------------------------------------------------------------------------------------*  
 * 
ÜBERGABEPARAMETER LÖSCHEN                                                                 *  
 *-------------------------------------------------------------------------------------------*  
 *                                                                                              
C     SR015         BEGSR                                                                       
C                   MOVE      
*BLANKS       P0_JONA                                             
C                   MOVE      
*BLANKS       P0_JOBE                                             
C                   MOVE      
*BLANKS       P0_JONR                                             
C                   MOVE      
*BLANKS       P0_JOST                                             
C                   MOVE      
*BLANK        P0_JOTY                             
C                   MOVE      
*BLANK        P0_JOUT                             
C                   MOVE      
*BLANKS       P0_AJS                              
C                   ENDSR 
Das ist ein Programm, welches das obige Programm aufruft, um festzustellen, ob die TCP/IP Server aktiv sind, die ja auch nur Jobs im System sind.

PHP-Code:
     /*-------------------------------------------------------------------------------------------*/   
     /*                                                                                           */   
     /* PRÜFEN TCP/IP SERVER STATUS                                                               */   
     /*                                                                                           */   
     /*-------------------------------------------------------------------------------------------*/   

                                                                                                       
     /* PROGRAMMBEGINN */                                                                              
             
PGM        PARM(&SERVER &MSGMODE)                                                         
                                                                                                       
     
/* VARRIABLE DEKLARIEREN */                                                                       
             
DCL        VAR(&SERVERTYPE(*CHARLEN(10)                                               
             
DCL        VAR(&MSGMODETYPE(*CHARLEN(10)                                              
             
DCL        VAR(&SVRNAMETYPE(*CHARLEN(10)                                              
             
DCL        VAR(&PRCSTSTYPE(*CHARLEN(10/* <--> VERARBEITUNGSSTATUS */                
             
DCL        VAR(&JONATYPE(*CHARLEN(10)   /* <--> JOBNAME             */                
             
DCL        VAR(&JOBETYPE(*CHARLEN(10)   /* <--> JOBBENUTZER         */                
             
DCL        VAR(&JONRTYPE(*CHARLEN(6)    /* <--> JOBNUMMER           */                
             
DCL        VAR(&JOSTTYPE(*CHARLEN(10)   /* <--> JOBSTATUS           */                
             
DCL        VAR(&JOTYTYPE(*CHARLEN(1)    /* <--> JOBTYP              */                
             
DCL        VAR(&JOUTTYPE(*CHARLEN(1)    /* <--- JOBUNTERTYP         */     
             
DCL        VAR(&AJSTYPE(*CHARLEN(4)     /* <--- AKTIVER JOB STATUS  */     
                                                                                            
     /* ES SOLL KEIN SERVER GEPRÜFT WERDEN */                                               
             
IF         COND(&SERVER *EQ '*NONE'THEN(GOTO +                               
                          
CMDLBL(STEP999))                                                  
                                                                                            
     
/* SERVER SNMP */                                                                      
             
IF         COND(&SERVER *EQ '*SNMP'THEN(DO)                                  
             
CHGVAR     VAR(&JONAVALUE('QTMSNMP')                                         
             
CHGVAR     VAR(&SVRNAMEVALUE('SNMP')                                         
             
ENDDO                                                                          
                                                                                            
     
/* SERVER ROUTED */                                                                    
             
IF         COND(&SERVER *EQ '*ROUTED'THEN(DO)                                
             
CHGVAR     VAR(&JONAVALUE('QTRTD*')                                          
             
CHGVAR     VAR(&SVRNAMEVALUE('ROUTED')                                       
             
ENDDO                                                                          
                                                                                            
     
/* SERVER BOOTP */                                                                     
             
IF         COND(&SERVER *EQ '*BOOTP'THEN(DO)                                 
             
CHGVAR     VAR(&JONAVALUE('QTBOOTP')                                         
             
CHGVAR     VAR(&SVRNAMEVALUE('BOOTP')                                        
             
ENDDO                                                                          
                                                                                          
     
/* SERVER TFTP */                                                                    
             
IF         COND(&SERVER *EQ '*TFTP'THEN(DO)                                
             
CHGVAR     VAR(&JONAVALUE('QTTFT*')                                        
             
CHGVAR     VAR(&SVRNAMEVALUE('TFTP')                                       
             
ENDDO                                                                        
                                                                                          
     
/* SERVER DNS */                                                                     
             
IF         COND(&SERVER *EQ '*DNS'THEN(DO)                                 
             
CHGVAR     VAR(&JONAVALUE('QTOBDNS')                                       
             
CHGVAR     VAR(&SVRNAMEVALUE('DNS')                                        
             
ENDDO                                                                        
                                                                                          
     
/* SERVER DHCP */                                                                    
             
IF         COND(&SERVER *EQ '*DHCP'THEN(DO)                                
             
CHGVAR     VAR(&JONAVALUE('QTODDHCPS')                                     
             
CHGVAR     VAR(&SVRNAMEVALUE('DHCP')                                       
             
ENDDO                                                                        
                                                                                          
     
/* SERVER DDM */                                                                     
             
IF         COND(&SERVER *EQ '*DDM'THEN(DO)                                 
             
CHGVAR     VAR(&JONAVALUE('QRWTLSTN')                                      
             
CHGVAR     VAR(&SVRNAMEVALUE('DDM')                                        
             
ENDDO                                                                        
                                                                                   
     
/* SERVER TELNET */                                                           
             
IF         COND(&SERVER *EQ '*TELNET'THEN(DO)                       
             
CHGVAR     VAR(&JONAVALUE('QTGTELNETS')                             
             
CHGVAR     VAR(&SVRNAMEVALUE('TELNET')                              
             
ENDDO                                                                 
                                                                                   
     
/* SERVER FTP */                                                              
             
IF         COND(&SERVER *EQ '*FTP'THEN(DO)                          
             
CHGVAR     VAR(&JONAVALUE('QTFTP*')                                 
             
CHGVAR     VAR(&SVRNAMEVALUE('FTP')                                 
             
ENDDO                                                                 
                                                                                   
     
/* SERVER SMTP */                                                             
             
IF         COND(&SERVER *EQ '*SMTP'THEN(DO)                         
             
CHGVAR     VAR(&JONAVALUE('QTSMTPSRVR')                             
             
CHGVAR     VAR(&SVRNAMEVALUE('SMTP')                                
             
ENDDO                                                                 
                                                                                   
     
/* SERVER LPD */                                                              
             
IF         COND(&SERVER *EQ '*LPD'THEN(DO)                          
             
CHGVAR     VAR(&JONAVALUE('QTLPD*')                                 
             
CHGVAR     VAR(&SVRNAMEVALUE('LPD')                                 
             
ENDDO                                                                 
                                                                          
     
/* SERVER HTTP */                                                    
             
IF         COND(&SERVER *EQ '*HTTP'THEN(DO)                
             
CHGVAR     VAR(&JONAVALUE('QTMHHTTP')                      
             
CHGVAR     VAR(&SVRNAMEVALUE('HTTP')                       
             
ENDDO                                                        
                                                                          
     
/* SERVER WSG */                                                     
             
IF         COND(&SERVER *EQ '*WSG'THEN(DO)                 
             
CHGVAR     VAR(&JONAVALUE('QTWSG*')                        
             
CHGVAR     VAR(&SVRNAMEVALUE('WSG')                        
             
ENDDO                                                        
                                                                          
     
/* SERVER POP */                                                     
             
IF         COND(&SERVER *EQ '*POP'THEN(DO)                 
             
CHGVAR     VAR(&JONAVALUE('QTPST*')                        
             
CHGVAR     VAR(&SVRNAMEVALUE('POP')                        
             
ENDDO                                                        
                                                                          
     
/* SERVER REXEC */                                                   
             
IF         COND(&SERVER *EQ '*REXEC'THEN(DO)               
             
CHGVAR     VAR(&JONAVALUE('QTRXC*')                        
             
CHGVAR     VAR(&SVRNAMEVALUE('REXEC')                      
             
ENDDO                                                        
                                                                                           
     
/* SELEKTIONSKRITERIEN FÜR DIE ABZURUFENDEN JOBS FÜLLEN */                            
             
CHGVAR     VAR(&JOBEVALUE('*ALL')                                           
             
CHGVAR     VAR(&JONRVALUE('*ALL')                                           
             
CHGVAR     VAR(&JOSTVALUE('*ACTIVE')                                        
             
CHGVAR     VAR(&JOTYVALUE('B')                                              
                                                                                           
     
/* VERARBEITUNGSSTATUS SETZEN */                                                      
             
CHGVAR     VAR(&PRCSTSVALUE('*OPEN')                                        
                                                                                           
     
/* JOBS ABRUFEN */                                                                    
             
CALL       PGM(MOD014RPARM(&PRCSTS &JONA &JOBE &JONR +                      
                          &
JOST &JOTY &JOUT &AJS)                                          
                                                                                           
     
/* DER SERVER IST NICHT AKTIV */                                                      
             
IF COND(&PRCSTS *EQ '*CLOSE'THEN(DO)                                        
             
SNDPGMMSG  MSGID(MOD0001MSGF(MOD001M) +                                     
                          
MSGDTA(&SVRNAMEMSGTYPE(&MSGMODE)                               
             
ENDDO                                                                         
                                                                                           
     
/* DER SERVER IST AKTIV */                                                            
             
IF COND(&PRCSTS *EQ '*QUERY'THEN(DO)                                        
             
CHGVAR     VAR(&PRCSTSVALUE('*CLOSE')                                       
             
CALL       PGM(MOD014RPARM(&PRCSTS &JONA &JOBE &JONR +                      
                          &
JOST &JOTY &JOUT &AJS)                   
             
SNDPGMMSG  MSGID(MOD0002MSGF(MOD001M) +              
                          
MSGDTA(&SVRNAMEMSGTYPE(*COMP)           
             
ENDDO                                                  
                                                                    
     
/* PROGRAMMENDE */                                             
 
STEP999:    ENDPGM 
Ich denke, dass Du damit etwas anfangen kannst.