//NBJJOB JOB ,,CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),NOTIFY=&SYSUID //* // JCLLIB ORDER=(IMS1210.PROCLIB) // SET CTL=NBJ.SELCOPY.IMS.CTL <== SELCOPY CTL library DSN. //* //STEP001 EXEC PGM=SELCOPY //SYSPRINT DD SYSOUT=* //IEFRDER DD DISP=SHR,DSN=NBJ.SELCOPY.IMS.LOG //IMSLOGR DD DISP=SHR,DSN=NBJ.SELCOPY.IMS.LOG.RESTART //SYSIN DD * * Copy application log file for use by restart. read IEFRDER write IMSLOGR /* //* //* //*TEPDEL EXEC DLIBATCH,PSB=DFSSAMWJ,MBR=SELCOPY,CKPTID=SELC0002 //STEPDEL EXEC DLIBATCH,PSB=DFSSAMWJ,MBR=SELCOPY //SYSPRINT DD DISP=SHR,DSN=NBJ.SELCOPY.IMS.LST(SSDEL01) //IEFRDER DD DISP=SHR,DSN=NBJ.SELCOPY.IMS.LOG CHKP Log. //IMSLOGR DD DISP=SHR,DSN=NBJ.SELCOPY.IMS.LOG.RESTART XRST Log. //IN1 DD DISP=SHR,DSN=NBJ.SELCOPY.IMS.KEYS(SSDEL01) //SYSIN DD * ** Processing EQUates - Start **--------------------------------------* * * * The following EQU operations must be tailored as appropraite: * * * * +------- ### Update these values. ### * * | * * v * *---------------* <------> *-----------------------------------------* equ dbdname DI21PART * Input DBD name. * equ dbd# #2 * PCB DBDNAME occurrence within PSB. * * * equ segname PARTROOT * DBD segment name. * equ fieldname PARTKEY * Key field name. * equ keyL 17 * Key value length. * *---------------* <------> *-----------------------------------------* * * ** Processing EQUates - End ** ---------------------------------------* * * * * ** Work Area EQUates - Start ** --------------------------------------* * * * The following EQU operations map fields in the work area: * * * equ sschkequ 1 * Start of check point equates. * /* // DD DISP=SHR,DSN=&CTL.(SSCHKEQU) // DD * * * equ ssin1equ sschkequ_end * Start of sequential input KEY equates.* /* // DD DISP=SHR,DSN=&CTL.(SSIN1EQU) // DD * * * equ ssghuequ ssin1equ_end * Start of IMS GHU input equates. * /* // DD DISP=SHR,DSN=&CTL.(SSGHUEQU) // DD * ** Work Area EQUates - End ** ----------------------------------------* * * option worklen=ssghuequ_end pagedepth=9999 * * ** Main Processing Loop ** * do XRST * Execute XRST - must be first.* * do INKEYS * Get next KEY value from IN1. * if eof IN1 !then goto eoj * If IN1 end-of-file - end job.* * do IMSGHUK * Get a segment for KEY value. * * ' ' !then goto eoj * Unexpected status - end job.* * do IMSDEL * Delete the last segment read.* if pos status <> ' ' !then goto eoj * Unexpected status - end job.* * do SYMCHKP * Take a checkpoint. * * goto get * Get the next input KEY value.* ** End of Main Processing Loop ** * * * ** Sub-Routines follow *** * /* // DD DISP=SHR,DSN=&CTL.(SSIN1) INKEYS routine. (Input) // DD DISP=SHR,DSN=&CTL.(SSGHU) IMSGHUK routine. (IMS GHU) // DD DISP=SHR,DSN=&CTL.(SSCHK) XRST/SYMCHKP routines. // DD DISP=SHR,DSN=&CTL.(SSDEL) IMSDEL routine. (IMS DLET)