Previous Topic: Program A:  Client Listing (PC)Next Topic: SEND/RECEIVE Commands


Dialog B: Server listing (Mainframe)

!*************************************************************************
     DIALOG A240D1 (CA ADS)

     PROCESS NAME IS A240D1-PREMAP

    ! THE INTENT OF THIS MAPLESS DIALOG IS TO RECEIVE THE EMPLOYEE-ID
    ! FROM THE PC APPLICATION AND THEN OBTAIN THE APPROPRIATE RECORDS FROM
    ! THE CA IDMS/DB DATABASE, BASED ON THE CONTENTS OF THE EMPLOYEE ID.
    ! THEN CERTAIN ELEMENTS IN THE RECORDS ARE SENT BACK TO THE PC FOR FURTHER
    ! PROCESSING.
    !

    ! IN ALL APPC CONVERSATIONS THERE ARE LOCAL AND REMOTE PROGRAM.
    ! ONLY ONE OF THE PROGRAMS CAN CONTROL THE CONVERSATION BUT CONTROL
    ! CAN BE PASSED BACK AND FORTH BETWEEN LOCAL AND REMOTE APPLICATIONS.
    !

    ! IN THIS APPLICATION THE DEFAULT SENDER IS THE PC PROGRAM BECAUSE IT
    ! ISSUED THE ALLOCATE.  ON THE RECEIVING END A "CONTROL SESSION" IS
    ! INITIATED IN RESPONSE TO THE ALLOCATE.
    !

    ! NOTE THAT THE USE OF THE FORMAT/NOFORMAT PARAMETERS MUST BE THE SAME AT
    ! BOTH ENDS OF THE CONVERSATION.

    READY.
(B2)CONTROL SESSION FORMAT.
    IF APPCCODE LT 0 THEN
         CALL SR-ABEND.

    ! LET'S GET THE EMPLOYEE ID FROM THE PC.
(B2)RECEIVE-AND-WAIT EMP-ID-WORK.
    IF APPCCODE LT 0 OR WHAT-RECEIVED NE 'DATA-COMPLETE' THEN
         CALL SR-ABEND.

    ! ALL APPC COMMUNICATIONS OCCUR IN HALF-DUPLEX MODE.  THAT IS, ONLY ONE
    ! OF THE PROGRAMS CAN TALK WHILE THE OTHER LISTENS.  IN ORDER TO
    ! "TURN THE LINE AROUND" THE RECEIVER MUST WAIT UNTIL THE SENDER SAYS IT'S
    ! OK TO SEND.  THIS IS ACCOMPLISHED BY WAITING FOR 'SEND' TO BE RECEIVED
    ! IN THE WHAT-RECEIVED SYSTEM VARIABLE.
(B3)RECEIVE-AND-WAIT.
    IF APPCCODE LT 0 OR WHAT-RECEIVED NE 'SEND' THEN
         CALL SR-ABEND.

    ! EMP-ID-0415 IS DEFINED AS PIC 9(4) USAGE IS DISPLAY.  APPC PRESENTATION
    ! SERVICES DO NOT SUPPORT ZONED DECIMAL DATA TYPE. IN ORDER TO RECEIVE THE
    ! EMPLOYEE ID FROM THE PC,  A WORK RECORD IS CREATED WITH USAGE IS COMP.
    ! THEN GET THE RECORD USING AN OBTAIN CALC.

    MOVE WK-EMP-ID TO EMP-ID-0415.
    OBTAIN CALC EMPLOYEE.

    IF DB-REC-NOT-FOUND THEN DO.
(B4)     SEND-ERROR.           ! NOTIFY CLIENT WE DIDN'T FIND EMPLOYEE
            IF APPCCODE LT 0 THEN CALL SR-ABEND.
(B5)     DEALLOCATE.
         LEAVE ADS.
      END.
    ! GET THE OFFICE RECORD, IF ONE EXISTS.

    IF SET OFFICE-EMPLOYEE MEMBER THEN
        OBTAIN OWNER WITHIN OFFICE-EMPLOYEE.

     MOVE EMP-FIRST-NAME-0415     TO WK-EMP-FIRST-NAME.
     MOVE EMP-LAST-NAME-0415      TO WK-EMP-LAST-NAME.
     MOVE EMP-STREET-0415         TO WK-EMP-STREET.
     MOVE EMP-CITY-0415           TO WK-EMP-CITY .
     MOVE EMP-STATE-0415          TO WK-EMP-STATE.
     MOVE EMP-ZIP-FIRST-FIVE-0415 TO WK-EMP-ZIP-FIRST-FIVE.
     MOVE STATUS-0415             TO WK-STATUS.
     MOVE OFFICE-CODE-0450        TO WK-OFFICE-CODE.

(B6) SEND-DATA WK-EMP-REC2.
     IF APPCCODE LT 0 THEN  CALL SR-ABEND.

    ! NOW THAT WE HAVE FINISHED, LET'S FLUSH THE COMMUNICATIONS
    ! BUFFER AND TERMINATE THE CONVERSATION.

(B6)DEALLOCATE.
    LEAVE ADS.

!***********************
   !
   ! SEND/RECEIVE ERROR HANDLING SUBROUTINE
   !
      DEFINE SR-ABEND.

(B7)      DEALLOCATE ABEND.
          LEAVE ADS.