as400 interview questions and answers-Part 23


1. Explain MONITOR opcode in rpgle with example.

 

Ans:

 

Ü MONITOR (Begin a Monitor Group)

·         If no error indicator or 'E' extender is present and the code that generates the exception is in the MONITOR block of a MONITOR group, control will pass to the on-error section of the MONITOR group.

·         V5R1 makes the introduction of a MONITOR group: it allows you to monitor a number of statements for potential errors, as opposed to checking them one at a time.

·         The code for which you want to trap exception errors is placed in a MONITOR group. If an exception/error is issued for any of the operations (between the MONITOR and the first ON-ERROR operation), control passes to the first ON-ERROR statement.

·         After the MONITOR statement, control passes to the next statement.

·         If all the statements in the MONITOR block are processed without errors, control passes to the statement following the ENDMON statement.

·         The monitor group can be specified anywhere in calculations. It can be nested within IF, DO, SELECT, or other monitor groups. The IF, DO, and SELECT groups can be nested within monitor groups.

·         If a monitor group is nested within another monitor group, the innermost group is considered first when an error occurs. If that monitor group does not handle the error condition, the next group is considered.

·         ON-ERROR supports four types of error catching as given below.

 

Monitor;
// Code to monitor
On-Error statuscode1 : statuscode2 :statuscode3;
// Handle Error related to statuscode1 or statuscode2 or statuscode3
On-Error *FILE;
// Handles all file-error status codes, from 01000 to 09999
On-Error *PROGRAM;
// Handles all program-error status codes, from 00100 to 00999
On-Error *ALL;
// Handles both program-error and file-error codes, from 00100 to 09999. This is the  
   default.
EndMon;

 

Example


Columns . . . :    6  80               Browse                                    AMITCC/QRPGLESRC
SEU==>                                                                                 MONITORPG2
FMT H  HKeywords++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
*************** Beginning of data *******************************************************
0001.00 HOPTION(*SRCSTMT)
0002.00 FCUST      UF A E             DISK    USROPN
0003.00
0004.00  *_________________________________________________________
0005.00  *
0006.00 C                   MONITOR
0007.00  *_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
0008.00  *
0009.00 C                   MONITOR
0010.00 C     1             SETLL     CUSTR
0011.00 C                   ON-ERROR  1211      >>>>>>> If the error is ‘file CUST not OPEN’, then
0012.00 C                   OPEN      CUST                      open the file CUST
0013.00 C                   ENDMON
0014.00  *_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
0015.00  *
0016.00 C                   MONITOR
0017.00 C                   EVAL      CSNAME='OOO'
0018.00 C                   UPDATE    CUSTR
0019.00 C                   ON-ERROR  1215    >>> If the error is ‘Update without prior INPUT/READ
0020.00 C                   READ(E)   CUST               operation’, then READ the file.
0021.00 C                   EVAL      CSNAME='OOO'
0022.00 C                   UPDATE(E) CUSTR
0023.00 C                   ENDMON
0024.00  *_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
0025.00  *
0026.00 C                   ON-ERROR  *FILE
0027.00 C                   DUMP(A)          >>>> If the error is ‘any unhandled file error’ then
0028.00 C                   ON-ERROR                             take the DUMP’.
0029.00 C                   DUMP(A)
0030.00 C                   ENDMON
0031.00  *_________________________________________________________
0032.00  *
0033.00 C                   SETON                                        LR
0034.00  *
0035.00  *
****************** End of data ***********************************************************

 

 

 

2. Explain PLIST opcode in rpgle with example.

 

Ans:

Ü PLIST (Identify a Parameter List)

·         It is used to define a list of parameter that will be used for calling a program.

 

Example

       I.            Called program uses PLIST/PARM to take the parameters sent by the calling program.


C     *ENTRY        PLIST
C                   PARM                    OLDLIB1
C                   PARM                    NEWLIB1
C                   PARM                    OLDLIB2
C                   PARM                    NEWLIB2
C                   PARM                    OLDLIB3
C                   PARM                    NEWLIB3

 

 

 

    II.            Calling Program sending the parameters using PLIST

 


     C     PLIST1        PLIST
     C                   PARM                    Fld1              5 2
     C                   PARM                    Fld2              4 2
     C
     C                   CALL     'PROG1'        PLIST1

 




 

 







User Comments:



Copyright © www.go4as400.com, 2013-2023. Copyright notice   Terms of services   Privacy policy