Getting the Message Log Data for a Specific Process

Below SQL will give the details in a Message Log entry for a specific process or list of processes ran between the days.

PS_MESSAGE_LOG -- Stores the Log Header Data for Specific Process Instance ID
PS_MESSAGE_LOGPARM  -- Stores all the Details Data for a specific Process Instance Id.

Below SQL will help you to write your own SQLs to get the Log Data for a specific process.

Use NVL in the Sub Selects to avoid error in the SQL if there are no rows returning from the Sub Select.


SELECT DISTINCT
MLOG.PROCESS_INSTANCE
, MLOG.MESSAGE_SEQ
,(SELECT LPRM1.MESSAGE_PARM FROM PS_MESSAGE_LOGPARM LPRM1 WHERE LPRM1.PROCESS_INSTANCE = LPRM.PROCESS_INSTANCE AND LPRM1.MESSAGE_SEQ = LPRM.MESSAGE_SEQ AND LPRM1.PARM_SEQ = '1') AS SETID
,(SELECT LPRM1.MESSAGE_PARM FROM PS_MESSAGE_LOGPARM LPRM1 WHERE LPRM1.PROCESS_INSTANCE = LPRM.PROCESS_INSTANCE AND LPRM1.MESSAGE_SEQ = LPRM.MESSAGE_SEQ AND LPRM1.PARM_SEQ = '2') AS VENDOR_ID
,(SELECT LPRM1.MESSAGE_PARM FROM PS_MESSAGE_LOGPARM LPRM1 WHERE LPRM1.PROCESS_INSTANCE = LPRM.PROCESS_INSTANCE AND LPRM1.MESSAGE_SEQ = LPRM.MESSAGE_SEQ AND LPRM1.PARM_SEQ = '3') AS VNDR_LOC
,(SELECT LPRM1.MESSAGE_PARM FROM PS_MESSAGE_LOGPARM LPRM1 WHERE LPRM1.PROCESS_INSTANCE = LPRM.PROCESS_INSTANCE AND LPRM1.MESSAGE_SEQ = LPRM.MESSAGE_SEQ AND LPRM1.PARM_SEQ = '4') AS EMAILID
,(SELECT LPRM1.MESSAGE_PARM FROM PS_MESSAGE_LOGPARM LPRM1 WHERE LPRM1.PROCESS_INSTANCE = LPRM.PROCESS_INSTANCE AND LPRM1.MESSAGE_SEQ = LPRM.MESSAGE_SEQ AND LPRM1.PARM_SEQ = '5') AS ErrorMessage
  FROM PS_MESSAGE_LOG     MLOG
  JOIN PS_MESSAGE_LOGPARM LPRM
    ON MLOG.PROCESS_INSTANCE = LPRM.PROCESS_INSTANCE
   AND MLOG.MESSAGE_SEQ      = LPRM.MESSAGE_SEQ
 WHERE 1 = 1
--   AND MLOG.PROCESS_INSTANCE = '1501404'
   AND MLOG.JOBID            = 'APP ENGINE'
   AND MLOG.PROGRAM_NAME     = 'EachVndr'
   AND EXISTS (SELECT 'X' FROM PSPRCSRQST PRCS, PS_MESSAGE_LOGPARM     MLOG1
                          WHERE PRCS.PRCSNAME = 'AP_EMAIL_ADV'
                          AND PRCS.PRCSINSTANCE = MLOG.PROCESS_INSTANCE
                          AND PRCS.PRCSINSTANCE = MLOG1.PROCESS_INSTANCE
                          AND MLOG1.MESSAGE_SEQ = MLOG.MESSAGE_SEQ
                          AND MLOG1.MESSAGE_PARM LIKE 'Error%'
                          AND PRCS.RQSTDTTM >= '10-AUG-2015'
                          )

Comments

Popular posts from this blog

PeopleSoft AP Matching Process Key Tables for troubleshooting purpose

How to Set a Default Password in PeopleSoft

PS Query Security Tree