This code to create a TYPETASK from JCTJOBID and SUBSYS in SMF records includes
a bunch of old values that you still might see.

Barry

/* COPYRIGHT (C) 2002,2021 MERRILL CONSULTANTS, DALLAS, TEXAS, USA */
 /* LAST UPDATED: JAN  5, 2021.  CHANGE 39.002.                 */
 /* THIS ROUTINE EXPECTS JCTJOBID AND JOB AS 8-BYTE CHARACTERS, */
 /* AND SUBSYS AS A 4-BYTE CHARACTER AS INPUT.                  */

 /* JCTJOBID OF ONE LETTER AND 7 DIGITS EXIST, BUT THE MAXIMUM  */
 /* JESNR IS 999999 BECAUSE THE 1ST WHEN SEVEN IS ALWAYS ZERO.  */

 /* IT CREATES THE 4-BYTE CHARACTER TYPETASK AND NUMERIC JESNR  */
 /* VARIABLES TYPETASK AND JESNR NEED TO BE LABELED IN INVOKER. */

 /* IT IS %INCLUDE-D AFTER JCTJOBID AND SUBSYS EXIST.           */

 TYPETASK='    ';
 JESNR=.;
 IF SUBSYS='    '      THEN SUBSYS='    '; /*EARLY ASIDS,TMNT */
 IF JCTJOBID=JOB OR (JCTJOBID LE ' ' AND SUBSYS='STC')
   OR (JCTJOBID EQ '0000000000000000'X AND SUBSYS='SMS')
   OR (JCTJOBID EQ 'MSTR' AND SUBSYS='SMS')
   OR (JCTJOBID EQ 'INIT' AND SUBSYS='SMS') THEN DO;
   JESNR=.;
   TYPETASK='STC';
 END;
 ELSE DO;
   IF INPUT(SUBSTR(JCTJOBID,2,7),?? 7.) GT . THEN DO;
     JESNR=INPUT(SUBSTR(JCTJOBID,2,7),?? 7.);
     TYPETASK=SUBSTR(JCTJOBID,1,1);
   END;
   ELSE IF INPUT(SUBSTR(JCTJOBID,3,6),?? 6.) GT . THEN DO;
     JESNR=INPUT(SUBSTR(JCTJOBID,3,6),?? 6.);
     TYPETASK=SUBSTR(JCTJOBID,1,2);
     /* THE PRINTWAY SMF 6 RECORDS HAVE PSNNNNNN */
   END;
   ELSE IF INPUT(SUBSTR(JCTJOBID,4,5),?? 5.) GT . THEN DO;
     JESNR=INPUT(SUBSTR(JCTJOBID,4,5),?? 5.);
     TYPETASK=SUBSTR(JCTJOBID,1,3);
   END;
   ELSE IF INPUT(SUBSTR(JCTJOBID,5,4),?? 4.) GT . THEN DO;
     JESNR=INPUT(SUBSTR(JCTJOBID,5,4),?? 4.);
     TYPETASK=SUBSTR(JCTJOBID,1,4);
   END;
   IF SUBSYS='TCP ' OR TYPETASK='PS ' THEN TYPETASK='TCP ';
   ELSE IF SUBSYS='TCPE' THEN TYPETASK='TCPE';
   ELSE IF SUBSYS='PSF ' THEN TYPETASK='PSF ';
   ELSE IF SUBSYS='VPS ' THEN TYPETASK='VPS ';
   ELSE IF TYPETASK=:'J' THEN DO;
     IF      SUBSYS='TSO ' THEN TYPETASK='TSU ';
     ELSE IF SUBSYS='JES2' THEN TYPETASK='JOB ';
     ELSE IF SUBSYS='JES3' THEN TYPETASK='JOB ';
     ELSE IF SUBSYS='STC ' THEN TYPETASK='STC ';
     ELSE IF SUBSYS='OMVS' THEN TYPETASK='OMVS';
     ELSE                       TYPETASK='JOB ';
   END;
   ELSE IF TYPETASK=:'O' OR SUBSYS='OMVS' THEN TYPETASK='OMVS';
   ELSE IF TYPETASK=:'G' THEN TYPETASK='JOBG';
   ELSE IF TYPETASK=:'S' THEN TYPETASK='STC ';
   ELSE IF TYPETASK=:'A' THEN DO;
     IF SUBSYS GT '    ' THEN TYPETASK=SUBSYS;
     ELSE                     TYPETASK='APPC';
   END;
   ELSE IF TYPETASK=:'T' THEN TYPETASK='TSU ';
   ELSE IF TYPETASK=:'I' AND SUBSYS='STC' THEN TYPETASK='STC  ';
   ELSE DO;
     IF      SUBSYS='STC ' THEN TYPETASK='STC ';
     ELSE IF SUBSYS='TSO ' THEN TYPETASK='TSU ';
     ELSE IF SUBSYS='JES2' THEN TYPETASK='JOB ';
     ELSE IF SUBSYS='JES3' THEN TYPETASK='JOB ';
     ELSE IF SUBSYS='STC ' THEN TYPETASK='STC ';
     ELSE IF SUBSYS='SAR ' THEN TYPETASK='SAR ';
     ELSE IF SUBSYS='OMVS' THEN TYPETASK='OMVS';
     ELSE DO;
       IF PRODUCT='        ' THEN PRODUCT='    ';;
       IF SUBTYPE=.          THEN SUBTYPE=.;
       IF PRODUCT='PERFMON ' AND SUBTYPE=3 THEN DO;
         TYPETASK='STC';
         SUBSYS='PERFMON';
       END;
     END;
   END;
   IF TYPETASK=' ' THEN DO;
     BADVJESN+1;
     IF BADVJESN LE 2 THEN
       PUT '*** WARNING - TYPETASK NOT DECODED: ' /  +10
           _N_= SYSTEM= ID= SUBTYPE= JOB=
           JCTJOBID= SUBSYS= TYPETASK= JESNR= ;
   END;
   &MACJESN;
 END;
  /* END OF MEMBER VGETJESN - GET JESNR AND TYPETASK FROM JCTJOBID */

-----Original Message-----
From: IBM Mainframe Discussion List <[email protected]> On Behalf Of 
Peter Relson
Sent: Tuesday, August 13, 2024 7:02 AM
To: [email protected]
Subject: Re: Couple of questions about job id

<snip>
For a given ASID, look at OUCB +B0.  JES2, STC or TSO should appear.
</snip>

That is field OUCBSUBN which is not a programming interface. Its commentary 
leads me to think that there are additional possible values.

Peter Relson
z/OS Core Technology Design

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
[email protected] with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to