Let me see if I can explain what I am trying to do and then ask a question.
We are in the throes of converting from Top Secret to RACF.
We use a custom DFHDYP for some utility transactions which display communication line status.
These transactions can “stop” and “start” our user communication lines (our own custom code).
As it stands NOW, any one that “starts” a communications line using this utility gets their USERID assigned to any user transactions (through to the AOR) that come over that line. Their userids are not authorized to run the user transactions in the AOR. Top Secret was set to ignore these "errors". Using RACF, the systems programmers do not want to ignore these.
So, in DFHDYP, I wish to NOT use the userid for the logged on terminal user but instead use the DFLTUSER for the region.
I know how to get the DFLTUSER for the region but not how I can change it in DFHDYP.
There is a variable in the DFHDYPDS DSECT called DYRUSERID which I tried overwriting with the DFLTUSER id.
In the “utility” transaction when it gets invoked (which I believe happens when the EC RETURN in DFHDYP is executed???), I added a temporary EC ASSIGN for the USERID (just to see in CEDX if my change in DFHDYP “took”). The userid shown in CEDX was still mine and not the “changed” DYRUSERID.
That leads me to believe that the DFHDYPDS variable DYRUSERID is only used as “input” to DFHDYP.
I didn’t see any EC call that would allow me to change the USERID in DFHDYP. The "utility" code re-invokes itself every "X" seconds using the termid option on an EC START call. I tried adding the DFLTUSER there but TERMID and USERID are mutually exclusive.
Has anyone tried to do this type of thing before or can advise on how I can change the USERID inside DFHDYP?