numElementsItem

Die Eigenschaft 'numElementsItem' gibt ein Feld an, das verwendet wird, wenn Ihr Code mit einem Datensatz variabler Länge arbeitet.

Die Eigenschaft 'numElementsItem' wird mit den folgenden Datensatzstereotypen verwendet:

Der Datensatz variabler Länge muss eine strukturierte Feldgruppe als letztes Strukturfeld auf der höchsten Ebene haben. Das Feld, auf das 'numElementsItem' verweist, ist eine ganze Zahl mit höchstens 9 Ziffern, die die tatsächliche Anzahl der geschriebenen Feldgruppenelemente enthält. Der Wert kann im Bereich von 0 bis zum Maximum liegen. Hierbei ist das Maximum die Anzahl der Elemente, die in der Deklaration für die strukturierte Feldgruppe angegeben ist.

Die Anzahl der geschriebenen Byte entspricht der Summe aus folgenden Werten:

Das Feld 'numElementsItem' muss ein Feld im Abschnitt fester Länge des Datensatzes variabler Länge sein. Verwenden Sie einen nicht qualifizierten Verweis zur Benennung des Felds für die Anzahl der Elemente. Verwenden Sie beispielsweise 'myField02' und nicht 'myRecord.myField02'.

Die Eigenschaft 'numElementsItem' hat keine Auswirkung, wenn der Datensatz aus einer Datei gelesen wird.

Sie müssen die Eigenschaft 'lengthItem' oder die Eigenschaft 'numElementsItem' oder beide angeben, wenn Sie einen Datensatz variabler Länge verwenden. Wenn beide Elemente vorhanden sind, wenn EGL den Datensatz in die Datei schreibt, wird zunächst das Feld 'numElementsItem' verwendet, um die Gesamtlänge des Datensatzes zu berechnen. Anschließend wird diese Länge in die von 'lengthItem' angegebene Variable gestellt, bevor der Datensatz geschrieben wird. Weitere Informationen finden Sie unter Datensätze variabler Länge.

Beispiel

Das folgende Beispiel zeigt den Abschnitt eines Datensatzes variabler Länge mit der Eigenschaft 'numElementsItem:
  Record SerialRecordPart2 type serialRecord
    {
      fileName = "myFile",
      numElementsItem = myField02
    }
    10 myField01 BIN(4);   // 2 Byte lang
    10 myField02 NUM(3);   // 3 Byte lang
    10 myField03 CHAR(20)[3]; // 60 Byte lang
       20 mySubField01 CHAR(10);
       20 mySubField02 CHAR(10);
  end

Beispiel: Sie schreiben einen Datensatz auf der Basis von 'SerialRecordPart2', wobei das numElementsItem-Feld 'myField02' auf 2 gesetzt ist. EGL schreibt einen Datensatz variabler Länge, der 'myField01', 'myField02' und die ersten beiden Elemente von 'myField03' enthält.

Kompatibilität

Tabelle 1. Hinweise zur Kompatibilität für 'numElementsItem'
Plattform Problem
CICS Datensätze variabler Länge werden nicht für Warteschlangen für temporären Speicher und nicht für Warteschlangen mit transienten Daten unterstützt.
IMS/VS 'numElementsItem' und 'lengthItem' werden nur für serielle Dateien unterstützt, die zu IMS-Nachrichtenwarteschlangen zugeordnet sind. EGL fügt den IMS-Nachrichtenheader (Länge, ZZ-Feld und Transaktionscode) zu Datensätzen hinzu, die in eine Warteschlange geschrieben werden. EGL entfernt den Header aus Datensätzen, die aus der Warteschlange gelesen werden. Die Definition für den Datensatz sollte den Header nicht einschließen.
IMS BMP Im Hinblick auf Dateien, die zu IMS-Nachrichtenwarteschlangen zugeordnet sind, gelten die Hinweise zu IMS/VS auch für IMS BMP. Andernfalls gelten die Hinweise zu z/OS Batch.
iSeriesC Wird nicht unterstützt.

Java-Generierung
Debug

Für Java™-Generierung und Debugging werden Datensätze variabler Länge mit den Dateitypen 'seqws', 'mq' und 'ibmcobol' unterstützt.
z/OS Batch

Datensätze variabler Länge werden für VSAM-Dateien und sequenzielle z/OS-Dateien unterstützt.

Datensätze variabler Länge in sequenziellen Nicht-VSAM-Dateien haben einen aus 4 Byte bestehenden Header (Längenfeld mit 2 Byte und Füllfeld mit 2 Byte). EGL fügt den aus 4 Byte bestehenden Header variabler Länge hinzu, wenn Daten in eine sequenzielle Nicht-VSAM-Datei mit Variablendatensatzformat geschrieben werden. Beim Lesen des Datensatzes entfernt EGL den Header. Die Definition für den Datensatz sollte den Header nicht einschließen.

Wenn es sich bei der Datei um eine GSAM-Datei handelt, fügt EGL das aus zwei Byte bestehende führende Längenfeld zu Datensätzen hinzu, wenn Daten in die Datei geschrieben werden. EGL entfernt den Header aus Datensätzen, die aus der Datei gelesen werden. Die Definition für den Datensatz sollte den Header nicht einschließen.


Feedback