IDENTIFICATION DIVISION. PROGRAM-ID. HOL4. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. COPY HOL4MPCP. *COPY HOL4MP. 01 MSG-FIN-SESION PIC X(13) VALUE 'FIN DE SESION'. 01 MI-COMMAREA. 03 CAMPOINICIO PIC X(8). 01 FILLER PIC X(20) VALUE 'TABLA678901234567890'. EXEC SQL INCLUDE CLIENTES END-EXEC. 01 FILLER PIC X(20) VALUE 'SQLCA678901234567890'. EXEC SQL INCLUDE SQLCA END-EXEC. 01 FILLER PIC X(20) VALUE 'SQLER678901234567890'. 01 DB2-ERR. 03 DB2-SQLCODE PIC S9(9). 03 DB2-SQLCODE-Z PIC -ZZZZZZZZ9. 03 DB2-ERROR. 05 DB2-ERR-MSG PIC X(50). 05 DB2-ERR-CODE PIC X(20). 01 RESPUESTA PIC S9(8) COMP. COPY DFHAID. COPY DFHBMSCA. LINKAGE SECTION. PROCEDURE DIVISION. EXEC SQL WHENEVER SQLERROR CONTINUE END-EXEC. EXEC SQL WHENEVER SQLWARNING CONTINUE END-EXEC. EXEC SQL WHENEVER NOT FOUND CONTINUE END-EXEC. IF EIBCALEN = 0 MOVE LOW-VALUES TO HOL4MPI PERFORM MANDAR-MAPONLY PERFORM RETORNO-TRANS END-IF. EXEC CICS RECEIVE MAP('HOL4MP') INTO(HOL4MPI) NOHANDLE END-EXEC. ************************************ * EVALUAMOS LA RESPUESTA DEL USR * ************************************ IF EIBAID = DFHPF3 PERFORM FIN-SESION EXEC CICS RETURN END-EXEC END-IF. EVALUATE EIBRESP WHEN DFHRESP(NORMAL) CONTINUE WHEN DFHRESP(MAPFAIL) PERFORM FALLO-MAPA PERFORM RETORNO-TRANS END-EVALUATE. ************************************* * TRATAMIENTO DEL FICHERO * ************************************* MOVE DNII TO CL-DNI. EXEC CICS ENTER TRACEID(3) END-EXEC. EXEC SQL SELECT DNI , NOMBRE , APELLIDOS , DIRECCION INTO :CL-DNI , :CL-NOMBRE , :CL-APELLIDOS , :CL-DIRECCION FROM IBMUSER.CLIENTES WHERE DNI = :CL-DNI END-EXEC. IF SQLCODE = 0 MOVE 'REGISTRO ENCONTRADO' TO MSGO MOVE CL-NOMBRE TO NOMO MOVE CL-APELLIDOS TO APEO MOVE CL-DIRECCION TO DIRO ELSE PERFORM FALLO-FICHERO END-IF ******************************************* * RESPUESTA AL MAPA * ******************************************* EXEC CICS SEND MAP('HOL4MP') DATAONLY FROM(HOL4MPO) END-EXEC. ******************************************* * PSEUDO-CONVERSACION * ******************************************* RETORNO-TRANS. EXEC CICS RETURN TRANSID(EIBTRNID) COMMAREA(MI-COMMAREA) LENGTH(8) END-EXEC. GOBACK. ******************************************* * RESTO DE LOS PROCEDIMIENTOS * ******************************************* MANDAR-MAPONLY. EXEC CICS SEND MAP('HOL4MP') MAPONLY ERASE NOHANDLE END-EXEC. FALLO-MAPA. MOVE DFHBLINK TO MSGH. MOVE 'INTRODUZCA UN VALOR' TO MSGO. EXEC CICS SEND MAP('HOL4MP') ERASE FROM(HOL4MPO) NOHANDLE END-EXEC. PERFORM RETORNO-TRANS. FIN-SESION. EXEC CICS SEND TEXT FROM(MSG-FIN-SESION) ERASE FREEKB END-EXEC. FALLO-FICHERO. IF SQLCODE = +100 MOVE 'EL CLIENTE NO EXISTE' TO MSGO MOVE SPACE TO NOMO APEO DIRO ELSE EXEC CICS ENTER TRACEID(5) END-EXEC PERFORM G999-ERROR-DB2 EXEC CICS ENTER TRACEID(6) END-EXEC END-IF. FIN-PGM. EXEC CICS RETURN END-EXEC. GOBACK. G999-ERROR-DB2. EXEC CICS ENTER TRACEID(99) END-EXEC. MOVE SQLCODE TO DB2-SQLCODE. MOVE DB2-SQLCODE TO DB2-SQLCODE-Z. MOVE DB2-SQLCODE-Z TO DB2-ERR-CODE. MOVE SQLERRMC TO DB2-ERR-MSG. MOVE DB2-ERROR TO MSGO.