Está en la página 1de 6

******************************************************************

* APLICATIVO: XXXXXXXXXXX *
* PROGRAMA: XX6CXXXX *
* TIPO DE PROCESO: BATCH *
* AUTOR: STEFANINI (XXX) *
* *
* DESCRIPCION: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX *
* XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX *
* XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX *
* XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX *
* XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX *
* *
* INDICADOR DE OPERACION XX (CONSULTA) *
* -------------------------------------------- *
* XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX *
* INDICADOR DE OPERACION XX (LIMPIAR) *
* -------------------------------------------- *
* XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX *
* *
* ENTRADAS/SALIDAS *
* ---------------- *
* AREAS COMUNICACION: *
* QGECCAA E/S AREA DE COMUNICACION DE ARQUITECTURA *
* *
* FORMATO DE ARQUITECTURA: *
* ENTRADA XXXXXXX MENSAJE DE ENTRADA *
* SALIDA XXXXXXX MENSAJE DE SALIDA CON EL RESULTADO DE LA *
* OPERACION. *
* *
* TABLAS DB2,RUTINAS: *
* RUTINA : XXXXXXX (LK) *
* DESCRIPCION: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX *
* XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX *
* LLAMADO VIA: LINK PROGRAMA (XXXXXXX) COMMAREA (XXXXXXX) *
* ENTRADA : XXXXXXX *
* SALIDA : XXXXXXX *
* *
* TABLA : XXXXXXXX *
* DESCRIPCION: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX *
* ACCESO : XXXXXXXXXXXXX *
* TIP. ACCESO: ENTRADA(I), SALIDA(S) *
* *
******************************************************************
* CLAVE DE ACCESO *
* --------------- *
* CL = CALL *
* WQ = WRITEQ *
* S = SELECT *
* *
* ERRORES Y AVISOS *
* ---------------- *
* XXEXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX *
* XXAXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX *
******************************************************************
* MODIFICACIONES *
* ============== *
* USUARIO FECHA DESCRIPCION *
* ------- ---------- ------------------------------------- *
* ZXXXXXX AAAA-MM-DD XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX *
* ------- ---------- ------------------------------------- *
* *
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. XX6CXXXX.
*AUTHOR. STEFANINI(XXX).
*sin espacios
*DATE-WRITTEN. AAAA-MM-DD.
*
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
* DECIMAL-POINT IS COMMA
DATA DIVISION.
*
WORKING-STORAGE SECTION.

*
*------------COPY PARA LA RUTINA DE ABEND (QG1CABC)--------------*
* 01 WS-QGECABC.
* COPY QGECABC. "copy"

*
*-------------------AREA DE VARIABLES DE TRABAJO-----------------*

01 WS-VAR-TRAB.
*
05 WS-FECHA.
10 WS-FECHA-AA PIC X(02).
10 WS-FECHA-MM PIC X(02).
10 WS-FECHA-DD PIC X(02).
*
05 WS-FECHA-FORMATO.
10 WS-AAAA-FORMAT PIC X(04) VALUE SPACES.
10 FILLER PIC X(01) VALUE '-'.
10 WS-MM-FORMAT PIC X(02) VALUE SPACES.
10 FILLER PIC X(01) VALUE '-'.
10 WS-DD-FORMAT PIC X(02) VALUE SPACES.

*
*------------C O N S T A N T E S N U M E R I C A S-------------*
01 CT-CONSTANTES.
*
05 CT-1 PIC 9(01) VALUE 1.
05 CT-2 PIC 9(01) VALUE 2.
05 CT-10 PIC 9(02) VALUE 10.
05 CT-20 PIC 9(02) VALUE 20.
05 CT-100 PIC 9(03) VALUE 100.
05 CT-200 PIC 9(03) VALUE 200.

*
*----C O N S T A N T E S D E C A D E N A (N U M E R O S)----*
*05 CT-1 ESTA DEFINIDA DOS VECES NO ES CORRECTO
* 05 CT-1 PIC X(01) VALUE '1'.
05 CT-0 PIC X(01) VALUE '0'.
05 CT-CORRECTO PIC X(02) VALUE '00'.
05 CT-CODRET-10 PIC X(02) VALUE '10'.
05 CT-CODRET-15 PIC X(02) VALUE '15'.
05 CT-CODRET-20 PIC X(02) VALUE '20'.
05 CT-CODRET-25 PIC X(03) VALUE '25'.
05 CT-CODRET-30 PIC X(03) VALUE '30'.

*
*------------C O N S T A N T E S D E C A D E N A-------------*

05 CT-H PIC X(01) VALUE 'H'.


05 CT-S PIC X(01) VALUE 'S'.
05 CT-N PIC X(01) VALUE 'N'.
05 CT-ESPANOL PIC X(01) VALUE 'E'.
05 CT-FECHA PIC X(08) VALUE 'FECHA '.
05 CT-TC9CGEN PIC X(07) VALUE 'TC9CGEN'.
05 CT-PROGRAMA PIC X(08) VALUE 'XX6CXXX'.
05 CT-TC9C1200 PIC X(08) VALUE 'TC9C1200'.
05 CT-HORA-OPER PIC X(08) VALUE 'HORA OPE'.
05 CT-DINH-HORAINI PIC X(12) VALUE
'DINH-HORAINI'.
05 CT-DIAS-HABILES PIC X(12) VALUE
'DIAS-HABILES'.
05 CT-DINH-HORAFIN PIC X(12) VALUE
'DINH-HORAFIN'.
05 CT-ERROR-ACCESO PIC X(20) VALUE
'ERROR EN EL ACCESO A'.
05 CT-RUTINA-TC9CGEN PIC X(20) VALUE
'LA RUTINA TC9CGEN '.
05 CT-DIANO-AUT PIC X(20) VALUE
'DIA NO AUTORIZ PARA '.
05 CT-PARA-TRAN PIC X(20) VALUE
'OPERAR TRANSACCION '.
05 CT-HORARIO-NO-AUT PIC X(20) VALUE
'HORARIO NO AUTORIZ '.
05 CT-PARA-OPE-TRAN PIC X(20) VALUE
'PARA OPERAR TRANSAC '.

*
*-----------------------C O N T A D O R E S----------------------*
01 CN-CONTADORES.
05 CN-CONTADOR PIC S9(09).

*
*-------------------------I N D I C E S--------------------------*
01 IN-INDICADORES.
05 IN-INDICADOR PIC 9(02).

*
*---------------M E N S A J E S D E A V I S O----------------*
01 ME-MENSAJES.
05 MA-AVISO1 PIC X(20).

*
*---------------M E N S A J E S D E E R R O R----------------*

05 ME-FALTA-ENTRADA PIC X(07) VALUE 'XXE0079'.


05 ME-ERROR-GENERICO PIC X(07) VALUE 'XXE2001'.
05 ME-ERROR-ACCESO PIC X(07) VALUE 'XXE0040'.
05 ME-CODIGO-INEXISTENTE PIC X(07) VALUE 'XXE5287'.
05 ME-XXEXXXX PIC X(07) VALUE 'XXE0256'.

*
*--------------------------C O P I E S---------------------------*

* COPY XXWCXXXX.
*
* COPY XXTCXXXX.
*
* COPY XXWCXXX.
*
******************************************************************
* L I N K A G E S E C T I O N *
******************************************************************
* LINKAGE SECTION.
* 01 LI-XXECXXXX-01.
* COPY XXECXXXX.
* USO DE COPIES
* S: se elimina variable duplicada
*01 LI-XXECXXXX-01.
* COPY XXECXXXX.
*
******************************************************************
* P R O C E D U R E D I V I S I O N *
******************************************************************
PROCEDURE DIVISION.
* USING LI-XXECXXXX-01.
*
1001-MAINLINE.
DISPLAY 'JO: flujo principal'

PERFORM 1000-INICIO
PERFORM 2000-PROCES
PERFORM 3000-FINAL
* D: se agrega STOP RUN
STOP RUN.
*
******************************************************************
* 1000-INICIO *
* *
* SE INICIALIZAN LAS VARIABLES DE TRABAJO Y DE LA LINKAGE. ASI *
* COMO ACTIVAR ALGUNAS VARIABLES Y MOVER VALORES GLOBALES. *
*
******************************************************************
1000-INICIO.
DISPLAY 'SE: Rutina 1000-INICIO'
* INITIALIZE LI-XXECXXXX-01
WS-VAR-TRAB

* SET XXXX-88-OK TO TRUE


* MOVE CT-PROGRAMA TO XXXX-PROGRAMA
* MOVE CT-N TO XXXX-RESTRICC.

.
******************************************************************
* 2000-PROCESO *
* *
* SE VALIDAN LOS CAMPOS DE LA TRANSACCION EJECUTADA Y SE VALIDAN *
* LOS DIAS HABILES. *
******************************************************************
2000-PROCES.
DISPLAY 'JE: Rutina 2000-PROCESO'
PERFORM 2100-VALIDAR-ENTRADA
* D: Punto para finalizar rutina
PERFORM 2200-VALIDACION-DIAS-INHABILES.

******************************************************************
* 2100-VALIDAR-ENTRADA *
* *
* VALIDA LOS CAMPOS QUE RECIBE DEL PROGRAMA LLAMANTE *
******************************************************************
2100-VALIDAR-ENTRADA.
*
DISPLAY 'RU: Rutina 2100-VALIDAR-ENTRADA'
* IF XXXX-FECHA EQUAL SPACES OR LOW-VALUES

DISPLAY 'JO: Fecha vacía'


* SET XXXX-88-COD-ERROR TO TRUE
* MOVE ME-FALTA-ENTRADA TO XXXX-COD-ERROR
* MOVE CT-FECHA TO XXXX-VAR1-ERROR
PERFORM 3000-FINAL
* D: 'añadir punto final'
* END-IF.

* .
******************************************************************
* 2200-VALIDACION-DIAS-INHABILES *
* *
* HACE EL LLAMADO A UNA RUTINA QUE MANDARA VALIDAR LA FECHA SI *
* ES O NO HABIL. *
******************************************************************
2200-VALIDACION-DIAS-INHABILES.
*
DISPLAY 'SE: Rutina 2200-VALIDACION-DIAS-INHABILES'.
* INITIALIZE XXWCXXXX

* MOVE XXXX-FECHA(9:2) TO WS-DD-W140


* MOVE XXXX-FECHA(6:2) TO WS-MM-W140
* MOVE XXXX-FECHA(1:4) TO WS-AAAA-W140
* MOVE WS-FECHA-W140 TO XXXX-FHTRAT1

* CALL CT-XX9CXXXX USING XXWCXXXX

* EVALUATE XXXX-CDRETORN
* WHEN CT-CORRECTO
* PERFORM 9000-VALIDAR-HORARIO
* WHEN OTHER
* SET RET0-88-ERR-DB2 TO TRUE
* MOVE XXXX-SQLCODE TO XXXX-SQLCODE
* MOVE XXXX-SQLERRM TO XXXX-SQLERRM
* MOVE XXXX-TABLENAME TO XXXX-TABLENAME
* PERFORM 3000-FINAL
* D: punto final
* END-EVALUATE

*
******************************************************************
* 9000-VALIDAR-HORARIO *
* *
* MUEVE LA CLAVE A UNA VARIABLE DEL COPY PARA MANDAR LLAMAR A *
* OTRA RUTINA QUE HARA EL PROCESO. *
******************************************************************
9000-VALIDAR-HORARIO.
*
DISPLAY 'JE: Rutina 9000-VALIDAR-HORARIO'
* INITIALIZE XXWCXXX "no definida"
* MOVE WS-CLAVE-GEN-AUX TO XXX-CLAVE
* D: punto de fin de rutina
PERFORM 9100-ACCESO-XX9CXXX.
*
******************************************************************
* 9100-ACCESO-XX9CXXX. *
* *
* HACE EL LLAMADO A UN RUTINA PARA RECUPERAR LA INFORMACION EN *
* BASE A LOS CAMPOS ENVIADOS. *
******************************************************************
9100-ACCESO-XX9CXXX.
DISPLAY 'SE: Rutina 9100-ACCESO-XX9CXXX'

* MOVE CT-TABLA-0386 TO XXX-TABLA


* MOVE CT-0014 TO XXX-ENTIDAD
* MOVE CT-1 TO XXX-TIPOACC
* MOVE CT-ESPANOL TO XXX-IDIOMA

* CALL CT-XX9CXXX USING XXWCXXX "variables con copy"

* EVALUATE XXX-CDRETORN
* WHEN ZEROES
* MOVE XXXX-DATOS(1) TO XXXX-DATOS
* CONTINUE
* WHEN OTHER
* SET XXXX-88-ERR-DB2 TO TRUE
* MOVE XXX-SQLERRM-DATA TO XXXX-SQLERRM
* MOVE XXX-TABLENAME TO XXXX-TABLENAME
* MOVE XXX-SQLCODE TO XXXX-SQLCODE
* PERFORM 3000-FINAL
* D: punto de fin de rutina
* END-EVALUATE
.

*
******************************************************************
* 3000-FINAL *
* *
* - DEVUELVE EL CONTROL DEL PROGRAMA A LA TRANSACCION *
******************************************************************
3000-FINAL.
DISPLAY 'JE: Rutina 3000-FINAL'
GOBACK.
*
******************************************************************
* FIN DEL PROGRAMA XX6CXXXX *
******************************************************************

También podría gustarte