品目マスタ登録変更BAPI
概要
品目マスタを登録または変更するBAPIです。品目マスタのビューの拡張も行うことができます。
BAPIでは品目マスタ登録画面(MM01)のような入力チェックがかからないため、品目コードが番号範囲外であったり必須項目が未入力でも品目マスタを登録することができます。
パラメータ
品目マスタのデータ構成に近い形でBAPIのパラメータも定義されています。
(クライアントデータ、プラントデータ、販売データ、会計データなど)
パラメータは非常に多いですが、品目マスタ登録画面(MM01)のように品目を登録するビューをHEADDATAパラメータで選択することができます。ここで選択した品目マスタのビューのみパラメータを設定する必要があります。
また、指定したビューに対して全ての項目を設定する必要はなく、更新する項目を指定するチェックボックスパラメータあります。チェックボックスパラメータはパラメータの名称の最後が「X」になっています。
パラメータ一覧
| 種別 | パラメータ | 説明 |
| インポート |
SALESDOCUMENTIN |
販売管理伝票番号 |
| HEADDATA |
ヘッダセグメントと管理情報 |
| CLIENTDATA |
クライアント依存の品目データ |
| CLIENTDATAX |
CLIENTDATAの更新情報 |
| PLANTDATA |
プラント固有品目データ |
| PLANTDATAX |
PLANTDATAの更新情報 |
| FORECASTPARAMETERS |
需要予測パラメータ |
| FORECASTPARAMETERSX |
FORECASTDATAの更新情報 |
| STORAGELOCATIONDATA |
保管場所固有品目データ |
| STORAGELOCATIONDATAX |
STORAGELOCATIONDATAの更新情報 |
| VALUATIONDATA |
評価データ |
| VALUATIONDATAX |
VALUATIONDATAの更新情報 |
| WAREHOUSENUMBERDATA |
倉庫番号固有品目データ |
| WAREHOUSENUMBERDATAX |
WAREHOUSEDATAの更新情報 |
| SALESDATA |
販売データ |
| SALESDATAX |
SALESDATAの更新情報 |
| STORAGETYPEDATA |
保管域タイプ固有品目データ |
| STORAGETYPEDATAX |
STORAGETYPEDATAの更新情報 |
| FLAG_ONLINE |
ALE 項目選択なし |
| FLAG_CAD_CALL |
CADシステムからコール |
| NO_DEQUEUE |
Dynpro, ユーザエントリ照会 |
| NO_ROLLBACK_WORK |
エラー発生時のロールバック無効 |
| エクスポート |
RETURN |
リターンパラメータ |
| テーブル |
MATERIALDESCRIPTION |
品目テキスト |
| UNITSOFMEASURE |
数量単位 |
| UNITSOFMEASUREX |
UNITOFMEASUREの更新情報 |
| INTERNATIONALARTNOS |
国際商品コード(EAN) |
| MATERIALLONGTEXT |
テキスト(長) |
| TAXCLASSIFICATIONS |
税分類 |
| RETURNMESSAGES |
全メッセージ |
| PRTDATA |
品目マスタの生産資源/治工具(PRT)項目 |
| PRTDATAX |
PRTDATAXの更新情報 |
| EXTENSIONIN |
BAPIパラメータのEXTENTIONIN / EXTENSIONOUTの参照構造 |
| EXTENSIONINX |
BAPIパラメータのEXTENTIONIN / EXTENSIONOUTの参照構造 |
ヘッダと管理情報のパラメータを設定する
ヘッダセグメントと管理情報(HEADDATA)には、品目コード、産業コード、品目タイプと品目マスタのビューを指定します。登録または拡張するビューの項目には「X」を設定します。
設定例:HEADDATA
| 項目 | 項目名称 | 設定値 |
| MATERIAL |
品目コード |
MAT0001 |
| IND_SECTOR |
産業コード |
P |
| MATL_TYPE |
品目タイプ |
HAWA |
| BASIC_VIEW |
基本データビュー |
X |
| SALES_VIEW |
販売ビュー |
X |
| PURCHASE_VIEW |
購買管理ビュー |
X |
| ACCOUNT_VIEW |
会計ビュー |
X |
基本データビューのパラメータを設定する
クライアント依存の品目データ(CLIENTDATA)には品目グループ、基本数量単位などを設定します。対となるチェックボックスパラメータとしてCLIENTDATAの更新情報(CLIENTDATAX)があります。更新する項目には「X」を設定します。
設定例:CLIENTDATA
| 項目 | 項目名称 | 設定値 |
| MATL_GROUP |
品目グループ |
0001 |
| BASE_UOM |
基本数量単位 |
ST |
| NET_WEIGHT |
正味重量 |
1 |
| UNIT_OF_WT |
重量単位 |
KG |
| TRANS_GRP |
輸送グループ |
0001 |
| ITEM_CAT |
一般明細カテゴリグループ |
NORM |
設定例:CLIENTDATAX
| 項目 | 項目名称 | 設定値 |
| MATL_GROUP |
品目グループ |
X |
| BASE_UOM |
基本数量単位 |
X |
| NET_WEIGHT |
正味重量 |
X |
| UNIT_OF_WT |
重量単位 |
X |
| TRANS_GRP |
輸送グループ |
X |
| ITEM_CAT |
一般明細カテゴリグループ |
X |
他のビューのパラメータを設定する
プラント固有品目データ(PLANTDATA)には、プラント、購買グループなどを設定します。対となるパラメータとしてPLANTDATAの更新情報(PLANTDATAX)があります。
販売データ(SALESDATA)には、販売組織、流通チャネル、販売単位などを設定します。対となるパラメータとしてSALESDATAの更新情報(SALESDATAX)があります。
評価データ(VALUATIONDATA)には、評価エリア、原価、評価クラスなどを設定します。対となるパラメータとしてVALUATIONDATAの更新情報(VALUATIONDATAX)があります。
設定例:PLANTDATA
| 項目 | 項目名称 | 設定値 |
| PLANT |
プラント |
1000 |
| PUR_GROUP |
購買グループ |
001 |
| LOADINGGRP |
積載グループ |
0001 |
設定例:PLANTDATAX
| 項目 | 項目名称 | 設定値 |
| PLANT |
プラント |
1000 |
| PUR_GROUP |
購買グループ |
X |
| LOADINGGRP |
積載グループ |
X |
設定例:SALESDATA
| 項目 | 項目名称 | 設定値 |
| SALES_ORG |
販売組織 |
1000 |
| DISTR_CHAN |
流通チャネル |
00 |
| SALES_UNIT |
販売単位 |
ST |
| ITEM_CAT |
明細カテゴリグループ |
NORM |
設定例:SALESDATAX
| 項目 | 項目名称 | 設定値 |
| SALES_ORG |
販売組織 |
1000 |
| DISTR_CHAN |
流通チャネル |
00 |
| SALES_UNIT |
販売単位 |
X |
| ITEM_CAT |
明細カテゴリグループ |
X |
設定例:VALUATIONDATA
| 項目 | 項目名称 | 設定値 |
| VAL_AREA |
評価レベル |
1000 |
| PRICE_CTRL |
原価管理区分 |
V |
| VAL_CLASS |
評価クラス |
3100 |
設定例:VALUATIONDATAX
| 項目 | 項目名称 | 設定値 |
| VAL_AREA |
評価レベル |
1000 |
| PRICE_CTRL |
原価管理区分 |
X |
| VAL_CLASS |
評価クラス |
X |
品目テキスト、税のパラメータを設定する
品目テキスト(MATERIALDESCRIPTION)に言語別の品目テキスト設定します。
税データ(TAXCLASSIFICATIONS)には販売管理用の品目税分類を国別に設定します。
設定例:MATERIALDESCRIPTION
| 項目 | 項目名称 | 設定値 |
| LANGU |
言語 |
J |
| MATL_DESC |
品目テキスト |
品目A |
設定例:TAXCLASSIFICATIONS
| 項目 | 項目名称 | 設定値 |
| DEPCOUNTRY |
税出荷国 |
JP |
| TAX_TYPE_1 |
税カテゴリ1 |
MWST |
| TAXCLASS_1 |
税分類1 |
1 |
サンプルコード
通常の汎用モジュールを実行するのと同様にCALL FUNCTIONで実行します。品目マスタ登録のBAPIの内部ではコミットされるため、正常終了時はロールバックすることができません。
BAPIは例外を発生させない仕様なので、エラー判定はRETURNMESSAGESパラメータにメッセージタイプが「E」のレコードが1件以上あるかどうかで判定をします。
DATA: LS_HEADDATA TYPE BAPISMATHEAD,
LS_CLIENTDATA TYPE BAPI_MARA,
LS_CLIENTDATAX TYPE BAPI_MARAX,
LS_PLANTDATA TYPE BAPI_MARC,
LS_PLANTDATAX TYPE BAPI_MARCX,
LS_SALESDATA TYPE BAPI_MVKE,
LS_SALESDATAX TYPE BAPI_MBEW,
LS_VALUATIONDATA TYPE BAPI_MARA,
LS_VALUATIONDATAX TYPE BAPI_MBEWX,
LS_RETURN TYPE BAPIRET2,
LT_MATERIALDESCRIPTION TYPE TABLE OF BAPI_MAKT,
LT_TAXCLASSIFICATIONS TYPE TABLE OF BAPI_MLAN,
LT_RETURNMESSAGES TYPE TABLE OF BAPI_MATRETURN2.
* パラメータに値を設定する
LS_HEADDATA-MATERIAL = 'MAT0001'. " 品目コード
LS_HEADDATA-IND_SECTOR = 'P'. " 産業コード
LS_HEADDATA-MATL_TYPE = 'HAWA'. " 品目タイプ
LS_HEADDATA-BASIC_VIEW = 'X'. " 基本データビュー
* :
* (以下略)
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
HEADDATA = LS_HEADDATA
CLIENTDATA = LS_CLIENTDATA
CLIENTDATAX = LS_CLIENTDATAX
PLANTDATA = LS_PLANTDATA
PLANTDATAX = LS_PLANTDATAX
SALESDATA = LS_SALESDATA
SALESDATAX = LS_SALESDATAX
VALUATIONDATA = LS_VALUATIONDATA
VALUATIONDATAX = LS_VALUATIONDATAX
IMPORTING
RETURN = LS_RETURN
TABLES
MATERIALDESCRIPTION = LT_MATERIALDESCRIPTION
TAXCLASSIFICATIONS = LT_TAXCLASSIFICATIONS
RETURNMESSAGES = LT_RETURNMESSAGES
.
* エラーメッセージの取得
READ TABLE LT_RETURNMESSAGES WITH KEY TYPE = 'E'.
* エラーメッセージがない場合
IF SY-SUBRC <> 0.
" 正常処理.
ELSE.
" エラー処理.
ENDIF.