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 '*'
ADDITIONAL_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_ |
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_ |
Fehler beim Versuch, den Returncode des externen Programms zu erhalten. Das SAP-Systemfeld |
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. |