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.
|
Copyright © 2013 CA.
All rights reserved.
|
|