Transcript Slide 1
IT IS Session#: 5138 GRDS II: Debugging Demystified Agenda • Review GRDS: I (the cool tool to make you drool) – Turn Logging On: Service Requests – Turn Logging Off: Reviewing the Logfile – Custom Diagnostics: SHOWA, SHOWA @#, SHOWA @a • Show Changed: SHOWC, SHOWC @#, SHOWC @a • Envision Basic CONFIRM command • Tips/Hints/Service Requests Review of GRDS: I • Generated Runtime Diagnostic Service • It is Subsystem of UT – It is not a step through debugger Review of GRDS: I – Turn on Logging Review of GRDS: I – Turn on Logging Review of GRDS: I – Turn on Logging Review of GRDS: I – Turn on Logging Review of GRDS: I – Turn on Logging Once you understand the syntax (scope / service_code, service_code,...) and know which service codes you want, it’s easy to write it on GRSS rather than detailing to GRSD Review of GRDS: I – Turn on Logging • That’s all it takes to turn the logging on • Next step is to run your process. – After the process runs, turn logging off and review the diagnostic log file. Review of GRDS: I – Turn off Logging Review of GRDS: I – Review the Logfile Review of GRDS: I – Custom Diagnostics • In any hook use the SHOWA command Review of GRDS: I – Custom Diagnostics • When making the Service Request, ask for Lvl 1 manual diagnostics Review of GRDS: I – Custom Diagnostics • Your custom diagnostic code in the logfile Review of GRDS: I – More with SHOWA • S.REG.STU.COURSE.SECTIONS This will be in the log ONLY if Level 2 or higher manual diagnostics are requested Review of GRDS: I – More with SHOWA • S.REG.STU.COURSE.SECTIONS This will be in the log ONLY if Level 4 or higher manual diagnostics are requested Review of GRDS: I – More with SHOWA • The numeric codes are cumulative – A level 5 manual diagnostic service code, will log all lines with: SHOWA @5, SHOWA @4, SHOWA @3, SHOWA @2, SHOWA @1 • The alphabetic codes are independent – A diagnostic service code of M, will log ONLY those lines that have: SHOWA @M Review of GRDS: I – More with SHOWA • Delivered processes that include SHOWA Review of GRDS: I – More with SHOWA • Delivered processes that include SHOWA Show Changed • SHOWC – Same syntax conventions as SHOWA • SHOWC • SHOWC @# • SHOWC @a – Same service request • Lvl1 manual diagnostics: SHOWC or SHOWC @1 • Lvl# manual diagnostics: SHOWC @# • Manual diagnostics type a: SHOWC @a Show Changed • SHOWC: Logs if the value has changed Show Changed • SHOWC: On Fld Exit Phantom for Custom Entity On Events/Hooks PostConf SHOWC V.DATE.CONFIRMED;V.GUEST.PHONE.NUMBER SHOWC V.AMOUNT.PAID,V.ARRIVAL.DATE SHOWC V.HOST.NAME;V.HOST.PHONE Note: The above lines of code could be on one line. Separate variables with a semi-colon (“;”) or a comma(“,”) Show Changed • SHOWC – The first time SHOWC is encountered – Before the process ends Show Changed • Options regarding SHOWC – SHOWC -@ V.DATE.CONFIRMED • If the variable has not changed, the -@ option will log: V.DATE.CONFIRMED (no change) • The -@ option is only available with SHOWC – SHOWC –A VL.PERSON.EMAIL.ADDRESSES • Will log the ASCII character code for non printable characters such as the value mark (@VM) – You can combine options • SHOWC -@,A VL.PERSON.EMAIL.ADDRESSES – You can track up to 2,000 variables Show Changed • Processes that have embedded SHOWC Envision Basic CONFIRM command • Syntax CONFIRM [level] expr [NOT] tests [;* message] – [level] • 0 (default if no level is specified), 1 or 2 • Works with service request of C1 (log low cost CONFIRM statements) and C2 (log all CONFIRM statements) • Sets a system boolean variable CONFIRMED to true if the test succeeds – expr • The expression to be tested. Typically a programmer defined variable, argument or field buffer value. – tests • One or more tests to perform on the expression. Failing any of the tests will display and log an error message Envision Basic CONFIRM command • Syntax CONFIRM [level] expr [NOT] tests [;* message] – [;* message] • Optional message to further clarify the error • Text following the asterisk will be added to the error messaging Envision Basic CONFIRM command • Example – Log an error message if the return argument(s) from a subroutine are null • For demonstration purposes: – Use S.GET.USER.PERSON.ID subroutine » Returns the Org Entity ID value from SOD – Display this value on a form – I removed my Org Entity ID from my SOD record Envision Basic CONFIRM command Envision Basic CONFIRM command “PRESENT” is a function used with CONFIRM and tests for a non null value For a complete list of available functions, refer to the Envision Basic Commands Reference, p. 84-85 Envision Basic CONFIRM command • Modify Service Request on GRSS – Was XDMS21 / 1 • Level one manual diagnostic to log SHOWA and SHOWC commands – Now XDMS21 / 1, C1 • Log SHOWA, SHOWC and CONFIRM level 0 or 1 • Execute XDMS21 Envision Basic CONFIRM command • Message is displayed to the form Envision Basic CONFIRM command • Message is also logged by GRDS Envision Basic CONFIRM command • Some Subroutines that have CONFIRM statements – S.CALC.ATTENDANCE.GRADE – S.CALC.PARTICIPATION.GRADE – S.CHECK.PERM.TO.REGISTER – S.CREATE.AR.RCPT – S.CREATE.CASH.RCPT Tips/Hints/Service Requests • $DEMANDED SHOWA $DEMANDED − logs the value of ALL V., VL., KV., KEY., and filename.ADD.MODE variables − Will also log Batch Process Variables (BPV.) if they are flagged as non permanent • $TABLE SHOWA $TABLE(VL.BPV.1, VL.BPV.2, VL.BPV.3) − will show those 3 fields in an easier to read table format, using 3 columns and as many rows as there are values in the association Tips/Hints/Service Requests • Keep blanks on their own line SHOWA “ “ SHOWA V.ID;V.LAST.NAME;V.FIRST.NAME • Replace CRT with CALL S_GRAS – CALL S_GRAS(“whateverwasintheCRT”) – If GRDS is on, then the line will go to the log and to the console – If GRDS is off, then the line will go to the console only Tips/Hints/Service Requests • Some cool service requests – S_MIO_EXECUTE / A • Log statements that get executed by S_MIO_EXECUTE (S.EXECUTE) – S.PROC.RUN / A • Log statements that get executed by Procedure Statements – JBSU01 / A • Log statements that get executed by old school Procedures (PGDF) Tips/Hints/Service Requests • More cool service requests – S_SQL_SEL / A – S_MIO_SEL / A • Logs what select statements are getting executed • What is actually running? – When diagnosing a problem you may not know which process is causing the issue – * / PE,PX • Gives you a report of all the processes running Tips/Hints/Service Requests • Don’t request everything * / * (yikes) • And not A=CORE / AE,AX (yowsa) – So the idea is to limit the scope somewhat • Document what you did – Put it on process technical documentation GRDS services provided by this process: 1: For basic diagnostics W: For diagnostics associated only with workflow Questions? The End Enjoy the rest of your conference Rich Murray [email protected]