Funktion
Die RENAMES-Klausel erlaubt eine andere, sich möglicherweise überlappende Gruppierung von Datenelementen. Diese Klausel weist einem oder mehreren Datenfeldern, die durch die Datensatzbeschreibung festgelegt worden sind, einen neuen Namen zu. Anders als die REDEFINES-Klausel belegt die RENAMES-Klausel bestehende Datenerklärungen nicht neu, sondern erlaubt, dass Daten unter anderem Namen zugänglich und/oder gruppiert werden, wobei die vorher erklärte Datenbeschreibung erhalten bleibt.
Format
66 datenname-1 RENAMES datenname-2 [ {THRU | THROUGH} datenname-3 ]
(stufennnummer 66 und datenname-1 sind nicht Teil der RENAMES-Klausel; sie werden hier nur zur Verdeutlichung angegeben.)
Syntaxregeln
Alle Einträge der RENAMES-Klausel, die sich auf Datenfelder innerhalb eines gegebenen Datensatzes beziehen, müssen unmittelbar der letzten Datenbeschreibung des Datensatzbeschreibungseintrags folgen.
datenname-2 muss datenname-3 in der Datensatzbeschreibung vorangehen. Nach jeder Neubenennung muss der Anfangspunkt des durch datenname-3 beschriebenen Bereichs logisch hinter dem Anfangspunkt des durch datenname-2 beschriebenen Bereichs liegen.
datenname-2 und datenname-3 müssen Namen von Datenelementen oder Gruppen von Datenelementen im zugehörigen logischen Datensatz sein. Sie dürfen nicht derselbe Datenname sein.
Der Anfang des durch datenname-3 beschriebenen Bereichs darf nicht links vom Anfang des durch datenname-2 beschriebenen Bereichs liegen. Das Ende des durch datenname-3 beschriebenen Bereichs muss rechts vom Ende des durch datenname-2 beschriebenen Bereichs liegen. datenname-3 kann aus diesem Grund datenname-2 nicht untergeordnet sein. Weder datenname-2 und datenname-3 noch die dazwischen liegenden Daten dürfen von der Klasse objekt oder der Klasse zeiger sein. Weder datenname-2 noch datenname-3 darf aus einer Typdeklaration stammen.
Keines der Datenfelder innerhalb des Bereichs von datenname-2 und datenname-3, darf, wenn angegeben, eine variable Größe, wie in den OCCURS-Klauseln beschrieben, haben (siehe „OCCURS-Klausel" mit DEPENDING ON-Angabe).
datenname-1 darf nicht als Kennzeichner verwendet werden und darf nur durch die Namen von 01-, SD- und FD-Einträgen gekennzeichnet werden.
datenname-2 und datenname-3 dürfen gekennzeichnet werden.
Weder datenname-2 noch datenname-3 dürfen eine OCCURS-Klausel in ihrer Datenerklärung haben, noch dürfen sie einem Datenfeld untergeordnet sein, das in seiner Datenerklärung eine OCCURS-Klausel enthält.
Die RENAMES-Klausel darf sich weder auf eine andere Erklärung der Stufennummer 66 noch eine Erklärung der Stufennummern 77, 88 und 01 beziehen.
Die RENAMES-Klausel darf nicht innerhalb einer Typdeklaration angegeben werden.
Die RENAMES-Klausel darf nicht in der Satzbeschreibung einer XML-organisierten Datei angegeben werden.
Allgemeine Regeln
Es können mehrere RENAMES-Klauseln für einen Datensatz geschrieben werden.
datenname-1 bezeichnet eine andere Erklärung eines oder mehrerer Datenfelder.
datenname-2 oder datenname-3 bezeichnet das Datenfeld oder die Datenfelder, die neu benannt werden.
Wird datenname-3 angegeben, ist datenname-1 eine Datengruppe, die alle Datenelemente einschließt:
beginnend bei datenname-2 (falls dies ein Datenelement ist); oder beginnend bei dem ersten Datenelement innerhalb von datenname-2 (falls dies eine Datengruppe ist) und
endend bei datenname-3 (falls dies ein Datenelement ist) oder endend bei dem letzten Datenelement innerhalb von datenname-3 (falls dies eine Datengruppe ist).
Wenn datenname-3 nicht angegeben ist, kann datenname-2 entweder eine Datengruppe oder ein Datenelement sein. Wenn datenname-2 eine Datengruppe ist, wird datenname-1 als Datengruppe behandelt; wenn datenname-2 ein Datenelement ist, wird datenname-1 als Datenelement behandelt.
Beispiel 7-26
Das folgende Beispiel zeigt, wie man die RENAMES-Klausel in einem Programm verwenden kann:
01 EINGABE-SATZ. 02 ARTIKEL-1. 03 ARTIKEL-NR PIC 99. 03 PREIS PIC 9999. 02 ARTIKEL-2. 03 ARTIKEL-NR PIC 99. 03 PREIS PIC 9999. 02 ARTIKEL-3. 03 ARTIKEL-Nr. PIC 99. 03 PREIS PIC 9999. 66 ART-EINS RENAMES ARTIKEL-1. 66 ART-ZWEI RENAMES ARTIKEL-1 THRU ARTIKEL-2. 66 ART-DREI RENAMES ARTIKEL-1 THRU ARTIKEL-3.
In diesem Fall würde jede Bezugnahme auf ART-EINS die Datengruppe ARTIKEL-1, jede Bezugnahme auf ART-ZWEI die Datengruppen ARTIKEL-1 und ARTIKEL-2, jede Bezugnahme auf ART-DREI die Datengruppen ARTIKEL-1, ARTIKEL-2 und ARTIKEL-3 ansprechen.