Inhalt einer Jobvariablen ändern
Komponente: | JV |
Funktionsbereich: | Jobvariablen |
Anwendungsbereich: | JOB-VARIABLES |
Privilegierung: | STD-PROCESSING |
Berechtigungsschlüssel: | J |
Funktionsbeschreibung
Das Kommando MODIFY-JV ändert den Inhalt einer Jobvariablen. Die gesamte JV oder ein Teilbereich erhält einen neuen Wert (Operand SET-VALUE). Der zu setzende Wert kann direkt als Zeichenkette angegeben werden oder aus einer anderen JV übernommen werden.
Privilegierte Funktion
Der privilegierte Anwender (Privileg OPERATING und die Benutzerkennung TSOS) kann den Inhalt jeder Benutzer-Jobvariablen ändern.
Die Systembetreuung (Privileg TSOS) ist standardmäßig Mit-Eigentümer aller Jobvariablen (besitzt somit also auch die gleichen Zugriffsrechte). Diese Mit-Eigentümerschaft kann für permanente Jobvariablen bei Einsatz von SECOS eingeschränkt werden.
Format
MODIFY-JV | Kurzname: MDJV | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Operandenbeschreibung
JV-CONTENTS = <filename 1..54 without-gen-vers> / *SUBSTRING(...) / *LINK(...)
Spezifikation des zu ändernden Jobvariableninhalts.
Eine JV kann über ihren Namen oder ihren Kettungsnamen identifiziert werden. Wahlweise ist auch die Angabe eines Teilbereichs möglich. Der Inhalt der JV bzw. ein Teilbereich wird auf den im Operanden SET-VALUE spezifizierten Wert geändert.
JV-CONTENTS = <filename 1..54 without-gen-vers>
Name der JV. Der Inhalt der gesamten JV wird geändert.
JV-CONTENTS = *SUBSTRING(...)
Der Inhalt des durch POSITION und LENGTH spezifizierten Teilbereichs wird geändert. Ohne Angabe von POSITION und LENGTH wird der Inhalt der gesamten JV geändert.
JV-NAME = <filename 1..54 without-gen-vers>
Name der JV.
POSITION = 1 / <integer 1..256>
Position innerhalb der JV, ab der zu ändern ist. Ein bis dahin undefinierter Bereich vor dieser Position wird mit Leerzeichen aufgefüllt.
LENGTH = *REST / <integer 1..256>
Anzahl zu ändernder Zeichen.
Die Summe der in den Operanden POSITION und LENGTH angegebenen Zahlen darf 257 nicht überschreiten.
LENGTH = *REST
Es gilt die Länge des JV-Wertes ab Position (siehe Operand POSITION) bis zur Position 256. Ist die Anzahl der übertragenen Zeichen kürzer als die mit dem Operandenwert REST bezeichnete, werden keine Leerzeichen angehängt, sondern der folgende Bereich ist (wieder) undefiniert.
JV-CONTENTS = *LINK(...)
Die JV wird über einen Kettungsnamen bezeichnet. Ohne Angabe POSITION und LENGTH wird der Inhalt der gesamten JV geändert, anderenfalls der Inhalt des spezifizierten Teilbereichs.
LINK-NAME = <alphanum-name 1..7>
Kettungsname der JV.
POSITION = 1 / <integer 1..256>
Position innerhalb der JV, ab der zu ändern ist. Ein bis dahin undefinierter Bereich vor dieser Position wird mit Leerzeichen aufgefüllt.
LENGTH = *REST / <integer 1..256>
Anzahl zu ändernder Zeichen.
Die Summe der in den Operanden POSITION und LENGTH angegebenen Zahlen darf 257 nicht überschreiten.
LENGTH = *REST
Es gilt die Länge des JV-Wertes ab Position (siehe Operand POSITION) bis zur Position 256. Ist die Anzahl der übertragenen Zeichen kürzer als die mit dem Operandenwert REST bezeichnete, werden keine Leerzeichen angehängt, sondern der folgende Bereich ist (wieder) undefiniert.
SET-VALUE = <c-string 1..254 with-low> / <x-string 1..508> / <filename 1..54 without-gen-vers> /
*SUBSTRING(...) / *LINK(...)
Neuer Wert für den im Operanden JV-CONTENTS spezifizierten JV-Inhalt. Der zu setzende Wert kann
direkt als Zeichenkette (<c-string> oder <x-string>) angegeben werden; bei <c-string> wird Groß-/Kleinschreibung ausgewertet.
aus einer über ihren Namen oder ihren Kettungsnamen identifizierten JV übernommen werden; die Angabe eines Teilbereichs ist möglich.
Ist der zu übertragende Wert länger als die Anzahl zu ändernder Zeichen, wird er abgeschnitten; ist er kürzer, wird er mit Leerzeichen ergänzt.
Das Kommando wird abgewiesen, wenn
die angegebene JV nicht existiert,
die angegebene JV nicht gesetzt ist (keinen Wert hat),
kein Zugriffsrecht für die angegebene JV besteht,
der mit POSITION und LENGTH bezeichnete Teilbereich der JV nicht vollständig definiert ist.
SET-VALUE = <filename 1..54 without-gen-vers>
Name der JV, deren gesamter Inhalt als zu setzender Wert übernommen wird.
SET-VALUE = *SUBSTRING(...)
Der Inhalt des durch POSITION und LENGTH spezifizierten Teilbereichs wird als zu setzender Wert übernommen. Ohne Angabe eines Teilbereichs wird der Inhalt der gesamten JV übernommen.
JV-NAME = <filename 1..54 without-gen-vers>
Name der JV.
POSITION = 1 / <integer 1..256>
Position innerhalb der JV, ab der zu übertragen ist.
LENGTH = *REST / <integer 1..256>
Anzahl zu übertragender Zeichen.
Die Summe der in den Operanden POSITION und LENGTH angegebenen Zahlen darf 257 nicht überschreiten.
LENGTH = *REST
Ab der im Operanden POSITION angegebenen Position werden alle definierten Zeichen des JV-Inhalts übertragen.
SET-VALUE = *LINK(...)
Der Inhalt einer über einen Kettungsnamen bezeichneten JV wird als zu setzender Wert übernommen. Ohne Angabe eines Teilbereichs wird der Inhalt der gesamten JV übernommen, anderenfalls der Inhalt des spezifizierten Teilbereichs.
LINK-NAME = <alphanum-name 1..7>
Kettungsname der JV.
POSITION = 1 / <integer 1..256>
Position innerhalb der JV, ab der zu übertragen ist.
LENGTH = *REST / <integer 1..256>
Anzahl zu übertragender Zeichen.
Die Summe der in den Operanden POSITION und LENGTH angegebenen Zahlen darf 257 nicht überschreiten.
LENGTH = *REST
Ab der im Operanden POSITION angegebenen Position werden alle definierten Zeichen des JV-Inhalts übertragen.
PASSWORD = *NONE / <c-string 1..4> / <x-string 1..8> / <integer -2147483648..2147483648> / *SECRET
Schreib- bzw. Lesekennwort der zu ändernden JV.
Der Operand PASSWORD hat folgende Besonderheiten:
Im geführten Dialog ist das Eingabefeld automatisch dunkel-gesteuert.
Bei Angabe von *SECRET oder ^ im ungeführten Dialog und in Vordergrund-Prozeduren stellt SDF ein dunkel-gesteuertes Eingabefeld zur verdeckten Eingabe des Kennworts zur Verfügung.
Das eingegebene Kennwort wird nicht protokolliert.
Kommando-Returncode
(SC2) | SC1 | Maincode | Bedeutung |
---|---|---|---|
0 | CMD0001 | Kommando ausgeführt | |
1 | 0 | CMD0001 | Es war keine Aktion notwendig |
2 | 0 | CMD0001 | Kommando ausgeführt mit Warnung |
1 | CMD0202 | Syntaxfehler | |
32 | CMD0221 | Systemfehler | |
64 | JVS04E0 | Kommando in der Aufruf-Umgebung nicht ausführbar; Fehlerursache, wenn möglich beseitigen (siehe SYSOUT-Meldung JVS04xx) | |
130 | JVS04E1 | Kommando kann vorübergehend nicht ausgeführt werden; Ursache siehe SYSOUT-Meldung JVS04xx | |
130 | CMD2282 | Subsystem JV für unbestimmte Zeit nicht verfügbar |
Beispiel
/mod-jv jv=hugo, set-val='I like SDF' ——————————————————————————————— (1)
/show-jv hugo
%I like SDF
/mod-jv jv=*link(lina),set-val=hugo ————————————————————————————————— (2)
/show-jv *link(lina)
%I like SDF
/mod-jv jv=(hugo,8,4),set-val=*link(lora,128,4) ————————————————————— (3)
/show-jv hugo
%I like milk
/mod-jv jv=*link(lina,8,6),set-val=x'839686868585' —————————————————— (4)
/show-jv *link(lina)
%I like coffee
(1) | Die Jobvariable HUGO wird auf den Wert „I like SDF“ gesetzt. |
(2) | Der Inhalt der Jobvariablen HUGO wird in die durch den Kettungsnamen LINA bezeichnete Jobvariable übernommen. |
(3) | Der Inhalt der Bytes 128 - 131 der durch den Kettungsnamen LORA bezeichneten Jobvariablen wird in die Bytes 8 - 11 der Jobvariablen HUGO übernommen. |
(4) | Die Bytes 8 - 13 der durch den Kettungsnamen LINA bezeichneten Jobvariablen werden auf den Wert X'839686868585' gesetzt. |