分類割当登録BAPI

BAPI_OBJCL_CREATE

概要

マスタデータ等への分類特性値の割当登録をするBAPIです。品目マスタの分類やロットの分類などを割当登録することができます。
尚、オブジェクトに分類を割り当てるためには事前に分類マスタを登録しておく必要があります。

パラメータ

オブジェクトキー、オブジェクトテーブルや割当の特性値が主なパラメータです。特性値はデータ型ごとに設定するパラメータが分かれています。
パラメータ一覧
種別パラメータ説明
インポートOBJECTKEYNEW連結されたオブジェクトキー
OBJECTTABLENEWオブジェクトテーブル
CLASSNUMNEWクラス番号
CLASSTYPENEWクラスタイプ
STATUS分類ステータス
STANDARDCLASS区分: 標準クラス
CHANGENUMBER変更番号
KEYDATE日付
NO_DEFAULT_VALUES初期値
エクスポートCLASSIF_STATUS分類ステータス
テーブルALLOCVALUESNUM割当済 NUM値、DATE値、TIME値
ALLOCVALUESCHAR割当済 CHAR値、BOOL値
ALLOCVALUESCURR割当済 CURR値
RETURNエラーメッセージ

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

連結されたオブジェクトキー、オブジェクトテーブル、クラス番号、クラスタイプの設定は必須です。品目マスタへ分類を割り当てるにはオブジェクトキー(OBJECTKEYNEW)に品目コードを設定し、オブジェクトテーブルには「MARA」を設定します。オブジェクトの種類により、オブジェクトキーやオブジェクトテーブルの設定値は変わります。

クラス番号には登録済みのクラスマスタのIDを設定します。クラスタイプにはクラスの種類を設定します。品目用クラスのクラスタイプは「001」です。
設定例:インポートパラメータ
項目項目名称設定値
OBJECTKEYNEW連結されたオブジェクトキーMAT001
OBJECTTABLENEWオブジェクトテーブルMARA
CLASSNUMNEWクラス番号Z_MATERIAL
CLASSTYPENEWクラスタイプ001

割当CHAR値のパラメータを設定する

オブジェクトに割当登録するクラスの特性を設定します。特性名(CHARACT)にクラスの特性IDと特性値(VALUE_NEUTRAL)にその値を設定します。
設定例:ALLOCVALUESCHAR
項目項目名称設定値(1)設定値(2)
CHARACT特性名Z_COLORZ_SIZE
VALUE_NEUTRAL特性値REDL

サンプルコード

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

BAPIは例外を発生させない仕様なので、エラー判定はRETURNパラメータにメッセージタイプが「E」のレコードがあるかどうかで判定をします。
DATA: LV_OBJECTKEYNEW    TYPE BAPI1003_KEY-OBJECT,
      LV_OBJECTTABLENEW  TYPE BAPI1003_KEY-OBJECTTABLE,
      LV_CLASSNUMNEW     TYPE BAPI1003_KEY-CLASSNUM,
      LV_CLASSTYPENEW    TYPE BAPI1003_KEY-CLASSTYPE,
      LT_ALLOCVALUESCHAR TYPE TABLE OF BAPI1003_ALLOC_VALUES_CHAR,
      LS_RETURN          TYPE TABLE OF BAPIRET2.

* パラメータに値を設定する
LV_OBJECTKEYNEW   = 'MAT0001'.  " オブジェクトキー
LV_OBJECTTABLENEW = 'MARA'.     " オブジェクトテーブル
LV_CLASSNUMNEW    = 'Z00001'.   " クラス番号
LV_CLASSTYPENEW   = '001'.      " クラスタイプ
*             :
*          (以下略)

CALL FUNCTION 'BAPI_OBJCL_CREATE'
  EXPORTING
    OBJECTKEYNEW    = LV_OBJECTKEYNEW
    OBJECTTABLENEW  = LV_OBJECTTABLENEW
    CLASSNUMNEW     = LV_CLASSNUMNEW
    CLASSTYPENEW    = LV_CLASSTYPENEW
  TABLES
    ALLOCVALUESCHAR = LT_ALLOCVALUESCHAR
    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の技術情報について解説をしていきます。

2017年:ブログをリニューアルしました。(旧Zの高速道路)

カテゴリ
最新記事
最新コメント
月別アーカイブ
検索フォーム
リンク