在庫移動BAdI BAPI用項目設定

[MB_BAPI_GOODSMVT_CREATE] EXTENSIONIN_TO_MATDOC

概要

在庫移動BAPIで入出庫伝票明細の項目に値を設定する時に実行されるBAdIです。拡張データからBAPIのパラメータにない伝票項目を設定することができます。

パラメータ

BAPIからの拡張データ(EXTENSION_IN)と入出庫伝票のヘッダ・明細で構成されています。
パラメータ一覧
種別パラメータ説明
ImportingEXTENSION_IN拡張データ
ChangingCS_IMKPF入出庫伝票ヘッダ
CT_IMSEG入出庫伝票明細
CT_RETURNリターンパラメータ

実行タイミング

在庫移動BAPIのBAPI_GOODSMVT_CREATEで実行されます。
項目設定処理が行われるタイミングでこのBAdIが実行されます。

サンプルコード

構造名にBAPI_TE_XMSEGを指定した場合に実行するBAdIの例です。
明細の確認キーにBAPIのEXTENSION_INの値を設定します。

事前にBAPI_TE_XMSEGの構造にZZETENSの項目をアペンドしておく必要があります。
method IF_EX_MB_BAPI_GOODSMVT_CREATE~EXTENSIONIN_TO_MATDOC.

  DATA: LS_EXTENSION_IN TYPE BAPIPAREX,
        LS_ITEM TYPE BAPI_TE_XMSEG.

  FIELD-SYMBOLS <FS_IMSEG> TYPE IMSEG.

* IMSEGにLINE IDを設定
  CALL METHOD cl_mmim_line_id_manager=>analyze_mb_create
    CHANGING
      CT_IMSEG = CT_IMSEG[]
    EXCEPTIONS
      DUPLICATE_LINE_ID = 1
      OTHERS            = 2.

  LOOP AT EXTENSION_IN INTO LS_EXTENSION_IN.
    CASE LS_EXTENSION_IN-STRUCTURE.
      WHEN 'BAPI_TE_XMSEG'.
        LS_ITEM+14 = LS_EXTENSION_IN-VALUEPART1.

*       変更対象の明細を取得
        READ TABLE CT_IMSEG WITH KEY LINE_ID = LS_ITEM-MATDOC_ITM
          ASSIGNING <FS_IMSEG>.

        IF SY-SUBRC = 0.
*         確認キーを設定
          <FS_IMSEG>-ETENS = LS_BAPI_TE_XMSEG-ZZETENS.
        ENDIF.

  ENDLOOP.

endmethod.
関連記事

コメントの投稿

非公開コメント

プロフィール

Z*

Author:Z*

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

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

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