品目マスタ登録変更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.

  

BAPI_MATERIAL_SAVEDATA的更多相关文章

  1. 复制物料(参考的MMCC想法)

    MMCC这个事务码没用过,也是才听到的,都是业务搞起来的...然后感觉这个东西有点意思,就搞搞咯 网上找的一篇文章,自己修改的.改了默认收货工厂为创建时的工厂,因为这边一直报收货工厂必输...不管是不 ...

  2. [SAP ABAP开发技术总结]业务对象和BAPI

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  3. BAPI

    MM模块 1. BAPI_MATERIAL_SAVEDATA 创建物料主数据 注意参数EXTENSIONIN的使用,可以创建自定义字段 例如:WA_BAPI_TE_MARA-MATERIAL = IT ...

  4. SAP BAPI一览 史上最全

    全BADI一览  List of BAPI's       BAPI WG Component Function module name Description Description Obj. Ty ...

  5. 登録更新(BAPI)

    購買管理(MM) * [BAPI_REQUISITION_CREATE] 購買依頼登録 * [BAPI_REQUISITION_CHANGE] 購買依頼変更 * [BAPI_REQUISITION_D ...

  6. BAPI: TRANSACTION_BEGIN的作用

    大概知道是启动一个新会话, CALL FUNCTION 'TRANSACTION_BEGIN' 业务数据处理, CALL FUNCTION 'TRANSACTION_END' 详细功能不清楚. CLE ...

  7. BAPI LIST

    [转自 http://blog.csdn.net/minsenwu/article/details/8432081] 库存管理BAPI 库存: 1. BAPI_MATERIAL_AVAILABILIT ...

  8. SAP 各模块常用的BAPI

    MM模块 1. BAPI_MATERIAL_SAVEDATA 创建物料主数据 注意参数EXTENSIONIN的使用,可以创建自定义字段 例如:WA_BAPI_TE_MARA-MATERIAL = IT ...

  9. 常用BAPI list

    2017-03-25 MD 主数据 1.创建物料主数据 CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA' 2.创建供应商 CALL METHOD VMD_EI_API=&g ...

随机推荐

  1. 沉淀再出发:Tomcat的实现原理

    沉淀再出发:Tomcat的实现原理 一.前言 在我们接触java之后,相信大家都编写过服务器程序,这个时候就需要用到Tomcat了.Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统 ...

  2. swift 数组部分排序

    数组自带排序函数,如果想实现部分排序,先对数组进行部分截取,然后对截取部分替换位排序好的子序列 var nums = [,,,,,,] var sub = nums[...] nums.replace ...

  3. xss challenges平台学习

    虽然在很早之前就接触过xss,有一段时间还就着一本书研究过,但是始终没有实感,掌握的也不够系统,所以现在借着这几个平台再学习一遍 首先来玩一玩xss challenge平台 第一关:http://xs ...

  4. 深入浅出WinDbg——利用快速定位错误

    场景描述: Sharepoint代码的某方法LoadLines()中使用了SPSecurity.RunWithElevatedPrivileges(delegate() 此方法两次调用了Common. ...

  5. TCP/IP 协议图--计算机网络体系结构分层

    计算机网络体系结构分层   计算机网络体系结构分层 不难看出,TCP/IP 与 OSI 在分层模块上稍有区别.OSI 参考模型注重“通信协议必要的功能是什么”,而 TCP/IP 则更强调“在计算机上实 ...

  6. 单例模式中的volatile关键字

    在之前学习了单例模式在多线程下的设计,疑惑为何要加volatile关键字.加与不加有什么区别呢?这里我们就来研究一下.单例模式的设计可以参考个人总结的这篇文章   背景:在早期的JVM中,synchr ...

  7. PHP_GET后门,躲避任何安全软件

    经常拿到一些比较好的php站想要留住.插入菜刀一句话,很容易被管理发现,不管是eval还是assert,就是管理发现不了,有时连接也会被各种的安全软件拦截.现在教大家一个简单的技巧.本人一直在用,留的 ...

  8. jenkins连接提示错误urllib.error.HTTPError: HTTP Error 403

    昨天在执行python连接Jenkins获取编译失败日志失败时,出现错误,具体报错如下,主要是在连接问题上的问题,做了一个请求 就提示错误 原因在于Jenkins的权限,或者访问页面的url需要进行登 ...

  9. vue2.* 双向数据绑定 Vue事件介绍 以及Vue中的ref获取dom节点 04

    <template> <div id="app"> <!-- 双向数据绑定(必须在表单里面使用) m:model v:view mvvm:model改 ...

  10. js事件的机制

    1.html事件处理程序 <button id="btn1" onclick="alert(1);">按钮1</button> 2.do ...