Allgemeines
Anwendungsgebiet: | Jobvariablen |
Makrotyp: | S-Typ: (Standardform/C-/D-/E-/L-Form) siehe Abschnitt „Der Operand MF“ |
Bei der C-Form und D-Form des Makroaufrufs kann ein Präfix PREFIX (pre = 1..3 Buchstaben) angegeben werden (siehe Abschnitt „Der Operand PREFIX“). | |
Voreinstellung: | PREFIX = IDJ |
Makrobeschreibung
Der Makro COPJV kopiert den Inhalt einer Jobvariablen (Sende-JV) in eine andere Jobvariable (Empfangs-JV). Wahlweise können neben dem Inhalt auch die Schutzmerkmale der Sende-JV mit Ausnahme eines bestehenden MONJV- bzw. CJC-Schutzes kopiert werden.
Es können sowohl permanente als auch temporäre Jobvariablen kopiert werden. Für die Sende-JV muss Lesezugriff und für die Empfangs-JV Schreibzugriff erlaubt sein. Eine nicht existierende Empfangs-JV wird neu angelegt, wobei beim Anlegen einer permanenten JV die im Benutzereintrag maximal erlaubte Anzahl nicht überschritten werden kann.
Privilegierte Funktionen
Die Systembetreuung (Privileg TSOS) ist standardmäßig Mit-Eigentümer aller Jobvariablen (kann somit also auch Jobvariablen unter jeder Benutzerkennung anlegen bzw. kopieren).
Diese Mit-Eigentümerschaft kann für permanente Jobvariablen bei Einsatz von SECOS eingeschränkt werden.
Makroaufrufformat und Operandenbeschreibung
Operation | Operanden |
|
|
<jvname1>
Name der Jobvariable, die zu kopieren ist (Sende-JV).
Der Lesezugriff muss erlaubt sein (bei einer JV unter fremder Benutzerkennung muss entweder USER-ACCESS=ALL-USERS oder Leserecht über BASIC-ACL oder GUARDS bzw. Miteigentümerschaft bestehen).
<jvname2>
Name der Jobvariable, in die kopiert werden soll (Empfangs-JV).
Ist die Empfangs-JV noch nicht katalogisiert, wird sie neu angelegt. In diesem Fall darf nur die eigene Benutzerkennung oder eine Benutzerkennung, für die der Benutzer Miteigentümer ist, angegeben werden.
Ist die Empfangs-JV katalogisiert, muss der Schreibzugriff erlaubt sein (bei einer JV unter fremder Benutzerkennung muss entweder Standardzugriffkontrolle mit USER-ACCESS=*ALL-USERS oder Schreibrecht über BASIC-ACL oder GUARDS bzw. Miteigentümerschaft bestehen).
Die Empfangs-JV wird jedoch nur bei Angabe von REPLACE=*YES (ist Voreinstellung) überschrieben.
SAME=
Gibt an, ob die Schutzmerkmale der Sende-JV auch für die Empfangs-JV gelten sollen.
*NO
Die Schutzmerkmale werden nicht in die Empfangs-JV übernommen. Bei einer neu zu erstellenden Empfangs-JV werden bei den Schutzmerkmalen die System-Standardwerte gesetzt (s.a. Voreinstellungen des Kommandos CREATE-JV). Für eine bereits bestehende Empfangs-JV bleiben die bisherigen Schutzmerkmale erhalten.
*YES
Die Empfangs-JV erhält die gleichen Schutzmerkmale wie die Sende-JV (bzgl. ACCESS, USER-ACCESS, OWNER, GROUP, OTHERS, EXPIR-DATE, EXPIR-TIME, MAN-CLASS, vereinbarte GUARDS, sowie die gleichen Kennwörter; siehe auch Ausgabefelder des Kommandos SHOW-JV-ATTRIBUTES).
Ein bestehender MONJV- bzw. CJC-Schutz wird jedoch nicht übernommen.
Die Angabe SAME=*YES wird in folgenden Fällen ignoriert (d.h. es gilt *NO):
Die Empfangs-JV ist eine temporäre JV.
Die Empfangs-JV wird von CJC verwendet.
Die Empfangs-JV liegt unter einer fremden Benutzerkennung
und der Aufrufer ist nicht Miteigentümer.
Liegt die Sende-JV auf einer fremden Userid und ist mit BASIC-ACL oder GUARDS geschützt, werden die Merkmale USER-ACCESS, BASIC-ACL und GUARDS der Empfangs-JV auf Standardwerte gesetzt.
WRITE=
Gibt an, ob eine bereits existierende Empfangs-JV überschrieben werden soll.
*REPLACE
Eine bereits existierende Empfangs-JV wird ohne Meldung überschrieben.
*NEW
Eine bereits existierende Empfangs-JV wird nicht überschrieben. Der Aufruf wird mit einem Fehler (Maincode X’0444’) abgewiesen.
MF=
PREFIX=
Zur Beschreibung der Operanden MF und PREFIX siehe Abschnitt "Der Operand MF" bzw. "Der Operand PREFIX" .
Die gültigen Werte sind zu Beginn der Makrobeschreibung und aus dem Aufrufformat ersichtlich.
Rückinformation und Fehleranzeigen
siehe Kapitel "Meldungen" - "Makroebene".
DSECT
COPJV COPJV MF=D 1 *********************************************************************** 1 * VERSION 410 1 *********************************************************************** 1 * C O P J V P A R A M E T E R L I S T * 1 *********************************************************************** 1 #INTF REFTYPE=REQUEST, C 1 INTNAME=COPJV,INTCOMP=001 1 COPJV DSECT 1 *********************************************************************** 1 * UNIT=41, FUNCTION=35, VERSION=1 * 1 *********************************************************************** 1 FHDR MF=(C,IDJP) 2 DS 0A 2 IDJPFHE DS 0XL8 0 GENERAL PARAMETER AREA HEADER 2 * 2 IDJPIFID DS 0A 0 INTERFACE IDENTIFIER 2 IDJPFCTU DS AL2 0 FUNCTION UNIT NUMBER 2 * BIT 15 HEADER FLAG BIT, 2 * MUST BE RESET UNTIL FURTHER NOTICE 2 * BIT 14-12 UNUSED, MUST BE RESET 2 * BIT 11-0 REAL FUNCTION UNIT NUMBER 2 IDJPFCT DS AL1 2 FUNCTION NUMBER 2 IDJPFCTV DS AL1 3 FUNCTION INTERFACE VERSION NUMBER 2 * 2 IDJPRET DS 0A 4 GENERAL RETURN CODE 2 * 2 * GENERAL_RETURN_CODE CLEARED (X'00000000') MEANS 2 * REQUEST SUCCESSFUL PROCESSED AND NO ADDITIONAL INFORMATION 2 * 2 IDJPSRET DS 0AL2 4 SUB RETURN CODE 2 IDJPSR2 DS AL1 4 SUB RETURN CODE 2 2 * ALWAYS CLEARED (X'00') IF MAIN_RETURN_CODE IS X'FFFF' 2 * Standard subcode2 values as defined by convention: 2 IDJPR2OK EQU X'00' All correct, no additional info 2 IDJPR2NA EQU X'01' Successful, no action was necessary 2 IDJPR2WA EQU X'02' Warning, particular situation 2 IDJPSR1 DS AL1 5 SUB RETURN CODE 1 2 * 2 * GENERAL INDICATION OF ERROR CLASSES 2 * 2 * CLASS A X'00' FUNCTION WAS SUCCESSFULLY PROCESSED 2 * CLASS B X'01' - X'1F' PARAMETER SYNTAX ERROR 2 * CLASS C X'20' INTERNAL ERROR IN CALLED FUNCTION 2 * CLASS D X'40' - X'7F' NO CLASS SPECIFIC REACTION POSSIBLE 2 * CLASS E X'80' - X'82' WAIT AND RETRY 2 * 2 IDJPRFSP EQU X'00' FUNCTION SUCCESSFULLY PROCESSED 2 IDJPRPER EQU X'01' PARAMETER SYNTAX ERROR 2 * 3 GLOBALLY DEFINED ISL ERROR CODES IN CLASS X'01' - X'1F' 2 IDJPRFNS EQU X'01' CALLED FUNCTION NOT SUPPORTED 2 IDJPRFNA EQU X'02' CALLED FUNCTION NOT AVAILABLE 2 IDJPRVNA EQU X'03' INTERFACE VERSION NOT SUPPORTED 2 * 2 IDJPRAER EQU X'04' ALIGNMENT ERROR 2 IDJPRIER EQU X'20' INTERNAL ERROR 2 IDJPRCAR EQU X'40' CORRECT AND RETRY 2 * 2 GLOBALLY DEFINED ISL ERROR CODES IN CLASS X'40' - X'7F' 2 IDJPRECR EQU X'41' SUBSYSTEM (SS) MUST BE CREATED 2 * EXPLICITELY BY CREATE-SS 2 IDJPRECN EQU X'42' SS MUST BE EXPLICITELY CONNECTED 2 * 2 IDJPRWAR EQU X'80' WAIT FOR A SHORT TIME AND RETRY 2 IDJPRWLR EQU X'81' " LONG " 2 IDJPRWUR EQU X'82' WAIT TIME IS UNCALCULABLY LONG 2 * BUT RETRY IS POSSIBLE 2 * 2 GLOBALLY DEFINED ISL ERROR CODES IN CLASS X'80' - X'82' 2 IDJPRTNA EQU X'81' SS TEMPORARILY NOT AVAILABLE 2 IDJPRDH EQU X'82' SS IN DELETE / HOLD 2 * 2 IDJPMRET DS 0AL2 6 MAIN RETURN CODE 2 IDJPMR2 DS AL1 6 MAIN RETURN CODE 2 2 IDJPMR1 DS AL1 7 MAIN RETURN CODE 1 2 * 2 * SPECIAL LAYOUT OF LINKAGE_MAIN_RETURN_CODE (YYYY IN X'00XXYYYY') 2 * 2 IDJPRLNK EQU X'FFFF' LINKAGE ERROR / REQ. NOT PROCESSED 2 IDJPFHL EQU 8 8 GENERAL OPERAND LIST HEADER LENGTH 2 * 1 *********************************************************************** 1 * END OF STANDARD HEADER. START OF SPECIAL COPJV PARAMETER LIST * 1 *********************************************************************** 1 IDJPHDRI EQU X'00292301',4 1 IDJPFLG DS XL1 FLAG 1 IDJPSAME EQU X'80' 7-7 1=SAME=YES 0=NO 1 IDJPWRIT EQU X'40' 6-6 1=WRITE=NEW 0=REPLACE 1 * 0=DESCRIPTOR GIVEN 1 IDJPRES DS XL3 RESERVED 1 IDJPJV1 DS CL54 JVNAME1 1 IDJPJV2 DS CL54 JVNAME2 1 IDJPJVS DS A RESERVED 1 IDJPPLLN EQU *-COPJV LENGTH OF DSECT 1 *********************************************************************** 1 SPACE