品目マスタ登録変更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. 沉淀再出发:OpenStack初探

    沉淀再出发:OpenStack初探 一.前言 OpenStack是IaaS的一种平台,通过各种虚拟化来提供服务.我们主要看一下OpenStack的基本概念和相应的使用方式. 二.OpenStack的框 ...

  2. LoadRunner 测试Socket接口函数说明

    lrs_save_param_ex是lrs_save_param的扩展函数,包含了lrs_save_param的基本功能.其函数语法结构如下: int lrs_save_param_ex ( char ...

  3. Shell的egrep、grep、fgrep命令的使用

    Linux egrep 命令用于在文件内查找指定的字符串.与grep-E使用语法及参数相似,不同点在于解读字符串的方法. 语法: egrep [范本模式] [文件或目录] 参数说明: [范本模式]:查 ...

  4. Linux系统下常用的磁盘管理命令——du / df / fdisk / mount / xxd

    之前使用虚拟机体验Linux操作系统的使用,一般使用默认的磁盘分区设置,也很少涉及磁盘管理操作,且总有删除重装作为后盾.在安装Ubuntu双系统后,在使用过程中遇到了磁盘分区不合理导致的/boot分区 ...

  5. Web App, Native APP,Hybird App 介绍

    一.Web App 这个主要是采用统一的标准的 HTML,JavaScript.CSS 等 web 技术开发. 用户无需下载,通过不同平台 的浏览器访问来实现跨平台, 同时可以通过浏览器支持充分使用 ...

  6. 深入剖析Swift性能优化

    简介 2014年,苹果公司在WWDC上发布Swift这一新的编程语言.经过几年的发展,Swift已经成为iOS开发语言的“中流砥柱”,Swift提供了非常灵活的高级别特性,例如协议.闭包.泛型等,并且 ...

  7. MyBatis(3)-映射文件

    本次博文有疑问,请先看MyBatis(1)-简单入门 和 MyBatis(2)-全局配置文件! 如在有疑问,请留言或者咨询博主,博主每天都在!谢谢! 映射文件: 主要是在xxxmapper.xml文件 ...

  8. [Python 多线程] Lock、阻塞锁、非阻塞锁 (八)

    线程同步技术: 解决多个线程争抢同一个资源的情况,线程协作工作.一份数据同一时刻只能有一个线程处理. 解决线程同步的几种方法: Lock.RLock.Condition.Barrier.semapho ...

  9. http_post_data发送数据的获取方式

    private function http_get_data($url){ $ch = curl_init($url) ; curl_setopt($ch, CURLOPT_RETURNTRANSFE ...

  10. 多线程简单案例 - join( ) -lock()

    join() 在调用结束前,主线程不会结束 不加的话,主线程会在子线程结束前继续执行:加了join(),主线程会等待子线程结束后在继续执行下去 #python3 #main print number ...