スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

汎用M 外部コマンド実行

SXPG_CALL_SYSTEM

概要

定義済みの外部コマンドを実行する汎用モジュールです。OSのシェルコマンド等、カスタマイズで定義済みの外部コマンドを実行することができます。

パラメータ

主なパラメータは、外部コマンドの名称(COMMANDNAME)と外部コマンドの引数(ADDITIONAL_PARAMETERS)です。
パラメータ一覧
種別パラメータ説明
インポートCOMMANDNAME外部コマンドの名称
ADDITIONAL_PARAMETERS外部コマンドの引数
TRACE外部コマンド制御レベル(トレースレベル)
エクスポートSTATUS外部コマンドのステータス
EXITCODEEXITコード
テーブルEXEC_PROTOCOL外部コマンドの出力
例外NO_PERMISSION外部コマンドの実行権限なし
COMMAND_NOT_FOUNDコマンド名未定義
PARAMETER_TOO_LONGパラメータ128文字超過
SECURITY_RISKセキュリティ上の理由による実行拒否
WRONG_CHECK_CALL_INTERFACEチェックモジュール未定義
PROGRAM_START_ERROR外部コマンド起動中のエラー
PROGRAM_TERMINATION_ERROR外部コマンドエラーのリターンコード
X_ERROR予約済み
PARAMETER_EXPECTED追加引数未指定
TOO_MANY_PARAMETERS許容不可のパラメータ
ILLEGAL_COMMAND不正コマンド

インポートパラメータを設定する

外部コマンドの名称にはT-code:SM69で定義した外部コマンドを指定します。外部コマンドの引数にはコマンドのパラメータ部分の文字列を指定します。
設定例:インポートパラメータ
項目項目名称設定値
COMMANDNAME外部コマンドの名称Z_COPY
ADDITIONAL_PARAMETERS外部コマンドの引数test.txt test.bak
SM69外部コマンド設定
項目設定値
コマンド名Z_COPY
オペレーティングシステムWindows NT
OSコマンドcmd /c copy
追加パラメータ使用可X

サンプルコード

事前に定義済みの外部コマンドを実行する例です。OSのシェルコマンドでファイルコピーを行います。
DATA: LV_COMMANDNAME           TYPE SXPGCOLIST-NAME,
      LV_ADDITIONAL_PARAMETERS TYPE SXPGCOLIST-PARAMETERS,
      LV_STATUS                TYPE EXTCMDEXIX-STATUS.

* パラメータに値を設定する
LV_COMMANDNAME           = 'Z_COPY'.            " 外部コマンドの名称
LV_ADDITIONAL_PARAMETERS = 'test.txt test.bak'. " 外部コマンドの引数

CALL FUNCTION 'SXPG_CALL_SYSTEM'
  EXPORTING
    COMMANDNAME                = LV_COMMANDNAME
    ADDITIONAL_PARAMETERS      = LV_ADDITIONAL_PARAMETERS
  IMPORTING
    STATUS                     = LV_STATUS
  EXCEPTIONS
    NO_PERMISSION              = 1
    COMMAND_NOT_FOUND          = 2
    PARAMETER_TOO_LONG         = 3
    SECURITY_RISK              = 4
    WRONG_CHECK_CALL_INTERFACE = 5
    PROGRAM_START_ERROR        = 6
    PROGRAM_TERMINATION_ERROR  = 7
    X_ERROR                    = 8
    PARAMETER_EXPECTED         = 9
    TOO_MANY_PARAMETERS        = 10
    OTHERS                     = 11
  .

* エラーの場合
IF SY-SUBRC <> 0.
*  エラー処理
ELSE.
  IF LV_STATUS = 'O'. " 正常の場合
*    正常処理
  ENDIF.
ENDIF.

コメントの投稿

非公開コメント

プロフィール

Z*

Author:Z*

このブログではSAPの技術情報について解説をしていきます。

このブログを気に入って頂いた方は、リンクを張っていただけると嬉しいです。

カテゴリ
最新記事
最新コメント
月別アーカイブ
検索フォーム
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。