Partager via


Utilisation de REDEFINES dans COBOL

Le processus d’importation COBOL dans le projet d’intégrateur de transactions (TI) reconnaît la clause REDEFINES dans une entrée de description de données et associe correctement les entrées de définition à l’entrée redéfinie. Vous devez sélectionner l’une des clauses redéfinies ou redéfinissantes comme l'entrée représentant les données qui seront transmises.

Les entrées de définition peuvent utiliser moins d’espace que l’entrée redéfinie. Si vous sélectionnez une entrée de redéfinition inférieure à l’entrée redéfinie, TI Project ajoute automatiquement le remplissage afin que les données superposent correctement la description des données lorsqu’elles sont envoyées à l’hôte. Si l’entrée de définition représente une table avec plusieurs champs, le dernier champ contient le remplissage.

L’exemple COBOL suivant montre une clause REDEFINES. La clause de redéfinition a été sélectionnée lors de l’importation :

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).  
  

La méthode obtenue importée est la suivante :

CreateCustomerID(strLocation As String, strNameAbrev As String)  
  

Le COBOL généré pour cette méthode est :

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

Le FILLER est ajouté à la zone CUSTOMER-ID redéfinie. Lorsque ce FILLER se produit à la fin des mémoires tampons d'envoi, pour des raisons de performance, il n'est pas envoyé.

Voici un exemple de code Visual Basic qui appelle cette méthode :

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  

Voir aussi

Filler