****************************************************************** * * * PROGRAMA : MP3CLGTR * * APLICACION : MC - * * AUTOR : YOMISMO * * FECHA : 05-03-2015 * * ENTORNO : BATCH * * LENGUAJE : ENTERPRISE COBOL * * DESCRIPCION: PROGRAMA QUE REALIZA EL MATCH ENTRE EL ARCHIVO DEL* * PASO 1 Y EL ARCHIVO TRANSMITIDO * * * ****************************************************************** * * * FUNCIONES : EL MATCH REGISTRO A REGISTRO, DEL ARCHIVO UNO CON * * EL ARCHIVO 2. PASAR LOS DATOS DEL ARCHIVO DE * * ENTRADA AL FORMATO DE LOS CAMPOS EN TABLAS. EN * * CASO DE QUE HAGAN MATCH ESCRIBIRLO EN EL ARCHIVO * * SALIDA 1 CON EL FORMATO DEL ARCHIVO DE ENTRADA 1. * * EN CASO DE QUE NO HAGA MATCH ESCRIBIRLO EN EL * * ARCHIVO SALIDA 2 CON EL FORMATO DEL ARCHIVO DE * * ENTRADA 2. * * * ****************************************************************** * * *----------------------------------------------------------------* * L O G D E M O D I F I C A C I O N E S * *----------------------------------------------------------------* * * * MARCA AUTOR FECHA DESCRIPCION * * ----------- ------- ------- ------------------------------- * * FS-0.0.0-00 XXXXXXX DDMMMAA XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX * *----------------------------------------------------------------* ****************************************************************** * IDENTIFICATION DIVISION ****************************************************************** IDENTIFICATION DIVISION. * PROGRAM-ID. MP3CLGTR. AUTHOR. YOMISMOS. DATE-WRITTEN. 05-03-2015. * ****************************************************************** * ENVIRONMENT DIVISION * ****************************************************************** *--------------------------------* ENVIRONMENT DIVISION. *--------------------------------* * CONFIGURATION SECTION. SPECIAL-NAMES. * DECIMAL-POINT IS COMMA. * INPUT-OUTPUT SECTION. FILE-CONTROL. * SELECT ENTRADA1 ASSIGN E1DQLGTR FILE STATUS IS FS-ENTRADA01. * SELECT ENTRADA2 ASSIGN E2DQLGTR FILE STATUS IS FS-ENTRADA02. * SELECT SALIDA01 ASSIGN S1DQLGTR FILE STATUS IS FS-SALIDA01. * SELECT SALIDA02 ASSIGN S2DQLGTR FILE STATUS IS FS-SALIDA02. *--------------------------------* DATA DIVISION. *--------------------------------* ****************************************************************** FILE SECTION. ****************************************************************** * FD ENTRADA1 BLOCK CONTAINS 0 RECORDS RECORDING MODE IS F LABEL RECORD IS STANDARD DATA RECORD IS REG-ENTRADA1. * 01 REG-ENTRADA1 PIC X(973). * FD ENTRADA2 BLOCK CONTAINS 0 RECORDS RECORDING MODE IS F LABEL RECORD IS STANDARD DATA RECORD IS REG-ENTRADA2. * 01 REG-ENTRADA2 PIC X(113). * FD SALIDA01 BLOCK CONTAINS 0 RECORDS RECORDING MODE IS F LABEL RECORD IS STANDARD DATA RECORD IS REG-SALIDA01. * 01 REG-SALIDA01 PIC X(973). * FD SALIDA02 BLOCK CONTAINS 0 RECORDS RECORDING MODE IS F LABEL RECORD IS STANDARD DATA RECORD IS REG-SALIDA02. * 01 REG-SALIDA02 PIC X(113). * ****************************************************************** WORKING-STORAGE SECTION. ****************************************************************** * * AREA DE CONSTANTES *---------------- 01 CONSTANTES. * *-- PROGRAMAS Y MODULOS REFERENCIADOS 05 WSC-PROGRAMA PIC X(08) VALUE 'MP3CLGTR'. * *-- FICHEROS 05 WSC-ENTRADA01 PIC X(08) VALUE 'ENTRADA1'. 05 WSC-ENTRADA02 PIC X(08) VALUE 'ENTRADA2'. 05 WSC-SALIDA01 PIC X(08) VALUE 'SALIDA01'. 05 WSC-SALIDA02 PIC X(08) VALUE 'SALIDA02'. *-- DESCRIPCION DE LOS PARRAFOS 05 WSC-PARRAFO-12 PIC X(30) VALUE '1200-APERTURA-FICHEROS '. 05 WSC-PARRAFO-31 PIC X(30) VALUE '3100-CERRAR-FICHEROS '. 05 WSC-PARRAFO-50 PIC X(30) VALUE '5000-LEER-ENTRADA01 '. 05 WSC-PARRAFO-51 PIC X(30) VALUE '5100-LEER-ENTRADA02 '. 05 WSC-PARRAFO-611 PIC X(30) VALUE '6000-ESCRIBE-SALIDA01 '. 05 WSC-PARRAFO-612 PIC X(30) VALUE '6100-ESCRIBE-SALIDA02 '. * *-- DESCRIPCION ERRORES OPERACIONES CON FICHEROS 05 WSC-ERROR-ABRIR-ARCHIVO PIC X(40) VALUE 'ERROR AL ABRIR EL ARCHIVO '. 05 WSC-ERROR-LEER-ARCHIVO PIC X(40) VALUE 'ERROR AL LEER EL ARCHIVO '. 05 WSC-ERROR-CERRAR-ARCHIVO PIC X(40) VALUE 'ERROR AL CERRAR EL ARCHIVO '. 05 WSC-ERROR-WRITE-ARCHIVO PIC X(40) VALUE 'ERROR AL ESCRIBIR ARCHIVO '. 05 WSC-ERROR-VACIO PIC X(40) VALUE '*ERROR AL LEER FICHERO FICHERO VACIO *'. * *-- CONSTANTES ERROR OPERACIONES CON FICHEROS Y MODULOS 05 WSC-FS-00 PIC X(02) VALUE '00'. 05 WSC-FS-10 PIC X(02) VALUE '10'. * *-- CONSTANTES ALFANUMERICAS 05 WSC-DIESISEIS PIC X(02) VALUE '16'. 05 WSC-TRES PIC X(02) VALUE '03'. 05 WSC-P PIC X(01) VALUE 'P'. * *-- CONSTANTES NUMERICAS 05 WSC-N-1 PIC S9(09) COMP VALUE 1. * *---------------------------------------------------------------- * CIFRAS DE CONTROL *---------------------------------------------------------------- 01 WSV-VARIABLES-CIFRAS-1. 05 WSV-CIFRAS-CTRL. 10 WSV-CIFRA-R1. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(68) VALUE ALL '-'. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(50) VALUE ALL ' '. 10 WSV-CIFRA-R2. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(18) VALUE '------------- '. 15 FILLER PIC X(32) VALUE 'C I F R A S DE C O N T R O L'. 15 FILLER PIC X(18) VALUE ' -------------'. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(50) VALUE ALL ' '. 10 WSV-CIFRA-R3. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(68) VALUE ALL '-'. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(50) VALUE ALL ' '. 10 WSV-CIFRA-R4. 15 FILLER PIC X(40) VALUE '*NOMBRE DEL PROGRAMA : '. 15 WSV-PROGRAMA-CIFRAS PIC X(08). 15 FILLER PIC X(21) VALUE SPACES. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(50) VALUE ALL ' '. 10 WSV-CIFRA-R5. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(68) VALUE ALL '-'. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(50) VALUE ALL ' '. 10 WSV-CIFRA-R6. 15 FILLER PIC X(49) VALUE '* INICIO DEL PROCESO : '. 15 WSV-FECHA-I. 20 WSV-DIA-INI PIC X(02) VALUE SPACES. 20 FILLER PIC X(01) VALUE '-'. 20 WSV-MES-INI PIC X(02) VALUE SPACES. 20 FILLER PIC X(01) VALUE '-'. 20 FILLER PIC X(02) VALUE '20'. 20 WSV-ANIO-INI PIC X(02) VALUE SPACES. 15 FILLER PIC X(01) VALUE SPACES. * 15 FILLER PIC X(09) VALUE SPACES. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(50) VALUE SPACES. 10 WSV-CIFRA-R7. 15 FILLER PIC X(49) VALUE '* REGISTROS LEIDOS ENTRADA1 : '. 15 WSA-ENTRADA01 PIC ZZZ,ZZZ,ZZ9. 15 FILLER PIC X(09) VALUE SPACES. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(50) VALUE SPACES. 10 WSV-CIFRA-R8. 15 FILLER PIC X(49) VALUE '* REGISTROS LEIDOS ENTRADA2 : '. 15 WSA-ENTRADA02 PIC ZZZ,ZZZ,ZZ9. 15 FILLER PIC X(09) VALUE SPACES. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(50) VALUE SPACES. 10 WSV-CIFRA-R9. 15 FILLER PIC X(49) VALUE '* REGISTROS GRABADOS SALIDA1 : '. 15 WSA-SALIDA01 PIC ZZZ,ZZZ,ZZ9. 15 FILLER PIC X(09) VALUE SPACES. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(50) VALUE SPACES. 10 WSV-CIFRA-R10. 15 FILLER PIC X(49) VALUE '* REGISTROS GRABADOS SALIDA2 : '. 15 WSA-SALIDA02 PIC ZZZ,ZZZ,ZZ9. 15 FILLER PIC X(09) VALUE SPACES. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(50) VALUE SPACES. 10 WSV-CIFRA-R11. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(68) VALUE ALL '-'. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(50) VALUE SPACES. *---------------------------------------------------------------- * ABORTO * *---------------------------------------------------------------- 01 WSV-ABORTAR. 05 WSV-ABORTO. 10 WSV-ABORTO-R1. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(68) VALUE ALL '-'. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(50) VALUE SPACES. 10 WSV-ABORTO-R2. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(68) VALUE SPACES. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(50) VALUE SPACES. 10 WSV-ABORTO-R3. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(11) VALUE SPACES. 15 FILLER PIC X(36) VALUE 'ERROR: EL PROGRAMA ABORTO AL ACCESAR'. 15 WSV-ENTIDAD-ABORTO PIC X(10) VALUE SPACES. 15 FILLER PIC X(11) VALUE SPACES. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(50) VALUE SPACES. 10 WSV-ABORTO-R4. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(68) VALUE ALL '-'. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(50) VALUE SPACES. 10 WSV-ABORTO-R5. 15 FILLER PIC X(02) VALUE '* '. 15 FILLER PIC X(10) VALUE 'PROGRAMA: '. 15 WSV-PROGRAMA-ABORTO PIC X(08). 15 FILLER PIC X(04) VALUE SPACES. 15 FILLER PIC X(13) VALUE 'FILE STATUS: '. 15 WSV-FS-ARCHIVO PIC X(02) VALUE SPACES. 15 FILLER PIC X(04) VALUE SPACES. 15 FILLER PIC X(11) VALUE 'SQL-ERROR: '. 15 WSV-SQLCODE PIC ------9. 15 FILLER PIC X(11) VALUE ' * '. 15 FILLER PIC X(48) VALUE SPACES. 10 WSV-ABORTO-R6. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(17) VALUE SPACES. 15 FILLER PIC X(19) VALUE 'CODIGO DE RETORNO: '. 15 WSV-CODIGO-RETORNO PIC X(02). 15 FILLER PIC X(30) VALUE SPACES. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(50) VALUE SPACES. 10 WSV-ABORTO-R7. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(68) VALUE ALL '-'. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(50) VALUE SPACES. 10 WSV-ABORTO-R8. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(68) VALUE SPACES. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(50) VALUE SPACES. 10 WSV-ABORTO-R9. 15 FILLER PIC X(02) VALUE '* '. 15 FILLER PIC X(18) VALUE 'MOTIVO DEL ERROR: '. 15 FILLER PIC X(07) VALUE SPACES. 15 WSV-MOTIVO-ERROR PIC X(40) VALUE SPACES. 15 FILLER PIC X(03) VALUE ' *'. 15 FILLER PIC X(50) VALUE SPACES. 10 WSV-ABORTO-R10. 15 FILLER PIC X(02) VALUE '* '. 15 FILLER PIC X(19) VALUE 'PARRAFO DEL ERROR: '. 15 FILLER PIC X(06) VALUE SPACES. 15 WSV-PARRAFO PIC X(40) VALUE SPACES. 15 FILLER PIC X(03) VALUE ' *'. 15 FILLER PIC X(50) VALUE SPACES. 10 WSV-ABORTO-R11. 15 FILLER PIC X(02) VALUE '* '. 15 FILLER PIC X(25) VALUE 'ULTIMO ARCHIVO ACCESADO: '. 15 WSV-NOMBRE-ARCHIVO PIC X(08) VALUE SPACES. 15 FILLER PIC X(34) VALUE SPACES. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(50) VALUE SPACES. 10 WSV-ABORTO-R15. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(68) VALUE SPACES. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(50) VALUE SPACES. 10 WSV-ABORTO-R16. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(68) VALUE ALL '-'. 15 FILLER PIC X(01) VALUE '*'. 15 FILLER PIC X(50) VALUE SPACES. * AREA DE VARIABLES *---------------- 01 VARIABLES. * 05 WSV-CLAVE-E1DQLGTR. 10 WSV-WKLG3-MCNUMETA PIC X(13). 10 WSV-WKLG3-MCNBINTA PIC X(06). 10 WSV-WKLG3-MCFOPERA PIC X(08). * 10 WSV-WKLG3-MCHOPERA PIC 9(06). ** 10 WSV-WKLG3-MCNOPERA PIC X(09). 10 WSV-WKLG3-MCFSTAMP PIC X(26). 05 WSV-CLAVE-E2DQLGTR. 10 WSV-E2-MCNUMETA PIC X(13). 10 WSV-E2-MCNBINTA PIC X(06). 10 WSV-E2-MCFOPERA PIC X(08). * 10 WSV-E2-MCHOPERA PIC X(06). ** 10 WSV-E2-MCNOPERA PIC X(09). 10 WSV-E2-MCFSTAMP PIC X(26). * 01 WSV-ENTRADA1. 05 WKLG3-MCNENTCU PIC X(04). 05 WKLG3-MCNOFICU PIC X(04). 05 WKLG3-MCTCUENT PIC X(02). 05 WKLG3-MCNCUENT PIC X(08). 05 WKLG3-MCNBINTA PIC X(06). 05 WKLG3-MCNUMETA PIC X(13). 05 WKLG3-MCNTJEXT PIC X(11). 05 WKLG3-MCTTARJE PIC X(02). 05 WKLG3-MCFCADUA PIC X(04). 05 WKLG3-MCNENTCO PIC X(04). 05 WKLG3-MCNOFICO PIC X(04). 05 WKLG3-MCTCONTR PIC X(02). 05 WKLG3-MCNCONTR PIC X(08). 05 WKLG3-MCNCJERO PIC X(04). 05 WKLG3-MCNCOMER PIC S9(10)V USAGE COMP-3. 05 WKLG3-MCCIDTER PIC X(11). 05 WKLG3-MCCACCOM PIC X(04). 05 WKLG3-MCCENADQ PIC X(04). 05 WKLG3-MCNOFCNA PIC X(04). 05 WKLG3-MCTIDMIS PIC X(04). 05 WKLG3-MCCOPERA PIC X(02). 05 WKLG3-MCTCTORI PIC X(02). 05 WKLG3-MCTCTDES PIC X(02). 05 WKLG3-MCNREFER PIC S9(13)V USAGE COMP-3. 05 WKLG3-MCCACCIO PIC X(01). 05 WKLG3-MCCRAZON PIC X(02). 05 WKLG3-MCNOPERA PIC X(09). 05 WKLG3-MCFOPERA PIC X(10). 05 WKLG3-MCHOPERA PIC S9(6)V USAGE COMP-3. 05 WKLG3-MCNOPER2 PIC X(09). 05 WKLG3-MCIOPERA PIC S9(11)V9(2) USAGE COMP-3. 05 WKLG3-MCCMOTIT PIC X(03). 05 WKLG3-MCIOPORI PIC S9(11)V9(2) USAGE COMP-3. 05 WKLG3-MCCMOOPE PIC X(03). 05 WKLG3-MCICOMCD PIC S9(11)V9(2) USAGE COMP-3. 05 WKLG3-MCICOMIS PIC S9(11)V9(2) USAGE COMP-3. 05 WKLG3-MCFCONTA PIC X(10). 05 WKLG3-MCNOPORI PIC X(09). 05 WKLG3-MCFOPORI PIC X(10). 05 WKLG3-FILLER PIC X(01). 05 WKLG3-MCHOPORI PIC S9(6)V USAGE COMP-3. 05 WKLG3-MCNTRORI PIC X(04). 05 WKLG3-MCCENORI PIC X(04). 05 WKLG3-MCY4BOPE PIC X(01). 05 WKLG3-MCYEXOPE PIC X(01). 05 WKLG3-MCCRSOPE PIC X(04). 05 WKLG3-MCNAUTOR PIC X(06). 05 WKLG3-MCNMOVOR PIC S9(9)V USAGE COMP-3. 05 WKLG3-MCNAPCRE PIC S9(9)V USAGE COMP-3. 05 WKLG3-MCTMDTAL PIC X(05). 05 WKLG3-MCCDISPO PIC X(04). 05 WKLG3-MCYCTRAU PIC X(01). 05 WKLG3-MCYOATBB PIC X(01). 05 WKLG3-MCYSITAU PIC X(01). 05 WKLG3-MCCRESFI PIC X(02). 05 WKLG3-MCYTJPRA PIC X(01). 05 WKLG3-MCYAUTDI PIC X(01). 05 WKLG3-MCTTIPDO PIC X(01). 05 WKLG3-MCNSESIO PIC S9(3)V USAGE COMP-3. 05 WKLG3-MCCENTRE PIC X(02). 05 WKLG3-MCNREMES PIC X(03). 05 WKLG3-MCCTELIO PIC X(11). 05 WKLG3-MCLITE30 PIC X(30). 05 WKLG3-MCFSTAMP PIC X(26). 05 WKLG3-MCTTRATA PIC X(03). 05 WKLG3-MCYNUPIS PIC X(01). 05 WKLG3-MCYINDI0 PIC X(01). 05 WKLG3-MCYINDI1 PIC X(01). 05 WKLG3-MCYINDI2 PIC X(01). 05 WKLG3-MCYINDI3 PIC X(01). 05 WKLG3-MCYINDI4 PIC X(01). 05 WKLG3-MCYINDI5 PIC X(01). 05 WKLG3-MCYINDI6 PIC X(01). 05 WKLG3-MCYINDI7 PIC X(01). 05 WKLG3-MCYINDI8 PIC X(01). 05 WKLG3-MCYINDI9 PIC X(01). 05 WKLG3-MCLITE20 PIC X(20). 05 WKLG3-MCIDSTAR PIC S9(11)V9(2) USAGE COMP-3. 05 WKLG3-MCILMCRE PIC S9(09)V9(2) USAGE COMP-3. 05 WKLG3-MCFALTTJ PIC X(10). 05 WKLG3-MCMMOEST PIC X(01). 05 WKLG3-MCCODPOS PIC X(10). 05 WKLG3-MCCNACIO PIC X(03). 05 WKLG3-MCCESTAD PIC X(03). 05 WKLG3-MCDESFAL PIC X(01). 05 WKLG3-MCSCOFAL PIC S9(04)V USAGE COMP-3. 05 WKLG3-MCRAZON1 PIC S9(03)V USAGE COMP-3. 05 WKLG3-MCRAZON2 PIC S9(03)V USAGE COMP-3. 05 WKLG3-MCRAZON3 PIC S9(03)V USAGE COMP-3. 05 WKLG3-MCCALIFI PIC X(01). 05 WKLG3-MCNDESCR PIC X(10). 05 WKLG3-MCIISO05 PIC S9(11)V9(2) USAGE COMP-3. 05 WKLG3-MCFISO09 PIC S9(08)V USAGE COMP-3. 05 WKLG3-MCFISO10 PIC S9(08)V USAGE COMP-3. 05 WKLG3-MCFISO16 PIC X(10). 05 WKLG3-MCDISO50 PIC X(03). 05 WKLG3-MCIMPUNT PIC S9(11)V9(2) USAGE COMP-3. 05 WKLG3-MCNUMPUN PIC S9(06)V USAGE COMP-3. 05 WKLG3-MCIMPUNR PIC S9(11)V9(2) USAGE COMP-3. 05 WKLG3-MCNUMPUR PIC S9(06)V USAGE COMP-3. 05 WKLG3-MCCANOPE PIC X(03). 05 WKLG3-MCTIPPOS PIC X(02). 05 WKLG3-MCINCVV3 PIC X(02). 05 WKLG3-MCINLYNX PIC X(02). 05 WKLG3-MCHIPSTA PIC X(01). 05 WKLG3-MCHIPOFF PIC X(01). 05 WKLG3-MCHIPRES PIC X(02). 05 WKLG3-MCINDGAR PIC X(01). 05 WKLG3-MCGARPUN PIC X(02). 05 WKLG3-MCGARAVI PIC X(02). 05 WKLG3-MCCAMREF PIC X(06). 05 WKLG3-MCINASEM PIC X(01). 05 WKLG3-MCSALTOT PIC S9(11)V9(2) USAGE COMP-3. 05 WKLG3-MCTKQ1AU PIC X(01). 05 WKLG3-MCTKQ1RE PIC X(01). 05 WKLG3-MCTKC4TA PIC X(01). 05 WKLG3-MCTKC4AP PIC X(01). 05 WKLG3-MCTKC4LA PIC X(01). 05 WKLG3-MCTKC4PT PIC X(01). 05 WKLG3-MCTKC4PR PIC X(01). 05 WKLG3-MCTKC4CC PIC X(01). 05 WKLG3-MCTKC4ST PIC X(01). 05 WKLG3-MCTKC4NS PIC X(01). 05 WKLG3-MCTKC4RI PIC X(01). 05 WKLG3-MCTKC4AT PIC X(01). 05 WKLG3-MCTKC4CT PIC X(01). 05 WKLG3-MCTKC4ID PIC X(01). 05 WKLG3-MCTKB1FI PIC X(04). 05 WKLG3-MCTKR0SR PIC X(02). 05 WKLG3-MCTKR0SE PIC X(01). 05 WKLG3-MCTKR0RA PIC X(01). 05 WKLG3-MCTKR0CO PIC X(02). 05 WKLG3-MCTKR0RE PIC X(02). 05 WKLG3-MCTKR0OC PIC X(02). 05 WKLG3-MCTKR1CR PIC X(16). 05 WKLG3-MCTKR1AB PIC X(16). 05 WKLG3-MCTK25TS PIC X(04). 05 WKLG3-MCTK25PP PIC X(05). 05 WKLG3-MCTK25NP PIC X(02). 05 WKLG3-MCTKC0V2 PIC X(04). 05 WKLG3-MCTKC0ST PIC X(04). 05 WKLG3-MCTKC0VC PIC X(10). 05 WKLG3-MCTKC0VN PIC X(04). 05 WKLG3-MCTKC0CO PIC X(04). 05 WKLG3-MCTK04AD PIC X(01). 05 WKLG3-MCTK04GR PIC X(11). 05 WKLG3-MCTK04VT PIC X(01). 05 WKLG3-MCTK04T2 PIC X(01). 05 WKLG3-MCTK04AU PIC X(01). 05 WKLG3-MCTKQ6DI PIC X(02). 05 WKLG3-MCTKQ6PA PIC X(02). 05 WKLG3-MCTKQ6PL PIC X(02). 05 WKLG3-MCTKC5MU PIC X(02). 05 WKLG3-MCTKC5CO PIC S9(09)V USAGE COMP-3. 05 WKLG3-MCTKC5RE PIC X(20). 05 WKLG3-MCTKC5RA PIC X(20). 05 WKLG3-MCTKC5CI PIC S9(13)V USAGE COMP-3. 05 WKLG3-MCTKC5FO PIC X(07). 05 WKLG3-MCTKB2BT PIC X(04). 05 WKLG3-MCTKB2PA PIC X(04). 05 WKLG3-MCTKB2CR PIC X(02). 05 WKLG3-MCTKB2RE PIC X(10). 05 WKLG3-MCTKB2AR PIC X(16). 05 WKLG3-MCTKB2EX PIC X(12). 05 WKLG3-MCTKB2CS PIC X(12). 05 WKLG3-MCTKB2FU PIC X(04). 05 WKLG3-MCTKB2CO PIC X(04). 05 WKLG3-MCTKB2AI PIC X(03). 05 WKLG3-MCTKB2MO PIC X(03). 05 WKLG3-MCTKB2FE PIC X(10). 05 WKLG3-MCTKB2FI PIC X(02). 05 WKLG3-MCTKB2VA PIC X(08). 05 WKLG3-MCTKB2LO PIC X(04). 05 WKLG3-MCTKB2VM PIC X(64). 05 WKLG3-MCTKB3BM PIC X(04). 05 WKLG3-MCTKB3IN PIC X(08). 05 WKLG3-MCTKB3EM PIC X(08). 05 WKLG3-MCTKB3DI PIC X(04). 05 WKLG3-MCTKB3DA PIC X(08). 05 WKLG3-MCTKB3AM PIC X(02). 05 WKLG3-MCTKB3VE PIC X(04). 05 WKLG3-MCTKB3RE PIC X(06). 05 WKLG3-MCTKB3LO PIC X(04). 05 WKLG3-MCTKB3AR PIC X(01). 05 WKLG3-MCTKB4ME PIC X(03). 05 WKLG3-MCTKB4TE PIC X(01). 05 WKLG3-MCTKB4CH PIC X(01). 05 WKLG3-MCTKB4CA PIC X(01). 05 WKLG3-MCTKB4DI PIC X(02). 05 WKLG3-MCTKB4RE PIC X(06). 05 WKLG3-MCTKB4AU PIC X(04). 05 WKLG3-MCTKB4VE PIC X(01). 05 WKLG3-MCTKB4EM PIC X(01). 05 WKLG3-MCTKB5LO PIC X(04). 05 WKLG3-MCTKB5AR PIC X(16). 05 WKLG3-MCTKB5AU PIC X(16). 05 WKLG3-MCTKB5BL PIC X(01). 05 WKLG3-MCTKB5PU PIC X(01). * 01 WSV-SALIDA1. 05 WSVS1-MCNENTCU PIC X(04). 05 WSVS1-MCNOFICU PIC X(04). 05 WSVS1-MCTCUENT PIC X(02). 05 WSVS1-MCNCUENT PIC X(08). 05 WSVS1-MCNBINTA PIC X(06). 05 WSVS1-MCNUMETA PIC X(13). 05 WSVS1-MCNTJEXT PIC X(11). 05 WSVS1-MCTTARJE PIC X(02). 05 WSVS1-MCFCADUA PIC X(04). 05 WSVS1-MCNENTCO PIC X(04). 05 WSVS1-MCNOFICO PIC X(04). 05 WSVS1-MCTCONTR PIC X(02). 05 WSVS1-MCNCONTR PIC X(08). 05 WSVS1-MCNCJERO PIC X(04). 05 WSVS1-MCNCOMER PIC S9(10)V USAGE COMP-3. 05 WSVS1-MCCIDTER PIC X(11). 05 WSVS1-MCCACCOM PIC X(04). 05 WSVS1-MCCENADQ PIC X(04). 05 WSVS1-MCNOFCNA PIC X(04). 05 WSVS1-MCTIDMIS PIC X(04). 05 WSVS1-MCCOPERA PIC X(02). 05 WSVS1-MCTCTORI PIC X(02). 05 WSVS1-MCTCTDES PIC X(02). 05 WSVS1-MCNREFER PIC S9(13)V USAGE COMP-3. 05 WSVS1-MCCACCIO PIC X(01). 05 WSVS1-MCCRAZON PIC X(02). 05 WSVS1-MCNOPERA PIC X(09). 05 WSVS1-MCFOPERA PIC X(10). 05 WSVS1-MCHOPERA PIC S9(6)V USAGE COMP-3. 05 WSVS1-MCNOPER2 PIC X(09). 05 WSVS1-MCIOPERA PIC S9(11)V9(2) USAGE COMP-3. 05 WSVS1-MCCMOTIT PIC X(03). 05 WSVS1-MCIOPORI PIC S9(11)V9(2) USAGE COMP-3. 05 WSVS1-MCCMOOPE PIC X(03). 05 WSVS1-MCICOMCD PIC S9(11)V9(2) USAGE COMP-3. 05 WSVS1-MCICOMIS PIC S9(11)V9(2) USAGE COMP-3. 05 WSVS1-MCFCONTA PIC X(10). 05 WSVS1-MCNOPORI PIC X(09). 05 WSVS1-MCFOPORI PIC X(10). 05 WSVS1-FILLER PIC X(01). 05 WSVS1-MCHOPORI PIC S9(6)V USAGE COMP-3. 05 WSVS1-MCNTRORI PIC X(04). 05 WSVS1-MCCENORI PIC X(04). 05 WSVS1-MCY4BOPE PIC X(01). 05 WSVS1-MCYEXOPE PIC X(01). 05 WSVS1-MCCRSOPE PIC X(04). 05 WSVS1-MCNAUTOR PIC X(06). 05 WSVS1-MCNMOVOR PIC S9(9)V USAGE COMP-3. 05 WSVS1-MCNAPCRE PIC S9(9)V USAGE COMP-3. 05 WSVS1-MCTMDTAL PIC X(05). 05 WSVS1-MCCDISPO PIC X(04). 05 WSVS1-MCYCTRAU PIC X(01). 05 WSVS1-MCYOATBB PIC X(01). 05 WSVS1-MCYSITAU PIC X(01). 05 WSVS1-MCCRESFI PIC X(02). 05 WSVS1-MCYTJPRA PIC X(01). 05 WSVS1-MCYAUTDI PIC X(01). 05 WSVS1-MCTTIPDO PIC X(01). 05 WSVS1-MCNSESIO PIC S9(3)V USAGE COMP-3. 05 WSVS1-MCCENTRE PIC X(02). 05 WSVS1-MCNREMES PIC X(03). 05 WSVS1-MCCTELIO PIC X(11). 05 WSVS1-MCLITE30 PIC X(30). 05 WSVS1-MCFSTAMP PIC X(26). 05 WSVS1-MCTTRATA PIC X(03). 05 WSVS1-MCYNUPIS PIC X(01). 05 WSVS1-MCYINDI0 PIC X(01). 05 WSVS1-MCYINDI1 PIC X(01). 05 WSVS1-MCYINDI2 PIC X(01). 05 WSVS1-MCYINDI3 PIC X(01). 05 WSVS1-MCYINDI4 PIC X(01). 05 WSVS1-MCYINDI5 PIC X(01). 05 WSVS1-MCYINDI6 PIC X(01). 05 WSVS1-MCYINDI7 PIC X(01). 05 WSVS1-MCYINDI8 PIC X(01). 05 WSVS1-MCYINDI9 PIC X(01). 05 WSVS1-MCLITE20 PIC X(20). 05 WSVS1-MCIDSTAR PIC S9(11)V9(2) USAGE COMP-3. 05 WSVS1-MCILMCRE PIC S9(09)V9(2) USAGE COMP-3. 05 WSVS1-MCFALTTJ PIC X(10). 05 WSVS1-MCMMOEST PIC X(01). 05 WSVS1-MCCODPOS PIC X(10). 05 WSVS1-MCCNACIO PIC X(03). 05 WSVS1-MCCESTAD PIC X(03). 05 WSVS1-MCDESFAL PIC X(01). 05 WSVS1-MCSCOFAL PIC S9(04)V USAGE COMP-3. 05 WSVS1-MCRAZON1 PIC S9(03)V USAGE COMP-3. 05 WSVS1-MCRAZON2 PIC S9(03)V USAGE COMP-3. 05 WSVS1-MCRAZON3 PIC S9(03)V USAGE COMP-3. 05 WSVS1-MCCALIFI PIC X(01). 05 WSVS1-MCNDESCR PIC X(10). 05 WSVS1-MCIISO05 PIC S9(11)V9(2) USAGE COMP-3. 05 WSVS1-MCFISO09 PIC S9(08)V USAGE COMP-3. 05 WSVS1-MCFISO10 PIC S9(08)V USAGE COMP-3. 05 WSVS1-MCFISO16 PIC X(10). 05 WSVS1-MCDISO50 PIC X(03). 05 WSVS1-MCIMPUNT PIC S9(11)V9(2) USAGE COMP-3. 05 WSVS1-MCNUMPUN PIC S9(06)V USAGE COMP-3. 05 WSVS1-MCIMPUNR PIC S9(11)V9(2) USAGE COMP-3. 05 WSVS1-MCNUMPUR PIC S9(06)V USAGE COMP-3. 05 WSVS1-MCCANOPE PIC X(03). 05 WSVS1-MCTIPPOS PIC X(02). 05 WSVS1-MCINCVV3 PIC X(02). 05 WSVS1-MCINLYNX PIC X(02). 05 WSVS1-MCHIPSTA PIC X(01). 05 WSVS1-MCHIPOFF PIC X(01). 05 WSVS1-MCHIPRES PIC X(02). 05 WSVS1-MCINDGAR PIC X(01). 05 WSVS1-MCGARPUN PIC X(02). 05 WSVS1-MCGARAVI PIC X(02). 05 WSVS1-MCCAMREF PIC X(06). 05 WSVS1-MCINASEM PIC X(01). 05 WSVS1-MCSALTOT PIC S9(11)V9(2) USAGE COMP-3. 05 WSVS1-MCTKQ1AU PIC X(01). 05 WSVS1-MCTKQ1RE PIC X(01). 05 WSVS1-MCTKC4TA PIC X(01). 05 WSVS1-MCTKC4AP PIC X(01). 05 WSVS1-MCTKC4LA PIC X(01). 05 WSVS1-MCTKC4PT PIC X(01). 05 WSVS1-MCTKC4PR PIC X(01). 05 WSVS1-MCTKC4CC PIC X(01). 05 WSVS1-MCTKC4ST PIC X(01). 05 WSVS1-MCTKC4NS PIC X(01). 05 WSVS1-MCTKC4RI PIC X(01). 05 WSVS1-MCTKC4AT PIC X(01). 05 WSVS1-MCTKC4CT PIC X(01). 05 WSVS1-MCTKC4ID PIC X(01). 05 WSVS1-MCTKB1FI PIC X(04). 05 WSVS1-MCTKR0SR PIC X(02). 05 WSVS1-MCTKR0SE PIC X(01). 05 WSVS1-MCTKR0RA PIC X(01). 05 WSVS1-MCTKR0CO PIC X(02). 05 WSVS1-MCTKR0RE PIC X(02). 05 WSVS1-MCTKR0OC PIC X(02). 05 WSVS1-MCTKR1CR PIC X(16). 05 WSVS1-MCTKR1AB PIC X(16). 05 WSVS1-MCTK25TS PIC X(04). 05 WSVS1-MCTK25PP PIC X(05). 05 WSVS1-MCTK25NP PIC X(02). 05 WSVS1-MCTKC0V2 PIC X(04). 05 WSVS1-MCTKC0ST PIC X(04). 05 WSVS1-MCTKC0VC PIC X(10). 05 WSVS1-MCTKC0VN PIC X(04). 05 WSVS1-MCTKC0CO PIC X(04). 05 WSVS1-MCTK04AD PIC X(01). 05 WSVS1-MCTK04GR PIC X(11). 05 WSVS1-MCTK04VT PIC X(01). 05 WSVS1-MCTK04T2 PIC X(01). 05 WSVS1-MCTK04AU PIC X(01). 05 WSVS1-MCTKQ6DI PIC X(02). 05 WSVS1-MCTKQ6PA PIC X(02). 05 WSVS1-MCTKQ6PL PIC X(02). 05 WSVS1-MCTKC5MU PIC X(02). 05 WSVS1-MCTKC5CO PIC S9(09)V USAGE COMP-3. 05 WSVS1-MCTKC5RE PIC X(20). 05 WSVS1-MCTKC5RA PIC X(20). 05 WSVS1-MCTKC5CI PIC S9(13)V USAGE COMP-3. 05 WSVS1-MCTKC5FO PIC X(07). 05 WSVS1-MCTKB2BT PIC X(04). 05 WSVS1-MCTKB2PA PIC X(04). 05 WSVS1-MCTKB2CR PIC X(02). 05 WSVS1-MCTKB2RE PIC X(10). 05 WSVS1-MCTKB2AR PIC X(16). 05 WSVS1-MCTKB2EX PIC X(12). 05 WSVS1-MCTKB2CS PIC X(12). 05 WSVS1-MCTKB2FU PIC X(04). 05 WSVS1-MCTKB2CO PIC X(04). 05 WSVS1-MCTKB2AI PIC X(03). 05 WSVS1-MCTKB2MO PIC X(03). 05 WSVS1-MCTKB2FE PIC X(10). 05 WSVS1-MCTKB2FI PIC X(02). 05 WSVS1-MCTKB2VA PIC X(08). 05 WSVS1-MCTKB2LO PIC X(04). 05 WSVS1-MCTKB2VM PIC X(64). 05 WSVS1-MCTKB3BM PIC X(04). 05 WSVS1-MCTKB3IN PIC X(08). 05 WSVS1-MCTKB3EM PIC X(08). 05 WSVS1-MCTKB3DI PIC X(04). 05 WSVS1-MCTKB3DA PIC X(08). 05 WSVS1-MCTKB3AM PIC X(02). 05 WSVS1-MCTKB3VE PIC X(04). 05 WSVS1-MCTKB3RE PIC X(06). 05 WSVS1-MCTKB3LO PIC X(04). 05 WSVS1-MCTKB3AR PIC X(01). 05 WSVS1-MCTKB4ME PIC X(03). 05 WSVS1-MCTKB4TE PIC X(01). 05 WSVS1-MCTKB4CH PIC X(01). 05 WSVS1-MCTKB4CA PIC X(01). 05 WSVS1-MCTKB4DI PIC X(02). 05 WSVS1-MCTKB4RE PIC X(06). 05 WSVS1-MCTKB4AU PIC X(04). 05 WSVS1-MCTKB4VE PIC X(01). 05 WSVS1-MCTKB4EM PIC X(01). 05 WSVS1-MCTKB5LO PIC X(04). 05 WSVS1-MCTKB5AR PIC X(16). 05 WSVS1-MCTKB5AU PIC X(16). 05 WSVS1-MCTKB5BL PIC X(01). 05 WSVS1-MCTKB5PU PIC X(01). * 01 WSV-ENTRADA2. 05 WSV-MCNBINTA PIC X(06). 05 WSV-MCNUMETA PIC X(13). 05 WSV-MCTCONTR PIC X(02). 05 WSV-MCNAUTOR PIC X(06). 05 WSV-MCCOPERA PIC X(02). 05 WSV-MCFOPERA PIC X(10). 05 WSV-MCHOPERA PIC 9(06). 05 WSV-MCNMOVIM PIC 9(06). 05 WSV-NUMCLIEN PIC X(08). 05 WSV-MCNOPERA PIC X(09). 05 WSV-MCFSTAMP PIC X(26). 05 WSV-MCFCONTA PIC X(10). 05 WSV-MCINDICA PIC X(01). 05 WSV-MCNUMECT PIC X(08). * 01 WSV-SALIDA2. 05 WSVS2-MCNBINTA PIC X(06). 05 WSVS2-MCNUMETA PIC X(13). 05 WSVS2-MCTCONTR PIC X(02). 05 WSVS2-MCNAUTOR PIC X(06). 05 WSVS2-MCCOPERA PIC X(02). 05 WSVS2-MCFOPERA PIC X(10). 05 WSVS2-MCHOPERA PIC 9(06). 05 WSVS2-MCNMOVIM PIC 9(06). 05 WSVS2-NUMCLIEN PIC X(08). 05 WSVS2-MCNOPERA PIC X(09). 05 WSVS2-MCFSTAMP PIC X(26). 05 WSVS2-MCFCONTA PIC X(10). 05 WSVS2-MCINDICA PIC X(01). 05 WSVS2-MCNUMECT PIC X(08). * * AREA DE FILE-STATUS *------------------- 01 FILE-STATUS. * 05 FS-ENTRADA01 PIC X(02) VALUE SPACES. 05 FS-ENTRADA02 PIC X(02) VALUE SPACES. 05 FS-SALIDA01 PIC X(02) VALUE SPACES. 05 FS-SALIDA02 PIC X(02) VALUE SPACES. * * AREA DE SWITCHES *----------------- 01 SWITCHES. * 05 WSS-FIN-ENTRADA01 PIC X(01) VALUE 'N'. 88 SI-FIN-ENTRADA01 VALUE 'S'. 88 NO-FIN-ENTRADA01 VALUE 'N'. * 05 WSS-FIN-ENTRADA02 PIC X(01) VALUE 'N'. 88 SI-FIN-ENTRADA02 VALUE 'S'. 88 NO-FIN-ENTRADA02 VALUE 'N'. * * AREA DE CONTADORES *-------------------------------- 01 CONTADORES. * 05 WSA-ENTRADA1 PIC S9(09) COMP VALUE ZEROES. 05 WSA-ENTRADA2 PIC S9(09) COMP VALUE ZEROES. 05 WSA-SALIDA1 PIC S9(09) COMP VALUE ZEROES. 05 WSA-SALIDA2 PIC S9(09) COMP VALUE ZEROES. * ****************************************************************** * AREA DE COPYS * ****************************************************************** * *----------------------------------------------------------------* LINKAGE SECTION. *----------------------------------------------------------------* 01 REG-PARM. 05 PAR-LONG PIC X(02). 05 WSV-FECHA-SYSYN PIC X(06). *--------------------------------* PROCEDURE DIVISION USING REG-PARM. *--------------------------------* * PERFORM 1000-INICIO * PERFORM 2000-PROCESO UNTIL SI-FIN-ENTRADA01 AND SI-FIN-ENTRADA02 * PERFORM 3000-FIN * . * ****************************************************************** * 1000-INICIO * * * * SE LLAMA AL PARRAFO QUE INICIALIZA. * * SE LLAMA AL PARRAFO QUE ABRE LOS FICHEROS DEL PROGRAMA. * * SE REALIZA LA PRIMERA LECTURA DEL FICHERO ENTRADA01. * ****************************************************************** 1000-INICIO. * PERFORM 1100-INICIALIZACIONES * PERFORM 1200-APERTURA-FICHEROS * PERFORM 5000-LEER-ENTRADA01 * IF SI-FIN-ENTRADA01 MOVE WSC-ENTRADA01 TO WSV-NOMBRE-ARCHIVO MOVE FS-ENTRADA01 TO WSV-FS-ARCHIVO MOVE WSC-ERROR-VACIO TO WSV-MOTIVO-ERROR MOVE WSC-PARRAFO-50 TO WSV-PARRAFO MOVE WSC-TRES TO RETURN-CODE WSV-CODIGO-RETORNO * PERFORM 9999-ABORTAR-ERROR-ARCHIVO END-IF * PERFORM 5100-LEER-ENTRADA02 * IF SI-FIN-ENTRADA02 MOVE WSC-ENTRADA02 TO WSV-NOMBRE-ARCHIVO MOVE FS-ENTRADA02 TO WSV-FS-ARCHIVO MOVE WSC-ERROR-VACIO TO WSV-MOTIVO-ERROR MOVE WSC-PARRAFO-50 TO WSV-PARRAFO MOVE WSC-TRES TO RETURN-CODE WSV-CODIGO-RETORNO END-IF * . * ****************************************************************** * 1100-INICIALIZACIONES * * * * SE INICIALIZAN LAS VARIABLES AUXILIARES, LOS CONTADORES, LOS * * FILE-STATUS Y LAS COPYS DE TRABAJO. * * SE INICILALIZAN LOS SWITCHES. * * SE RECUPERA LA FECHA DEL SISTEMA. * ****************************************************************** 1100-INICIALIZACIONES. * INITIALIZE WSV-ENTRADA1 WSV-ENTRADA2 WSV-SALIDA1 WSV-SALIDA2 VARIABLES FILE-STATUS CONTADORES * SET NO-FIN-ENTRADA01 TO TRUE SET NO-FIN-ENTRADA02 TO TRUE * MOVE WSV-FECHA-SYSYN(1:2) TO WSV-ANIO-INI MOVE WSV-FECHA-SYSYN(3:2) TO WSV-MES-INI MOVE WSV-FECHA-SYSYN(5:2) TO WSV-DIA-INI * . * ****************************************************************** * 1200-APERTURA-FICHEROS * * * * SE ABREN LOS FICHEROS CONTROLANDO SU FILE STATUS. * ****************************************************************** 1200-APERTURA-FICHEROS. * OPEN INPUT ENTRADA1 ENTRADA2 OUTPUT SALIDA01 SALIDA02 * IF FS-ENTRADA01 NOT EQUAL WSC-FS-00 MOVE WSC-ENTRADA01 TO WSV-NOMBRE-ARCHIVO MOVE FS-ENTRADA01 TO WSV-FS-ARCHIVO MOVE WSC-ERROR-ABRIR-ARCHIVO TO WSV-MOTIVO-ERROR MOVE WSC-PARRAFO-12 TO WSV-PARRAFO MOVE WSC-DIESISEIS TO RETURN-CODE WSV-CODIGO-RETORNO * PERFORM 9999-ABORTAR-ERROR-ARCHIVO * END-IF * IF FS-ENTRADA02 NOT EQUAL WSC-FS-00 MOVE WSC-ENTRADA02 TO WSV-NOMBRE-ARCHIVO MOVE FS-ENTRADA02 TO WSV-FS-ARCHIVO MOVE WSC-ERROR-ABRIR-ARCHIVO TO WSV-MOTIVO-ERROR MOVE WSC-PARRAFO-12 TO WSV-PARRAFO MOVE WSC-DIESISEIS TO RETURN-CODE WSV-CODIGO-RETORNO * PERFORM 9999-ABORTAR-ERROR-ARCHIVO * END-IF * IF FS-SALIDA01 NOT EQUAL WSC-FS-00 MOVE WSC-SALIDA01 TO WSV-NOMBRE-ARCHIVO MOVE FS-SALIDA01 TO WSV-FS-ARCHIVO MOVE WSC-ERROR-ABRIR-ARCHIVO TO WSV-MOTIVO-ERROR MOVE WSC-PARRAFO-12 TO WSV-PARRAFO MOVE WSC-DIESISEIS TO RETURN-CODE WSV-CODIGO-RETORNO * PERFORM 9999-ABORTAR-ERROR-ARCHIVO * END-IF * IF FS-SALIDA02 NOT EQUAL WSC-FS-00 MOVE WSC-SALIDA02 TO WSV-NOMBRE-ARCHIVO MOVE FS-SALIDA02 TO WSV-FS-ARCHIVO MOVE WSC-ERROR-ABRIR-ARCHIVO TO WSV-MOTIVO-ERROR MOVE WSC-PARRAFO-12 TO WSV-PARRAFO MOVE WSC-DIESISEIS TO RETURN-CODE WSV-CODIGO-RETORNO * PERFORM 9999-ABORTAR-ERROR-ARCHIVO * END-IF * . * ****************************************************************** * 2000-PROCESO * * * * POR CADA REGISTRO QUE COINCIDA SE INFORMA CON P LGTR-INDPIC * ****************************************************************** 2000-PROCESO. * IF WSV-CLAVE-E1DQLGTR EQUAL WSV-CLAVE-E2DQLGTR * PERFORM 2100-INFORMA-SALIDA PERFORM 5000-LEER-ENTRADA01 PERFORM 5100-LEER-ENTRADA02 * ELSE * IF WSV-CLAVE-E1DQLGTR LESS WSV-CLAVE-E2DQLGTR * PERFORM 5000-LEER-ENTRADA01 * ELSE * PERFORM 2200-INFORMA-SALIDA2 PERFORM 5100-LEER-ENTRADA02 * END-IF * END-IF * . * ****************************************************************** * 2100-INFORMA-SALIDA * * * * INFORMA LA COPY DE SALIDA * * LLAMA PARRAFO 6000-ESCRIBE-SALIDA01 * ****************************************************************** 2100-INFORMA-SALIDA. * MOVE WSV-ENTRADA1 TO WSV-SALIDA1 * PERFORM 6000-ESCRIBE-SALIDA01 * . * ****************************************************************** * 2200-INFORMA-SALIDA2 * * * * INFORMA LA COPY DE SALIDA * * LLAMA PARRAFO 6000-ESCRIBE-SALIDA01 * ****************************************************************** 2200-INFORMA-SALIDA2. * MOVE WSV-ENTRADA2 TO WSV-SALIDA2 * PERFORM 6100-ESCRIBE-SALIDA02 * . * ****************************************************************** * 3000-FIN * * * * SE LLAMA AL PARRAFO QUE CIERRA LOS FICHEROS. * * SE LLAMA AL PARRAFO QUE MUESTRA LAS ESTADISTICAS. * * SE LLAMA AL PARRAFO QUE FINALIZA EL PROCESO. * ****************************************************************** 3000-FIN. * PERFORM 3100-CERRAR-FICHEROS * PERFORM 3200-ESTADISTICAS * PERFORM 3300-TERMINO-PGM * . * ****************************************************************** * 3100-CERRAR-FICHEROS * * * * SE CIERRAN LOS FICHEROS CONTROLANDO SU FILE STATUS. * ****************************************************************** 3100-CERRAR-FICHEROS. * CLOSE ENTRADA1 ENTRADA2 SALIDA01 SALIDA02 * IF FS-ENTRADA01 NOT EQUAL WSC-FS-00 * MOVE WSC-ENTRADA01 TO WSV-NOMBRE-ARCHIVO MOVE FS-ENTRADA01 TO WSV-FS-ARCHIVO MOVE WSC-ERROR-CERRAR-ARCHIVO TO WSV-MOTIVO-ERROR MOVE WSC-PARRAFO-31 TO WSV-PARRAFO MOVE WSC-DIESISEIS TO RETURN-CODE WSV-CODIGO-RETORNO * PERFORM 9999-ABORTAR-ERROR-ARCHIVO * END-IF * IF FS-ENTRADA02 NOT EQUAL WSC-FS-00 * MOVE WSC-ENTRADA02 TO WSV-NOMBRE-ARCHIVO MOVE FS-ENTRADA02 TO WSV-FS-ARCHIVO MOVE WSC-ERROR-CERRAR-ARCHIVO TO WSV-MOTIVO-ERROR MOVE WSC-PARRAFO-31 TO WSV-PARRAFO MOVE WSC-DIESISEIS TO RETURN-CODE WSV-CODIGO-RETORNO * PERFORM 9999-ABORTAR-ERROR-ARCHIVO * END-IF * IF FS-SALIDA01 NOT EQUAL WSC-FS-00 * MOVE WSC-SALIDA01 TO WSV-NOMBRE-ARCHIVO MOVE FS-SALIDA01 TO WSV-FS-ARCHIVO MOVE WSC-ERROR-CERRAR-ARCHIVO TO WSV-MOTIVO-ERROR MOVE WSC-PARRAFO-31 TO WSV-PARRAFO MOVE WSC-DIESISEIS TO RETURN-CODE WSV-CODIGO-RETORNO * PERFORM 9999-ABORTAR-ERROR-ARCHIVO * END-IF * . * ****************************************************************** * 3200-ESTADISTICAS * * * * SE INFORMA LA FECHA Y HORA DE FINAL DE EJECUCION DEL PROGRAMA. * * SE DISPLAYA LAS ESTADISTICAS DEL PROGRAMA. * ****************************************************************** 3200-ESTADISTICAS. * MOVE WSC-PROGRAMA TO WSV-PROGRAMA-CIFRAS MOVE WSA-ENTRADA1 TO WSA-ENTRADA01 MOVE WSA-ENTRADA2 TO WSA-ENTRADA02 MOVE WSA-SALIDA1 TO WSA-SALIDA01 MOVE WSA-SALIDA2 TO WSA-SALIDA02 * DISPLAY WSV-CIFRAS-CTRL * . * ****************************************************************** * 3300-TERMINO-PGM * * * * SE EJECUTA EL STOP RUN PARA FINALIZAR EL PROGRAMA * ****************************************************************** 3300-TERMINO-PGM. * STOP RUN * . * ****************************************************************** * 5000-LEER-ENTRADA01 * * * * SE LEE EL FICHERO ENTRADA01 CONTROLANDO SU FILE STATUS. * ****************************************************************** 5000-LEER-ENTRADA01. * INITIALIZE WSV-ENTRADA1 * READ ENTRADA1 INTO WSV-ENTRADA1 END-READ * EVALUATE FS-ENTRADA01 * WHEN WSC-FS-00 ADD WSC-N-1 TO WSA-ENTRADA1 MOVE WKLG3-MCNUMETA TO WSV-WKLG3-MCNUMETA MOVE WKLG3-MCNBINTA TO WSV-WKLG3-MCNBINTA MOVE WKLG3-MCFOPERA(1:4) TO WSV-WKLG3-MCFOPERA(1:4) MOVE WKLG3-MCFOPERA(6:2) TO WSV-WKLG3-MCFOPERA(5:2) MOVE WKLG3-MCFOPERA(9:2) TO WSV-WKLG3-MCFOPERA(7:2) * MOVE WKLG3-MCHOPERA TO WSV-WKLG3-MCHOPERA ** MOVE WKLG3-MCNOPERA TO WSV-WKLG3-MCNOPERA MOVE WKLG3-MCFSTAMP TO WSV-WKLG3-MCFSTAMP WHEN WSC-FS-10 MOVE HIGH-VALUES TO WSV-CLAVE-E1DQLGTR SET SI-FIN-ENTRADA01 TO TRUE * WHEN OTHER MOVE WSC-ENTRADA01 TO WSV-NOMBRE-ARCHIVO MOVE FS-ENTRADA01 TO WSV-FS-ARCHIVO MOVE WSC-ERROR-LEER-ARCHIVO TO WSV-MOTIVO-ERROR MOVE WSC-PARRAFO-50 TO WSV-PARRAFO MOVE WSC-DIESISEIS TO RETURN-CODE WSV-CODIGO-RETORNO * PERFORM 9999-ABORTAR-ERROR-ARCHIVO * END-EVALUATE * . * ****************************************************************** * 5100-LEER-ENTRADA02 * * * * SE LEE EL FICHERO ENTRADA02 CONTROLANDO SU FILE STATUS. * ****************************************************************** 5100-LEER-ENTRADA02. * INITIALIZE WSV-ENTRADA2 * READ ENTRADA2 INTO WSV-ENTRADA2 END-READ * EVALUATE FS-ENTRADA02 * WHEN WSC-FS-00 ADD WSC-N-1 TO WSA-ENTRADA2 MOVE WSV-MCNUMETA TO WSV-E2-MCNUMETA MOVE WSV-MCNBINTA TO WSV-E2-MCNBINTA MOVE WSV-MCFOPERA(1:4) TO WSV-E2-MCFOPERA(1:4) MOVE WSV-MCFOPERA(6:2) TO WSV-E2-MCFOPERA(5:2) MOVE WSV-MCFOPERA(9:2) TO WSV-E2-MCFOPERA(7:2) * MOVE WSV-MCHOPERA TO WSV-E2-MCHOPERA ** MOVE WSV-MCNOPERA TO WSV-E2-MCNOPERA MOVE WSV-MCFSTAMP TO WSV-E2-MCFSTAMP WHEN WSC-FS-10 MOVE HIGH-VALUES TO WSV-CLAVE-E2DQLGTR SET SI-FIN-ENTRADA02 TO TRUE * WHEN OTHER MOVE WSC-ENTRADA02 TO WSV-NOMBRE-ARCHIVO MOVE FS-ENTRADA02 TO WSV-FS-ARCHIVO MOVE WSC-ERROR-LEER-ARCHIVO TO WSV-MOTIVO-ERROR MOVE WSC-PARRAFO-51 TO WSV-PARRAFO MOVE WSC-DIESISEIS TO RETURN-CODE WSV-CODIGO-RETORNO * PERFORM 9999-ABORTAR-ERROR-ARCHIVO * END-EVALUATE * . * ****************************************************************** * 6000-ESCRIBE-SALIDA01. * * * * SE ESCRIBE EL FICHERO FSALIDA01 CONTROLANDO SU FILE STATUS. * ****************************************************************** 6000-ESCRIBE-SALIDA01. * WRITE REG-SALIDA01 FROM WSV-SALIDA1 * EVALUATE FS-SALIDA01 * WHEN WSC-FS-00 ADD WSC-N-1 TO WSA-SALIDA1 * WHEN OTHER * MOVE WSC-SALIDA01 TO WSV-NOMBRE-ARCHIVO MOVE FS-SALIDA01 TO WSV-FS-ARCHIVO MOVE WSC-ERROR-WRITE-ARCHIVO TO WSV-MOTIVO-ERROR MOVE WSC-PARRAFO-611 TO WSV-PARRAFO MOVE WSC-DIESISEIS TO RETURN-CODE WSV-CODIGO-RETORNO * PERFORM 9999-ABORTAR-ERROR-ARCHIVO * END-EVALUATE * INITIALIZE WSV-SALIDA1 * . * ****************************************************************** * 6100-ESCRIBE-SALIDA02. * * * * SE ESCRIBE EL FICHERO FSALIDA02 CONTROLANDO SU FILE STATUS. * ****************************************************************** 6100-ESCRIBE-SALIDA02. * WRITE REG-SALIDA02 FROM WSV-SALIDA2 * EVALUATE FS-SALIDA02 * WHEN WSC-FS-00 ADD WSC-N-1 TO WSA-SALIDA2 * WHEN OTHER * MOVE WSC-SALIDA02 TO WSV-NOMBRE-ARCHIVO MOVE FS-SALIDA02 TO WSV-FS-ARCHIVO MOVE WSC-ERROR-WRITE-ARCHIVO TO WSV-MOTIVO-ERROR MOVE WSC-PARRAFO-612 TO WSV-PARRAFO MOVE WSC-DIESISEIS TO RETURN-CODE WSV-CODIGO-RETORNO * PERFORM 9999-ABORTAR-ERROR-ARCHIVO * END-EVALUATE * INITIALIZE WSV-SALIDA2 * . * ****************************************************************** * 9999-ABORTAR-ERROR-ARCHIVO * * * * SE ABORTA EL PROGRAMA SI EXISTE ARCHIVO CON ERROR * ****************************************************************** 9999-ABORTAR-ERROR-ARCHIVO. * MOVE WSC-PROGRAMA TO WSV-PROGRAMA-ABORTO DISPLAY WSV-ABORTO * PERFORM 3200-ESTADISTICAS * PERFORM 3300-TERMINO-PGM * . * ****************************************************************** * F I N D E L P R O G R A M A * ******************************************************************
jueves, 19 de mayo de 2016
MATCHING - ejemplo
Suscribirse a:
Comentarios de la entrada (Atom)
tendras el ejemplo de un match donde sea de uno a muchos ??
ResponderBorrar