Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

@RUN - Aufruf einer Anwenderroutine

&pagelevel(3)&pagelevel

Mit der Anweisung @RUN wird eine vom Anwender geschriebene Routine (Anwenderroutine) ausgeführt (siehe Handbuch Unterprogramm-Schnittstellen [1]).

Operation

Operanden

F-Modus, L-Modus

@RUN

ENTRY=entry [,MODLIB=modlib] [,UNLOAD] [,string]

entry

modlib

Einsprungpunkt der Anwenderroutine.

Name der Bibliothek, in der der Modul abgelegt ist, der den Einsprungpunkt
enthält. Die Bibliothek muss existieren, sonst wird die Anweisung mit der
Fehlermeldung EDT5372 abgewiesen.

Wird kein Modul mit dem Einsprungpunkt in der angegebenen Bibliothek
gefunden, wird zuerst in den alternativen Bibliotheken BLSLIBnn gesucht,
dann in der privaten Tasklib bzw. in der System-Tasklib $TASKLIB.

Ist keine Bibliothek angegeben, wird zunächst in der privaten Tasklib und
dann in der System-Tasklib $TASKLIB gesucht.

Bei Misserfolg wird die Fehlermeldung EDT5372 ausgegeben.

UNLOAD

Gibt an, dass die Ladeeinheit, die den Einsprungpunkt enthält, nach der
Rückkehr in den EDT entladen werden soll. Der Operand UNLOAD wirkt, als
ob eine separate Anweisung @UNLOAD UNIT=entry gegeben worden
wäre, d.h. er führt nur dann zum Entladen, wenn der angegebene
Einsprungpunkt gleichzeitig der Name einer Ladeeinheit ist (siehe unten).
Wenn etwa der Einsprungpunkt in einer schon geladenen Ladeeinheit
anderen Namens gefunden wurde, kann UNLOAD nicht ausgeführt werden.
In diesem Fall wird die Meldung EDT1907 ausgegeben.

string

Zeichenfolge, die an das aufgerufene Programm übergeben wird.

Die Implementierung externer Anwenderroutinen und die Parameterübergabe an diese sind im Abschnitt „Anwenderroutinen-@RUN“ [1] genauer beschrieben.

Ist für die Anwenderroutine keine Initialisierungsroute definiert, wird die Anweisung mit der Meldung EDT5469 abgewiesen. Liefert die zugehörige Initialisierungsroutine einen Returncode, wird die Anweisung mit der Meldung EDT5470 abgewiesen, falls die Initialisierungsroutine die Version nicht unterstützt, und mit der Meldung EDT5471 falls die Initialisierungsroutine einen sonstigen Fehler meldet.

Führt die Bearbeitung der @RUN-Anweisung zu einem eigenen Ladevorgang, wird dem Binder-Lader-System ein zu dem angegebenen Einsprungpunkt gleich lautender UNIT Name bekannt gemacht.

Dieser UNIT-Name kann bei der @UNLOAD-Anweisung angegeben werden, um alle zusammen mit dem Einsprungpunkt geladenen Ladeeinheiten zu entladen. Ebenso bezieht sich der UNLOAD Operand der @RUN-Anweisung auf diesen UNIT-Namen. Wird der Einsprungpunkt bereits innerhalb einer anderen Ladeeinheit gefunden, führt @RUN also nicht zu einem eigenen Ladevorgang, kann der Einsprungpunkt nur zusammen mit dieser Ladeeinheit entladen werden.

Die Anweisung @RUN gehört zu den sicherheitsrelevanten Anweisungen des EDT (siehe hierzu auch den Abschnitt „Zugriffsschutz“). In bestimmten privilegierten Kennungen wird die Anweisung @RUN abgewiesen. Dies trifft auch für nichtunterbrechbare Systemprozeduren im Dialogbetrieb bzw. bei der Eingabe von einer Datei (Lesen mit RDATA von SYSDTA, Abarbeiten einer EDT-Startprozedur) zu, es sei denn, die Anweisung @RUN wird von der geschützten Prozedur selbst gegeben (SYSDTA=SYSCMD).

Hinweis

Für den Operanden entry, der Namen bis zu 32 Zeichen akzeptiert, ist Groß-/Kleinschreibung relevant.

Achtung

Das Format der Anweisung und die Schnittstelle, mit der die Routine gerufen wird, sind im Unicode-Modus anders als im Kompatibilitäts-Modus.