Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

INCLUDE-CMD Kommandofolgen aus Programm aufrufen

&pagelevel(4)&pagelevel

Anwendungsgebiet: PROCEDURE

Kommandobeschreibung

Mit dem Kommando INCLUDE-CMD können Kommandos und Kommandofolgen aus einem Programm heraus zur Ausführung übergeben werden. Das Kommando kann nur im Makro CMD (TU-Programm) und in EXECUTE-SYSTEM-CMD-Anweisungen ausgeführt werden.

Dabei ist zu beachten: Während der Ausführung von INCLUDE-CMD werden vom System einige Operationen wie Programm-Start,
-Wiederaufnahme, und -Beendigung etc. zurückgewiesen, um mögliche Inkonsistenzen auszuschalten, da das Kommando im Programm-Modus aufgerufen wird (siehe auch unter Hinweise).

Die Ausgabe des Kommandos in SYSOUT ist in zwei Teile geteilt:

  • Die Ausgabe als Ergebnis der Analyse des INCLUDE-CMD-Kommandos: Sie kann im SYSOUT-Puffer des CMD-Makros gesichert werden (Fehler-Report oder andere Informationsart)

  • Die Ausgabe der Kommandoausführung, die in SYSOUT aktuell enthalten ist: Sie ist unabhängig vom Parameter des CMD-Aufrufs.
    Die Ausgabe dieser Kommandos nach SYSOUT kann aber durch das Kommando ASSIGN-SYSOUT beeinflusst werden, wenn sich dieses in der bei CMD=... angegebenen Kommandoliste befindet.

Format

INCLUDE-CMD                                                 Kurzname: INCMD

CMD (DECLARE-CONSTANT Variable mit konstantem Wert deklarieren ) = <text 0..1800 with-low>

Operandenbeschreibung

CMD = <text 0...1800 with-low>
Auszuführendes Kommando oder auszuführende Kommandofolge, getrennt durch Semikolons und insgesamt eingeschlossen in runden Klammern. Ein führendes Zeichen „/“ ist verboten.
Die Ausführung der Kommandoliste, die im Operanden CMD angegeben wird, ist mit der Ausführung einer aus diesen Kommandos bestehenden Include-Prozedur identisch, allerdings mit einigen Einschränkungen:

  • Es ist nicht erlaubt, im Operanden CMD Prozedurkopf-Kommandos anzugeben. Die Kommandos SET-PROCEDURE-OPTIONS, BEGIN-PARAMETER-DECLARATION, END-PARAMETER-DECLARATION und DECLARE-PARAMETER werden deshalb zurückgewiesen.

  • Für die Logging-Optionen gelten die Default-Einstellungen. Sie können mit MODIFY-PROCEDURE-OPTIONS geändert werden.

  • Wenn in der Kommandoliste bei CMD (auf oberster Ebene) das Kommando EXIT-PROCEDURE angegeben wurde, dann endet INCLUDE-CMD mit diesem Kommando. Nachfolgende Kommandos werden ignoriert.

  • Die Kommandos DO, ENDP, END-PROCEDURE, ENDP-RESUME können in der Kommandofolge im CMD-Operanden nicht angegeben werden.

  • Wenn INCLUDE-CMD in einer Liste von Kommandoeingaben im Puffer des CMD-Makros angegeben ist, werden nachfolgende Kommandos ignoriert.
    Beispiel: CMD 'cmd1;cmd2;INCLUDE-CMD CMD=(PRINT-DOCUMENT X);cmd3' Hier wird die Eingabe „cmd3“ ignoriert.

Hinweise

  • Die Kommandos, die im Operanden CMD angegeben werden, werden wie Eingaben in einer S-Prozedur ausgeführt, die mit INCLUDE-PROCEDURE aufgerufen wurde. Sie haben impliziten Zugriff zu den Variablen der gegenwärtigen Prozedurebene (genauso als wären sie mit INCLUDE-PROCEDURE aufgerufen worden und als würden sie die Systemdateien der gegenwärtigen Prozedurebene beerben (SYSTEM-FILE-CONTEXT=*STD).

  • Im Gegensatz zu INCLUDE-PROCEDURE beendet INCLUDE-CMD ein Programm nicht, wenn es durch den Makro CMD aufgerufen wurde. Das Programm wird auch nicht beendet, wenn eine Prozedur in der Kommandofolge aufgerufen wird, die im Operanden CMD angegeben ist (siehe Beispiel).

  • INCLUDE-CMD darf im CMD-Makro (TU-Programm) und in EXECUTE-SYTEM-CMD-Anweisungen ausgeführt werden.

  • Während der Ausführung von INCLUDE-CMD werden vom System folgende Operationen zurückgewiesen, um mögliche Inkonsistenzen beim Aufruf im Programm-Modus auszuschalten:

    • Programm-Start und Programm-Beendigung: START-Hilfsprogramm, LOAD-/START-EXECUTABLE-PROGRAM (bzw. LOAD-/START-PROGRAM), RESTART-PROGRAM (vgl. CALL-PROCEDURE ...UNLOAD-ALLOWED=*NO).

    • Programm-Wiederaufnahme: AID-Kommandos, RESUME-PROGRAM, EXIT-PROCEDURE mit RESUME-PROGRAM=*YES, ENDP-RESUME, INFORM-PROGRAM, SEND-MSG mit TO=*PROGRAM

    • Prozedur-Abbruch: CANCEL-PROCEDURE, beim Prompting von Parametern.

    • Rekursiver Aufruf von INCLUDE-CMD.

    • BEGIN-BLOCK PROGRAM-INPUT=*MIXED-WITH-CMD

    • SET-JOB-STEP, wenn ein Programm geladen ist.

Kommando-Returncode

(SC2)SC1MaincodeBedeutung

0CMD0001Ohne Fehler

1CMD0202Syntaxfehler

1SDP0138Fehler während der Prozedur-Voranalyse

3CMD2203Falsche Syntaxdatei

32CMD0221Systemfehler (interner Fehler)

64SDP0091Semantikfehler

130SDP0099Kein Adressraum mehr verfügbar

Beispiel

CMD 'INCLUDE-CMD CMD=(DECLARE-VARIABLE A; 
                       CALL-PROCEDURE MYPROC,(RET=A); 
                       IF(A = ''OKAY'');
                       WRITE-TEXT ''SUCCESSFULL''
                       ELSE
                       WRITE-TEXT ''ERROR''
                       END-IF)'
"ZURÜCK IN DEN PROGRAMM-MODUS"