Well I think I read in other words, he complains circumlocutorily that neither QCMDEXC nor QCAPCMD log the commands they execute. In a home-grown general purpose CL processing program, I don't recommend QCMDEXC API. It's a security hole. Use QCAPCMD API instead. This is because the QCMDEXC API does not mask DSPINPUT(*NO) parameters from the job log. The QCAPCMD API does mask DSPINPUT(*NO) parameters from the job log *if* you manage your message reference keys correrctly. You need to tell QCAPCMD API the message reference key of an *existing* message in your job log that you want to overlay with the executing command. Then QCAPCMD API will work its magic and remove DSPINPUT(*NO) parameters in that command from the job log. Before you call QCAPCMD API, write your command as a *RQS message to the external message queue (with either SNDPGMMSG command or QMHSNDPM API) and capture the return message reference key. Then receive that message by key (with either RCVMSG command or QMHRCVPM API) but don't remove the message from the job log. Then, put that message reference key into QCAPCMD API's parameter 3, data structure CPOP0100, positions 8 to 11. For example, suppose you want to execute the following command: CHGUSRPRF USRPRF(AAA) PASSWORD(BBB) Notice this command has a DSPINPUT(*NO) parameter, PASSWORD. So first send/receive the command to the job log and capture the message reference key, and then pass that message reference key into QCAPCMD API. Then your job log will look like this: CHGUSRPRF USRPRF(AAA) PASSWORD()
As an Amazon Associate we earn from qualifying purchases.
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.