PerroCobolero

PerroCobolero

ADS

jueves, 19 de mayo de 2016

MATCHING - ejemplo

      ******************************************************************
      *                                                                *
      * 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               *
      ******************************************************************

1 comentario: