スポンサーサイト

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

プロジェクトマスタステータス変更BAPI

BAPI_BUS2001_SET_STATUS

概要

プロジェクトマスタのシステムステータスまたはユーザステータスを変更するBAPIです。一度に1種類のステータスのみ変更可能です。

このBAPIを実行するには事前に初期化BAPIを実行し、コミット前にプレコミットBAPIを実行する必要があります。

パラメータ

プロジェクトIDと変更するシステムステータス、ユーザステータスがパラメータです。ステータスを戻したい場合にはステータス取消のパラメータに設定します。
パラメータ一覧
種別パラメータ説明
インポートPROJECT_DEFINITIONプロジェクト定義
UNDO_SYSTEM_STATUSシステムステータスの取消
UNDO_USER_STATUSユーザステータスの取消
SET_SYSTEM_STATUSシステムステータスの設定
SET_USER_STATUSユーザステータス設定
エクスポートRETURNリターンパラメータ
テーブルE_RESULTステータス設定/取消のエラーメッセージ

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

システムステータスを設定する場合は、プロジェクトIDとシステムステータス設定(SET_SYSTEM_STATUS)のパラメータを設定します。ステータスを取り消す場合は、プロジェクトIDとシステムステータス取消(UNDO_SYSTEM_STATUS)を設定します。

システムステータスの4文字は言語が'E'(英語)のステータス名を設定する必要があります。
設定可能なステータスはREL、TECO、CLSD、MDLK、DLFLです。ステータスRELは設定のみ可能で取消はできません。
設定例:インポートパラメータ (ステータス設定)
項目項目名称設定値
PROJECT_DEFINITIONプロジェクト定義PD-0001
SET_SYSTEM_STATUSシステムステータス設定TECO
設定例:インポートパラメータ (ステータス取消)
項目項目名称設定値
PROJECT_DEFINITIONプロジェクト定義PD-0001
UNDO_SYSTEM_STATUSシステムステータス取消TECO

サンプルコード

通常の汎用モジュールを実行するのと同様にCALL FUNCTIONで実行します。プロジェクトマスタステータス変更のBAPIの内部ではコミットされないため、正常終了時は明示的にコミットを実行する必要があります。

BAPIは例外を発生させない仕様なので、エラー判定はRETURNパラメータにメッセージタイプが「E」のレコードが1件以上あるかどうかで判定をします。
DATA: LV_PROJECT_DEFINITION TYPE BAPIPR-PROJECT_DEFINITION,
      LV_SET_SYSTEM_STATUS  TYPE BAPI_SYSTEM_STATUS-SYSTEM_STATUS,
      LT_RETURN             TYPE TABLE OF BAPI_STATUS_RESULT,
      LS_RETURN             TYPE BAPIRETURN1.

* パラメータに値を設定する
LV_PROJECT_DEFINITION = 'PD-0001'. " プロジェクト定義
LV_SET_SYSTEM_STATUS  = 'TECO'.    " システムステータス
*             :
*          (以下略)

CALL FUNCTION 'BAPI_PS_INITIALIZATION'.

CALL FUNCTION 'BAPI_BUS2001_SET_STATUS'
  EXPORTING
    PROJECT_DEFINITION = LV_PROJECT_DEFINITION
    SET_SYSTEM_STATUS  = LV_SET_SYSTEM_STATUS
  IMPORTING
    RETURN             = LS_RETURN
  TABLES
    E_RESULT           = LT_RESULT
  .

* エラーメッセージがある場合
IF LS_RETURN-TYPE = 'E'.
  ROLLBACK WORK.
  EXIT.
ENDIF.

CALL FUNCTION 'BAPI_PS_PRECOMMIT'
  TABLES
    ET_RETURN = LT_RETURN
  .
* エラーメッセージの取得
READ TABLE LT_RETURN WITH KEY TYPE = 'E'.

* エラーメッセージがない場合
IF SY-SUBRC <> 0.
  COMMIT WORK AND WAIT.
ELSE.
  ROLLBACK WORK.
ENDIF.

コメントの投稿

非公開コメント

プロフィール

Z*

Author:Z*

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

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

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