Verwenden von REDEFINES in COBOL
Der COBOL-Importprozess in Transaction Integrator (TI) Project erkennt die REDEFINES-Klausel in einem Datenbeschreibungseintrag und ordnet die neu definierten Einträge dem neu definierten Eintrag korrekt zu. Sie müssen eine der neu definierten oder neu definierenden Klauseln als Eintrag auswählen, der die übertragenen Daten darstellt.
Die neu definierten Einträge können weniger Platz als der neu definierte Eintrag belegen. Wenn Sie einen neu definierten Eintrag auswählen, der kleiner als der neu definierte Eintrag ist, fügt TI Project automatisch einen Füllstoff hinzu, sodass die Datenbeschreibung beim Senden an den Host korrekt überlagert wird. Wenn der neu definierte Eintrag eine Tabelle mit mehreren Feldern darstellt, enthält das letzte Feld den Füllstoff.
Das folgende COBOL-Beispiel zeigt eine REDEFINES-Klausel. Die Neudefinitionsklausel wurde beim Import ausgewählt:
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).
Die resultierende Methode, die importiert wird, lautet:
CreateCustomerID(strLocation As String, strNameAbrev As String)
Das für diese Methode generierte COBOL ist:
01 CREATECUSTOMERID-INPUT-AREA.
05 LOCATION PIC X(3). INPUT
05 NAME-ABREV PIC X(5). INPUT
05 FILLER PIC X(2). INPUT
Der FILLER wird dem Bereich CUSTOMER-ID neu definiert hinzugefügt. Wenn dieser FILLER am Ende der Sende- oder Empfangspuffer auftritt, wird er aus Leistungsgründen nicht gesendet.
Im Folgenden finden Sie ein Beispiel für Visual Basic-Code, der diese Methode aufruft:
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