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 groß sein. Die Größe kann zwischen Null und der maximalen Größe variieren, die in der Bildklausel angegeben ist. Wenn Sie veränderliche Zeilen haben, 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 Laufzeitumgebung des Transaktionsintegrators (TI) verwendet Automatisierungsdienste, um die Größe von Eingabedaten zu bestimmen. Wenn die TI-Laufzeitumgebung Daten an den Host sendet, legt sie automatisch das tatsächliche Größenfeld fest.
Der COBOL-Import-Assistent erstellt niemals ein Recordset mit variabel großen Zeilen. Rufen Sie Eigenschaften für das Recordset ab, das variabel große Zeilen enthält. Mit der Eigenschaft " Zeilen variabler Größe " können Benutzer diese Option für ein bestimmtes Recordset manuell konfigurieren. Die Eigenschaft "Zeilen mit variabler Größe " bietet erweiterte Optionen. Sie können angeben, dass die tatsächliche Zeilengrößenvariable als Halbwort- oder Vollwort-Binärwert vorliegt. Die tatsächliche Größenvariable enthält sich selbst oder enthält nur die Größe der Zeile.
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 veränderliche Zeilen 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.
Siehe auch
Definieren einer Tabelle mit variabler Länge mit der OCCURS-DEPENDING-Klausel
Zeichenfolgen mit variabeler Größe
Beschränkte finale Felder