在庫移動取消BAPI

BAPI_GOODSMVT_CANCEL

概要

在庫移動の取消をするBAPIです。入出庫伝票番号を指定することで、その伝票に対する取消伝票を登録することができます。出荷伝票に対する出庫確認の取消し処理はできません。

パラメータ

取消しのBAPIのためパラメータは少ししかありません。取消対象の入出庫伝票番号と取消用の転記日付が主なパラメータです。
取消予定明細(GOODSMVT_MATDOCITEM)のパラメータに明細番号を設定することで一部明細のみ取消すことが可能です。
パラメータ一覧
種別パラメータ説明
インポートMATERIALDOCUMENT入出庫伝票番号
MATDOCUMENTYEAR入出庫伝票年度
GOODSMVT_PSTNG_DATE転記日付
GOODSMVT_PR_UNAME入出庫票印刷のユーザ名
エクスポートGOODSMVT_HEADRET入出庫伝票番号/入出庫伝票会計年度
テーブルRETURNリターンメッセージ
GOODSMVT_MATDOCITEM取消予定明細

取消伝票のパラメータを設定する

入出庫伝票のキーである入出庫伝票番号(MATERIALDOCUMENT)、入出庫年度(MATDOCUMENTYEAR)の設定と転記日付(GOODSMVT_PSTNG_DATE)を設定します。
設定例:インポートパラメータ
項目項目名称設定値
MATERIALDOCUMENT入出庫伝票番号4900001234
MATDOCUMENTYEAR入出庫伝票年度2014
GOODSMVT_PSTNG_DATE転記日付20141031

取消明細のパラメータを設定する

取消予定明細(GOODSMVT_MATDOCITEM)に取消元の入出庫伝票の明細を設定することで、指定した明細のみ取消を行うことができます。このパラメータを設定しない場合は、入出庫伝票の全明細が取り消されます。
設定例:GOODSMVT_MATDOCITEM
項目項目名称設定値(1)設定値(2)
MATDOC_ITEM入出庫伝票の明細00020003

サンプルコード

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

BAPIは例外を発生させない仕様なので、エラー判定はRETURNパラメータにメッセージタイプが「E」のレコードが1件以上あるかどうかで判定をします。
DATA: LV_MATERIALDOCUMENT     TYPE BAPI2017_GM_HEAD_02-MAT_DOC,
      LV_MATDOCUMENTYEAR      TYPE BAPI2017_GM_HEAD_02-DOC_YEAR,
      LV_GOODSMVT_PSTNG_DATE  TYPE BAPI2017_GM_HEAD_02-PSTNG_DATE,
      LT_GOODSMVT_MATDOCITEM  TYPE TABLE OF BAPI2017_GM_ITEM_04,
      LS_GOODSMVT_HEADRET     TYPE BAPI2017_GM_HEAD_RET,
      LT_RETURN               TYPE TABLE OF BAPIRET2.

* パラメータに値を設定する
LV_MATERIALDOCUMENT    = '4900001234'. " 入出庫伝票番号
LV_MATDOCUMENTYEAR     = '2014'.       " 入出庫伝票年度
LV_GOODSMVT_PSTNG_DATE = '20141031'.   " 転記日付
*             :
*          (以下略)

CALL FUNCTION 'BAPI_GOODSMVT_CANCEL'
  EXPORTING
    MATERIALDOCUMENT     = LV_MATERIALDOCUMENT
    MATDOCUMENTYEAR      = LV_MATDOCUMENTYEAR
    GOODSMVT_PSTNG_DATE  = LV_GOODSMVT_PSTNG_DATE
  IMPORTING
    GOODSMVT_HEADRET     = LS_GOODSMVT_HEADRET
  TABLES
    RETURN               = LT_RETURN
    GOODSMVT_MATDOCITEM  = LT_GOODSMVT_MATDOCITEM
  .
* エラーメッセージの取得
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の高速道路)

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