When shipping information to a remote location using a local protocol (shared DASD) I cannot swap the USERID to the ALTID (alternate id). This is causing authorization errors and the ship is never completed. What can I do to fix this problem?
All Supported Releases
There is a exit that can be run to allow you to change the USERID on the remote jobcard to the ALTID. Here is an example of the exit C1BMXJCG:
000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. C1BMXJCG.
000300 AUTHOR. AUTHOR.
000400 DATE-WRITTEN. 01-23-95.
000500 ENVIRONMENT DIVISION.
000600 INPUT-OUTPUT SECTION.
000700 FILE-CONTROL.
000800 DATA DIVISION.
000900 FILE SECTION.
001000*****************************************************************
001100* FROM WHAT I CAN SURMISE HAVING THIS PROGRAM/LOAD MODULE IN *
001200* STEPLIB, JOBLIB OR LINK PACK AREAS INVOKES AN UNDOCUMENTED *
001300* EXIT. THIS PACKAGE SHIPMENT EXIT ALLOWS USER MODIFICATION *
001400* TO BE MADE TO THE JOB CARD THAT EXECUES AT THE REMOTE *
001500* SITES (THE IEBCOPY JOB IN THE PRODUCTION DATACENTERS). *
001700* *
001800* THE EXIT IS CALLED PRIOR TO WRITING THE REMOTE JOB CARD *
001900* TO THE "AHJOB" JCL DATASET AND PRIOR TO WRITING IT TO THE *
002000* OPTIONAL "CHJOB" JCL DATASET. THESE DATASETS ARE BUILT TO *
002100* CONTAIN THE JCL NEEDED TO COPY PACKAGE MEMBERS INTO THE *
002200* DESTINATION DEFINITION OF THE REMOTE SITE. *
002300* *
002400* BASICALLY THIS PROGRAM CHANGES THE JOB CARD FROM WHAT THE *
002500* DESTINATION PANEL JOB CARD SAYS TO WHAT THE EQUIVALENT OF *
002600* WHAT THE PACKAGE EXECUTION JOB CARD SHOULD HAVE BEEN. IT *
002700* ALSO ADDS ,USER=EV0001 TO THE JOB STATEMENTS. *
002800* *
002900*****************************************************************
003000* *
003100 WORKING-STORAGE SECTION.
003200*
003300 01 WS-PACKAGE-ID.
003400 05 WS-PACKAGE-SYS-ID PIC X(02).
003500 05 WS-PACKAGE-NUMBER.
003600 10 WS-PACKAGE-SERIES PIC X(01).
003700 10 WS-PACKAGE-TRAILER PIC X(03).
003800 05 FILLER PIC X(10).
003900*
004000 01 WS-JOB-NAME.
004100 05 WS-PROD-JOBNAME.
004200 10 WS-PROD-JOB-EV PIC X(02).
004300 10 WS-PROD-SYS-ID PIC X(02).
004400 10 WS-PROD-TRAILER PIC X(03).
004500 10 WS-PROD-POUND PIC X(01).
004600 05 WS-NON-PROD-JOBNAME REDEFINES WS-PROD-JOBNAME.
004700 10 WS-JOB-USER-ID PIC X(06).
004800 10 WS-JOB-POUND PIC X(01).
004900 10 WS-JOB-SPACE PIC X(01).
005000*
005100 01 WS-USER-EQ.
005200 05 FILLER PIC X(12) VALUE ',USER=EV0001'.
005300*
005400 LINKAGE SECTION.
005500*
005600 01 LS-PACKAGE-ID PIC X(16).
005700*
005800 01 LS-USER-ID PIC X(08).
005900*
006000 01 LS-JOB-STATEMENT.
006100 05 LS-JOB-LINE-1.
006200 10 LS-JL1-SLASH-SLASH PIC X(02).
006300 10 LS-JL1-JOBNAME PIC X(08).
006400 10 FILLER PIC X(70).
006500 05 LS-JOB-LINE-2.
006600 10 FILLER PIC X(26).
006700 10 LS-JL2-USER-EQ PIC X(12).
006800 10 FILLER PIC X(42).
006900*
007100 PROCEDURE DIVISION USING
007110 LS-PACKAGE-ID
007130 LS-USER-ID
007140 LS-JOB-STATEMENT.
007150*
007160 1000-MAIN-PROCESS.
007170********************************************************************
007180* PUT DIFFERENT "USER=" ON JOB STATEMENT SO JOB HAS AUTHORIZATION
007190* TO COPY INTO REMOTE DATASETS .
007191********************************************************************
007192*
007193 MOVE WS-USER-EQ TO LS-JL2-USER-EQ.
007194 MOVE SPACES TO WS-JOBNAME.
007195 MOVE LS-PACKAGE-ID TO WS-PACKAGE-ID.
007196 IF WS-PACKAGE-NUMBER > '3999'
007197 PERFORM 2000-PROD-PKG THRU 2000-EXIT
007198 ELSE
007199 PERFROM 3000-NON-PROD-PKG THRU 3000-EXIT.
007200*
007210 1000-EXIT.
007300 GOBACK.
007400*
007500 2000-PROD-PKG.
007600 MOVE 'EV' TO WS-PROD-JOB-EV.
007700 MOVE WS-PACKAGE-SYS-ID TO WS-PROD-SYS-ID.
007800 MOVE WS-PACKAGE-TRAILER TO WS-PROD-TRAILER.
007900 MOVE '#' TO WS-PROD-POUND.
008000 MOVE WS-PROD-JOBNAME TO LS-JL1-JOBNAME.
008100*
008200 2000-EXIT.
008300 EXIT.
008400*
008500 3000-NON-PROD-PKG.
008600 MOVE LS-USER-ID TO WS-JOB-USER-ID.
008700 MOVE SPACES TO WS-JOB-SPACE.
008900 MOVE '#' TO WS-PROD-POUND.
009000 MOVE WS-NON-PROD-JOBNAME TO LS-JL1-JOBNAME.
009100 *
009200 3000-EXIT.
009300 EXIT.
009400*