SXPG_CALL_SYSTEM: Externes Kommando ausführen (Schnellverfahren) 

Mit diesem Funktionsbaustein können Sie:

Um das System zu bestimmen, in dem das Kommando ausgeführt werden soll, verwendet der Funktionsbaustein standardmäßig das aktuelle Hostsystem und den aktuellen Betriebssystemtyp des Benutzers.

Da der Funktionsbaustein RFC-fähig ist, können Sie die RFC-Schnittstelle (Remote Function Call-Schnittstelle) verwenden, um den Funktionsbaustein in einem anderen SAP-Anwendungsserver auszuführen. Das externe Kommando wird dann dementsprechend im Hostsystem des anderen SAP-Servers ausgeführt.

SXPG_CALL_SYSTEM wendet die nachfolgenden Regeln an, um festzustellen, welche Variante eines Kommandos für die Ausführung herangezogen wird:

Syntax:

CALL FUNCTION ‘SXPG_CALL_SYSTEM’
IMPORTING
COMMANDNAME = <SAP command name> " DEFAULT '*'
PARAMETERS = <Argument string> default <space>
EXPORTING
STATUS = <Exit status of command>
TABLES
EXEC_PROTOCOL = <Log> " In structure BTCXPM. Can
" contain STDOUT, STDERR
EXCEPTIONS
NO_PERMISSION " Command rejected by User exit auth.
" check
COMMAND_NOT_FOUND " Command not defined in SAP database
PARAMETERS_TOO_LONG " Complete parameter string exceeds
" 128 characters
SECURITY_RISK " Security check failed
WRONG_CHECK_CALL_INTERFACE " Problem with function
" module for additional
" security check
PROGRAM_START_ERROR " Error while starting program
PROGRAM_TERMINATION_ERROR " Error while requesting final
" status of program
X_ERROR " Reserved
PARAMETER_EXPECTED " Required parameter not specified
TOO_MANY_PARAMETERS " User arguments not allowed by
" supplied in call
ILLEGAL_COMMAND " Command not legitimately defined
OTHERS

Parameter

IMPORTING-Parameter

Parametername

Verwendung

COMMANDNAME

Name der Definition des externen Kommandos wie in der Pflegefunktion angegeben (Transaktion SM69).

PARAMETERS

Argumente für das externe Betriebsystemkommando wie in der Definition im SAP-System und vom aufrufenden Programm oder Benutzer angegeben.

Diese Argumente werden auf unzulässige Zeichen geprüft, z.B. ; unter UNIX. Probleme werden über die Ausnahme SECURITY_RISK verzeichnet.

 

EXPORTING-Parameter

Parametername

Verwendung

STATUS

Liefert den Status nach Ausführung des externen Kommandos zurück:

· Wert ‘O’: Das externe Kommando wurde gestartet und erfolgreich ausgeführt.

· Wert ‘E’: Fehler; externes Kommando nicht erfolgreich ausgeführt.

 

Tabellenparameter

Parametername

Verwendung

EXEC_PROTOCOL

Enthält die STDOUT- und STDERR-Ausgabe des externen Kommandos sowie Ausgabedaten vom Ziel-Hostsystem.

 

Ausnahmen

Name

Bedeutung

X_ERROR

Reserviert.

NO_PERMISSION

Die Prüfung (AUTHORITY-CHECK) der Berechtigung des Benutzers für das Berechtigungsobjekt S_LOG_COM ist gescheitert. Der Benutzer darf dieses Kommando mit diesen Argumenten im Zielsystem nicht ausführen.

COMMAND_NOT_FOUND

Kommandoname (identifiziert durch COMMANDNAME und OPERATINGSYSTEM) wurde in der Pflegefunktion (Transaktion SM69) nicht definiert.

PARAMETERS_TOO_LONG

Die Länge der kombinierten Argumente (ADDITIONAL_PARAMETERS und DEFINED_PARAMETERS wie in ALL_PARAMETERS zurückgeliefert) überschreitet das Maximum von 128 Zeichen.

SECURITY_RISK

Entweder:

· Das Kommando enthält unzulässige Zeichen. Dabei handelt es sich um Zeichen mit möglicherweise gefährlichen Eigenschaften wie z.B. ; unter UNIX.

Oder:

· Die Kommandodefinition gibt an, daß ein gesonderter Prüfbaustein ausgeführt werden muß. Dieser Funktionsbaustein hat die Ausführung des Kommandos zurückgewiesen.

WRONG_CHECK_CALL_
INTERFACE

Die Kommandodefinition gibt an, daß ein gesonderter Prüfbaustein ausgeführt werden soll. Entweder ist dieser Funktionsbaustein nicht vorhanden, oder die für diesen Funktionsbaustein definierte Schnittstelle entspricht nicht der des SAP-Standardfunktionsbausteins SXPG_DUMMY_COMMAND_CHECK. Weitere Informationen finden Sie in SXPG_DUMMY_COMMAND_CHECK: Schnittstelle für gesonderte Prüfmodule.

TOO_MANY_PARAMETERS

Die Kommandodefinition gibt an, daß benutzerdefinierte Argumente für das externe Kommando nicht zulässig sind. Es wurden jedoch zusätzliche Argumente angegeben.

PARAMETER_EXPECTED

Die Kommandodefinition enthält den Platzhalter ?.Das bedeutet, daß benutzerdefinierte Argumente erwartet werden. Es wurden jedoch keine zusätzlichen Argumente angegeben.

PROGRAM_START_ERROR

Fehler beim Starten des externen Kommandos. Das SAP-Systemfeld SY-MSGV1 enthält zusätzliche Informationen zu diesem Problem.

PROGRAM_TERMINATION_
ERROR

Fehler beim Versuch, den Returncode des externen Programms zu erhalten. Das SAP-Systemfeld
SY-MSGV1 enthält zusätzliche Informationen zu diesem Problem.

ILLEGAL_COMMAND

Die externe Kommandodefinition wurde "illegal" modifiziert, also nicht mit der Pflegefunktion (Transaktion SM69).

Das modifizierte Kommando ist im Systemprotokoll in seiner substituierten Form enthalten. Die Meldung ist unter der Systemprotokoll-ID "LC" zu finden.

OTHERS

Bei Erweiterung der Schnittstelle neue Ausnahmen auffangen.