Preview
Using a daily planning application under ISPF to conveniently manage and maintain a to-do calendar list was a brilliant idea, especially in the 1980’s, before the availability of personal digital assistants (e.g. PalmPilot or Newton MessagePad)!
On CBTTAPE.ORG, CBT231 contains such an application named TASKLIST written by Joe Veilleux from APC contributed circa 1985. Download CBT231 for reference and read $DOC.
Joe Veilleux presented SPF Hints, Samples and Tricks as part of SHARE 66 in March 1984. CBT file 230 includes a handout with Joe’s presentation. The TASKLIST application ran under ISPF 2.1 from what I surmised reading his presentation material. Also, download CBT230 (EBCDIC data content) for a good ISPF read!
In this post, TASKLIST components will be transformed to execute under ISPF 2.2 (ISPF-like product from Wally Mclaughlin) on MVS 3.8J / TSO.
The original authors functionality and logic will remain unchanged unless modification is necessary for adoption under MVS 3.8J TSO / ISPF 2.2.
The application suite includes a CLIST, application and tutorial panels, message and skeleton files and a PL/I program.
At first glance… skeleton! This functional area requires an alternate solution as ISPF 2.2 does not support skeletons (file tailoring).
Second, tutorial panels cannot be presented in a tutorial fashion as ISPF 2.2 merely displays the first help panel and returns to the previous panel upon subsequently depressing ENTER key.
Without further ado, let’s get started….
Tutorial Panels
Panel | Description |
---|---|
TASKTCON | Tutorial Menu |
TASKTGNR | General Information |
TASKTUPD | Add/Delete/Update Tasks 1 of 2 |
TASKTUP2 | Add/Delete/Update Tasks 2 of 2 |
TASKTPRT | Print Tasks List |
TASKTNB | Add/Update Notebook Entries 1 of 2 |
TASKTNB2 | Add/Update Notebook Entries 2 of 2 |
TASKTEND | Saving Tasks List and Exiting |
Modifications:
- Re-define header (line 1) without use of EXPAND characters.
ISPF 2.2 can only properly handle one set of EXPAND verbs. Otherwise, the result of two EXPAND verbs does not center correctly on the terminal line. - Place attributes in column 1 of each line in the )BODY section to render a Mod-2 real-estate.
ISPF 2.2 wraps text across the 3270 real-estate (whether a Mod-2 or Mod-5 terminal) resulting in a ‘skewed’ panel presentation. - Insert &Z = ” statement, if needed.
ISPF 2.2 appears to not declare &Z as a general Z-type variable for use in a panel definition. - Insert *,’?’ statement.
Required per LBTUTOR tutorial panel requirement.
Below are two snippets of panel TASKTCON highlighting the modifications (after version) in contrast to the original. The remaining panels underwent similar changes.
Original:
)BODY EXPAND(//) %TUTORIAL-/-/- Online Tasks-List -/-/-TUTORIAL %COMMAND ===>_ZCMD + % +Using the%Online Tasks-list+program, you can maintain an online list of tasks. You can sort the list in various ways, and you can get a hardcopy of the list. The sections listed below will be presented in sequence (hit%ENTER+to go on to the next screen) or you may select a particular subject by number: % 1+- General information about the Online Tasks-List program % 2+- Adding, Deleting, Updating tasks on your Tasks-List % 3+- Printing your Tasks-List: the PRT command % 4+- Adding and updating "notebook" entries: NOTEBOOK and "N" commands % 5+- Saving the Tasks-List and exiting: END, CANCEL, and SAVE commands +Enter%&EPF+to exit the tutorial and return to the tasks list +Hit%ENTER+to go on to the next tutorial panel )INIT &EPF = PFK(END) IF (&EPF = &Z) &EPF = 'END' &D = TRUNC(&EPF,2) &DT = .TRAIL &D = TRUNC(&DT,1) IF (&D = '0') &DT = .TRAIL &EPF = 'PF&DT' )PROC /******************************************************************/ /* Panelid: TASKTCON */ /* Author: Joe Veilleux, MIS Tech Support */ /* History: 27Feb85-JJV-1.00-Original experimental release */ /* 14Mar85-JJV-1.01-Added NOTEBOOK tutorial reference */ /* Purpose: Table of contents for Tasks-List Utility Tutorial */ /******************************************************************/ &ZSEL = TRANS(&ZCMD 1,TASKTGNR 2,TASKTUPD 3,TASKTPRT 4,TASKTNB 5,TASKTEND ) &ZTRAIL = .TRAIL )END
After:
)BODY EXPAND(//) %----------------------------- Online Tasks-List ------------------------------- %COMMAND ===>_ZCMD + % +Using the%Online Tasks-list+program, you can maintain an online list of tasks. +You can sort the list in various ways, and you can get a hardcopy of the list. + +The sections listed below will be presented in sequence (hit%ENTER+to go on to +the next screen) or you may select a particular subject by number: + % 1+- General information about the Online Tasks-List program % 2+- Adding, Deleting, Updating tasks on your Tasks-List % 3+- Printing your Tasks-List: the PRT command % 4+- Adding and updating "notebook" entries: NOTEBOOK and "N" commands % 5+- Saving the Tasks-List and exiting: END, CANCEL, and SAVE commands + +Enter%&EPF+to exit the tutorial and return to the tasks list +Hit%ENTER+to go on to the next tutorial panel )INIT Z = '' &EPF = PFK(END) IF (&EPF = &Z) &EPF = 'END' &D = TRUNC(&EPF,2) &DT = .TRAIL &D = TRUNC(&DT,1) IF (&D = '0') &DT = .TRAIL &EPF = 'PF&DT' )PROC /******************************************************************/ /* Panelid: TASKTCON */ /* Author: Joe Veilleux, MIS Tech Support */ /* History: 27Feb85-JJV-1.00-Original experimental release */ /* 14Mar85-JJV-1.01-Added NOTEBOOK tutorial reference */ /* Purpose: Table of contents for Tasks-List Utility Tutorial */ /******************************************************************/ &ZSEL = TRANS(&ZCMD 1,TASKTGNR 2,TASKTUPD 3,TASKTPRT 4,TASKTNB 5,TASKTEND *,'?' ) &ZTRAIL = .TRAIL )END
Application Panels
Panel | Description |
---|---|
TASKNDSN | Specify Notebook Dataset Name |
TASKTBD | Update List of Tasks |
TASKUPD | Update Task List entry |
Below are two snippets of panel TASKTBD highlighting the modifications (after version) in contrast to the original. The remaining panels underwent similar changes.
Before:
)ATTR # TYPE(INPUT) INTENS(LOW) CAPS(ON) @ TYPE(OUTPUT) INTENS(LOW) SKIP(ON) + TYPE(TEXT) INTENS(LOW) SKIP(ON) )BODY EXPAND(//) %-/-/- Online Tasks-List Update Panel -/-/- %COMMAND ===>_ZCMD %SCROLL ===>_AMT + % +Current sort order: &TASKSRTF +Dataset name of notebook: &TASKNDSN + % Target Est %Act Category P Date Hour Stat Task Description %--- -------- - ------- ---- ---- ---------------------------------------------- )MODEL CLEAR(A) #A @CATEGORY@Z@Z @Z @Z @TASK +--- -------- - ------- ---- ---- ---------------------------------------------- )INIT /******************************************************************/ /* Panelid: TASKTBD */ /* Author: Joe Veilleux, MIS Tech Support */ /* History: 27Feb85-JJV-1.00-Original experimental release */ /* 28Feb85-JJV-1.01-Correct to allow SAVE command */ /* 08Mar85-JJV-1.02-Implement notebook facility */ /* Purpose: This panel displays a user's tasks list for update */ /******************************************************************/ .ZVARS = '(PRIORITY TARGDATE HOURS STATUS)' .HELP = TASKTCON &ZHTOP = TASKTCON &AMT = PAGE &ZTDMARK = '=============================== BOTTOM OF TABLE + ===============================' /* Format current date and save in shared pool (for printing) */ &CURMMM = TRANS(&ZMONTH 01,January 02,February 03,March 04,April 05,May 06,June 07,July 08,August 09,September 10,October 11,November 12,December) &CURDATE = '&ZDAY &CURMMM 19&ZYEAR' VPUT (CURDATE) SHARED )REINIT IF (.MSG ^= &Z) .ATTR(.CURSOR) = 'COLOR(RED)' .AUTOSEL = YES .CSRROW = &CRP )PROC &CMD = TRANS( TRUNC (&ZCMD,' ') I,INPUT INP,INPUT CAN,CANCEL NB,NOTEBOOK NOTE,NOTEBOOK *,*) VER (&CMD,LIST,INPUT,CANCEL,NOTEBOOK,PRT,SORT,SAVE,MSG=TASK003E) IF (&CMD = 'SORT') &ZTRAIL = .TRAIL &SF1 = TRANS(TRUNC(&ZTRAIL,' ') CAT,CATEGORY PRIO,PRIORITY HOUR,HOURS STAT,STATUS *,*) VER (&SF1,LIST,CATEGORY,PRIORITY,DATE,HOURS,STATUS MSG=TASK003S) &ZTRAIL = .TRAIL &SF2 = TRANS(TRUNC(&ZTRAIL,' ') CAT,CATEGORY PRIO,PRIORITY HOUR,HOURS STAT,STATUS *,*) VER (&SF2,LIST,CATEGORY,PRIORITY,DATE,HOURS,STATUS MSG=TASK003S) &ZTRAIL = .TRAIL &SF3 = TRANS(TRUNC(&ZTRAIL,' ') CAT,CATEGORY PRIO,PRIORITY HOUR,HOURS STAT,STATUS *,*) VER (&SF3,LIST,CATEGORY,PRIORITY,DATE,HOURS,STATUS MSG=TASK003S) &ZTRAIL = .TRAIL &SF4 = TRANS(TRUNC(&ZTRAIL,' ') CAT,CATEGORY PRIO,PRIORITY HOUR,HOURS STAT,STATUS *,*) VER (&SF4,LIST,CATEGORY,PRIORITY,DATE,HOURS,STATUS MSG=TASK003S) &ZTRAIL = .TRAIL &SF5 = TRANS(TRUNC(&ZTRAIL,' ') CAT,CATEGORY PRIO,PRIORITY HOUR,HOURS STAT,STATUS *,*) VER (&SF5,LIST,CATEGORY,PRIORITY,DATE,HOURS,STATUS MSG=TASK003S) &ZTRAIL = .TRAIL IF (&CMD = 'INPUT') &INPN = .TRAIL IF (&INPN = &Z) &INPN = 1 VER (&INPN,NB,NUM) IF (&CMD = 'PRT') &PRTDEST = .TRAIL IF (&PRTDEST ^= &Z) &D = TRUNC(&PRTDEST,1) VER (&D,LIST,U,R,MSG=TASK003D) &D = .TRAIL VER (&D,NB,NUM,MSG=TASK003D) IF (&CMD = 'NOTEBOOK') &NBDSN = .TRAIL VER (&NBDSN,DSNAME) IF (&ZTDSELS ^= 0000) &ACT = TRUNC(&A,1) VER (&ACT,LIST,R,D,U,N,MSG=TASK003L) &N = .TRAIL IF (&N = &Z) &N = 1 VER (&N,NB,NUM) )END
After:
)ATTR # TYPE(INPUT) INTENS(LOW) CAPS(ON) @ TYPE(OUTPUT) INTENS(LOW) SKIP(ON) + TYPE(TEXT) INTENS(LOW) SKIP(ON) )BODY EXPAND(//) %---------------------- Online Tasks-List Update Panel ------------------------- %COMMAND ===>_ZCMD %SCROLL ===>_AMT + % +Current sort order: &TASKSRTF +Dataset name of TASKLIST: &TASKNDSN + % Target Est %Act Category P Date Hour Stat Task Description %--- -------- - ------- ---- ---- ---------------------------------------------- )MODEL CLEAR(A) #A @CATEGORY@Z@Z @Z @Z @TASK +--- -------- - ------- ---- ---- ---------------------------------------------- )INIT /******************************************************************/ /* Panelid: TASKTBD */ /* Author: Joe Veilleux, MIS Tech Support */ /* History: 27Feb85-JJV-1.00-Original experimental release */ /* 28Feb85-JJV-1.01-Correct to allow SAVE command */ /* 08Mar85-JJV-1.02-Implement TASKLIST facility */ /* Purpose: This panel displays a user's tasks list for update */ /******************************************************************/ .ZVARS = '(PRIORITY TARGDATE HOURS STATUS)' .HELP = TASKTCON &ZHTOP = TASKTCON &AMT = PAGE &Z = '' &ZTDMARK = '=============================== BOTTOM OF TABLE + ===============================' /* Format current date and save in shared pool (for printing) */ &CURMMM = TRANS(&ZMONTH 01,January 02,February 03,March 04,April 05,May 06,June 07,July 08,August 09,September 10,October 11,November 12,December) &CURDATE = '&ZDAY &CURMMM 20&ZYEAR' VPUT (CURDATE) SHARED )REINIT /*IF (.MSG ^= &Z) */ /*.ATTR(.CURSOR) = 'COLOR(RED)' */ /*.AUTOSEL = YES */ /*.CSRROW = &CRP */ )PROC &CMD = TRANS( TRUNC (&ZCMD,' ') I,INPUT INP,INPUT CAN,CANCEL NB,TASKLIST NOTE,TASKLIST *,*) VER (&CMD,LIST,INPUT,CANCEL,TASKLIST,PRT,SORT,SAVE UP,DOWN,MSG=TASK003E) IF (&CMD = 'SORT') &ZTRAIL = .TRAIL &SF1 = TRANS(TRUNC(&ZTRAIL,' ') CAT,CATEGORY PRIO,PRIORITY HOUR,HOURS STAT,STATUS *,*) VER (&SF1,LIST,CATEGORY,PRIORITY,DATE,HOURS,STATUS MSG=TASK003S) &ZTRAIL = .TRAIL &SF2 = TRANS(TRUNC(&ZTRAIL,' ') CAT,CATEGORY PRIO,PRIORITY HOUR,HOURS STAT,STATUS *,*) VER (&SF2,LIST,CATEGORY,PRIORITY,DATE,HOURS,STATUS MSG=TASK003S) &ZTRAIL = .TRAIL &SF3 = TRANS(TRUNC(&ZTRAIL,' ') CAT,CATEGORY PRIO,PRIORITY HOUR,HOURS STAT,STATUS *,*) VER (&SF3,LIST,CATEGORY,PRIORITY,DATE,HOURS,STATUS MSG=TASK003S) &ZTRAIL = .TRAIL &SF4 = TRANS(TRUNC(&ZTRAIL,' ') CAT,CATEGORY PRIO,PRIORITY HOUR,HOURS STAT,STATUS *,*) VER (&SF4,LIST,CATEGORY,PRIORITY,DATE,HOURS,STATUS MSG=TASK003S) &ZTRAIL = .TRAIL &SF5 = TRANS(TRUNC(&ZTRAIL,' ') CAT,CATEGORY PRIO,PRIORITY HOUR,HOURS STAT,STATUS *,*) VER (&SF5,LIST,CATEGORY,PRIORITY,DATE,HOURS,STATUS MSG=TASK003S) &ZTRAIL = .TRAIL IF (&CMD = 'INPUT') &INPN = .TRAIL IF (&INPN = &Z) &INPN = 1 VER (&INPN,NB,NUM) IF (&CMD = 'PRT') &PRTDEST = .TRAIL IF (&PRTDEST ^= &Z) &D = TRUNC(&PRTDEST,1) VER (&D,LIST,U,R,MSG=TASK003D) &D = .TRAIL VER (&D,NB,NUM,MSG=TASK003D) IF (&CMD = 'TASKLIST') &NBDSN = .TRAIL VER (&NBDSN,DSNAME) IF (&ZTDSELS ^= 0000) &ACT = TRUNC(&A,1) VER (&ACT,LIST,R,D,U,N,MSG=TASK003L) &N = .TRAIL IF (&N = &Z) &N = 1 VER (&N,NB,NUM) )END
Modifications:
- Re-define header (line 1) without use of EXPAND characters.
ISPF 2.2 can only properly handle one set of EXPAND verbs. Otherwise, the result of two EXPAND verbs will not center correctly on the terminal line. - Place attributes in column 1 of each line in the )BODY section to render a Mod-2 real-estate.
ISPF 2.2 wraps text across the 3270 real-estate (whether a Mod-2 or Mod-5 terminal) resulting in a ‘skewed’ panel presentation. - Insert &Z = ” statement, if needed.
ISPF 2.2 appears to not declare &Z as a general Z-type variable for use in a panel definition. - Comment .MSG, .ATTR(), .AUTOSEL and .CSRROW assignment statements.
ISPF 2.2 does not the assignment statement or invalid use in declared panel section. - Expand VER statement to include UP and DOWN for a LIST-type.
ISPF 2.2 passes the PF7/PF8 (UP/DOWN) commands via the COMMAND field and the panel logic must validate or results in an error message (INVALID COMMAND). - Other modifications applied are self-explanatory.
Skeleton (File Tailoring)
Panel | Description |
---|---|
TASKPRTN | Print Tasks List to sequential file |
X1A100 | PL/I program to obtain user details |
PRTTASKS (new) | COBOL program to create tasks-list report to sequential file |
Modification:
- None. TASKPRTN is not used as ISPF 2.2 does not support file tailoring.
X1A100 will not be used as it is customized for Joe Veilleux installation at APC.
New program, PRTTASKS, substituted to facilitate tasks-list printing is integrated into the PRT function executed in CLIST SPTASKDR.
Message
Panel | Description |
---|---|
TASK00 | Tasks List Messages |
Modifications:
- No changes required for use under ISPF 2.2!
CLIST
Panel | Description |
---|---|
SPTASKDR | Tasks List CLIST Driver |
Modifications to SPTASKDR were extensive due to transforming TASKLIST functionality into MVS 3.8J TSO and ISPF 2.2. The modifications are solely based on my personal experience with ISPF 2.2 (ISPF-like product from Wally Mclaughlin).
Below is the after version of SPTASKDR highlighting modifications.
After:
PROC 0 TEST TBLDSN(TASKLIST) 00010000 /*TITLE SPTASKDR: DRIVER FOR ONLINE TASKS-LIST APPLICATION (CSS) */00020000 /* AUTHOR: JOE VEILLEUX */00030000 /* HISTORY: 27FEB85-JJV-1.00-ORIGINAL EXPERIMENTAL RELEASE */00040000 /* 28FEB85-JJV-1.01-ADD ACK FOR SORT, SAVE */00050001 /* 08MAR85-JJV-1.02-ADD NOTEBOOK, CHANGE DEFAULT SORT ORDER */00060003 /* 18MAR85-JJV-1.03-CHANGE DEFAULT SORT ORDER AGAIN */00070003 /* ------------------------------------------------------------------ */LB00 /* Modified by Larry Belmontes to execute under MVS 3.8J TSO and */LB00 /* ISPF 2.2 (ISPF-like product from Wally Mclaughlin. */LB00 /* ------------------------------------------------------------------ */LB00 CONTROL MAIN END(ENDO) NOMSG 00080000 /* ------------------------------------------------------------------ */LB00 /* Obtain ZUSER to fully qualify all DSN for ALLOCATIONS and */LB00 /* ISPF EDIT statements */LB00 ISPEXEC VGET (ZUSER) SHARED LB00 /* */LB00 /* Declare variables used in CLIST to prevent error messages */LB00 SET CRP = 0 LB00 SET ZTDSELS = 0 LB00 /* */LB00 /* Declare table column variables */LB00 /* NAMES(CATEGORY TASK PRIORITY TARGDATE TARGSORT HOURS STATUS) */LB00 /* (8) (46) (1) (7) (10) (4) (4) */LB00 SET CATEGORY = &STR(12345678) LB00 SET TASK = &STR(1234567890123456789012345678901234567890123456) LB00 SET PRIORITY = &STR(1) LB00 SET TARGDATE = &STR(1234567) LB00 SET TARGSORT = &STR(1234567890) LB00 SET HOURS = &STR(1234) LB00 SET STATUS = &STR(1234) LB00 /* ------------------------------------------------------------------ */LB00 IF &TEST EQ TEST THEN CONTROL LIST SYMLIST CONLIST MSG 00090000 ISPEXEC VGET (TASKSRTF) PROFILE 00100000 IF &LASTCC EQ 8 OR &TASKSRTF EQ THEN SET &TASKSRTF = &STR(**UNKNOWN**) 00110002 ISPEXEC VGET (TASKNDSN) PROFILE 00120002 IF &LASTCC EQ 8 OR &TASKNDSN EQ THEN SET &TASKNDSN = &STR(**NOT SET**) 00130002 /* Dropped LIBRARY and SHARE options from TBOPEN */LB00 ISPEXEC TBOPEN TASKLIST WRITE 00140000 IF &LASTCC EQ 8 THEN DO 00150000 /* Dropped LIBRARY and SHARE options from TBCREATE */LB00 ISPEXEC TBCREATE TASKLIST WRITE + 00160000 NAMES(CATEGORY TASK PRIORITY TARGDATE TARGSORT HOURS STATUS) 00170000 IF &LASTCC NE 0 THEN DO 00180000 ISPEXEC SETMSG MSG(TASK001S) 00190000 EXIT 00200000 ENDO 00210000 ISPEXEC SETMSG MSG(TASK001T) 00220000 ISPEXEC TBSORT TASKLIST + 00230002 FIELDS(STATUS,C,D PRIORITY,N,A HOURS,N,D TARGSORT,N,A) 00240003 SET &TASKSRTF = &STR(STATUS(D) PRIORITY HOURS(D) DATE) 00250003 ISPEXEC VPUT (TASKSRTF) PROFILE 00260000 ENDO 00270000 /* SET FLAG TO DELETE "PRINT" DATASET ON EXIT */ 00280000 SET &PRTDEL = 00290000 SET &RC = 0 00300000 SET &ZTDTOP = 0 00310000 SET &UPDTFLAG = 00320000 /* DISPLAY THE TABLE FOR UPDATE UNTIL "END" OR "CANCEL" */ 00330000 DO WHILE 1=1 00340000 IF &RC EQ 4 THEN ISPEXEC TBDISPL TASKLIST POSITION(CRP) 00350000 ELSE DO 00360000 /* REPOSITION THE TABLE AS THE USER LAST SAW IT */ 00370000 ISPEXEC TBTOP TASKLIST 00380000 ISPEXEC TBSKIP TASKLIST NUMBER(&ZTDTOP) 00390000 /* HONOR A PENDING SCROLL REQUEST (IF ANY) */ 00400000 ISPEXEC VGET (ZVERB ZSCROLLN) 00410000 IF &ZVERB EQ UP THEN ISPEXEC TBSKIP TASKLIST NUMBER(-&ZSCROLLN) 00420000 ELSE IF &ZVERB EQ DOWN THEN ISPEXEC TBSKIP TASKLIST + 00430000 NUMBER(&ZSCROLLN) 00440000 /* NOW REDISPLAY THE TABLE */ 00450000 ISPEXEC TBDISPL TASKLIST PANEL(TASKTBD) POSITION(CRP) 00460000 ENDO 00470000 SET &RC = &LASTCC 00480000 IF &CMD EQ CANCEL OR &RC GT 4 THEN GOTO LOOPEXIT /* EXIT LOOP */ 00490000 ELSE IF &CMD EQ SORT THEN DO 00500000 IF &SF1 EQ THEN DO 00510000 SET &SF1 = STATUS 00520000 SET &SF2 = PRIORITY 00530003 SET &SF3 = HOURS 00540003 SET &SF4 = DATE 00550003 SET &SF5 = 00560000 ENDO 00570000 SET &SORTFLDS = 00580000 SET &TASKSRTF = 00590000 SET &I = 1 00600000 DO WHILE &I LT 6 00610000 SET &SF = SF&I 00620000 SET &S = &&&SF 00630000 IF &S EQ CATEGORY THEN DO 00640000 SET &SORTFLDS = &STR(&SORTFLDS CATEGORY,C,A) 00650000 SET &TASKSRTF = &STR(&TASKSRTF CATEGORY) 00660000 ENDO 00670000 ELSE IF &S EQ PRIORITY THEN DO 00680000 SET &SORTFLDS = &STR(&SORTFLDS PRIORITY,N,A) 00690000 SET &TASKSRTF = &STR(&TASKSRTF PRIORITY) 00700000 ENDO 00710000 ELSE IF &S EQ DATE THEN DO 00720000 SET &SORTFLDS = &STR(&SORTFLDS TARGSORT,N,A) 00730000 SET &TASKSRTF = &STR(&TASKSRTF DATE) 00740000 ENDO 00750000 ELSE IF &S EQ HOURS THEN DO 00760000 SET &SORTFLDS = &STR(&SORTFLDS HOURS,N,D) 00770000 SET &TASKSRTF = &STR(&TASKSRTF HOURS(D)) 00780000 ENDO 00790000 ELSE IF &S EQ STATUS THEN DO 00800000 SET &SORTFLDS = &STR(&SORTFLDS STATUS,C,D) 00810000 SET &TASKSRTF = &STR(&TASKSRTF STATUS(D)) 00820000 ENDO 00830000 SET &I = &I + 1 00840000 ENDO 00850000 ISPEXEC VPUT (TASKSRTF) PROFILE 00860000 ISPEXEC TBSORT TASKLIST FIELDS(&SORTFLDS) 00870000 ISPEXEC SETMSG MSG(TASK005R) 00880001 ENDO 00890000 ELSE IF &CMD EQ SAVE THEN DO 00900000 /* Dropped REPLCOPY and LIBRARY options from TBSAVE */LB00 ISPEXEC TBSAVE TASKLIST PAD(15) 00910000 SET &UPDTFLAG = 00920000 ISPEXEC SETMSG MSG(TASK005S) 00930001 ENDO 00940000 ELSE IF &CMD EQ INPUT THEN DO 00950000 ISPEXEC CONTROL DISPLAY SAVE 00960000 DO WHILE &INPN GE 1 00970000 ISPEXEC TBVCLEAR TASKLIST 00980000 ISPEXEC DISPLAY PANEL(TASKUPD) 00990000 IF &LASTCC EQ 0 THEN DO 01000000 ISPEXEC TBADD TASKLIST ORDER 01010000 SET &UPDTFLAG = YES 01020000 ENDO 01030000 SET &INPN = &INPN-1 01040000 ENDO 01050000 ISPEXEC CONTROL DISPLAY RESTORE 01060000 ENDO 01070000 ELSE IF &CMD EQ NOTEBOOK THEN DO 01080002 ISPEXEC CONTROL DISPLAY SAVE 01090002 IF &NBDSN EQ THEN DO /* EDIT NOTEBOOK DATASET */ 01100002 ISPEXEC VGET (TASKNDSN) PROFILE 01110002 /* Added &STR for TASKNDSN */LB00 IF &LASTCC NE 0 OR &STR(&TASKNDSN) EQ THEN + 01120002 ISPEXEC DISPLAY PANEL(TASKNDSN) 01130002 IF &LASTCC EQ 0 THEN DO 01140002 ISPEXEC VPUT (TASKNDSN) PROFILE 01150002 ERROR DO 01160002 ERROR DO 01170002 ISPEXEC SETMSG MSG(TASK006E) 01180002 GOTO SKPNBALC 01190002 ENDO 01200002 ATTR NBATTR RECFM(V B) LRECL(80) BLKSIZE(6233) 01210002 /* ------------------------------------------------------------------ */LB00 /* Concatenate into &MYSTR removing trailing spaces from */LB00 /* variables used in &UNSTRX SET statement */LB00 SET UNSTRX = &STR(&ZUSER..&TASKNDSN($TASK$)) LB00 CUTIL00 UNSTR UNSTRX LB00 SET I = 1 LB00 SET MYSTR = LB00 SET &STRX = &STR(&&UNSTRX) LB00 DO WHILE &I <= &UNSTRX0 LB00 SET MYSTR = &STR(&MYSTR&STRX&I) LB00 SET I = &I + 1 LB00 ENDO LB00 /* ------------------------------------------------------------------ */LB00 /* Use &MYSTR instead of &TASKNDSN($TASK$) for DSN option */LB00 ALLOC F(N) DSN('&MYSTR') NEW REUSE + 01220002 SP(10 10) TRACKS DIR(5) USING(NBATTR) 01230002 FREE ATTR(NBATTR) 01240002 ERROR OFF 01250002 ENDO 01260002 /* ------------------------------------------------------------------ */LB00 /* Concatenate into &MYSTR removing trailing spaces from */LB00 /* variables used in &UNSTRX SET statement */LB00 SET UNSTRX = &STR(&ZUSER..&TASKNDSN) LB00 CUTIL00 UNSTR UNSTRX LB00 SET I = 1 LB00 SET MYSTR = LB00 SET &STRX = &STR(&&UNSTRX) LB00 DO WHILE &I <= &UNSTRX0 LB00 SET MYSTR = &STR(&MYSTR&STRX&I) LB00 SET I = &I + 1 LB00 ENDO LB00 /* ------------------------------------------------------------------ */LB00 /* Use &MYSTR instead of &TASKNDSN for DSN option */LB00 ALLOC F(N) DSN('&MYSTR') SHR REUSE 01270002 SKPNBALC: ERROR OFF 01280002 FREE F(N) 01290002 ERROR OFF 01300002 ISPEXEC CONTROL ERRORS RETURN 01310002 /* Use &MYSTR instead of &TASKNDSN for DATASET option */LB00 ISPEXEC EDIT DATASET('&MYSTR') 01320002 IF &LASTCC GT 4 THEN ISPEXEC SETMSG MSG(TASK006T) 01330002 ISPEXEC CONTROL ERRORS CANCEL 01340002 ENDO 01350002 ENDO 01360002 ELSE DO 01370002 SET &TASKNDSN = &NBDSN 01380002 ISPEXEC VPUT (TASKNDSN) PROFILE 01390002 ENDO 01400002 ISPEXEC CONTROL DISPLAY RESTORE 01410002 ENDO 01420002 ELSE IF &CMD EQ PRT THEN DO 01430000 ERROR DO 01440000 ERROR OFF 01450000 FREE ATTR(VBA) 01460000 /* Using FBA 133 1330 in place of VBA specification for printing */LB00 ATTR VBA RECFM(F B A) LRECL(133) BLKSIZE(1330) DSORG(PS) 01470000 /* Intentionally replaced ISPFILE with RPTOUT for DDNAME */LB00 ALLOC F(RPTOUT) DSN(TASKTEMP.LISTING) REUSE + 01480000 USING(VBA) SP(1 1) TRACKS 01490000 SET &PRTDEL = DELETE 01500000 ENDO 01510000 /* Intentionally replaced ISPFILE with RPTOUT for DDNAME */LB00 ALLOC F(RPTOUT) DSN(TASKTEMP.LISTING) OLD REUSE 01520000 ERROR OFF 01530000 ISPEXEC SELECT PGM(PRTTASKS) 01540000 /* ------------------------------------------------------------------ */LB00 /* Removed File Tailoring statements */LB00 /* ------------------------------------------------------------------ */LB00 IF &PRTDEST EQ THEN + 01580000 PRINTO TASKTEMP.LISTING NOHEADING NOMSG 01590000 /* Drop UCS option from PRINTO statement */LB00 ELSE PRINTO TASKTEMP.LISTING NOHEADING NOMSG DEST(&PRTDEST) 01600000 ISPEXEC SETMSG MSG(TASK003P) 01610000 ENDO 01620000 ELSE IF &ZTDSELS GE 1 THEN DO 01630000 IF &ACT EQ D THEN - 01640000 DO WHILE &N GE 1 01650000 ISPEXEC TBDELETE TASKLIST 01660000 ISPEXEC TBSKIP TASKLIST 01670000 /* CHECK RETURN CODE TO GUARD AGAINST DELETING TOO MANY */ 01680000 IF &LASTCC NE 0 THEN SET &N = 0 01690000 ELSE SET &N = &N-1 01700000 SET &UPDTFLAG = YES 01710000 /* Clear selection field */LB00 SET &A = &STR() LB00 ENDO 01720000 ELSE IF &ACT EQ R THEN - 01730000 DO WHILE &N GE 1 01740000 ISPEXEC TBADD TASKLIST ORDER 01750000 SET &N = &N-1 01760000 SET &UPDTFLAG = YES 01770000 /* Clear selection field */LB00 SET &A = &STR() LB00 ENDO 01780000 ELSE IF &ACT EQ U THEN DO 01790000 /* Clear selection field */LB00 SET &A = &STR() LB00 ISPEXEC CONTROL DISPLAY SAVE 01800000 ISPEXEC DISPLAY PANEL(TASKUPD) 01810000 IF &LASTCC EQ 0 THEN DO 01820000 ISPEXEC TBPUT TASKLIST ORDER /* RESAVE ROW IN TABLE */ 01830000 SET &UPDTFLAG = YES 01840000 ENDO 01850000 ISPEXEC CONTROL DISPLAY RESTORE 01860000 ENDO 01870000 ELSE IF &ACT EQ N THEN DO 01880002 /* Clear selection field */LB00 SET &A = &STR() LB00 ISPEXEC CONTROL DISPLAY SAVE 01890002 ISPEXEC VGET (TASKNDSN) PROFILE 01900002 /* Added &STR for TASKNDSN */LB00 IF &LASTCC NE 0 OR &STR(&TASKNDSN) EQ THEN - 01910002 ISPEXEC DISPLAY PANEL(TASKNDSN) 01920002 IF &LASTCC EQ 0 THEN DO 01930002 ISPEXEC VPUT (TASKNDSN) PROFILE 01940002 ERROR DO 01950002 ERROR DO 01960002 ISPEXEC SETMSG MSG(TASK006E) 01970002 GOTO SKPNALC 01980002 ENDO 01990002 ATTR NBATTR RECFM(V B) LRECL(80) BLKSIZE(6233) 02000002 /* ------------------------------------------------------------------ */LB00 /* Concatenate into &MYSTR removing trailing spaces from */LB00 /* variables used in &UNSTRX SET statement */LB00 SET UNSTRX = &STR(&ZUSER..&TASKNDSN) LB00 CUTIL00 UNSTR UNSTRX LB00 SET I = 1 LB00 SET MYSTR = LB00 SET &STRX = &STR(&&UNSTRX) LB00 DO WHILE &I <= &UNSTRX0 LB00 SET MYSTR = &STR(&MYSTR&STRX&I) LB00 SET I = &I + 1 LB00 ENDO LB00 /* ------------------------------------------------------------------ */LB00 /* Use &MYSTR instead of &TASKNDSN($TASK$) for DSN option */LB00 ALLOC F(N) DSN('&MYSTR') NEW REUSE + 02010002 SP(10 10) TRACKS DIR(5) USING(NBATTR) 02020002 FREE ATTR(NBATTR) 02030002 ERROR OFF 02040002 ENDO 02050002 /* ------------------------------------------------------------------ */LB00 /* Concatenate into &MYSTR removing trailing spaces from */LB00 /* variables used in &UNSTRX SET statement */LB00 SET UNSTRX = &STR(&ZUSER..&TASKNDSN) LB00 CUTIL00 UNSTR UNSTRX LB00 SET I = 1 LB00 SET MYSTR = LB00 SET &STRX = &STR(&&UNSTRX) LB00 DO WHILE &I <= &UNSTRX0 LB00 SET MYSTR = &STR(&MYSTR&STRX&I) LB00 SET I = &I + 1 LB00 ENDO LB00 /* ------------------------------------------------------------------ */LB00 /* Use &MYSTR instead of &TASKNDSN for DSN option */LB00 ALLOC F(N) DSN('&MYSTR') SHR 02060002 SKPNALC: ERROR OFF 02070002 FREE F(N) 02080002 ERROR OFF 02090002 /* ------------------------------------------------------------------ */LB00 /* Concatenate into &MYSTR removing trailing spaces from */LB00 /* variables used in &UNSTRX SET statement */LB00 SET UNSTRX = &STR(&ZUSER..&TASKNDSN(&CATEGORY)) LB00 CUTIL00 UNSTR UNSTRX LB00 SET I = 1 LB00 SET MYSTR = LB00 SET &STRX = &STR(&&UNSTRX) LB00 DO WHILE &I <= &UNSTRX0 LB00 SET MYSTR = &STR(&MYSTR&STRX&I) LB00 SET I = &I + 1 LB00 ENDO LB00 /* ------------------------------------------------------------------ */LB00 /* Use &MYSTR instead of &TASKNDSN for DATASET option */LB00 ISPEXEC EDIT DATASET('&MYSTR') 02100002 IF &LASTCC EQ 0 THEN ISPEXEC SETMSG MSG(TASK006S) 02110002 ELSE ISPEXEC SETMSG MSG(TASK006N) 02120002 ENDO 02130002 ISPEXEC CONTROL DISPLAY RESTORE 02140002 ENDO 02150002 ENDO 02160000 ENDO 02170000 /* Intentionally replaced ISPFILE with RPTOUT for DDNAME */LB00 LOOPEXIT: - 02180000 FREE F(RPTOUT) ATTR(VBA) &PRTDEL 02190000 IF &CMD EQ CANCEL THEN DO 02200000 ISPEXEC TBEND TASKLIST 02210000 ISPEXEC SETMSG MSG(TASK002C) 02220000 ENDO 02230000 ELSE IF &UPDTFLAG EQ THEN DO 02240000 ISPEXEC TBEND TASKLIST 02250000 ISPEXEC SETMSG MSG(TASK002N) 02260000 ENDO 02270000 ELSE DO 02280000 /* Dropped REPLCOPY and LIBRARY options from TBCLOSE */LB00 ISPEXEC TBCLOSE TASKLIST PAD(15) 02290000 ISPEXEC SETMSG MSG(TASK002S) 02300000 ENDO 02310000
Modifications:
- Insert initialization type statements at start of CLIST:
Obtain value from ZUSER ISPF variable to fully qualify DSN in ALLOC and ISPF EDIT statements.
ISPF 2.2 DATASET EDIT statement appears to not properly handle non-fully qualified DSNs with a member name. This issue is rectified by using fully qualified DSNs.
For consistency, elected to apply this specific change to all DSN usage in CLIST. - Insert CLIST assignment statements for variables used in ISPF statements but not declared before usage.
ISPF 2.2 expects variables to exist before usage. - Insert CLIST assignment statements for table columns which include correct length!
ISPF 2.2 expects variables to exist before usage in TBCREATE. - Remove LIBRARAY and SHARE options for TBOPEN and TBCREATE.
ISPF 2.2 does not support the LIBRARY option.
ISPF 2.2 appears to not properly handle the SHARE tables option when closing the table resulting in an abend error. - Remove REPLCOPY and LIBRARY option in TBSAVE.
ISPF 2.2 appears to not support REPLCOPY and LIBRARY options. - Insert use of &STR function for testing variable &TASKDSN to prevent a command interpreter error.
MVS 3.8J TSO may interrupt the interpreter if a variable includes math operation symbols such as ‘*’ which &TASKNDSN may include if notebook value is not yet set. - Insert a set of statements to properly concatenate (concatenate and remove trailing spaces from each string) for strings for use as a DSN in ALLOC or ISPF EDIT statements.
CUTIL00 is used for the concatenation function.
ISPF 2.2 passes values (i.e. from panels, VGET) as-is in original variable length. - Change record format from VBA to FBA for use by PRTTASKS (print table tasks pgm)
Using LRECL=133, BLKSIZE=1330, RECFM(F B A) - Change DDNAME (ISPFILE to RPTOUT) for the PRT function.
Intentional change to prevent confusion as ISPFILE is used by file tailoring. - Change program name from X1A100 to PRTTASKS for the PRT function.
Apply new method to print tasks-list as an alternative under ISPF 2.2. - Remove file tailoring statements for the PRT function.
ISPF 2.2 does not support file tailoring. - Remove the PRINTO UCS option for the PRT function.
Intentional change as UCS options may vary across MVS 3.8J installations. - Set &A to spaces in selection processing.
ISPF 2.2 appears to not support the CLEAR option in the panel model statement.
Instead, set the selection column ($A) to spaces after each iteration to clear the selected item. - Remove REPLCOPY and LIBRARY options in TBCLOSE statement.
ISPF 2.2 appears to not support REPLCOPY and LIBRARY options.
Revised Print Function
The original tasks-list PRT functional flow invokes program X1A100 to obtain user name and other information (site specific) , followed by file tailoring (via TASKPRT skeleton) to print tasks-list report to a temporary sequential file for subsequent printing via PRINTOFF.
The alternative solution invokes a new program to create the tasks-list report thus eliminating the file-tailoring process.
The revised PRT functional flow invokes a new COBOL program PRTTASKS to print tasks-list report to a temporary sequential file which is subsequently printed via PRINTOFF.
Additional Notes
ISPF EDIT DATASET statement appears to returns RC of zero whether the edits session saves contents or cancels the edit session. Therefore, error TASK006N will never be raised under ISPF 2.2.
Prerequisites
ISPF v2.2+ (ISPF-like product from Wally Mclaughlin) is necessary to use this software.
Two user-mods, ZP60014 and ZP60038, are REQUIRED to process CLIST symbolic variables via the IKJCT441 API on MVS 3.8J before using this software. More information on user-mods ZP60014 and ZP60038 can be obtained from the following website:
http://www.prycroft6.com.au/vs2mods/
Check your system to determine if one or both user-mods are required. ZP60038 requires ZP60014.
If any, other components may be pre-requisites.
See README file for a complete list of required and/or optional software including download sites.
Software Disclaimer
In addition to TASKLIST authors disclaimers (see $DOC CBT231).
No guarantee; No warranty; Install / Use at your own risk.
This software is provided “AS IS” and without any expressed or implied warranties, including, without limitation, the implied warranties of merchantability and fitness for a particular purpose.
The author requests keeping authors name intact to any modified versions.
In addition, the author requests readers to submit any code modifications / enhancements and associated comments for consideration into a subsequent release (giving credit to contributors) thus, improving overall functionality benefiting the MVS 3.8J hobbyist public domain community.
Access TASKLIST now for a demo!
Take TASKLIST for a ‘test drive’ before downloading and installing onto your MVS38J system.
Point your TN3270 terminal emulator using TLS to
URL: mywhs.belmontes.net
PORT: 5000
TLS : Version 1.2
Once connected, log on using any of the TK4- default user ids and passcodes.
After successful logon, select option I (I for ISPF) from the TSO Applications Menu. Note, option I is not listed on the menu – this is intentional.
Start the TASKLIST tutorial for familiarization of the TASKLIST application.
From the ISPF PRIMARY OPTION MENU, type tso lbtutor tasktcon in the command field (OPTION ===>) and press ENTER.
Use PF3 to terminate tutorial.
From the ISPF PRIMARY OPTION MENU, type %SPTASKDR in the command field (OPTION ==>) and press ENTER.
The TASKLIST application panel is displayed.
Use PF3 to end TASKLIST.
Use PF3 to exit from ISPF and TSO Applications Menu returning to the TSO READY prompt.
Log off TSO.
Terminate 3270 session.
Installing TASKLIST Software
After downloading the ZIP file, open the ZIP file, open readme.txt for directions.
The initial installation task is to transfer the distribution content file (HET or XMI) from your personal computing device to MVS.
When the transfer is completed, use the associated ASCII load JCL ($inst01.JCL for HET, $RECVXMI.JCL for XMI via RECV370 or $RECVTSO.JCL for XMI using TSO RECEIVE) to submit from your personal computing device provided a TCP/IP socket reader is setup on your hosting Hercules / MVS 3.8J system.
Alternatively, copy-paste the associated JCL from the readme.txt to your 3270 emulator for MVS submission
Once the distribution files are on MVS, continue the installation procedure using supplied JCL from the MVS CNTL data set under TSO per the readme.txt instructions.
- Click here to download the zip file to your PC local drive.
The below README file includes a ZIP file content list, pre-installation requirements (notes, credits) and installation steps.
TASKLIST for MVS3.8J / Hercules . ============================== . Date: 01/29/2024 Release V0R9M00 **INITIAL software distribution * Author: Larry Belmontes Jr. * https://ShareABitofIT.net/TASKLIST-in-MVS38J * Copyright (C) 2024 Larry Belmontes, Jr. ---------------------------------------------------------------------- | TASKLIST I n s t a l l a t i o n R e f e r e n c e | ---------------------------------------------------------------------- The approach for this installation procedure is to transfer the distribution content from your personal computing device to MVS with minimal JCL and to continue the installation procedure using supplied JCL from the MVS CNTL data set under TSO. Below are descriptions of ZIP file content, pre-installation requirements (notes, credits) and installation steps. Good luck and enjoy this software as added value to MVS 3.8J! -Larry Belmontes ---------------------------------------------------------------------- | TASKLIST C h a n g e H i s t o r y | ---------------------------------------------------------------------- * * MM/DD/CCYY Version Change Description * ---------- ------- ----------------------------------------------- * 01/29/2024 0.9.00 - Initial modified version released to MVS 3.8J * hobbyist public domain * * Original work (TASKLIST) from Joe Veilleux * from CBT file 231 dated circa 1985. * * ====================================================================== * I. C o n t e n t o f Z I P F i l e | ====================================================================== o $INST00.JCL Define Alias for HLQ in Master Catalog o $INST01.JCL Load CNTL data set from distribution tape o $RECVXMI.JCL RECV370 Receive XMI SEQ to MVS PDSs o $RECVTSO.JCL TSO Receive XMI SEQ to MVS PDSs o TASKLIST.V0R9M00.HET Hercules Emulated Tape (HET) multi-file volume volser=VS0900 containing software distribution library. o TASKLIST.V0R9M00.XMI XMIT file containing software distribution library. o DSCLAIMR.TXT Disclaimer o PREREQS.TXT Required user-mods o README.TXT This File Note: See application web page for any updates to readme.txt Note: TASKLIST is an ISPF application authored by Joe Veilleux from ----- Air Products and Chemicals, Inc. This application was contributed to CBTTAPE.ORG in 1985-1986. More information at: https://www.cbttape.org/cbtdowns.htm FILE #231 Credit: Thanks to Joe Veilleux for this software and opportunity to ------- transform his application to execute under MVS 3.8J / TSO / ISPF 2.2 (ISPF-like product from Wally Mclaughlin). Note: ISPF v2.2+ (ISPF-like product from Wally Mclaughlin) must be ----- installed under MVS 3.8J TSO including associated user-mods per ISPF Installation Pre-reqs. Note: Two user-mods, ZP60014 and ZP60038, are REQUIRED to process ----- CLIST symbolic variables via the IKJCT441 API on MVS 3.8J before using this software. More information and download links at: http://www.prycroft6.com.au/vs2mods/ Note: PRINTOFF (TSO CP) is a pre-requisite for this install ----- and may be available on MVS3.8J TK3 and TK4- systems. More information at: https://www.cbttape.org/cbtdowns.htm FILE #325 - or - may be downloaded in a MVS 3.8J install-ready format from Jay Moseley's site: http://www.jaymoseley.com/hercules/cbt_ware/printoff.htm Note: CUTIL00 is a TSO utility that performs various functions using ----- CLIST variables and must be installed as a pre-requisite. More information including current version download link at:CUTIL00 for MVS 3.8JNote: LBTUTOR is an ISPF add-on that performs tutorial dialogs ----- and is OPTIONAL for this install if LBTUTOR will not be used. Current version can be downloaded and more information at:LBTUTOR in MVS38J====================================================================== * II. P r e - i n s t a l l a t i o n R e q u i r e m e n t s | ====================================================================== o The Master Catalog name for HLQ aliases. o The Master Catalog password may be required for some installation steps. o If loading via tape files, device 480 is utilized. o DATASET List after distribution library load for reference purposes: DATA-SET-NAME------------------------------- VOLUME ALTRK USTRK ORG FRMT % XT SHRABIT.TASKLIST.V0R9M00.ASM PUB006 20 2 PO FB 10 1 SHRABIT.TASKLIST.V0R9M00.CLIST PUB006 2 1 PO FB 50 1 SHRABIT.TASKLIST.V0R9M00.CNTL PUB006 20 5 PO FB 25 1 SHRABIT.TASKLIST.V0R9M00.HELP PUB006 2 1 PO FB 50 1 SHRABIT.TASKLIST.V0R9M00.ISPF PUB006 10 3 PO FB 30 1 SHRABIT.TASKLIST.V0R9M00.MACLIB PUB006 8 1 PO FB 12 1 **END** TOTALS: 62 TRKS ALLOC 13 TRKS USED 6 EXTENTS Confirm the TOTAL track allocation is available on your device. Note: A different DASD device type (e.g. 3380) may yield different usage. o TSO user-id with sufficient access rights to update SYS2.CMDPROC, SYS2.CMDLIB, SYS2.HELP, SYS2.LINKLIB and/or ISPF libraries. o For installations with a security system (e.g. RAKF), you MAY need to insert additional JOB statement information. // USER=???????,PASSWORD=???????? o Names of ISPCLIB (Clist), ISPMLIB (Message), ISPLLIB (Load) and/or ISPPLIB (Panel) libraries. o Download ZIP file to your PC local drive. o Unzip the downloaded file into a temp directory on your PC device. o Install pre-requisite (if any) software and/or user modifications. o JCL from your local device (after unzip) may be edited using Notepad or nano (based on you host OS) and submitted via TCP/IP sockets reader if your system configuration supports this option. This option can replace some copy-paste tasks during installation. For more information on submitting JCL to MVS 3.8J, seeSubmitting JCL to MVS 3.8Jo For more information on SHRABIT software distribution library, seeSHRABIT Distributions for MVS38Jo For more information on SHRABIT software installation, seeSHRABIT Installations for MVS38J====================================================================== * III. I n s t a l l a t i o n S t e p s | ====================================================================== +--------------------------------------------------------------------+ | Step 1. Determine software installation source | +--------------------------------------------------------------------+ | HET or XMI ? | +--------------------------------------------------------------------+ a) Software can be installed from one of two sources, HET or XMI. - For tape installation (HET), proceed to STEP 3. **** or - For XMIT installation (XMI), proceed to next STEP. +--------------------------------------------------------------------+ | Step 2. Load distribution source from XMI file | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.TASKLIST.V0R9M00.CNTL($RECVXMI) | | JCL Member: SHRABIT.TASKLIST.V0R9M00.CNTL($RECVTSO) | +--------------------------------------------------------------------+ ______________________________________________________________________ //RECV000A JOB (SYS),'Receive TASKLIST XMI', <-- Review and Modify // CLASS=A,MSGCLASS=X,REGION=0M, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * JOB: $RECVXMI Receive Application XMI Files * //* * using RECV370 * //* -------------------------------------------------------* //RECV PROC HLQ='SHRABIT.TASKLIST',VRM=V0R9M00,TYP=XXXXXXXX, // DSPACE='(TRK,(10,05,40))',DDISP='(,CATLG,DELETE)', // DUNIT=DISK,DVOLSER=PUB006 <-- Review and Modify //* //RECV370 EXEC PGM=RECV370 //RECVLOG DD SYSOUT=* //XMITIN DD DISP=SHR,DSN=&&XMIPDS(&TYP) //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=&&SYSUT1, // UNIT=SYSALLDA,SPACE=(CYL,(10,05)),DISP=(,DELETE,DELETE) //SYSUT2 DD DSN=&HLQ..&VRM..&TYP,DISP=&DDISP, // UNIT=&DUNIT,SPACE=&DSPACE,VOL=SER=&DVOLSER //SYSIN DD DUMMY //SYSUDUMP DD SYSOUT=* // PEND //* //* -------------------------------------------------------* //* Ensure parent HLQ alias is declared //* -------------------------------------------------------* //DEFALIAS EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * PARM GRAPHICS(CHAIN(SN)) LISTCAT ALIAS ENT(SHRABIT) /* Review and modify catalog name below */ IF LASTCC NE 0 THEN - DEFINE ALIAS(NAME(SHRABIT) RELATE(SYS1.UCAT.MVS)) /* //* //* -------------------------------------------------------* //* RECV370 TASKLIST Software Distribution //* -------------------------------------------------------* //XMIPDS EXEC RECV,TYP=XMIPDS,DSPACE='(CYL,(10,05,10),RLSE)' //RECV370.XMITIN DD DISP=SHR,DSN=your.transfer.xmi <-- XMI File //RECV370.SYSUT2 DD DSN=&&XMIPDS,DISP=(,PASS), // UNIT=SYSDA,SPACE=&DSPACE //* //CNTL EXEC RECV,TYP=CNTL //RECV370.SYSUT2 DD DDNAME=&TYP //CNTL DD DSN=&HLQ..&VRM..CNTL,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(10,10,10)), // DISP=&DDISP //* //HELP EXEC RECV,TYP=HELP //RECV370.SYSUT2 DD DDNAME=&TYP //HELP DD DSN=&HLQ..&VRM..HELP,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(02,02,02)), // DISP=&DDISP //* //CLIST EXEC RECV,TYP=CLIST //RECV370.SYSUT2 DD DDNAME=&TYP //CLIST DD DSN=&HLQ..&VRM..CLIST,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(02,02,02)), // DISP=&DDISP //* //ISPF EXEC RECV,TYP=ISPF //RECV370.SYSUT2 DD DDNAME=&TYP //ISPF DD DSN=&HLQ..&VRM..ISPF,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(10,05,10)), // DISP=&DDISP //* //ASM EXEC RECV,TYP=ASM //RECV370.SYSUT2 DD DDNAME=&TYP //ASM DD DSN=&HLQ..&VRM..ASM,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(05,10,10)), // DISP=&DDISP //* //MACLIB EXEC RECV,TYP=MACLIB //RECV370.SYSUT2 DD DDNAME=&TYP //MACLIB DD DSN=&HLQ..&VRM..MACLIB,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(02,02,02)), // DISP=&DDISP // ______________________________________________________________________ Figure 1a: $RECVXMI.JCL ______________________________________________________________________ //RECV000B JOB (SYS),'TSO RECEIVE XMI', <-- Review and Modify // CLASS=A,MSGCLASS=X,REGION=0M, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * JOB: $RECVTSO TSO RECEIVE APPLICATION XMI FILES * //* * for TASKLIST software distribution * //* -------------------------------------------------------* //* //* This JOB executes two steps: //* //* 1) IDCAMS to ensure parent HLQ alias (SHRABIT) is //* defined on master catalog //* Note: Alias definition bypassed if alias already //* ----- defined. //* //* 2) Executes TSO in BATCH mode and issues //* TSO RECEIVE commands to load the XMI distribution //* library (an XMI SEQ dataset) to a temporary PDS. //* Each software PDS is loaded from before deleting //* temporary PDS. //* //* //* This JCL may be modified to suit your installation //* needs. //* //* The TSO RECEIVE commands use INdataset, DAtaset, VOL, //* and NOPRompt parms. //* //* //* -------------------------------------------------------* //* * * //* * PROC: PBTSO * //* * Batch TSO * //* * * //* -------------------------------------------------------* //PBTSO PROC //STEP01 EXEC PGM=IKJEFT01 //SYSPROC DD DISP=SHR,DSN=SYS2.CMDPROC //*STEPLIB DD DISP=SHR,DSN=SYS2.LINKLIB //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSTSIN DD DUMMY Command Line Input //* // PEND //* //* -------------------------------------------------------* //* Ensure parent HLQ alias is declared //* -------------------------------------------------------* //DEFALIAS EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * PARM GRAPHICS(CHAIN(SN)) LISTCAT ALIAS ENT(SHRABIT) /* Review and modify catalog name below */ IF LASTCC NE 0 THEN - DEFINE ALIAS(NAME(SHRABIT) RELATE(SYS1.UCAT.MVS)) /* //* //* -------------------------------------------------------* //* TSO RECEIVE TASKLIST Software Distribution //* -------------------------------------------------------* //TSORCV EXEC PBTSO //* -------------------------------------------------------* //* Review and Modify the DSN of the transferred XMI <----- //* used in the TSO RECEIVE SYSTSIN DD. <----- //* -------------------------------------------------------* //STEP01.SYSTSIN DD * /* Modify 'SHRABIT.' with your parent HLQ, if different */ /* Modify 'your.transfer.xmi' with transferred XMI SEQ DSN */ /* Modify 'volser' with VOLSER on your system */ RECEIVE IN('your.transfer.xmi') - DA('SHRABIT.TASKLIST.V0R9M00.XMIPDS') - VOL(volser) NOPROMPT /* Receive CNTL */ RECEIVE IN('SHRABIT.TASKLIST.V0R9M00.XMIPDS(CNTL)') - DA('SHRABIT.TASKLIST.V0R9M00.CNTL') - VOL(volser) NOPROMPT /* Receive HELP */ RECEIVE IN('SHRABIT.TASKLIST.V0R9M00.XMIPDS(HELP)') - DA('SHRABIT.TASKLIST.V0R9M00.HELP') - VOL(volser) NOPROMPT /* Receive CLIST */ RECEIVE IN('SHRABIT.TASKLIST.V0R9M00.XMIPDS(CLIST)') - DA('SHRABIT.TASKLIST.V0R9M00.CLIST') - VOL(volser) NOPROMPT /* Receive ISPF */ RECEIVE IN('SHRABIT.TASKLIST.V0R9M00.XMIPDS(ISPF)') - DA('SHRABIT.TASKLIST.V0R9M00.ISPF') - VOL(volser) NOPROMPT /* Receive ASM */ RECEIVE IN('SHRABIT.TASKLIST.V0R9M00.XMIPDS(ASM)') - DA('SHRABIT.TASKLIST.V0R9M00.ASM') - VOL(volser) NOPROMPT /* Receive MACLIB */ RECEIVE IN('SHRABIT.TASKLIST.V0R9M00.XMIPDS(MACLIB)') - DA('SHRABIT.TASKLIST.V0R9M00.MACLIB') - VOL(volser) NOPROMPT /* Delete XMIPDS */ DELETE 'SHRABIT.TASKLIST.V0R9M00.XMIPDS' /* // ______________________________________________________________________ Figure 1b: $RECVTSO.JCL a) Transfer TASKLIST.V0R9M00.XMI to MVS using your 3270 emulator. Make note of the DSN assigned on MVS transfer. Use transfer IND$FILE options: NEW BLKSIZE=3200 LRECL=80 RECFM=FB - or - NEW BLKSIZE(3200) LRECL(80) RECFM(FB) Ensure the DSN on MVS exists with the correct DCB information: ORG=PS BLKSIZE=3200 LRECL=80 RECFM=FB b) If using RECV370 to load XMI, Copy and paste the $RECVXMI JCL to a PDS member, update JOB statement to conform to your installation standard. - or - If using TSO RECEIVE to load XMI, Copy and paste the $RECVTSO JCL to a PDS member, update JOB statement to conform to your installation standard. c) The first step ensures the HLQ alias is defined and the subsequent steps perform the XMI load. Review JCL and apply any modifications per your installation including the DSN assigned during the transfer above for the XMI file. d) Submit the job. e) Review job output for successful load of the following PDSs: SHRABIT.TASKLIST.V0R9M00.ASM SHRABIT.TASKLIST.V0R9M00.CLIST SHRABIT.TASKLIST.V0R9M00.CNTL SHRABIT.TASKLIST.V0R9M00.HELP SHRABIT.TASKLIST.V0R9M00.ISPF SHRABIT.TASKLIST.V0R9M00.MACLIB f) Subsequent installation steps will be submitted from members contained in the CNTL data set. g) Proceed to STEP 6. **** +--------------------------------------------------------------------+ | Step 3. Define Alias for HLQ SHRABIT in MVS User Catalog | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.TASKLIST.V0R9M00.CNTL($INST00) | +--------------------------------------------------------------------+ ______________________________________________________________________ //TASKLS00 JOB (SYS),'Def SHRABIT Alias', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * TASKLIST for MVS3.8J TSO / Hercules * //* * JOB: $INST00 Define Alias for parent HLQ SHRABIT * //* * Note: The master catalog password may be required * //* -------------------------------------------------------* //DEFALIAS EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * PARM GRAPHICS(CHAIN(SN)) LISTCAT ALIAS ENT(SHRABIT) /* Review and Modify catalog name below */ IF LASTCC NE 0 THEN - DEFINE ALIAS(NAME(SHRABIT) RELATE(SYS1.UCAT.MVS)) /* // ______________________________________________________________________ Figure 2: $INST00 JCL Note: This distribution is installed under the HLQ alias SHRABIT. $INST00 bypasses the DEFINE ALIAS action when the alias is already defined. a) Copy and paste the above JCL to a PDS member, update JOB statement to conform to your installation standard. b) Submit the job. c) Review job output for successful DEFINE ALIAS. Note: When $INST00 runs for the first time, Job step DEFALIAS returns RC=0004 due to LISTCAT ALIAS function completing with condition code of 4 and DEFINE ALIAS function completing with condition code of 0. Note: When $INST00 runs after the ALIAS is defined, Job step DEFALIAS returns RC=0000 due to LISTCAT ALIAS function completing with condition code of 0 and DEFINE ALIAS function being bypassed. +--------------------------------------------------------------------+ | Step 4. Load CNTL data set from distribution tape | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.TASKLIST.V0R9M00.CNTL($INST01) | +--------------------------------------------------------------------+ ______________________________________________________________________ //TASKLS01 JOB (SYS),'Install CNTL PDS', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * TASKLIST for MVS3.8J TSO / Hercules * //* * JOB: $INST01 Load CNTL PDS from distribution tape * //* * Note: Uses tape drive 480 * //* -------------------------------------------------------* //LOADCNTL PROC THLQ=TASKLIST,TVOLSER=VS0900, // HLQ='SHRABIT.TASKLIST',VRM=V0R9M00, // DDISP='(,CATLG,DELETE)', // TUNIT=480,DVOLSER=PUB006,DUNIT=DISK <-- Review and Modify //LOAD001 EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //INCNTL DD DSN=&THLQ..&VRM..CNTL.TAPE,UNIT=&TUNIT, // VOL=SER=&TVOLSER,DISP=OLD,LABEL=(1,SL) //CNTL DD DSN=&HLQ..&VRM..CNTL,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(10,10,10)), // DISP=&DDISP, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) // PEND //STEP001 EXEC LOADCNTL Load CNTL PDS //SYSIN DD * COPY INDD=INCNTL,OUTDD=CNTL // ______________________________________________________________________ Figure 3: $INST01 JCL a) Before submitting the above job, the distribution tape must be made available to MVS by issuing the following command from the Hercules console: DEVINIT 480 X:\dirname\TASKLIST.V0R9M00.HET READONLY=1 where X:\dirname is the complete path to the location of the Hercules Emulated Tape file. b) Issue the following command from the MVS console to vary device 480 online: V 480,ONLINE c) Copy and paste the above JCL to a PDS member, update JOB statement to conform to your installation standard. Review JCL and apply any modifications per your installation. d) Submit the job. e) Review job output for successful load of the CNTL data set. f) Subsequent installation steps will be submitted from members contained in the CNTL data set. +--------------------------------------------------------------------+ | Step 5. Load Other data sets from distribution tape | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.TASKLIST.V0R9M00.CNTL($INST02) | +--------------------------------------------------------------------+ ______________________________________________________________________ //TASKLS02 JOB (SYS),'Install Other PDSs', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * TASKLIST for MVS3.8J TSO / Hercules * //* * JOB: $INST02 Load other PDS from distribution tape * //* * Tape Volume: File 1 - CNTL * //* * File 2 - CLIST * //* * File 3 - HELP * //* * File 4 - ISPF * //* * File 5 - ASM * //* * File 6 - MACLIB * //* * Note: Default TAPE=480, DASD=DISK on PUB006 * //* -------------------------------------------------------* //LOADOTHR PROC THLQ=TASKLIST,TVOLSER=VS0900, // HLQ='SHRABIT.TASKLIST',VRM=V0R9M00, // DDISP='(,CATLG,DELETE)', // TUNIT=480,DVOLSER=PUB006,DUNIT=DISK <-- Review and Modify //LOAD02 EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //INCLIST DD DSN=&THLQ..&VRM..CLIST.TAPE,UNIT=&TUNIT, // VOL=SER=&TVOLSER,DISP=OLD,LABEL=(2,SL) //INHELP DD DSN=&THLQ..&VRM..HELP.TAPE,UNIT=&TUNIT, // VOL=SER=&TVOLSER,DISP=OLD,LABEL=(3,SL) //INISPF DD DSN=&THLQ..&VRM..ISPF.TAPE,UNIT=&TUNIT, // VOL=SER=&TVOLSER,DISP=OLD,LABEL=(4,SL) //INASM DD DSN=&THLQ..&VRM..ASM.TAPE,UNIT=&TUNIT, // VOL=SER=&TVOLSER,DISP=OLD,LABEL=(5,SL) //INMACLIB DD DSN=&THLQ..&VRM..MACLIB.TAPE,UNIT=&TUNIT, // VOL=SER=&TVOLSER,DISP=OLD,LABEL=(6,SL) //CLIST DD DSN=&HLQ..&VRM..CLIST,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(02,02,02)), // DISP=&DDISP, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) //HELP DD DSN=&HLQ..&VRM..HELP,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(02,02,02)), // DISP=&DDISP, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) //ISPF DD DSN=&HLQ..&VRM..ISPF,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(10,05,10)), // DISP=&DDISP, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) //ASM DD DSN=&HLQ..&VRM..ASM,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(05,10,10)), // DISP=&DDISP, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) //MACLIB DD DSN=&HLQ..&VRM..MACLIB,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(02,02,02)), // DISP=&DDISP, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) // PEND //* //STEP001 EXEC LOADOTHR Load ALL other PDSs //SYSIN DD * COPY INDD=INCLIST,OUTDD=CLIST COPY INDD=INHELP,OUTDD=HELP COPY INDD=INISPF,OUTDD=ISPF COPY INDD=INASM,OUTDD=ASM COPY INDD=INMACLIB,OUTDD=MACLIB // ______________________________________________________________________ Figure 4: $INST02 JCL a) Member $INST02 installs remaining data sets from distribution tape. b) Review and update JOB statement and other JCL to conform to your installation standard. c) Before submitting the above job, the distribution tape must be made available to MVS by issuing the following command from the Hercules console: DEVINIT 480 X:\dirname\TASKLIST.V0R9M00.HET READONLY=1 where X:\dirname is the complete path to the location of the Hercules Emulated Tape file. d) Issue the following command from the MVS console to vary device 480 online: V 480,ONLINE e) Submit the job. f) Review job output for successful loads. +--------------------------------------------------------------------+ | Step 6. FULL or UPGRADE Installation | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.TASKLIST.V0R9M00.CNTL($UP0900) | +--------------------------------------------------------------------+ ______________________________________________________________________ //TASKLS0U JOB (SYS),'Upgrade TASKLIST', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * TASKLIST for MVS3.8J TSO / Hercules * //* * * //* * JOB: $UP0900 * //* * Upgrade TASKLIST Software from release V0R0M00 * //* * * //* * Review JCL before submitting!! * //* -------------------------------------------------------* //* //* -------------------------------------------------------* //* * IEFBR14 * //* -------------------------------------------------------* //DUMMY EXEC PGM=IEFBR14 //SYSPRINT DD SYSOUT=* //* // ______________________________________________________________________ Figure 5: $UP1202.JCL Upgrade from previous version to V0R9M00 a) If this is the INITIAL software distribution, proceed to STEP 7. b) This software may be installed in FULL or UPGRADE from a prior version. Note: If the installed software version is NOT the most recent ----- PREVIOUS version, perform a FULL install. Note: If the installed software version is customized, a manual ----- review and evaluation is suggested to properly incorporate customizations into this software distribution before proceeding with the installation. Refer to the $UPvrmm.JCL members for upgraded software components being installed. Note: $UPvrmm.JCL members exist in each software version. ----- For example, V1R3M00 software contains $UP1300.JCL to upgrade from previous V1R2M00 distribution. For example, V1R2M00 software contains $UP1200.JCL to upgrade from previous V1R1M00 distribution. c) If a FULL install of this software distribution is elected regardless of previous version installed on your system, proceed to STEP 7. d) If this is an UPGRADE from the PREVIOUS version, execute the below JCL based on current installed version: - V0R9M00 is initial release, thus, no updates available! e) After upgrade is applied, proceed to validation, STEP 11. +--------------------------------------------------------------------+ | Step 7. Install TSO parts | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.TASKLIST.V0R9M00.CNTL($INST03) | +--------------------------------------------------------------------+ ______________________________________________________________________ //TASKLS03 JOB (SYS),'Install TSO Parts', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * TASKLIST for MVS3.8J TSO / Hercules * //* * * //* * JOB: $INST03 Install TSO parts * //* * * //* * Note: Duplicate members are over-written. * //* -------------------------------------------------------* //STEP001 EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //INCLIST DD DSN=SHRABIT.TASKLIST.V0R9M00.CLIST,DISP=SHR //INHELP DD DSN=SHRABIT.TASKLIST.V0R9M00.HELP,DISP=SHR //OUTCLIST DD DSN=SYS2.CMDPROC,DISP=SHR //OUTHELP DD DSN=SYS2.HELP,DISP=SHR //SYSIN DD * COPY INDD=((INCLIST,R)),OUTDD=OUTCLIST SELECT MEMBER=NO#MBR# /*dummy entry no mbrs! */ COPY INDD=((INHELP,R)),OUTDD=OUTHELP SELECT MEMBER=NO#MBR# /*dummy entry no mbrs! */ /* // ______________________________________________________________________ Figure 6: $INST03 JCL a) Member $INST03 installs TSO component(s). Note: If no TSO components are included for this distribution, ----- RC = 4 is returned by the corresponding IEBCOPY step. b) Review and update JOB statement and other JCL to conform to your installation standard. c) Submit the job. d) Review job output for successful load(s). +--------------------------------------------------------------------+ | Step 8. Install TASKLIST Software | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.TASKLIST.V0R9M00.CNTL($INST04) | +--------------------------------------------------------------------+ ______________________________________________________________________ //TASKLS04 JOB (SYS),'Install TASKLIST', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * TASKLIST for MVS3.8J TSO / Hercules * //* * * //* * JOB: $INST04 Install TASKLIST Software * //* * * //* * - Install libraries marked... * //* * - Search for '<--TARGET' * //* * - Update install libraries per your * //* * installation standard * //* * * //* -------------------------------------------------------* //* //* -------------------------------------------------------* //* * * //* * PROC: COBLKED * //* * COBOL Link-Edit * //* * * //* -------------------------------------------------------* //COBL PROC HLQ=WHATHLQ,VRM=VXRXMXX, // MBR=WHOWHAT, // CPARM1='LOAD,SUPMAP', // CPARM2='SIZE=2048K,BUF=1024K' //*COB EXEC PGM=IKFCBL00,REGION=4096K, //* PARM='LOAD,SUPMAP,SIZE=2048K,BUF=1024K' //COB EXEC PGM=IKFCBL00,REGION=4096K, // PARM='&CPARM1,&CPARM2' //STEPLIB DD DUMMY //SYSPRINT DD SYSOUT=* //SYSPUNCH DD DSN=NULLFILE //SYSUT1 DD UNIT=SYSDA,SPACE=(460,(700,100)) //SYSUT2 DD UNIT=SYSDA,SPACE=(460,(700,100)) //SYSUT3 DD UNIT=SYSDA,SPACE=(460,(700,100)) //SYSUT4 DD UNIT=SYSDA,SPACE=(460,(700,100)) //SYSLIN DD DSNAME=&LOADSET,DISP=(MOD,PASS),UNIT=SYSDA, // SPACE=(80,(500,100)) //SYSLIB DD DSN=&HLQ..&VRM..ASM,DISP=SHR // DD DSN=&HLQ..&VRM..MACLIB,DISP=SHR //SYSIN DD DSN=&HLQ..&VRM..ASM(&MBR),DISP=SHR <--INPUT //* //LKED EXEC PGM=IEWL,PARM='LIST,XREF,LET', // COND=(5,LT,COB),REGION=96K //SYSLIN DD DSNAME=&LOADSET,DISP=(OLD,DELETE) // DD DDNAME=SYSIN //SYSLMOD DD DUMMY //SYSLIB DD DUMMY //SYSUT1 DD UNIT=SYSDA,SPACE=(1024,(50,20)) //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY //* // PEND //* //* -------------------------------------------------------* //* * * //* * Compile Link-edit PRTTASKS * //* * * //* -------------------------------------------------------* //PRTTASKS EXEC COBL,HLQ='SHRABIT.TASKLIST',VRM=V0R9M00,MBR=PRTTASKS, // CPARM1='LIST,LOAD,NODECK,PMAP,DMAP' //COB.STEPLIB DD DSN=SYS1.LINKLIB,DISP=SHR <--Complr STEPLIB //LKED.SYSLMOD DD DSN=xxxxxxxx.ISPLLIB(PRTTASKS), <-- TARGET // DISP=SHR //LKED.SYSLIB DD DSN=SYS1.COBLIB,DISP=SHR <-- COBOL SYSLIB // DD DSNAME=ISP.V2R2M0.LLIB, <-- ISP SYS LLIB // DISP=SHR // ______________________________________________________________________ Figure 7: $INST04 JCL a) Member $INST04 installs program(s). Note: If no components are included for this distribution, ----- an IEFBR14 step is executed. b) Review and update JOB statement and other JCL to conform to your installation standard. c) Submit the job. d) Review job output for successful completion. +--------------------------------------------------------------------+ | Step 9. Install ISPF parts | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.TASKLIST.V0R9M00.CNTL($INST05) | +--------------------------------------------------------------------+ ______________________________________________________________________ //TASKLS05 JOB (SYS),'Install ISPF Parts', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * TASKLIST for MVS3.8J TSO / Hercules * //* * * //* * JOB: $INST05 Install ISPF parts * //* * * //* * Note: Duplicate members are over-written. * //* * * //* * * //* * - Uses ISPF 2.2 product from Wally Mclaughlin * //* * - Install libraries marked... * //* * - Search for '<--TARGET' * //* * - Update install libraries per your * //* * installation standard * //* * * //* -------------------------------------------------------* //* //* -------------------------------------------------------* //* * * //* * PROC: PARTSISPF * //* * Copy ISPF Parts * //* * * //* -------------------------------------------------------* //PARTSI PROC HLQ=MYHLQ,VRM=VXRXMXX, // CLIB='XXXXXXXX.ISPCLIB', // MLIB='XXXXXXXX.ISPMLIB', // PLIB='XXXXXXXX.ISPPLIB', // SLIB='XXXXXXXX.ISPSLIB', // TLIB='XXXXXXXX.ISPTLIB' //* //* -------------------------------------------------------* //* * * //* * CLIB Member Installation * //* * * //* * Suggested Location: * //* * DSN defined or concatenated to ISPCLIB DD * //* * * //* * Note: If you use a new PDS, it must be defined * //* * before executing this install job AND the * //* * ISPF start-up procedure should include the * //* * new PDS in the ISPCLIB allocation step. * //* * * //* -------------------------------------------------------* //ADDCLIB EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //CLIBIN DD DSN=&HLQ..&VRM..ISPF,DISP=SHR //CLIBOUT DD DSN=&CLIB,DISP=SHR //SYSIN DD DUMMY //* //* -------------------------------------------------------* //* * * //* * MLIB Member Installation * //* * * //* * Suggested Location: * //* * DSN defined or concatenated to ISPMLIB DD * //* * * //* * Note: If you use a new PDS, it must be defined * //* * before executing this install job AND the * //* * ISPF start-up procedure should include the * //* * new PDS in the ISPMLIB allocation step. * //* * * //* -------------------------------------------------------* //ADDMLIB EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //MLIBIN DD DSN=&HLQ..&VRM..ISPF,DISP=SHR //MLIBOUT DD DSN=&MLIB,DISP=SHR //SYSIN DD DUMMY //* //* -------------------------------------------------------* //* * * //* * PLIB Member Installation * //* * * //* * Suggested Location: * //* * DSN defined or concatenated to ISPPLIB DD * //* * * //* * Note: If you use a new PDS, it must be defined * //* * before executing this install job AND the * //* * ISPF start-up procedure should include the * //* * new PDS in the ISPPLIB allocation step. * //* * * //* -------------------------------------------------------* //ADDPLIB EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //PLIBIN DD DSN=&HLQ..&VRM..ISPF,DISP=SHR //PLIBOUT DD DSN=&PLIB,DISP=SHR //SYSIN DD DUMMY //* //* -------------------------------------------------------* //* * * //* * SLIB Member Installation * //* * * //* * Suggested Location: * //* * DSN defined or concatenated to ISPSLIB DD * //* * * //* * Note: If you use a new PDS, it must be defined * //* * before executing this install job AND the * //* * ISPF start-up procedure should include the * //* * new PDS in the ISPSLIB allocation step. * //* * * //* -------------------------------------------------------* //ADDSLIB EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //SLIBIN DD DSN=&HLQ..&VRM..ISPF,DISP=SHR //SLIBOUT DD DSN=&SLIB,DISP=SHR //SYSIN DD DUMMY //* //* //* -------------------------------------------------------* //* * * //* * TLIB Member Installation * //* * * //* * Suggested Location: * //* * DSN defined or concatenated to ISPTLIB DD * //* * * //* * Note: If you use a new PDS, it must be defined * //* * before executing this install job AND the * //* * ISPF start-up procedure should include the * //* * new PDS in the ISPTLIB allocation step. * //* * * //* -------------------------------------------------------* //ADDTLIB EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //TLIBIN DD DSN=&HLQ..&VRM..ISPF,DISP=SHR //TLIBOUT DD DSN=&TLIB,DISP=SHR //SYSIN DD DUMMY //* // PEND //* //ISPF EXEC PARTSI,HLQ='SHRABIT.TASKLIST',VRM=V0R9M00, // CLIB='XXXXXXXX.ISPCLIB', <--TARGET // MLIB='XXXXXXXX.ISPMLIB', <--TARGET // PLIB='XXXXXXXX.ISPPLIB', <--TARGET // SLIB='XXXXXXXX.ISPSLIB', <--TARGET // TLIB='XXXXXXXX.ISPTLIB' <--TARGET //ADDCLIB.SYSIN DD * CLIB COPY INDD=((CLIBIN,R)),OUTDD=CLIBOUT SELECT MEMBER=C$PRTTSK SELECT MEMBER=SPTASKDR //ADDMLIB.SYSIN DD * MLIB COPY INDD=((MLIBIN,R)),OUTDD=MLIBOUT SELECT MEMBER=TASK00 //ADDPLIB.SYSIN DD * PLIB COPY INDD=((PLIBIN,R)),OUTDD=PLIBOUT SELECT MEMBER=TASKNDSN SELECT MEMBER=TASKTBD SELECT MEMBER=TASKTCON SELECT MEMBER=TASKTEND SELECT MEMBER=TASKTGNR SELECT MEMBER=TASKTNB SELECT MEMBER=TASKTNB2 SELECT MEMBER=TASKTPRT SELECT MEMBER=TASKTUP2 SELECT MEMBER=TASKTUPD SELECT MEMBER=TASKUPD //ADDSLIB.SYSIN DD * SLIB COPY INDD=((SLIBIN,R)),OUTDD=SLIBOUT SELECT MEMBER=NO#MBR# /*dummy entry no mbrs! */ //ADDTLIB.SYSIN DD * TLIB COPY INDD=((TLIBIN,R)),OUTDD=TLIBOUT SELECT MEMBER=NO#MBR# /*dummy entry no mbrs! */ // ______________________________________________________________________ Figure 8: $INST05 JCL a) Member $INST05 installs ISPF component(s). Note: If no ISPF components are included for this distribution, ----- RC = 4 is returned by the corresponding IEBCOPY step. b) Review and update JOB statement and other JCL to conform to your installation standard. c) Review and update DD statements for ISPCLIB (clist), ISPMLIB (messages), and/or ISPPLIB (panel) library names. The DD statements are tagged with '<--TARGET'. d) Submit the job. e) Review job output for successful load(s). +--------------------------------------------------------------------+ | Step 10. Install Other Software | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.TASKLIST.V0R9M00.CNTL($INST40) | +--------------------------------------------------------------------+ ______________________________________________________________________ //TASKLS40 JOB (SYS),'Install Other Pgms', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * TASKLIST for MVS3.8J TSO / Hercules * //* * * //* * JOB: $INST40 Install Other Software * //* * Install xxxxxx Programs * //* * * //* * * //* -------------------------------------------------------* //* //* -------------------------------------------------------* //* * IEFBR14 * //* -------------------------------------------------------* //DUMMY EXEC PGM=IEFBR14 //SYSPRINT DD SYSOUT=* //* // ______________________________________________________________________ Figure 9: $INST40 JCL a) Member $INST40 installs additional software. Note: If no other software is included for this distribution, ----- an IEFBR14 step is executed. b) Review and update JOB statement and other JCL to conform to your installation standard. c) Submit the job. d) Review job output for successful completion. +--------------------------------------------------------------------+ | Step 11. Validate TASKLIST | +--------------------------------------------------------------------+ NOTE: This validation assumes it is first time execution for TASKLIST. ==== a) From the ISPF Main Menu, enter the following command: TSO %SPTASKDR b) The Tasks-List panel is displayed with message 'TASKS-LIST CREATED' at first time. Display below is a representative snippet. ________________________________________________________________________________ ---------------------- Online Tasks-List Update Panel -------TASKS-LIST CREATED COMMAND ===> SCROLL ===> PAGE Current sort order: STATUS(D) PRIORITY HOURS(D) DATE Dataset name of notebook: MY.NOTEBK Target Est Act Category P Date Hour Stat Task Description --- -------- - ------- ---- ---- ---------------------------------------------- ******************************* BOTTOM OF DATA ******************************* ________________________________________________________________________________ Figure 10a: TASKLIST Update Panel at first time c) Type INPUT in the COMMAND line to enter first task. d) Press ENTER. e) The Add Task panel is displayed with default values. Display below is a representative snippet. ________________________________________________________________________________ ----------------------- Online Tasks-List: Add Task ------------------------ COMMAND ===> Specify or change information below: Category ===> Priority ===> 5 (Number 1-9, 1 is highest) Target Date ===> (DDMMMYY) Est Hours ===> (Hours of effort) Status ===> INIT (INIT,OPEN,DONE,HOLD,DROP) Description ===> Hit ENTER to update the information for this task Hit PF3 to cancel this operation and return to tasks-list panel ________________________________________________________________________________ Figure 10b: TASKLIST Add Task panel f) Enter the following: Category ===> START00 Priority ===> 5 (Number 1-9, 1 is highest) Target Date ===> 01JAN23 (DDMMMYY) Est Hours ===> 30 (Hours of effort) Status ===> INIT (INIT,OPEN,DONE,HOLD,DROP) Description ===> Internal kickoff meeting w core team g) Press ENTER. h) The Tasks List panel is refreshed with new task. Display below is a representative snippet. ________________________________________________________________________________ ---------------------- Online Tasks-List Update Panel ------------------------- COMMAND ===> SCROLL ===> PAGE Row 1 to 1 of 1 Current sort order: STATUS(D) PRIORITY HOURS(D) DATE Dataset name of notebook: MY.NOTEBK Target Est Act Category P Date Hour Stat Task Description --- -------- - ------- ---- ---- ---------------------------------------------- START00 5 01JAN23 30 INIT INTERNAL KICKOFF MEETING W CORE TEAM --- -------- - ------- ---- ---- ---------------------------------------------- =============================== BOTTOM OF TABLE =============================== ________________________________________________________________________________ Figure 10c: TASKLIST panel i) Type PRT in the COMMAND line to print the tasks list to local printer. k) Press ENTER. k) Press PF3 to terminate TASKLIST. l) Validation is complete. m) It is recommended reading the tutorial panels to become familiar with available functions of TASKLIST. If LBTUTOR is installed on your system, type the following in the command line and press ENTER: COMMAND ===> tso lbtutor tasktcon See this link for more info on LBTUTOR:LBTUTOR in MVS38JIf LBTUTOR is not installed on your system, browse the tutorial members in your installed PLIB library. Refer to section IV, Software Inventory List near end of this document to identify tutorial panel names. +--------------------------------------------------------------------+ | Step 12. Done | +--------------------------------------------------------------------+ a) Congratulations! You completed the installation for TASKLIST. Note: As with any contributed software, some customization may be required per your installation (e.g. remote printers). +--------------------------------------------------------------------+ | Step 13. Integrate TASKLIST into UTILITY SELECTION Menu | +--------------------------------------------------------------------+ a) To integrate TASKLIST into your ISPF system, refer to Joe Veilleux's $DOC document at the end of this document. Enjoy TASKLIST for ISPF 2.2 on MVS 3.8J! ====================================================================== * IV. S o f t w a r e I n v e n t o r y L i s t | ====================================================================== - SHRABIT.TASKLIST.V0R9M00.ASM . PRTTASKS TSO CP to print tasks-list (replacement for X1A100) - SHRABIT.TASKLIST.V0R9M00.CLIST . README Dummy member, this is intentional - SHRABIT.TASKLIST.V0R9M00.CNTL . $INST00 Define Alias for HLQ TASKLIST . $INST01 Load CNTL data set from distribution tape (HET) . $INST02 Load other data sets from distribution tape (HET) . $INST03 Install TSO Parts . $INST04 Install TASKLIST Software . $INST05 Install ISPF Parts . $INST40 Install Other Software . $RECVTSO Receive XMI SEQ to MVS PDSs via TSO RECEIVE . $RECVXMI Receive XMI SEQ to MVS PDSs via RECV370 . $UP1202 Upgrade to V0R9M00 from V1R2M01 . DSCLAIMR Disclaimer . PREREQS Required User-mods . README Documentation and Installation instructions - SHRABIT.TASKLIST.V0R9M00.HELP . README Dummy member, this is intentional - SHRABIT.TASKLIST.V0R9M00.ISPF TASKLIST CLISTs . C$PRTTSK CLIST to print tasks-lists (stand-alone) . SPTASKDR TASKLIST CLIST Driver TASKLIST Messages . TASK00 TASKLIST Messages TASKLIST Panels . TASKUPD Update tasks-list item Panel . TASKTBD Tasks-list list Panel . TASKNDSN TASKLIST DSN Panel TASKLIST Tutorial Panels . TASKTCON Tutorial Panel Main Menu . TASKTGNR Tutorial Panel General Info . TASKTUPD Tutorial Panel Add/Del/Updt tasks-list 1 . TASKTUP2 Tutorial Panel Add/Del/Updt tasks-list 2 . TASKTPRT Tutorial Panel Print tasks-list . TASKTNB Tutorial Panel Add/Updt TASKLIST entries 1 . TASKTNB2 Tutorial Panel Add/Updt TASKLIST entries 2 . TASKTEND Tutorial Panel Save tasks-list - SHRABIT.TASKLIST.V0R9M00.MACLIB # . README Dummy member, this is intentional - After downloading any other required software, consult provided documentation including any configuration steps (if applicable) for software and HELP file installation. $ - Denotes modified software component for THIS DISTRIBUTION relative to prior DISTRIBUTION # - Denotes new software component for THIS DISTRIBUTION relative to prior DISTRIBUTION +--------------------------------------------------------------------+ | Appendix: $DOC file from CBT231 (Joe Veilleux) | +--------------------------------------------------------------------+ ______________________________________________________________________ $DOC - DOCUMENTATION FOR TASKLIST SOURCE LIBRARY THIS MEMBER DESCRIBES THE TASKLIST APPLICATION, WHAT THE PIECES ARE, HOW TO PUT IT TOGETHER, AND HOW TO EXECUTE IT. UPDATED 11/11/86: I HAVE REMEMBERED TO INCLUDE THE "TASKPRT" SKELETON AND PANEL "TASKNDSN" IN THIS LIBRARY, AND I'VE INCLUDED PROGRAM X1A100 ALONG WITH NOTES ABOUT WHAT IT IS. ------------------------------------------------------------------------ ADMINISTRIVIA (I HAVE TO PUT THIS IN HERE OR THEY FIRE ME): THIS APPLICATION WAS DEVELOPED BY: JOE VEILLEUX MIS CENTRAL SOFTWARE SERVICES - ADMIN III AIR PRODUCTS AND CHEMICALS, INC. (SHARE INSTALLATION CODE APC). P.O. BOX 538 ALLENTOWN, PA 18105 (215) 481-4558 NEITHER JOE VEILLEUX NOR AIR PRODUCTS AND CHEMICALS ASSUMES ANY REPONSIBILITY FOR THE CONTINUED HEALTH OR SANITY OF ANYONE WHO CHOOSES TO USE THIS APPLICATION, ETC., ETC., ETC. THE APPLICATION MAY BE SHARED WITH ANY WILLING PARTY AS LONG AS NO MONEY CHANGES HANDS. THIS IS MEANT TO BE A SAMPLE OF USING ISPF TABLE SERVICES FOR SOMETHING USEFULL (OR REASONABLY SO), AND IS CERTAINLY NOT INTENDED TO BE A COMERCIALLY- VIABLE SOFTWARE PRODUCT (I DO A BETTER JOB ON THE STUFF I SELL). ------------------------------------------------------------------------ WHAT THE APPLICATION IS: THE TASKLIST APPLICATION IS A SET OF ISPF COMPONENTS (A CLIST, SEVERAL PANELS, A SKELETON, AND A MESSAGE MEMBER) WHICH LETS YOU MAINTAIN AN ONLINE THINGS-TO-DO LIST. YOU CAN SORT THE LIST VARIOUS WAYS, PRINT THE LIST, UPDATE TASK DESCRIPTIONS/PRIORITIES/DATE-DUE/ETC. IN SHORT, IT'S A FAIRLY USEFUL LITTLE TOOL FOR ORGANIZING LISTS OF STUFF YOU'VE GOT TO GET DONE (I ALWAYS LIKED ORGANIZING BETTER THAN DOING, ANYWAY). ------------------------------------------------------------------------ HOW DO I GET IT TO OPERATE? ONCE YOU'VE GOT THIS PDS ON DISK, COPY THE MEMBER "SPTASKDR" TO YOUR INSTALLATION'S CLIST LIBRARY (OR TO YOUR OWN PRIVATE CLIST LIBRARY ALLOCATED TO DDNAME "SYSPROC"), COPY "TASK00" TO YOUR ISPF MESSAGE LIBRARY, COPY "TASKPRT" TO YOUR ISPF FILE-TAYLORING SKELETON LIBRARY, AND COPY ALL THE OTHER MEMBERS TO YOUR ISPF PANEL LIBRARY. JUMP INTO ISPF AND INVOKE MENU 7.1 ("INVOKE DIALOG FUNCTION/SELECTION MENU" SUBOPTION OF THE DIALOG TEST FACILITY). FILL IN "%SPTASKDR" IN THE "CMD" FIELD, AND HIT ENTER. YOU SHOULD BE GREETED WITH A PANEL CALLED "ONLINE TASKS-LIST UPDATE PANEL", AND THERE SHOULD BE A MESSAGE SAYING "TASKS-LIST CREATED" IN THE SHORT MESSAGE FIELD. THERE WILL BE AN EMPTY LIST OF TASKS UNDER THE COLUMN HEADINGS (HOW DO YOU LIST AN EMPTY LIST, ANYWAY???). THE SHORT MESSAGE IS WARNING YOU THAT IT DIDN'T FIND A TASKLIST TABLE, SO IT HAS CREATED ONE FOR YOU. **THIS IS NORMAL** THE FIRST TIME YOU INVOKE THE APPLICATION. HIT ENTER ONCE TO CLEAR THE SHORT MESSAGE, THEN HIT PF1 TO JUMP INTO THE GENERAL SECTION OF THE TUTORIAL. VIEW THE TUTORIAL SEQUENTIALLY BY HITTING ENTER REPEATEDLY (THIS SAVES ME FROM HAVING TO EXPLAIN HOW TO USE THE APPLICATION HERE). BEFORE YOU TRY TO ACTUALLY USE THE "PRINT" OPTION, LOOK AT THE NOTE BELOW ABOUT PROGRAM X1A100 AND FOLLOW ITS RECOMENDATION. ONCE YOU HAVE CHECKED-OUT THE APPLICATION AS DESCRIBED ABOVE, YOU'LL PROBABLY WANT TO MAKE IT A LITTLE EASIER FOR YOUR USERS TO INVOKE THE APPLICATION. ADD AN ENTRY TO ONE OF YOUR EXISTING ISPF SELECTION MENUS (ISR@PRIM OR ANY OTHER SELECTION MENU). THE SELECTION SHOULD INVOKE COMMAND "%SPTASKDR": %----------------------------- APCI UTILITIES -------------------------------- %OPTION ===>_ZCMD + % +WHAT WOULD YOU LIKE TO DO? % % 1 +TASK - ONLINE TASKS-LIST UTILITY % )PROC &ZSEL = TRANS( TRUNC (&ZCMD,'.') 1,'CMD(%SPTASKDR)' TASK,'CMD(%SPTASKDR)' ' ',' ' *,'?' ) &ZTRAIL = .TRAIL )END I LIKE TO ALLOW BOTH THE NUMBER ("1") AND THE NAME OF THE APPLICATION ("TASK") TO BE USED TO SELECT AN APPLICATION. * * * PLEASE NOTE: * * * PROGRAM X1A100: THIS IS A PL/1 PROGRAM WHICH IS USED BY THE SPTASKDR CLIST TO GET INFORMATION FROM THE TSO SESSION'S JOB CARD (SPECIFICALLY, USER'S NAME). TO DO THIS, IT CALLS A LOCALLY-WRITTEN SUBROUTINE CALLED "ACOUNT" WHICH I HAVEN'T INCLUDED SINCE I'M SURE IT WON'T WORK ON ANYONE'S SYSTEM BUT OURS (OR AT LEAST I DON'T KNOW ENOUGH ABOUT IT TO BE SURE IT WILL). IF YOU HAVE A SIMILAR PROGRAM, YOU COULD CHANGE THE CALL TO "ACOUNT" IN THE X1A100 PROGRAM TO CALL YOUR PROGRAM. THEN, COMPILE AND LINK X1A100 AND PUT IT INTO YOUR ISPF LOAD LIBRARY (DDNAME ISPLLIB OR IN STEPLIB OR THE SYSTEM LINK LIST). IF YOU DON'T HAVE SUCH A PROGRAM, JUST COMMENT-OUT THE CALL TO X1A100 IN THE SPTASKDR CLIST AND (IF YOU FEEL LIKE IT) REMOVE THE REFERENCE TO &JCNAME IN THE TASKPRT SKELETON. THE LISTING WILL THEN PRINT WITHOUT THE USER'S NAME IN THE TITLE, BUT THAT'S LIFE. IF YOU HAVE TROUBLE GETTING THE APPLIATION TO WORK OR IF YOU HAVE QUESTIONS ABOUT ISPF TABLE HANDLING, FEEL FREE TO CALL OR WRITE TO ME, OR CATCH ME AT SHARE (I'LL BE THE ONE LEAVING SCIDS LAST). ------------------------------------------------------------------------ ______________________________________________________________________ Figure A: $DOC from CBT231
In Closing
Thanks to Joe for his CBT431 TASKLIST contribution and providing this opportunity to demonstrate a transformation approach to utilize ISPF application TASKLIST under MVS 3.8J and ISPF 2.2 (ISPF-like production from Wally Mclaughlin)!
As with any contributed software, custom modifications may be necessary per your MVS 3.8J installation requirements.
I hope you make use of this post and transformation of TASKLIST to advance and/or enhance your MVS 3.8J / TSO / ISPF system / programming knowledge and user experience.
Enjoy,
Larry Belmontes
Version History
* * MM/DD/CCYY Version Change Description * ---------- ------- ----------------------------------------------- * 01/29/2024 0.9.00 - Initial modified version released to MVS 3.8J * hobbyist public domain * * Original work (TASKLIST) from Joe Veilleux * from CBT file 231 dated circa 1985. * *