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 con la entrada redefinida. Debe seleccionar una de las cláusulas redefinidas o redefinidas como la entrada que representa los datos que se transmitirán.

Las entradas redefinidas pueden usar menos espacio que la entrada redefinida. Si selecciona una entrada redefinida que es menor que la entrada redefinida, TI Project agrega automáticamente el relleno para que los datos superpongan correctamente la descripción de los datos cuando se envíen 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 redefining 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  
  

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, por motivos de rendimiento no se envía.

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  

Consulte también

Filler