購買依頼変更BAPI

BAPI_PR_CHANGE

概要

購買依頼伝票を変更するBAPIです。パラメータの数が非常に多いのが特徴で、購買依頼変更画面(ME52N)とほぼ同等の内容をBAPIから実行することができます。

パラメータ

購買依頼伝票のデータ構成に近い形でBAPIのパラメータも構成されています。
(購買依頼ヘッダ、明細、勘定設定など)

発注伝票登録BAPIのようにヘッダや明細のパラメータと対となる変更ツールバーのパラメータ構成になっています。更新する項目について変更ツールバーの項目にも設定が必要です。
パラメータ一覧
種別パラメータ説明
インポートNUMBER購買依頼番号
PRHEADER購買依頼ヘッダ
PRHEADERX変更ツールバー 購買依頼ヘッダ
TESTRUNテスト区分
エクスポートPRHEADEREXP購買依頼ヘッダ
テーブルRETURNリターンパラメータ
PRITEM購買依頼明細データ
PRITEMX変更ツールバー 購買依頼明細データ
PRITEMEXP購買依頼明細データ
PRITEMSOURCE購買依頼供給元
PRACCOUNT購買依頼勘定設定
PRACCOUNTPROFITSEGMENT入出庫予定
PRACCOUNTX変更ツールバー 購買依頼勘定設定
PRADDRDELIVERY購買依頼明細アドレス
PRITEMTEXT購買依頼明細テキスト
PRHEADERTEXT購買依頼ヘッダテキスト
EXTENSIONIN拡張 (インポートパラメータ)
EXTENSIONOUT拡張 (エクスポートパラメータ)
PRVERSION購買依頼明細のバージョン
PRVERSIONX変更ツールバー 購買依頼明細のバージョン
ALLVERSIONS全バージョンデータ
PRCOMPONENTSコンポーネント
PRCOMPONENTSX変更ツールバー コンポーネント
SERVICEOUTLINE外注サービス: サービスアウトライン
SERVICEOUTLINEX変更ツールバー サービスアウトライン
SERVICELINES外注サービス: サービス行
SERVICELINESX変更ツールバー 外注サービス: サービス行
SERVICELIMIT外注サービス: 制限
SERVICELIMITX変更ツールバー 外注サービス: 制限
SERVICECONTRACTLIMITS外注サービス: 基本契約制限
SERVICECONTRACTLIMITSX変更ツールバー 外注サービス: 基本契約制限
SERVICEACCOUNT外注サービス: 勘定設定配賦
SERVICEACCOUNTX変更ツールバー 外注サービス: 勘定設定配賦
SERVICELONGTEXT外注サービス: サービステキスト (長)
SERIALNUMBERシリアル番号
SERIALNUMBERX変更ツールバー シリアル番号

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

インポートパラメータには変更する購買依頼番号(NUMBER)を設定します。
設定例:インポートパラメータ
項目項目名称設定値
NUMBER購買依頼番号0010001234

購買依頼明細関連のパラメータを設定する

購買依頼明細(PRITEM)には明細番号と変更したい項目を設定します。対となるパラメータとして購買依頼明細変更ツールバー(PRITEMX)があり、変更する項目に「X」を設定します。存在する明細番号を指定すると変更、存在しない明細番号を指定すると行追加になります。
設定例:PRITEM
項目項目名称設定値(1)設定値(2)
PREQ_ITEM購買依頼の明細番号0001000020
QUANTITY購買依頼数量5
DELIV_DATE納入期日2015051520150515
設定例:PRITEMX
項目項目名称設定値(1)設定値(2)
PO_ITEM購買伝票の明細番号0001000020
PO_ITEMX購買伝票の明細番号XX
QUANTITY購買依頼数量X
DELIV_DATE納入期日XX

購買依頼明細テキストのパラメータを設定する

購買依頼明細のロングテキストを設定する場合は、テキストIDとテキスト行を設定します。 タグ列にはSAP Scriptの制御記号を設定します。
設定例:PRITEMTEXT
項目項目名称設定値(1)設定値(2)
PREQ_NO購買依頼番号00100012340010001234
PREQ_ITEM購買依頼の明細番号0001000010
TEXT_IDテキストIDB01B01
TEXT_FORMタグ列**
TEXT_LINEテキスト行Text 1行目Text 2行目

サンプルコード

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

BAPIは例外を発生させない仕様なので、エラー判定はRETURNパラメータにメッセージタイプが「E」のレコードが1件以上あるかどうかで判定をします。
DATA: LS_PRITEM  TYPE BAPIMEREQITEMIMP,
      LS_PRITEMX TYPE BAPIMEREQITEMX,
      LT_PRITEM  TYPE TABLE OF BAPIMEREQITEMIMP,
      LT_PRITEMX TYPE TABLE OF BAPIMEREQITEMX,
      LV_NUMBER  TYPE BAPIMEREQHEADER-PREQ_NO,
      LT_RETURN  TYPE TABLE OF BAPIRET2.

* パラメータに値を設定する
LV_NUMBER            = '0010001234'. " 購買依頼番号
LS_PRITEM-PREQ_ITEM  = '00010'.      " 購買依頼の明細番号
LS_PRITEM-QUANTITY   = '5'.          " 購買依頼数量
*             :
*          (以下略)

CALL FUNCTION 'BAPI_PR_CHANGE'
  EXPORTING
    NUMBER     = LV_NUMBER
  TABLES
    RETURN     = LT_RETURN
    PRITEM     = LT_PRITEM
    PRITEMX    = LT_PRITEMX
    PRITEMTEXT = LT_PRITEMTEXT
  .

* エラーメッセージの取得
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の高速道路)

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