スポンサーサイト

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

ロットマスタ登録BAPI

BAPI_BATCH_SAVE_REPLICA

概要

ロットマスタを登録または変更するBAPIです。
このBAPIでは正常終了時には自動でコミットが実行されます。トランザクション制御の汎用モジュールを実行することで自動コミットを抑制することもできます。

パラメータ

品目コード、ロット番号、プラントなどのロットのキー情報とロット属性が主なパラメータです。パラメータに未登録のロットを指定すると登録モード、登録済みのロットを指定すると変更モードになります。
パラメータ一覧
種別パラメータ説明
インポートMATERIAL品目コード
BATCHロット番号
PLANTプラント
BATCHATTRIBUTESBAPI転送構造ロット属性
BATCHATTRIBUTESXロット属性の変更バー
BATCHSTATUSBAPI転送構造ロットステータス
BATCHSTATUSXロットステータス変更バー
BATCHCONTROLFIELDS管理パラメータ
BATCHSTORAGELOCATION保管場所
INTERNALNUMBERCOMロット番号割当: SAP通信
EXTENSION1ロット番号割当: 通信
MATERIAL_EVG品目コード (長)
テーブルRETURNリターンテーブル
CLASSALLOCATIONS分類システム: 割当
CLASSVALUATIONSCHAR分類システム: オブジェクトテキストおよびCHAR/BOOL評価
CLASSVALUATIONSCURR分類システム: オブジェクトテキストおよびCURR値
CLASSVALUATIONSNUM分類システム: オブジェクトテキストおよびNUM値

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

品目コード、ロット番号、プラントを設定します。ロット番号は必須のため自動採番はできません。
設定例:インポートパラメータ
項目項目名称設定値
MATERIAL品目コードMAT0001
BATCHロット番号LOT0001
PLANTプラント1000

ロット属性のパラメータを設定する

BAPI転送構造ロット属性(BATCHATTRIBUTES)に仕入先、仕入先ロット、評価タイプなどの項目を設定することができます。対となるパラメータとしてロット属性の変更バー(BATCHATTRIBUTESX)があります。更新するロット属性の項目に「X」を設定します。
設定例:BATCHATTRIBUTES
項目項目名称設定値
VENDOR_NO仕入先VEND001
VENDRBATCH仕入先ロットVEN-LOT0001
VAL_TYPE評価タイプLOT0001
設定例:BATCHATTRIBUTESX
項目項目名称設定値
VENDOR_NO仕入先X
VENDRBATCH仕入先ロットX
VAL_TYPE評価タイプX

分類関連のパラメータを設定する

ロットに対して分類を割り当てる場合には分類システム:割当(CLASSALLOCATIONS)パラメータにクラスタイプとクラス番号を設定します。分類されるオブジェクトのキーに品目コード18桁とロット番号を連結したキーを設定します。

分類の設定値はデータ型ごとに異なるパラメータになっています。文字列項目の場合は、分類システム: オブジェクトテキスト(CLASSVALUATIONSCHAR)のパラメータにクラスタイプと特性名と特性値を設定します。
設定例:CLASSALLOCATIONS
項目項目名称設定値
CLASS_TYPEクラスタイプ023
OBJECTKEY分類されるオブジェクトのキーMAT0001          LOT0001
OBJECTTABLE分類対象のデータベーステーブル名MCH1
CLASS_NUMクラス番号Z_BATCH
CLASSTYPEクラスタイプ023
設定例:CLASSVALUATIONSCHAR
項目項目名称設定値
CLASS_TYPEクラスタイプ023
CHARACT特性名Z_TOKUSEI
VALUE_NEUTRAL特性値T0001

サンプルコード

通常の汎用モジュールを実行するのと同様にCALL FUNCTIONで実行します。ロットマスタ登録のBAPI内部でのコミットを抑制するために、トランザクション制御の汎用モジュールでコミットの制御をします。

BAPIは例外を発生させない仕様なので、エラー判定はRETURNパラメータにメッセージタイプが「E」のレコードが1件以上あるかどうかで判定をします。
DATA: LV_MATERIAL            TYPE BAPIBATCHKEY-MATERIAL,
      LV_BATCH               TYPE BAPIBATCHKEY-BATCH,
      LV_PLANT               TYPE BAPIBATCHKEY-PLANT,
      LS_BATCHATTRIBUTES     TYPE BAPIBATCHATT,
      LS_BATCHATTRIBUTESX    TYPE BAPIBATCHATTX,
      LS_TID                 TYPE ARFCTID,
      LT_CLASSALLOCATIONS    TYPE TABLE OF BAPIBATCHATT,
      LT_CLASSVALUATIONSCHAR TYPE TABLE OF BAPIBATCHATTX,
      LT_RETURN              TYPE TABLE OF BAPIRET2.

* パラメータに値を設定する
LV_MATERIAL = 'MAT0001'. " 品目コード
LV_BATCH    = 'LOT0001'. " ロット
LV_PLANT    = '1000'.    " プラント
*             :
*          (以下略)

CALL FUNCTION 'TRANSACTION_BEGIN'
  IMPORTING
    TRANSACTION_ID       = LS_TID
  EXCEPTIONS
    OTHERS               = 1.

CALL FUNCTION 'BAPI_BATCH_SAVE_REPLICA'
  EXPORTING
    MATERIAL             = LV_MATERIAL
    BATCH                = LV_BATCH
    PLANT                = LV_PLANT
    BATCHATTRIBUTES      = LS_BATCHATTRIBUTES
  IMPORTING
    BATCH                = LV_BATCH
    BATCHATTRIBUTES      = LV_BATCHATTRIBUTES
  TABLES
    RETURN               = LT_RETURN
  .
* エラーメッセージの取得
READ TABLE LT_RETURN WITH KEY TYPE = 'E'.

* エラーメッセージがない場合
IF SY-SUBRC <> 0.
  CALL FUNCTION 'TRANSACTION_END'
    EXPORTING
      TRANSACTION_ID       = LS_TID
    EXCEPTIONS
      OTHERS               = 1.
ELSE.
  CALL FUNCTION 'TRANSACTION_ABORT'
    EXPORTING
      TRANSACTION_ID       = LS_TID
    EXCEPTIONS
      OTHERS               = 1.
ENDIF.
関連記事

コメントの投稿

非公開コメント

プロフィール

Z*

Author:Z*

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

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

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