Der EDT bietet die Möglichkeit über die @USE-Anweisung eine externe Anweisungsroutine zu definieren, die über ein ebenfalls mit @USE vereinbartes Benutzerfluchtsymbol als Unterprogramm aufgerufen werden kann. Damit können benutzereigene Anweisungen im EDT zugelassen werden.
Um LMS-Anweisungen und somit die Funktionalität von LMS aus dem EDT zu nutzen, muss in der EDT-Anweisungszeile die @USE-Anweisung in folgender Form angegeben werden:
@USE COM[MAND]= ’usersymb’ (LMSEDT,$.SYSLNK.LMS.036)
mit der externen Anweisungsform: usersymb LMS-Anweisung
Eine ausführliche Beschreibung der @USE-Anweisung findet sich in [10].
Zu beachten ist, dass die maximale Länge der LMS-Anweisung aus der EDT-Anweisungszeile nur 256 Byte beträgt.
Bei angegebener LMS-Anweisung wird diese vom Kommandoprozessor SDF analysiert und nach Ausführung erfolgt die Rückkehr in die EDT-Anweisungszeile. Unabhängig von der Eingabe werden Kleinbuchstaben vor der Analyse in Großbuchstaben umgesetzt.
Hinweise
In der EDT-Anweisungszeile werden die LMS-Anweisungen CALL-EDT, EDIT-ELEMENT und BEGIN-MAKE nicht unterstützt.
Eine möglicherweise vorhandene LMS-Startdatei wird über die externe Anweisungsroutine nicht unterstützt.
Die Nutzung der LMS-Funktionalität aus dem EDT ist möglich,
wenn der EDT als Hauptprogramm aufgerufen wird, oder
wenn der EDT im Hauptprogramm LMS über die LMS-Anweisungen CALL-EDT bzw. EDIT-ELEMENT als Unterprogramm aufgerufen wird.
Ist LMS das Hauptprogramm, wird beim Nutzen der LMS-Funktionalität aus dem EDT kein neuer LMS-Lauf gestartet, d.h. die LMS-Einstellungen bleiben erhalten.
Läuft EDT im Unicode-Modus, z.B. nach /START-EDTU (ab EDT V17), so muss in der EDT-Anweisung @USE der Entry LMSEDU statt LMSEDT verwendet werden. Verwendet man im Unicode-Modus den Entry LMSEDT, so bekommt ein mit ADD-ELEMENT erzeugtes Element immer den CCSN *NONE, obwohl im EDT mit CODENAME ein Zeichensatz ungleich *NONE (z.B. UTF16) eingestellt wurde.
Verändertes Verhalten der LMS-Anweisungen EXTRACT-ELEMENT, ADD-ELEMENT und END aufgrund der Nutzung der LMS-Funktionalität aus dem EDT
Die Eingabe der LMS-Anweisung erfolgt aus der EDT-Anweisungszeile.
EXTRACT-ELEMENT
usersymb
EXTRACT-ELEMENT ELEMENT = ... ,
TO-FILE = *STD
Die Elementsätze des angegebenen Elementes werden in die aktuelle EDT-Arbeitsdatei ans Ende fortgeschrieben.
ADD-ELEMENT
usersymb
ADD-ELEMENT FROM-FILE=*STD,
TO-ELEMENT = ...Die Datensätze werden aus der aktuellen EDT-Arbeitsdatei ins angegebene Element geschrieben.
END
usersymb
END
EDT wurde als Hauptprogramm aufgerufen:
Das über @USE aufgerufene Unterprogramm LMS wird beendet, d.h. alle noch geöffneten Bibliotheken werden geschlosssen. Es erfolgt die Rückkehr in die EDT-Anweisungszeile.
LMS wurde als Hauptprogramm aufgerufen:
Es erfolgt im Dialogbetrieb die Anfrage an den Benutzer:
LMS0409 TERMINATE LMS? REPLY (Y=YES, N=NO)
Y: Das Hauptprogramm LMS wird beendet.
N: Das Hauptprogramm LMS wird nicht beendet.
Erweiterung von LMS-Anweisungen
MODIFY-LOGGING-PARAMETERS ... ,
TEXT-OUTPUT = *EDT (WRITE-MODE=*UNCHANGED)
Die LMS-Protokollausgabe wird in die EDT-Arbeitsdatei 9 geschrieben, wobei sich der Operand WRITE-MODE auf den Inhalt der Arbeitsdatei 9 bezieht.
Beispiel
/START-EDT ———————————————————————————————————————————————————————————— (1) . .
-- (2)
-- (3)
-- (4)
(1) | Aufruf des EDT |
(2) | LMS als externe Anweisungsroutine mit dem Benutzerfluchtsymbol "Punkt" definieren. |
(3) | Einlesen des Elementes bsp.elem1 vom Typ=s aus der Bibliothek bsp.lib in die EDT Arbeitsdatei 0. |
(4) | Zurückschreiben des Elementes aus der EDT-Arbeitsdatei 0 in die gleiche Bibliothek unter Umbenennen des Elementnamens. |