Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Quando l'ultima colonna di un record è una stringa, la riga può essere ridimensionata in modo variabile. La dimensione può variare tra zero e la dimensione massima specificata nella clausola picture. Quando si dispone di righe di dimensioni variabili, l'applicazione deve specificare in modo esplicito le dimensioni di ogni riga prima dell'invio della riga.
Il campo della dimensione reale non è visibile nel lato dell'Automazione. L'ambiente di runtime di Transaction Integrator (TI) usa i servizi di automazione per determinare le dimensioni dei dati di input. Quando l'ambiente di runtime TI invia i dati all'host, imposta automaticamente il campo dimensioni effettive.
L'Importazione guidata COBOL non genera mai un set di record con righe di dimensioni variabili. Visualizzare le proprietà per il recordset che contiene le righe di dimensioni variabili. La proprietà Righe a grandezza variabile consente all'utente di configurare manualmente questa opzione per un set di record specifico. La proprietà Righe di dimensioni variabili offre opzioni avanzate. È possibile specificare che la variabile delle dimensioni effettive delle righe è un binario a mezza parola o a parola intera. La variabile di dimensione effettiva includerà se stessa o includerà solo le dimensioni della riga.
Nell'esempio di COBOL seguente viene illustrato come l'applicazione host invia righe di dimensioni variabili. Il campo di lunghezza è incluso nelle dimensioni della riga:
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.
L'esempio COBOL seguente illustra come l'applicazione host invia righe di dimensioni variabili. Il campo di lunghezza non è incluso nelle dimensioni della riga:
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.
Vedere anche
Definizione di una tabella a lunghezza variabile con la clausola OCCURS DEPENDING
Stringhe di dimensioni variabili
Campi finali delimitati