Previous Topic: What Templates ProvideNext Topic: Debugging Aids


Sample Response Process Template

The following figure shows the response process template that corresponds to the premap process template.

     ADD
     MODULE NAME IS xxxDxxxx-RESPONSE VERSION IS 1 LANGUAGE IS PROCESS
         MODULE SOURCE FOLLOWS
 !?*****************************************************************
 !?              THE RESPONSE PROCESS FOR THE xxxx DIALOG
 !?*****************************************************************
   INIT REC (xxx-message-work-record).

 IF AGR-NEXT-FUNCTION EQ 'NEXT'
    THEN DO.
       MOVE 'NEXT' TO xxx-function.
       DISPLAY CONTINUE.
    END.
 IF AGR-NEXT-FUNCTION EQ 'PREV'
    THEN DO.
       MOVE 'PREV' TO xxx-function.
       DISPLAY CONTINUE.
    END.

 IF AGR-NEXT-FUNCTION EQ AGR-CURRENT-FUNCTION AND
    AGR-CURRENT-FUNCTION EQ 'delete'
    THEN DO.
         CALL ..............
    END.

 IF NO FIELDS ARE CHANGED
    THEN
         EXECUTE NEXT FUNCTION.

 ! THE FOLLOWING CODE WILL RETURN A VALUE INTO A SPECIFIED FIELD
 ! IN THE SYSTEM RECORD. THE VALUE GIVES NOTIFICATION OF ANY
 ! ACTIVITY AGAINST ANY RECORDS WHICH WERE SPECIFIED IN THE PREMAP
 ! PROCESS OF THE DIALOG.

 KEEP LONGTERM 'dialog name' TEST RETURN NOTIFICATION INTO
     xxx-notify.

 ! IF APPROPRIATE, THE FOLLOWING VALUES OF xxx-notify SHOULD BE
 ! CHECKED:
 !
 !  VALUE OF xxx-notify                 MEANING
 !
 !         0                  NO DATABASE ACTIVITY FOR RECORD
 !         1                  RECORD WAS OBTAINED
 !         2                  RECORD'S DATA EAS MODIFIED
 !         4                  THE RECORD'S PREFIX WAS MODIFIED
 !                             (I.E. A SET OPERATION OCCURRED
 !                             INVOLVING THIS RECORD)
 !         8                  THE RECORD WAS LOGICALLY DELETED
 !        16                  THE RECORD WAS PHYSICALLY DELETED
 !
 !  MULTIPLE ACTIVITIES WILL CAUSE A COMBINATION OF THESE VALUES.
 !  THE MAXIMUM POSSIBLE VALUE IS 31 (MEANING ALL OF THE ABOVE
 !  OCCURRED).
 !
 !  (I.E.)
 !
 !  IF xxx-notify GT 7
 !     THEN DO.
 !         MOVE 98xxxx TO xxx-msg-message-id.
 !         CALL messge98.
 !         DISPLAY MESSAGE TEXT xxx-msg-message-area.
 !  END.

 !  IF xxx-notify GT 1
 !     THEN DO.
 !         MOVE 98xxxx TO xxx-msg-message-id.
 !         CALL messge98.
 !         DISPLAY CONTINUE MESSAGE TEXT xxx-msg-message-area.
 !  END.
 !
 !  IN THE FIRST EXAMPLE, THE RECORD HAS BEEN DELETED.
 !
 !  IN THE SECOND EXAMPLE, THE RECORD WAS MODIFIED BY
 !  ANOTHER USER.  THE DISPLAY CONTINUE WILL NOT ONLY
 !  DISPLAY A MESSAGE, BUT WILL ALSO REEXECUTE THE
 !  PREMAP TO SHOW THE USER THE MODIFIED RECORD.

   IF AGR-CURRENT-FUNCTION EQ 'function a'
      THEN
          CALL ................
   IF AGR-CURRENT-FUNCTION EQ 'function b'
      THEN
          CALL ................

   (Other processing code specific to the dialog goes here)

   IF AGR-STEP-MODE AND xxx-msg-sub GT 0
      THEN
          DISPLAY MESSAGE TEXT xxx-msg-message-area.
   EXECUTE NEXT FUNCTION.

 !***************************************************************
 DEFINE SUBROUTINE messge98.
 !***************************************************************
  IF xxx-msg-sub LT 4
     THEN
          LINK PROGRAM 'xxxxxxxx' USING (xxx-message-work-record).
     ELSE
          DISPLAY MESSAGE TEXT xxx-message-area.
  GOBACK.
 !
 !****************************************************************
 DEFINE SUBROUTINE dberr99.
 !****************************************************************
 !
 !*****************************************************
 !*********  ABEND ROUTINE FOR BAD DB CALLS.  *********
 !*****************************************************
              KEEP LONGTERM ALL RELEASE.
              ACCEPT RECORD        INTO  der-record-name.
              ACCEPT AREA          INTO  der-area-name.
              ACCEPT ERROR SET     INTO  der-error-set.
              ACCEPT ERROR RECORD  INTO  der-error-record.
              ACCEPT ERROR AREA    INTO  der-error-area.
              MOVE   ERROR-STATUS    TO  der-error-status.
              ROLLBACK.
              DISPLAY MESSAGE CODE IS 799999
                        PARMS = (der-error-status
                                ,der-record-name
                                ,der-area-name
                                ,der-error-set
                                ,der-error-record
                                ,der-error-area).
        GOBACK.
             MSEND.