Compartir a través de


Cómo usar REDEFINES en COBOL

El proceso de importación de COBOL en el proyecto integrador de transacciones (TI) reconoce la cláusula REDEFINES en una entrada de descripción de datos y asocia correctamente las entradas redefinidas a la entrada redefinida. Debe seleccionar una de las cláusulas redefinidas o redefinidoras como la entrada que represente los datos que se transmitirán.

Las entradas redefinidas pueden usar menos espacio que la entrada redefinida. Si selecciona una entrada de redefinición más pequeña que la entrada redefinida, TI Project agrega automáticamente relleno para que los datos correspondan correctamente con la descripción de los datos cuando se envía al host. Si la entrada redefinida representa una tabla con varios campos, el último campo contiene el relleno.

En el siguiente ejemplo de COBOL se muestra una cláusula REDEFINES. La cláusula de redefinición se seleccionó durante la importación:

01 CUSTOMER-DATA.  
   05 CUSTOMER-ID                          PIC X(10).  
   05 CUSTOMER-ID-PARTS REDEFINES CUSTOMER-ID.  
      10 LOCATION                          PIC X(3).  
      10 NAME-ABREV                        PIC X(5).  
  

El método resultante que se importa es:

CreateCustomerID(strLocation As String, strNameAbrev As String)  
  

El COBOL generado para este método es:

01 CREATECUSTOMERID-INPUT-AREA.  
   05 LOCATION              PIC X(3).               INPUT  
   05 NAME-ABREV            PIC X(5).               INPUT  
   05 FILLER                PIC X(2).               INPUT  
  

El FILLER se agrega al área redefinida CUSTOMER-ID. Cuando este FILLER se produce al final de los búferes de envío o recepción, no se envía por motivos de rendimiento.

A continuación se muestra un ejemplo de código de Visual Basic que llama a este método:

Dim objCustomer As Object  
Dim strLocation As String  
Dim strNameAbrev As String  
  
strLocation = "101"  
strNameAbrev = "SPORT"  
  
'create an instance of the invoicing object  
On Error GoTo ErrorHandler1  
Set objCustomer = CreateObject("Customer.Invoicing.1")  
  
'invoke the CreateCustomerID method  
On Error GoTo ErrorHandler2  
objCustomer.CreateCustomerID strLocation, strNameAbrev  

Véase también

Relleno