在庫移動登録BAPI

BAPI_GOODSMVT_CREATE

概要

在庫移動をするBAPIです。入庫、出庫、在庫転送など、在庫移動画面(MIGO)とほぼ同じ在庫移動の処理ができます。出荷伝票に対する出庫確認の処理はできません。

パラメータ

入出庫伝票と同様にヘッダと明細が主なパラメータです。入庫、出庫、在庫転送などBAPIで実施する在庫移動の種類に応じて在庫移動コード(GOODSMVT_CODE)を設定する必要があります。選択した在庫移動コードにより、ヘッダや明細で設定が必要となるパラメータが変わります。
パラメータ一覧
種別パラメータ説明
インポートGOODSMVT_HEADER入出庫伝票ヘッダデータ
GOODSMVT_CODE在庫移動に対するコード
TESTRUN在庫移動シミュレーション
GOODSMVT_REF_EWMBAdI: 通信構造: 入出庫伝票 EWM照会
エクスポートGOODSMVT_HEADRET入出庫伝票番号/入出庫伝票会計年度
MATERIALDOCUMENT入出庫伝票番号
MATDOCUMENTYEAR入出庫年度
テーブルGOODSMVT_ITEM入出庫伝票明細
GOODSMVT_SERIALNUMBERシリアル番号
RETURNリターンメッセージ
GOODSMVT_SERV_PART_DATABAPI通信構造: サービスパーツデータ
EXTENSIONINExtensionIn/ExtensionOut 構造
GOODSMVT_ITEM_CWMBAPI通信構造: CWの明細データ登録

在庫移動ヘッダ関連のパラメータを設定する

在庫移動ヘッダ(GOODSMVT_HEADER)には、転記日、伝票日付、参照伝票番号などを設定します。入出庫伝票のヘッダ項目は少ないのでヘッダパラメータの項目もほとんどありません。

在庫移動コード(GOODSMVT_CODE)には在庫移動の種類を設定します。例えば、発注伝票を参照して移動タイプ101で入庫する場合は、在庫移動コードに「01」を設定します。在庫初期化などのように参照なしで移動タイプ561で入庫する場合は、在庫移動コードに「05」を設定します。
設定例:GOODSMVT_HEADER
項目項目名称設定値
REF_DOC参照伝票0000001234
REF_ITEM参照明細
DLV_QTY出荷数量実績(販売単位)
GOODSMVT_CODEの設定値
コード値名称
01購買発注に対する入庫
02製造指図に対する入庫
03出庫
04在庫転送
05その他の入庫
06在庫移動の取消
07外注発注に対する後続調整

在庫移動明細関連のパラメータを設定する

在庫移動コード「01」の場合は、在庫移動明細(GOODSMVT_ITEM)に購買発注番号、購買発注明細、移動タイプ、数量と移動区分「B」の設定が必要です。
設定例:GOODSMVT_ITEM
項目項目名称設定値(1)設定値(2)
MOVE_TYPE移動タイプ101101
ENTRY_QNT入力単位での数量35
PO_NUMBER購買発注番号45000012344500001234
PO_ITEM購買発注明細0001000020
MVT_IND移動区分BB

サンプルコード

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

BAPIは例外を発生させない仕様なので、エラー判定はRETURNパラメータにメッセージタイプが「E」のレコードが1件以上あるかどうかで判定をします。
DATA: LS_GOODSMVT_HEADER      TYPE BAPI2017_GM_HEAD_01,
      LT_GOODSMVT_ITEM        TYPE TABLE OF BAPI2017_GM_ITEM_CREATE,
      LV_GOODSMVT_CODE        TYPE BAPI2017_GM_CODE,
      LS_GOODSMVT_HEADRET     TYPE BAPI2017_GM_HEAD_RET,
      LT_RETURN               TYPE TABLE OF BAPIRET2.

* パラメータに値を設定する
LV_GOODSMVT_CODE              = '01'.           " 在庫移動コード
LS_GOODSMVT_HEADER-PSTNG_DATE = '20141031'.     " 伝票の転記日付
LS_GOODSMVT_HEADER-DOC_DATE   = '20141031'.     " 伝票の伝票日付
*             :
*          (以下略)

CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
  EXPORTING
    GOODSMVT_HEADER      = LS_GOODSMVT_HEADER
    GOODSMVT_CODE        = LV_GOODSMVT_CODE
  IMPORTING
    GOODSMVT_HEADRET     = LS_GOODSMVT_HEADRET
  TABLES
    GOODSMVT_ITEM        = LT_GOODSMVT_ITEM
    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の高速道路)

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