Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn die letzte Spalte in einem Datensatz eine Zeichenfolge ist, kann die Zeile variabel sein. Seine Größe kann zwischen null und der in der picture-Klausel angegebenen maximalen Größe variieren. Wenn Zeilen unterschiedlich groß sind, muss Ihre Anwendung explizit die Größe jeder Zeile angeben, bevor die Zeile gesendet wird.
Das Feld für die tatsächliche Größe ist auf der Automatisierungsseite nicht sichtbar. Die Transaction Integrator-Laufzeitumgebung (TI) verwendet Automation-Dienste, um die Größe der Eingabedaten zu bestimmen. Wenn die TI-Laufzeitumgebung Daten an den Host sendet, wird automatisch das Feld für die tatsächliche Größe festgelegt.
Der Assistent zum Importieren von COBOL erstellt niemals ein Recordset mit unterschiedlicher Größe von Zeilen. Rufen Sie Eigenschaften für das Recordset auf, das die Zeilen mit unterschiedlicher Größe enthält. Mit der Eigenschaft Zeilen mit Variabler Größe kann der Benutzer diese Option manuell für ein bestimmtes Recordset konfigurieren. Die Eigenschaft Zeilen mit Variabler Größe bietet erweiterte Optionen. Sie können angeben, dass die tatsächliche Zeilengrößenvariable eine Halb- oder Vollwort-Binärdatei ist. Die tatsächliche Größenvariable enthält sich selbst oder schließt nur die Größe der Zeile ein.
Das folgende COBOL-Beispiel zeigt, wie die Hostanwendung Zeilen mit unterschiedlicher Größe sendet. Das Längenfeld ist in der Zeilengröße enthalten:
01 CUSTOMER-DATA.
05 CUSTOMER-NUMBER PIC 9(9).
05 LAST-NAME PIC X(20).
05 FIRST-NAME PIC X(20).
05 INVOICE-COUNT PIC 9(7) COMP-3.
05 INVOICES OCCURS 50 TIMES DEPENDING ON INVOICE-COUNT.
10 INVOICE-DATA.
15 INVOICE-ROW-SIZE PIC S9(4) COMP.
15 INVOICE-NUMBER PIC 9(10).
15 INVOICE-DATE PIC 9(7) COMP-3.
15 INVOICE-AMOUNT PIC S9(13)V9(2) COMP-3.
10 INVOICE-DESCRIPTION PIC X(4096).
.
.
.
MOVE LENGTH OF CUSTOMER-DATA TO SEND-LENGTH.
SUBTRACT LENGTH OF INVOICES FROM SEND-LENGTH.
EXEC-CICS SEND FROM(CUSTOMER-DATA)
LENGTH(SEND-LENGTH)
END-EXEC.
PERFORM VARYING ROW FROM 1 BY 1 UNTIL ROW > INVOICE-COUNT
INSPECT INVOICE-DESCRIPTION TALLYING INVOICE-ROW-SIZE
FOR CHARACTERS BEFORE INITIAL ' '
ADD LENGTH OF INVOICE-DATA TO INVOICE-ROW-SIZE
EXEC-CICS SEND FROM(INVOICE-ROW-SIZE)
LENGTH(2)
END-EXEC
EXEC-CICS SEND FROM(INVOICES(ROW))
LENGTH(INVOICE-ROW-SIZE)
END-EXEC
END-PERFORM.
Das folgende COBOL-Beispiel zeigt, wie die Hostanwendung Zeilen mit unterschiedlicher Größe sendet. Das Längenfeld ist nicht in der Zeilengröße enthalten:
01 CUSTOMER-DATA.
05 CUSTOMER-NUMBER PIC 9(9).
05 LAST-NAME PIC X(20).
05 FIRST-NAME PIC X(20).
05 INVOICE-COUNT PIC 9(7) COMP-3.
05 INVOICE-ROW-SIZE PIC S9(4) COMP.
05 INVOICES OCCURS 50 TIMES DEPENDING ON INVOICE-COUNT.
10 INVOICE-DATA.
15 INVOICE-NUMBER PIC 9(10).
15 INVOICE-DATE PIC 9(7) COMP-3.
15 INVOICE-AMOUNT PIC S9(13)V9(2) COMP-3.
10 INVOICE-DESCRIPTION PIC X(4096).
.
.
.
MOVE SIZE OF CUSTOMER-DATA TO SEND-LENGTH.
SUBTRACT LENGTH OF INVOICES FROM SEND-LENGTH.
SUBTRACT LENGTH OF INVOICE-ROW-SIZE FROM SEND-LENGTH.
EXEC-CICS SEND FROM(CUSTOMER-DATA)
LENGTH(SEND-LENGTH)
END-EXEC.
PERFORM VARYING ROW FROM 1 BY 1 UNTIL ROW > INVOICE-COUNT
INSPECT COMMENTS TALLYING INVOICE-ROW-SIZE
FOR CHARACTERS BEFORE INITIAL ' '
ADD LENGTH OF INVOICE-DATA TO INVOICE-ROW-SIZE
EXEC-CICS SEND FROM(INVOICE-ROW-SIZE)
LENGTH(LENGTH OF INVOIVE-ROW-SIZE)
END-EXEC
EXEC-CICS SEND FROM(INVOICES(ROW))
LENGTH(INVOICE-ROW-SIZE)
END-EXEC
END-PERFORM.
Weitere Informationen
Definieren einer Tabelle mit variabler Länge mit der OCCURS DEPENDING-Klausel
Zeichenfolgen mit variabler Größe
Gebundene endgültige Felder