Friday, 21 July 2023

ESP and PeopleSoft


ESP_APPLICATION table


APPL_ID NUMBER(19,0) No 1
JOB_NAME VARCHAR2(130 BYTE) No 2
APPL_NAME VARCHAR2(130 BYTE) No 3
APPL_GEN_NO NUMBER(10,0) No 4
START_DATE_TIME DATE Yes 5
END_DATE_TIME DATE Yes 6
SCHEDULED_DATE_TIME DATE Yes 7
STATE VARCHAR2(64 BYTE) Yes 8
TAG VARCHAR2(128 BYTE) Yes 9
COMMENTS CLOB Yes 10
EVENT_NAME VARCHAR2(161 BYTE) Yes 11

Sample SQL

select 
APPL_ID, JOB_NAME, APPL_NAME, APPL_GEN_NO, START_DATE_TIME, END_DATE_TIME, SCHEDULED_DATE_TIME, STATE, TAG, COMMENTS, EVENT_NAME
from esp.esp_application
where appl_name like 'PEOPLESOFT_PSH%PAYROLL' ORDER BY START_DATE_TIME DESC;





ESP_GENERIC_JOB

JOB_ID NUMBER(19,0) No 1
JOB_NAME VARCHAR2(130 BYTE) Yes 2
JOB_QUALIFIER VARCHAR2(64 BYTE) Yes 3
SUBMISSION_INSTANCE NUMBER(10,0) Yes 4
APPL_ID NUMBER(19,0) Yes 5
JOB_NO VARCHAR2(32 BYTE) Yes 6
AGENT_NAME VARCHAR2(50 BYTE) Yes 7
START_DATE_TIME DATE Yes 8
END_DATE_TIME DATE Yes 9
STATE VARCHAR2(64 BYTE) Yes 10
CONDITIONS VARCHAR2(1024 BYTE) Yes 11
WOB_TYPE VARCHAR2(32 BYTE) Yes 12
USERID VARCHAR2(128 BYTE) Yes 13
OVERDUE_START NUMBER(19,0) Yes 14
OVERDUE_END NUMBER(19,0) Yes 15
COMPLETION_CODE VARCHAR2(10 BYTE) Yes 16
COMMAND VARCHAR2(1024 BYTE) Yes 17
SCRIPT VARCHAR2(1024 BYTE) Yes 18
ARGUMENT VARCHAR2(4000 BYTE) Yes 19
ENVARS VARCHAR2(4000 BYTE) Yes 20
TAG VARCHAR2(128 BYTE) Yes 21
RESOURCES VARCHAR2(1024 BYTE) Yes 22
SUBAPPL VARCHAR2(130 BYTE) Yes 23
STATUS VARCHAR2(1024 BYTE) Yes 24
USER_STATUS VARCHAR2(128 BYTE) Yes 25
COMMENTS VARCHAR2(2000 BYTE) Yes 26
JOB_LOG_ID VARCHAR2(128 BYTE) Yes 27
READY_DATE_TIME DATE Yes 28
USER_REASON VARCHAR2(1024 BYTE) Yes 29

Select statement

select ESP_APPLICATION table related fields
APPL_ID, JOB_NAME, -- APPL_NAME, APPL_GEN_NO,
START_DATE_TIME, END_DATE_TIME, --SCHEDULED_DATE_TIME,
STATE, TAG, COMMENTS, --EVENT_NAME,
JOB_ID, JOB_QUALIFIER, SUBMISSION_INSTANCE, JOB_NO, AGENT_NAME, CONDITIONS, WOB_TYPE, USERID, OVERDUE_START, OVERDUE_END, COMPLETION_CODE, COMMAND,
SCRIPT, ARGUMENT, ENVARS, RESOURCES, SUBAPPL, STATUS, USER_STATUS, JOB_LOG_ID, READY_DATE_TIME, USER_REASON
from ESP.esp_generic_job A ;


ESP_FILEMONTR_JOB

JOB_ID NUMBER(19,0) No 1
FILENAME VARCHAR2(1024 BYTE) Yes 2
TRIGGER_CONDITION VARCHAR2(10 BYTE) Yes 3

Sample SQL

select -- below are related fields from esp_generic_job
JOB_ID,
FILENAME, -- SCRIPT
TRIGGER_CONDITION -- ARGUMENT
from ESP.ESP_FILEMONTR_JOB;

Sample SQL to get applications run on Sunday between certain time

 
select distinct APPL_NAME,-- APPL_GEN_NO,
a1.JOB_NAME, JOB_QUALIFIER, a1.STATE, WOB_TYPE, fm1.FILENAME,fm1.TRIGGER_CONDITION--, fm1.JOB_ID -- to get additional params for Unix
,a1.START_DATE_TIME,to_char(a1.START_DATE_TIME,'DAY')
-- , '~~',a1.*  ,'~~',b1.* 
 ,A1.APPL_ID,a1.job_id
 ,to_char(A1.START_DATE_TIME,'YYYY-MM-DD HH24:MI') START_DATE_TIME,to_char(a1.END_DATE_TIME,'YYYY-MM-DD HH24:MI') END_DATE_TIME
 ,APPL_GEN_NO ,a1.JOB_NO,a1.AGENT_NAME,a1.SCRIPT, a1.ARGUMENT

from ESP.esp_generic_job A1 -- job table
left outer join ESP.ESP_FILEMONTR_JOB fm1 on a1.job_id = fm1.job_id -- to get additional params for Unix
, esp.esp_application B1 -- application table
WHERE  
appl_name like 'specific_app_names%'  -- Restrict to required application names
-- AND appl_name <>  'ignore_app_names' -- dont show some applications
AND A1.APPL_ID = B1.APPL_ID -- join both tables
 AND A1.START_DATE_TIME >= SYSDATE   - 61  --  limit number of days
AND to_char(a1.START_DATE_TIME,'DAY') LIKE 'SUN%' -- ran on Sunday
 AND to_char(A1.START_DATE_TIME,'HH24:MI') BETWEEN '06:30' AND '23:59'-- limit time
 -- and APPL_NAME = 'PEOPLESOFT_PSH_PAYROLL_PASSTHRU' and APPL_GEN_NO = 68 
-- and a.JOB_NAME ='PSH_AEP_AF_ADP_PASSTHRU' and JOB_QUALIFIER='FILEWATCHER'

 and WOB_TYPE in ('UNIX' ,'FM')  -- Unix or File Watchers
 
 -- and a1.job_id = (select min(a2.job_id) from ESP.esp_generic_job a2 where a1.JOB_NAME = a2.JOB_NAME  and a1.JOB_QUALIFIER = a2.JOB_QUALIFIER )
 order by APPL_NAME,a1.APPL_ID,a1.JOB_ID,a1.START_DATE_TIME,a1.JOB_NO


 ;

Tuesday, 4 July 2023

PeopleSoft Query

 PeopleSoft Query





select 'PSQRYDEFN ',a1.OPRID, QRYNAME, DESCR, VERSION, QRYTYPE, SELCOUNT, EXPCOUNT, BNDCOUNT, QRYVALID, LASTUPDDTTM, LASTUPDOPRID, QRYAPPROVED, CREATEOPRID, CREATEDTTM, APPROVEOPRID, APPROVEDTTM, EXECLOGGING, QRYDISABLED, QRYFOLDER, QRYJOINOPTIMIZE, QRYIMGTYPE, DESCRLONG 
from PSQRYDEFN a1 
where QRYNAME = 'LM_LG_A_PROGRAM' and rownum <= 12 ;--- stores high-level query definitions with version numbers. 

select 'PSQRYSELECT ',a1.OPRID, QRYNAME, SELNUM, SELECTTYPE, PARENTSELNUM, RCDCOUNT, FLDCOUNT, CRTCOUNT, QRYDISTINCT, HAVECRTCOUNT 
from PSQRYSELECT a1 
where QRYNAME <> 'LM_LG_A_PROGRAM' and rownum <= 12 ;-- stores all SELECT requirements by select type, i.e. union, subselect, join,….  

select 'PSQRYDEFNLANG ',a1.OPRID, QRYNAME,language_cd,DESCR,DESCRlong 
from PSQRYDEFNLANG a1 
where QRYNAME = 'LM_LG_A_PROGRAM' and rownum <= 12 ;--- Non-English detail is stored in it as well as in PSQRYHEADLANG

-- 1. Records

select 'PSQRYRECORD ',a1.OPRID, QRYNAME, SELNUM, RCDNUM, RECNAME, JOINTYPE, JOINRCDNUM, JOINFLDNUM, CORRNAME, QRYRECPRUNABLE ,
decode,jointype,5,'left outer join') rpJoinType
from PSQRYRECORD a1 
where QRYNAME = 'LM_LG_A_PROGRAM' and rownum <= 12 ;-- stores all records used in all aspects of query creation







-- 2. Query
-- 3. Expressions

Refer 6. Criteria


-- 4. Prompts

select 'PSQRYBIND ',a1.OPRID, QRYNAME, BNDNAME, BNDNUM, FIELDNAME, HDGTYPE, HEADING, FIELDTYPE, 
LENGTH, DECIMALPOS, FORMAT, EDITTABLE, USECOUNT, USEEDIT, QRYREQUIREDPROMPT, QRYPROMPTDEFAULT 
from PSQRYBIND a1 
where QRYNAME = 'LM_LG_A_PROGRAM' and rownum <= 12 ;--- stores all run-time 'prompt' data

select 'PSQRYBINDLANG ',a1.OPRID, QRYNAME, BNDNAME,language_cd,heading 
from PSQRYBINDLANG a1 
where QRYNAME = 'LM_LG_A_PROGRAM' and rownum <= 12 ;--



-- 5. Fields

select 'PSQRYFIELD ',a1.OPRID, QRYNAME, QRYFLDNAME, SELNUM, FLDNUM, RECNAME, FIELDNAME, FLDRCDNUM, FLDEXPNUM, HDGTYPE, HEADING, 
COLUMNNUM, GROUPBYNUM, ORDERBYNUM, ORDERBYDIR, TTLTYPE, SUBTTLNUM, USECOUNT, XLATTYPE, XLATEXPRTYPE, XLATFLDNUM, XLATEXPNUM, AGGREGATEFUNC 
, decode (columnum,0,'4nonFld',
    decode(recname,' ','2expr',
       decode((selnum,1,'1fld','3'))) rpQryFld
from PSQRYFIELD a1 
where QRYNAME = 'LM_LG_A_PROGRAM' 

and columnnum <> 0; and rownum <= 12 ;--- stores all fields used in all aspects of query operation

note:
psqryrecord.oprid,qryname,selnum,recname,Rcdnum match
psqryfield.oprid,qryname,selnum,recname,fldRcdnum

select 'PSQRYFIELDLANG ',a1.OPRID, QRYNAME,QRYFLDNAME,language_cd,heading  
from PSQRYFIELDLANG a1 
where QRYNAME = 'LM_LG_A_PROGRAM' and rownum <= 12 ;--






-- 6. Criteria

select 'PSQRYCRITERIA ',a1.OPRID, QRYNAME, SELNUM, CRTNUM, COMBTYPE, NEGATION, LPARENLVL, LCRTSELNUM, LCRTFLDNUM, CONDTYPE, /* condition 
2 =,3 <>,
4>,5not>,5<,7not>,
8 in list,9 not in list,
10 between,11 not between,
11 exists,12 not exists,
14 like,15 not like,
16 is null,17 is not null,
18 in tree,19 not in tree,
20 effdt <=,21 effdt >=,22 effdt<,23 effdt >,
24 first effdt,25 last effdt
*/
EXPRTYPE/*
0 eff seq,1 const,2field,3 expression,4 subquery,5 list,6 current date,7 tree,8 prompt,
9 between const-const
10 bet cosnt-field
11 bet const-expr
12 bet fld-const
13 between fld fld
14 between field expr
15 between exp const
16 bet expr fld
17 bet exp expr
18 tree prompt
*/
R1CRTSELNUM, R1CRTFLDNUM, R1CRTEXPNUM, R2CRTSELNUM, R2CRTFLDNUM, R2CRTEXPNUM, RPARENLVL, QRYOJSELNUM ,
decode(combtype,4,'hv1',5,'hv2',6,'hv3',
1,'cr1',2,'cr2',3,'cr3') /*hv is having, cr is criteria */
from PSQRYCRITERIA a1 
where QRYNAME = 'LM_LG_A_PROGRAM' and rownum <= 12 ;--- stores all criteria expressions in code format







select 'PSQRYEXPR ',a1.OPRID, QRYNAME, EXPNUM, FIELDTYPE, LENGTH, DECIMALPOS, USECOUNT, EXPRESSIONTEXT 
from PSQRYEXPR a1 
where QRYNAME = 'LM_LG_A_PROGRAM' and rownum <= 12 ;--- stores the text associated with each criteria expression





-- 7. Having
-- 8. Dependency
-- 9. Transformations
-- 10. View SQL
-- 11. Run

select 'PSQRYTRANS ',a1.QRYNAME, USERID, OPRID, QRYMACHINENAME, QRYDOMAINID, PROCESSID, HOSTNAME, STATUS, QRYSTARTTIME, QRYENDTIME 
from PSQRYTRANS a1 
where QRYNAME <> 'LM_LG_A_PROGRAM' and rownum <= 12 ;--
select 'PSQRYSTATS ',a1.OPRID, QRYNAME, EXECCOUNT, AVGEXECTIME, AVGFETCHTIME, AVGNUMROWS, LASTEXECDTTM, NUMKILLS 
from PSQRYSTATS a1 
where QRYNAME <> 'LM_LG_A_PROGRAM' and rownum <= 12 ;--
select 'PSQRYEXECLOG ',a1.OPRID, QRYNAME, APPLNAME, EXECDTTM, RUNOPRID, EXECTIME, FETCHTIME, NUMROWS, MAXROWLIMIT, KILLEDREASON 
from PSQRYEXECLOG a1 
where QRYNAME <> 'LM_LG_A_PROGRAM' and rownum <= 12 ;--
    
    

select 'PSQRYACCLSTRECS ',a1.VERSION, CLASSID, RECNAME, RECDESCR from PSQRYACCLSTRECS a1 where  rownum <= 12 ;
--select 'PSQRYHEADLANG ',a1.* from PSQRYHEADLANG a1 where QRYNAME <> 'LM_LG_A_PROGRAM' and rownum <= 12 ;--- Non-English detail is stored in it as well as in PSQRYDEFNLANG
select 'PSQRYDEL ',a1.OPRID, QRYNAME, VERSION from PSQRYDEL a1 where QRYNAME <> 'LM_LG_A_PROGRAM' and rownum <= 12 ;--
select 'PSQRYFAVORITES ',a1.OPRID, QRYNAME,qryowner from PSQRYFAVORITES a1 where QRYNAME = 'LM_LG_A_PROGRAM' and rownum <= 12 ;--
select 'PSQRYFLAGS  ',a1.QRYTIMEOUT, QRYSTATSQL from PSQRYFLAGS  a1 where rownum <= 12 ;--
select 'PSQRYLINK ',a1.qryname,qrynamechild from PSQRYLINK a1 where QRYNAME <> 'LM_LG_A_PROGRAM' and rownum <= 12 ;-- stores the relationships to child queries
select 'PSQRYPREFS ',a1.OPRID, QRYAUTOJOIN, QRYNAMESTYLE from PSQRYPREFS a1 where  rownum <= 12 ;--
select 'PSQRYXFORM ',a1.OPRID, QRYNAME,qryxfirmname,cdm_file_type,qryformxsl from PSQRYXFORM a1 where QRYNAME <> 'LM_LG_A_PROGRAM' and rownum <= 12 ;--