Modify contents of job variable
Component: | JV |
Functional area: | Job variables |
Domain: | JOB-VARIABLES |
Privileges: | STD-PROCESSING |
Routing code: | J |
This function is only available to the user if the chargeable software product JV has been loaded as a subsystem.
Function
The MODIFY-JV command modifies the contents of a job variable. All or part of the JV is given a new value (SET-VALUE operand). The value being set may be specified directly as a character string or derived from another JV.
Privileged functions
Privileged users (OPERATING privilege and the TSOS user ID) can modify the contents of any user job variable.
By default, systems support (TSOS privilege) is a co-owner of all the job variables (and therefore possesses the same access rights). When SECOS is used, this co-ownership can be restricted for permanent job variables.
Format
MODIFY-JV | Alias: MDJV | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Operands
JV-CONTENTS = <filename 1..54 without-gen-vers> / *SUBSTRING(...) / *LINK(...)
Specifies the job variable contents which are to be changed.
A JV can be identified by its name or by its link name. Optionally, a subarea may be specified. The contents of the JV, or the specified subarea, are changed to the value specified in the SET-VALUE operand.
JV-CONTENTS = <filename 1..54 without-gen-vers>
Name of the JV. The contents of the entire JV are modified.
JV-CONTENTS = *SUBSTRING(...)
The contents of the subarea identified by POSITION and LENGTH are modified. If POSITION and LENGTH are not specified, the contents of the entire JV are modified.
JV-NAME = <filename 1..54 without-gen-vers>
Name of the JV.
POSITION = 1 / <integer 1..256>
Position within the JV from which the change is to begin. An undefined area ahead of this position is filled with blanks.
LENGTH = *REST / <integer 1..256>
Number of characters to be changed.
The sum of the numeric values specified in the POSITION and LENGTH operands must not exceed 257.
LENGTH = *REST
The length of the JV value starting from the position specified in the POSITION operand up to position 256 applies. If the number of characters transferred is less than the number specified by the *REST operand, no blank padding is performed; the subsequent area is (again) undefined.
JV-CONTENTS = *LINK(...)
The JV is identified by a link name. If POSITION and LENGTH are not specified, the contents of the entire JV are modified; if they are, the contents of the specified subarea are modified.
LINK-NAME = <alphanum-name 1..7>
Link name of the JV.
POSITION = 1 / <integer 1..256>
Position within the JV from which the change is to begin. An undefined area ahead of this position is filled with blanks.
LENGTH = *REST / <integer 1..256>
Number of characters to be changed.
The sum of the numeric values specified in the POSITION and LENGTH operands must not exceed 257.
LENGTH = *REST
The length of the JV value starting from the position specified in the POSITION operand up to position 256 applies. If the number of characters transferred is less than the number specified by the *REST operand, no blank padding is performed; the subsequent area is (again) undefined.
SET-VALUE = <c-string 1..254 with-low> / <x-string 1..508> / <filename 1..54 without-gen-vers> /
*SUBSTRING(...) / *LINK(...)
New value for the JV contents specified in the JV-CONTENTS operand. The value to be set may be
- It may be entered directly as a string (<c-string> or <x-string>); in the case of a C string the uppercase/lowercase distinction is significant.
- It may be derived from a JV identified by its name or its link name; a subarea may be specified.
If the value being supplied is longer than the value being changed, it is truncated; if it is shorter, it is padded with blanks.
The command is rejected if
- the JV specified does not exist
- the JV specified is not set (has no value)
- there is no access right for the specified JV
- the subarea of the JV indicated by POSITION and LENGTH is not fully defined.
SET-VALUE = <filename 1..54 without-gen-vers>
Name of the JV. The entire value of this JV is taken as the new value.
SET-VALUE = *SUBSTRING(...)
The contents of the subarea identified by POSITION and LENGTH are taken as the new value. If no subarea is specified, the contents of the entire JV are taken.
JV-NAME = <filename 1..54 without-gen-vers>
Name of the JV.
POSITION = 1 / <integer 1..256>
Position within the JV from which the transfer is to be made.
LENGTH = *REST / <integer 1..256>
Number of characters to be transferred.
The sum of the numeric values specified in the POSITION and LENGTH operands must not exceed 257.
LENGTH = *REST
The length of the current JV value starting from the position specified in the POSITION operand applies.
SET-VALUE = *LINK(...)
The contents of a JV identified by its link name are taken as the new value. If no subarea is specified, the contents of the entire JV are taken; if a subarea is specified, the contents of the specified subarea are used
LINK-NAME = <alphanum-name 1..7>
Link name of the JV.
POSITION = 1 / <integer 1..256>
Position within the JV from which the transfer is to be made.
LENGTH = *REST / <integer 1..256>
Number of characters to be transferred.
The sum of the numeric values specified in the POSITION and LENGTH operands must not exceed 257.
LENGTH = *REST
The length of the current JV value starting from the position specified in the POSITION operand applies.
PASSWORD = *NONE / <c-string 1..4> / <x-string 1..8> / <integer -2147483648..2147483648> / *SECRET
Write or read password for the JV to be changed.
The PASSWORD operand has the following special characteristics:
The input field is automatically blanked out in the guided dialog.
In unguided dialog and foreground procedures, the entry *SECRET or ^, SDF provides a blanked out input field for inputting the password.
The password entered is not logged.
Return codes
(SC2) | SC1 | Maincode | Meaning |
---|---|---|---|
0 | CMD0001 | Command executed | |
1 | 0 | CMD0001 | No action necessary |
2 | 0 | CMD0001 | Command executed with a warning |
1 | CMD0202 | Syntax error | |
32 | CMD0221 | System error | |
64 | JVS04E0 | Command not executable in the call environment; if possible, remove cause of error (see SYSOUT message JVS04xx) | |
130 | JVS04E1 | Command cannot be executed at this time; for cause see SYSOUT message JVS04xx | |
130 | CMD2282 | Subsystem JV not available for indefinite time |
Example
/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) | The job variable HUGO is set to the value ’I like SDF’. |
(2) | The contents of the job variable HUGO are transferred to the job variable identified by the link name LINA. |
(3) | The contents of bytes 128 - 131 of the job variable identified by the link name LORA are transferred to bytes 8 - 11 of the job variable HUGO. |
(4) | Bytes 8 - 13 of the job variable identified by the link name LINA are set to the value X’839686868585’. |