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 Wird kein Modul mit dem Einsprungpunkt in der angegebenen Bibliothek Ist keine Bibliothek angegeben, wird zunächst in der privaten Tasklib und Bei Misserfolg wird die Fehlermeldung |
UNLOAD | Gibt an, dass die Ladeeinheit, die den Einsprungpunkt enthält, nach der |
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.