Trapping messages issued with the UNIX __console() service
Message BPXM023I is written to the operator when an application has called the __console() (BPX1CCS/BPX4CCS) service to issue a message and the process calling the service is not running with UID=0. BPXM023I is a wrapper that folds around the actual message. It is either a single-line or a multi-line message.
To make this message easy to automate, an INGMSGSA automation table statement reformats it to have just one single format. This automation table statement removes the first line of the message if BPXM023I is a multi-line message, or removes the prefix if BPXM023I is a single-line message. Thus you can drive reliable automation for this message despite of the caller's privileges.
How SA reformats BPXM023I is documented in the INGMSGSA automation table as follows.
* BPXM023I message
* This msgID is just a wrapper that is only added if the
* the process calling BPX1CCS is not running with UID=0.
* It is either a single or a multi line message.
* SA modifies the message to enable automation independent from the
* issuers authority.
*
* -- WTO request via BPX1CCS syscall - Multiline message --
* Modify message - drop first line of the multiline message
IF MSGID = 'BPXM023I' & HDRMTYPE = '"' & TOKEN(3) = ''
THEN EDIT('FWDLINE 1 1.* 1 WRITELINE COPYREST');
*
* -- WTO request via BPX1CCS syscall - Singleline message --
* Modify message - remove header from first line
IF MSGID = 'BPXM023I' & HDRMTYPE = 'E'
THEN EDIT('WORD 3.* 1 WRITELINE COPYREST');
BPXM023I (CDPU) HBO6001I The Data Streamer started successfully.
HBO6001I The Data Streamer started successfully.If you want to automate that message, then you can define the "real" message ID HBO6001I as the UP message in SA policy.