*&var= Zuweisung für Prozedurvariable
*&var1 = [ &var2 | [C|L|X]'string' ] [ .&var3 | .[C|L|X]'string' ] ...
Der Prozedurvariablen &var1 wird der Wert des nach dem '='-Zeichen angegebenen Ausdrucks zugewiesen. Einer Prozedurvariablen kann auch ein aus zwei numerischen Konstanten oder Variablen gebildeter Rechenausdruck zugewiesen werden. Die Syntax einer derartigen Zuweisung ist weiter unten beschrieben.
&var1 &name [ ( [s] [, l] ) ]
Name der Prozedurvariablen, der ein Wert zugewiesen werden soll.
s wahlweise Angabe der Anfangsspalte ab der der rechts des Gleichheitszeichens angegebene Wert in die Variable &var1 eingetragen wird. ( 1 <= s < 80 ).
Falls der Teil der Variablen &var1 links von der Spalte s noch keinen Inhalt besitzt, wird dieser mit Blanks gefüllt.
Standard: s = 1.
l wahlweise Angabe einer Länge, in der die Zuweisung an die Variable &var1 erfolgen soll. ( 1 <= l <= 80 ).
Standard: l = Länge des rechts des Gleichheitszeichens stehenden Ausdrucks.
&var2 &name [ ( [s] [, l] ) ]
Wert einer CFS-Prozedurvariablen oder eines Teilstrings einer Variablen.
&name  Name einer CFS-Prozedurvariablen, einer Jobvariablen oder %PTR[0].
Jobvariable: '&(jvname [, s, l])'. Die optionale Angabe einer Spalte und der Länge bewirkt, dass nur der entsprechende Teilaus der Jobvariablen übernommen wird. Standard: Es werden von Spalte 1 an maximal 80 Zeichen aus der Jobvariablen übernommen.
%PTR bezieht sich auf die Stelle, an der bei einer vorausgegangenen Anweisung *IF %OUT=... oder *ON %OUT=... der Trefferstring gefunden wurde.
%PTR(1,l) bezeichnet die Zeichenfolge in der Länge l hinter dem bei %OUT gefundenen Suchstring. Für ein Beispiel zu der Anwendung von %PTR siehe Seite 19-.
%PTR0(1,l) zeigt auf das erste Byte des bei %OUT gefundenen Suchstrings bzw. auf das erste Byte des ersten einer Reihe von mit * verknüpften Suchstrings.
s wahlweise Angabe der Anfangsspalte für einen Teilstring aus der Prozedurvariablen. ( -80 < s < 80 ).
%PTR(s,l) bezeichnet eine Zeichenfolge in der Länge l, die s Stellen hinter dem letzten Byte des letzten bei %OUT gefundenen Suchstrings beginnt.
%PTR(-s,l) bezeichnet eine Zeichenfolge in der Länge l, die s Stellen vor dem letzten Byte des letzten bei %OUT gefundenen Suchstrings beginnt.
Standard: s = 1.
Beispiel:
Zu suchender Text: 123abc---------xyz789
*IF %OUT='abc'*'xyz'
*&VAR=%PTR(1,3)    -->  &VAR='789' 
*&VAR=%PTR(-3,4)   -->  &VAR='-xyz' 
*&VAR=%PTR0(1,4)   -->  &VAR='abc-' 
*&VAR=%PTR0(-3,4)  -->  &VAR='123a' 
l wahlweise Angabe einer Länge für den Teilstring aus der angegebenen Prozedurvariablen. ( 1 <= l <= 80 ).
Standard: l = Länge der Variablen.
[C|L|X]'string' konstante Zeichenfolge. C'string' ist gleichbedeutend mit 'string'. Bei L'string' wird die Zeichenfolge string nicht in Großbuchstaben umgewandelt. Innerhalb der Zeichenfolge vorkommende Hochkommas müssen verdoppelt werden ('').
Wird der Variablen ein numerischer Wert zugewiesen, so kann die Angabe der Hochkommas entfallen: *&var=[-]zahl
Beispiel: *&N=1, *&ZAEHLER=-10
.&var3 Es können mehrere Teilausdrücke der Art .&var|.'string' aneinandergefügt werden. Vor dem zweiten und allen weiteren Teilausdrücken muß ein Punkt (.) als Trennungszeichen angegeben werden.
Hinweise:
Als Prozedurvariable &var1 kann auch der Name einer bisher noch nicht vereinbarten Variablen angegeben werden. Die genannte Variable wird dann kreiert und kann in allen folgenden Anweisungen verwendet werden.
Eine Prozedurvariable kann auch mit einem Datenausschnitt aus einer Display-Datei versorgt werden. Näheres hierzu siehe Kommandos W (Write) Seite 8- und S,..=W (Suchen mit Wegschreiben) Seite 8-.
*&var1 = [ &var2 | wert ] op [ &var3 | wert ]
Der Prozedurvariablen &var1 wird der Wert des nach dem Zeichen = angegebenen arithmetischen Ausdrucks zugewiesen.
&var2 | &var3   Namen von CFS-Prozedurvariablen.
wert numerische Konstante: [-] zahl.
op arithmetischer Verknüpfungsoperator für eine der vier Grundrechenarten:
+ | - | * | /
Hinweise:
Um komplexe Modifikationen an Prozedurvariablen vorzunehmen, die evtl. in Abhängigkeit von bestimmten Suchbedingungen stehen, kann die Prozeduranweisung *RUN verwendet werden. Näheres hierzu auf Seite 19-.
Werden bei arithmetischen Zuweisungen Prozedurvariablen angegeben, so müssen die Variablen numerische Werte enthalten ([-]zahl). Eine Ausnahme bildet lediglich die CFS-interne Variable &DATE (yy-mm-dd). &DATE kann arithmetisch mit +/- und einer Zahl verknüpft werden. Das Ergebnis ist wieder ein Datum.
Bei der Division zweier Werte wird das Ergebnis abgerundet. Bei Division durch Null wird an die Variable &var1 kein Ergebnis zurückgegeben (entspricht &var1='').
Beispiele:
*&T1='Connection 1: Anwendung '
Die angegebene Zeichenfolge wird der Variablen &T1 als Inhalt zugewiesen.
*IF &CON1 = ''   &T1 = &T1.'  nicht eröffnet'
Falls Connection 1 nicht eröffnet ist (Inhalt der Variablen &CON1 = ''), so wird dem bisherigen Inhalt der Variablen &T1 die Zeichenfolge ' nicht eröffnet' angehängt.
*IF &CON1 -= ''   &T1 = &T1.&CON1
Falls die interne CFS-Variable &CON1 nicht leer ist (''), d.h. falls die Connection 1 eröffnet ist, wird an den bisherigen Inhalt der Variablen &T1 der Inhalt der Variablen &CON1 angefügt.
*&DZ = &DATE(7,2).'.'.&DATE(4,2).'.'.&DATE(1,2).'    '
*&DZ = &DZ.&TIME(1,2).':'.&TIME(3,2).':'.&TIME(5,2)
Aus den CFS-internen Variablen &DATE (yy-mm-dd) und &TIME (hhmmss) wird eine neue Variable mit dem Namen &DZ gebildet, die aufgrund des obigen Ausdrucks folgenden Inhalt hat: 'dd.mm.yy hh:mm:ss'. Das gleiche Ergebnis wird auch durch die Anweisung *&DZ=&DATE2.'    '.&TIME2 erreicht.
*&ZAEHL=&VAR1+1
Der Variablen &ZAEHL wird der um 1 erhöhte Wert von &VAR1 zugewiesen.
*&VAR1=&VAR1-&N
Der Wert der Variablen &VAR1 wird um den Inhalt der Variablen &N vermindert.
*&D=&DATE+1
Die Variable &D erhält das morgige Datum als Wert (yy-mm-dd).
Für weitere Beispiele für Variablenzuweisungen siehe Seite 20-.