スポンサーサイト

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

プロジェクトマスタ登録変更BAPI

BAPI_PROJECT_MAINTAIN

概要

プロジェクトマスタの登録または変更を行うBAPIです。プロジェクトに含まれるWBS要素やネットワーク、活動も同時に登録することができます。

パラメータ

プロジェクト定義のパラメータとWBS要素、ネットワーク、活動が主なパラメータです。登録や変更などの操作はメソッド(I_METHOD_PROJECT)パラメータで指定します。
パラメータ一覧
種別パラメータ説明
インポートI_PROJECT_DEFINITIONプロジェクト定義
I_PROJECT_DEFINITION_UPDプロジェクト定義 更新情報
エクスポートRETURNリターンメッセージ
テーブルI_METHOD_PROJECTメソッド
I_WBS_ELEMENT_TABLE_UPDATEWBS要素テーブル 更新情報
I_WBS_ELEMENT_TABLEWBS要素テーブル
I_WBS_MILESTONE_TABLEWBSマイルストーンテーブル
I_WBS_MILESTONE_TABLE_UPDATEWBSマイルストーンテーブル 更新情報
I_WBS_HIERARCHIE_TABLEWBS階層テーブル
I_NETWORKネットワーク
I_NETWORK_UPDATEネットワーク 更新情報
I_ACTIVITY活動
I_ACTIVITY_UPDATE活動 更新情報
I_RELATION関連
I_RELATION_UPDATE関連 更新情報
E_MESSAGE_TABLEメッセージテーブル
I_ACTIVITY_ELEMENT活動要素
I_ACTIVITY_ELEMENT_UPDATE活動要素 更新情報
I_ACTIVITY_MILESTONE活動マイルストーン
I_ACTIVITY_MILESTONE_UPDATE活動マイルストーン 更新情報

プロジェクト定義のパラメータを設定する

プロジェクト定義 (I_PROJECT_DEFINITION)には、プロジェクトID、名称、プロジェクトプロファイルなどを設定します。対となるパラメータとしてプロジェクト定義 更新情報 (I_PROJECT_DEFINITION_UPD)があります。
設定例:I_PROJECT_DEFINITION
項目項目名称設定値
PROJECT_DEFINITIONプロジェクト定義PD-0001
DESCRIPTIONPS: テキスト(短)開発プロジェクト
PROJECT_PROFILEプロジェクトプロファイル000001
PROFIT_CTR利益センタP001
設定例:I_PROJECT_DEFINITION_UPD
項目項目名称設定値
PROJECT_DEFINITIONプロジェクト定義X
DESCRIPTIONPS: テキスト(短)X
PROJECT_PROFILEプロジェクトプロファイルX
PROFIT_CTR利益センタX

WBS要素のパラメータを設定する

WBS要素テーブル(I_WBS_ELEMENT_TABLE)にはWBS要素を設定します。対となるパラメータとしてWBS要素テーブル更新情報(I_WBS_ELEMENT_TABLE_UPD)があります。
設定例:I_WBS_ELEMENT_TABLE
項目項目名称設定値
WBS_ELEMENTWBS要素WBS-0001
PROJECT_DEFINITIONプロジェクト定義PD-0001
DESCRIPTIONPS: テキスト(短)開発プロジェクト
RESPSBL_CCTR責任原価センタC001
RESPSBL_CCTR_
CONTROLLING_AREA
責任原価センタの管理領域1000
設定例:I_WBS_ELEMENT_TABLE_UPDATE
項目項目名称設定値
WBS_ELEMENTWBS要素X
PROJECT_DEFINITIONプロジェクト定義X
DESCRIPTIONPS: テキスト(短)X
RESPSBL_CCTR責任原価センタX
RESPSBL_CCTR_
CONTROLLING_AREA
責任原価センタの管理領域X

メソッドのパラメータを設定する

メソッド(I_METHOD_PROJECT)には、プロジェクトやWBS要素などの各オブジェクトの登録、変更や保存などのデータの操作を設定する必要があります。項目はオブジェクトタイプ、メソッド、オブジェクトキー、参照番号があります。

プロジェクト定義の登録の場合、オブジェクトタイプに「ProjectDefinition」、メソッドに「Create」を設定し、オブジェクトキーにプロジェクト番号、参照番号に「000001」を設定します。
WBS要素を登録する場合は、オブジェクトタイプに「WBS-Element」、メソッドに「Create」を設定し、オブジェクトキーにWBS要素番号、参照番号に「000001」を設定します。

メソッドパラメータの最後に「Save」メソッドの設定が必要です。また、登録後にステータスを承認にする場合はメソッドに「Release」を設定します。
設定例:I_METHOD_PROJECT
項目項目名称設定値(1)設定値(2)設定値(3)設定値(4)
OBJECTTYPオブジェクトタイプProjectDefinitionWBS-Element
METHODメソッドCreateCreateReleaseSave
OBJECTKEYオブジェクトキーPD-0001WBS-0001
REFNUMBER参照番号000001000001
設定例:METHODの種類
設定値説明
Create登録
Update変更
Delete削除
Release承認
Lockロック
Unlockロック解除
Save保存

サンプルコード

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

BAPIは例外を発生させない仕様なので、エラー判定はE_MESSAGE_TABLEパラメータにメッセージタイプが「E」のレコードが1件以上あるかどうかで判定をします。
DATA: LS_PROJECT_DEFINITION       TYPE BAPI_PROJECT_DEFINITION,
      LS_PROJECT_DEFINITION_UPD   TYPE BAPI_PROJECT_DEFINITION_UP,
      LS_RETURN                   TYPE BAPIRETURN1,
      LT_METHOD_PROJECT           TYPE TABLE OF BAPI_METHOD_PROJECT,
      LT_WBS_ELEMENT_TABLE_UPDATE TYPE TABLE OF BAPI_WBS_ELEMENT_UPDATE,
      LT_WBS_ELEMENT_TABLE        TYPE TABLE OF BAPI_WBS_ELEMENT,
      LT_MESSAGE_TABLE            TYPE TABLE OF BAPI_METH_MESSAGE.

* パラメータに値を設定する
LS_PROJECT_DEFINITION-PROJECT_DEFINITION = 'PD-0001'. " プロジェクト定義
LS_PROJECT_DEFINITION-DESCRIPTION        = '開発PJ'.  " PS: テキスト(短)
*             :
*          (以下略)

CALL FUNCTION 'BAPI_PROJECT_MAINTAIN'
  EXPORTING
    I_PROJECT_DEFINITION       = LS_PROJECT_DEFINITION
    I_PROJECT_DEFINITION_UPD   = LS_PROJECT_DEFINITION_UPD
  IMPORTING
    RETURN                     = LS_RETURN
  TABLES
    I_METHOD_PROJECT           = LT_METHOD_PROJECT
    I_WBS_ELEMENT_TABLE_UPDATE = LT_WBS_ELEMENT_TABLE_UPDATE
    I_WBS_ELEMENT_TABLE        = LT_WBS_ELEMENT_TABLE
    E_MESSAGE_TABLE            = LT_MESSAGE_TABLE
  .

* エラーメッセージの取得
READ TABLE LT_MESSAGE_TABLE WITH KEY TYPE = 'E'.

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

コメントの投稿

非公開コメント

プロフィール

Z*

Author:Z*

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

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

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