++APAR(ASZ3059). /*----------------------------------------------------- COPYRIGHT AUSTRALIAN SYSTEMS ENGINEERING PTY. LTD. 1999. ASZ3059 990310 61VNAB DD OMCSIRM P617 INCORROUT OMCSCTLR 990607 O_P0821 when multiple " ADD USER_REDIRECT USER=... REPORT=..." statements after the same "CHANGE USERDEF NAME=..." only the last one is effective. This APAR fix has never been applied, but it does show the actual source changes that were made to fix the problem. _PROBLEM DESCRIPTION: Users control statement stream looks like... UPDATE OUTDB=FROM CHANGE USERDEF NAME=BT-761092867 ADD USER_REDIRECT EXTRA_COPY_FOR USER=BT-30050007I + REPORT=RT0* DAY_OF_WEEK_MAP='YYYYYYY' ADD USER_REDIRECT EXTRA_COPY_FOR USER=BT-30050007I + REPORT=GA* DAY_OF_WEEK_MAP='YYYYYYY' ADD USER_REDIRECT EXTRA_COPY_FOR USER=BT-30050007J + REPORT=RT0* DAY_OF_WEEK_MAP='YYYYYYY' ADD USER_REDIRECT EXTRA_COPY_FOR USER=BT-30050007J + REPORT=GA* DAY_OF_WEEK_MAP='YYYYYYY' but only the last change for each REPORT= key was effective. _PROBLEM SUMMARY: Module OMCSCTLR is only using the report key to differentiate between multiple redirect entries. The combination of report key, user key and the presence of EXTRA_COPY_FOR should be used instead. USERS AFFECTED: All _PROBLEM CONCLUSION Module OMCSCTLR will be modified to correctly process multiple report and user combinations for redirect and other print overrides. The "uniqueness" of a redirect entry will be controlled by a combination of report key, user key and the presence (or absence) of EXTRA_COPY_FOR. RECOMMENDATION: Apply PTF ASP0821. NEED FURTHER HELP? CALL ASE FOR ASSISTANCE or email help@ase.com.au */ ++VER(Z038) FMID(ASEC200) PRE(ASP0617). /* comment rest of apar fix ++SRCUPD(OMCSCTLR). ./ CHANGE NAME=OMCSCTLR APAR ASZ3059 /*PRE ASP0617 AUDIT ON F PRRDR5: 1 F RETURN :I5 /*--1----+----2----+----3----+----4----+ SET I=&IN(&RECORD,USER=) IF# &I=0 MSG 7 &ACTION &OBJ USER /* USER IS MISSING $LOG MSG GOTO PRRDR5 F 'MSG 12' UP 1 :I26 /*--1----+----2----+----3----+----4----+ SET URDR0ECF=0 /* ECF OFF BY DEFAULT IF# &IN(&RECORD,EXTRA_COPY_FOR)>0 /* IF PRESENT... SET URDR0ECF=1 /* ...TURN IT ON SET URDRRUSR=&TERM(&SS(&RECORD,&J+5)) IF &URDRRUSR<> IF &SS(&URDRRUSR,-1)&SS(&URDRRUSR,1,1)=)( SET URDRRUSR=&TERM(&SS(&URDRRUSR,2:-2),TRUNCB) IF# &LN(&URDRRUSR)>1 IF &SS(&URDRRUSR,1,1)&SS(&URDRRUSR,-1)='' SET URDRRUSR=&TERM(&SS(&URDRRUSR,2:-2),TRUNCB) IF &URDRRUSR= MSG 8 USER /* USER IS MISSING $LOG MSG GOTO PRRDR5 IF# &LN(&URDRRUSR)>20 MSG 9 USER 20 /* USER IS TOO LONG $LOG MSG GOTO PRRDR5 IF# &IN(&URDRRUSR,&AP)>0 MSG 10 USER /* APOSTROPHE FOUND $LOG MSG GOTO PRRDR5 IF# &IN(&URDRRUSR,'"')>0 MSG 11 &CAPSOFF(QUOTE) " USER /* QUOTE FOUND $LOG MSG GOTO PRRDR5 F INTRE: 1 F SAVEKEY :D1 :I3 /*--1----+----2----+----3----+----4----+ SET SAVEKEY=&MAP(C20,&URDRRKEY)+ /* MAKE KEY FROM REPORT, &URDR0ECF+ /* RED OR ECF &MAP(C20,&URDRRUSR) /* AND USER NAME F URDRRKEY :D3 :I5 /*--1----+----2----+----3----+----4----+ SET URDRRKEY=&SS(&SAVEKEY,1,20) SET (URDR0- ECF DEL SUS,C1)=000 SET URDR0ECF=&SS(&SAVEKEY,21,1) SET URDR0=&B(00000&URDR0ECF&URDR0DEL&URDR0SUS) SET URDRRUSR=&SS(&SAVEKEY,22) F GETUSG: 1 F DBLOCATE :D2 :I5 /*--1----+----2----+----3----+----4----+ SET KEY=&MAP(C20,&URDRRKEY)+ /* MAKE KEY FROM REPORT, &SS(&BIT(&URDR0),6,1)+ /* RED OR ECF &MAP(C20,&URDRRUSR) /* AND USER NAME DBINSR &@RE &KEY+ /* ADD TO ENTRIES FILE &MAP(&URDRMAPS,&&URDRAMPS) F GETRE: 1 F DBLOCATE :D1 :I4 /*--1----+----2----+----3----+----4----+ SET KEY=&MAP(C20,&URDRRKEY)+ /* MAKE KEY FROM REPORT, &URDR0ECF+ /* RED OR ECF &MAP(C20,&URDRRUSR) /* AND USER NAME DBLOCATE &@RE (&KEY) F DBTOP :D1 F PUTUSJ: 1 F 'SET URDR' :D1 :I1 /*--1----+----2----+----3----+----4----+ SET URDR=&SS(&DBRTXT,42) /* TRIM OFF THE KEY F PUTRE: 1 F DBLOCATE :D1 :I4 /*--1----+----2----+----3----+----4----+ SET KEY=&MAP(C20,&URDRRKEY)+ /* MAKE KEY FROM REPORT, &URDR0ECF+ /* RED OR ECF &MAP(C20,&URDRRUSR) /* AND USER NAME DBLOCATE &@RE (&KEY) F DBINSR :I1 /*--1----+----2----+----3----+----4----+ DBINSR &@RE &KEY&MAP(&URDRMAPS,&&URDRAMPS) F DELRE: 1 F DBLOCATE :D5 :I4 /*--1----+----2----+----3----+----4----+ SET KEY=&MAP(C20,&URDRRKEY)+ /* MAKE KEY FROM REPORT, &URDR0ECF+ /* RED OR ECF &MAP(C20,&URDRRUSR) /* AND USER NAME DBLOCATE &@RE (&KEY) END