/* REXX */ PARSE UPPER ARG tr_vsam user_team user_num gteq . zrc = VSAMFILE(tr_vsam 'SHR') IF zrc > 0 THEN DO SAY tr_vsam 'Record not read.' SIGNAL Done END SELECT WHEN user_team = '' & user_num = '' THEN DO zmsg1 = 'No key information entered. 1st record displayed.' tr_key = LEFT('00'X,6,'00'X) tr_key_length = 0 END WHEN user_team \= '' & user_num \= '' & ABBREV('GTEQ',gteq,1) THEN DO zmsg1 = 'GTEQ specified. First matching record displayed.' tr_key = LEFT(user_team,4,' ')RIGHT(user_num,2,'0') tr_key_length = 6 END WHEN user_team \= '' & user_num = '' THEN DO zmsg1 = 'Teamid only entered. 1st record for team displayed.' tr_key = LEFT(user_team,6,'00'X) tr_key_length = 4 END OTHERWISE zmsg1 = 'Teamid and number entered. Exact match required.' tr_key = LEFT(user_team,4,' ')RIGHT(user_num,2,'0') tr_key_length = 6 END /* SELECT */ x = OUTTRAP('ztrap.','*','NOCONCAT') ADDRESS TSO "REPRO INFILE(TRVSAM) OUTFILE(TRQSAM)", "FROMKEY('"tr_key"') COUNT(1)" x = OUTTRAP('OFF') zrc = RC tr_record = '' Check_Zrc: SELECT WHEN zrc = 0 THEN DO zmsg2 = tr_vsam 'Record read.' ADDRESS TSO "EXECIO 1 DISKR TRQSAM (OPEN FINIS)" PARSE PULL tr_record IF \ABBREV('GTEQ',gteq,1), & LEFT(tr_record,tr_key_length) \= LEFT(tr_key,tr_key_length) THEN DO tr_record = '' zrc = 4 SIGNAL Check_Zrc END END WHEN zrc = 4 THEN zmsg2 = tr_vsam 'Record with key' tr_key 'not found.' WHEN zrc = 12 & WORD(ztrap.1,WORDS(ztrap.1)) = 0 THEN zmsg2 = tr_vsam 'Record with key' tr_key 'is past EOF.' OTHERWISE DO x = 1 TO ztrap.0; SAY ztrap.x; END x SIGNAL Error END /* SELECT */ SAY zmsg1 SAY LEFT(tr_record,79) /* Display purposes. */ SAY zmsg2 Error: CALL VSAMFILE 'FREE' Done: EXIT zrc