Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

OPNCALL Programmkontext erstellen

&pagelevel(4)&pagelevel

OPNCALL erstellt einen Programmkontext und eröffnet die vom Aufrufer festgelegten Syntaxdateien. Bei der Angabe von *STD (= Default-Wert) wird die vom Systemkontext verwendete Syntaxdatei nochmals eröffnet. Der Makro gibt den Kontext-Identifikator (= CALLID) an den Benutzer zurück.

Mit OPNCALL kann ein dem Systemkontext entsprechender Programmkontext eröffnet werden, in dem Benutzerprogramme eine eigene Benutzersyntaxdatei aktivieren können, ohne dass die aktuelle Benutzersyntaxdatei im Systemkontext davon berührt wird. Die Benutzersyntaxdatei des Programms wird parallel zur Benutzersyntaxdatei des Systemkontexts eröffnet.

Operation

Operanden

OPNCALL

CALLID = addr / (r) ]

,TASKTYP = ANYTASK / TERMINAL / BATCH / ALL

,SFSYSTM = *STD / filename

,SFGROUP = *STD / filename

[ ,MF = { L, (E,(1)),(E,opadr) }]

CALLID =
Adresse des Identifikators des eröffneten Kontexts, die von den weiteren Makroaufrufen bestimmt wird.

addr / (r)
Adresse eines 4 Byte langen Feldes oder Register, in dem SDF den Kontext-Identifikator übermittelt. Der Aufrufende muss den Kontext-Identifikator angeben, wenn er auf den Programmkontext Bezug nimmt. Dieses Feld muss auf Wortgrenze ausgerichtet sein.

TASKTYP =
bestimmt, in welcher Umgebung der Aufrufende bei einem Aufruf der Makros CMDTST und TRCMD arbeitet. SDF prüft, ob die angegebenen Anweisungen oder Kommandos in der festgelegten Umgebung erlaubt sind. Sind sie nicht erlaubt, werden sie von SDF abgewiesen.

ANYTASK
SDF prüft nicht, ob die Eingaben erlaubt sind.

TERMINAL
SDF akzeptiert nur die Anweisungen und Kommandos, die in den Syntaxdateien des Kontexts mit DIALOG-ALLOWED=*YES oder DIALOG-PROC-ALLOWED=*YES definiert sind (siehe Operand PROCMOD bei den Makros CMDTST und TRCMD).

BATCH
Die Anweisungen und Kommandos müssen mit BATCH-ALLOWED=*YES oder BATCH-PROC-ALLOWED=*YES definiert sein.

ALL
SDF prüft sowohl für Dialog- als auch für Stapelaufträge, ob die Anweisungen/Kommandos erlaubt sind. Wenn die Anweisung oder das Kommando für irgendeinen Auftragstyp gesperrt ist, wird es von SDF abgewiesen.

Bei nachfolgenden CMDTST- oder TRCMD-Aufrufen kann folgendes Verhalten erwartet werden:

  • bei PROCMOD=ANY wird jede Anweisung und jedes Kommando abgewiesen.

  • bei PROCMOD=NO werden Anweisungen und Kommandos abgewiesen, die mit DIALOG-ALLOWED=*NO oder mit BATCH-ALLOWED=*NO definiert sind.

  • bei PROCMOD=YES werden Anweisungen und Kommandos abgewiesen, die mit DIALOG-PROC-ALLOWED=*NO oder BATCH-PROC-ALLOWED=*NO definiert sind.

  • bei PROCMOD=ALL (nur TRCMD) werden Anweisungen und Kommandos abgewiesen, die ausschließlich im Dialog erlaubt sind (definiert mit DIALOG-PROC/BATCH-PROC/BATCH-ALLOWED=*NO)

SFSYSTM =
bestimmt die Systemsyntaxdatei(en), die im erstellten Programmkontext aktiviert ist/sind.

*STD
die Systemsyntaxdateien des Systemkontexts werden im Programmkontext aktiviert. Wenn diese von der Systembetreuung gewechselt werden, werden auch die Systemsyntaxdateien des Programmkontexts entsprechend verändert.

filename
Name der zu aktivierenden Systemsyntaxdatei. Die angegebene Systemsyntaxdatei kann im Programmkontext erst nach einem CLSCALL gewechselt werden. Sie gilt nur für den Benutzerauftrag, der den OPNCALL-Makro abgesetzt hat. Ein anderer Benutzerauftrag kann nur dann auf diese Syntaxdatei zugreifen, wenn er einen eigenen OPNCALL-Makro absetzt.

SFGROUP =
bestimmt die zu aktivierende Gruppensyntaxdatei.

*STD
Die Gruppensyntaxdatei des Systemkontexts wird aktiviert. Sie ist der PROFILE-ID des Benutzerauftrags zugeordnet.

*NO
Im Programmkontext wird keine Gruppensyntaxdatei aktiviert.

filename
Name der Gruppensyntaxdatei, die im Programmkontext eröffnet werden soll.

MF =
definiert besondere Anforderungen an die Makroauflösung (Einzelheiten siehe Typen von Makroaufrufen und Handbuch „Makroaufrufe an den Ablaufteil“ [8]).

L
Es wird nur der Datenteil der Makroauflösung (Operandenliste) generiert. Das erfordert, dass im Makroaufruf keine Operandentypen mit ausführbarem Code auftreten. Der generierte Datenteil hat die im Namensfeld des Makroaufrufs angegebene Adresse.

(E,(1)) / (E,opadr)
Es wird nur der Befehlsteil der Makroauflösung generiert. Auf den zugehörigen Datenteil (Operandenliste) wird mit der Adresse „opadr“ verwiesen. Diese steht entweder in Register 1 oder wird direkt angegeben.

Registerverwendung
Register 1: Adresse der Parameterliste

Rückinformation und Fehleranzeigen
Register 15 enthält im rechtsbündigen Byte einen Returncode:

X’00’

X’44’

X’54’

normale Ausführung

Syntaxdatei nicht gefunden

maximale Anzahl von Kontexten erreicht