購買伝票 更新 API (PurchaseOrderPostChangeController)¶
購買伝票を更新するためには、PurchaseOrderPostChangeController クラスの持つ各メソッドを利用する必要があります。引数、戻り値についての詳細な情報は、API リストを参照してください。また、購買伝票登録用 BAPI(BAPI_PO_CHANGE)の項目すべてにおいて更新が可能です。
各メソッドの説明¶
コンストラクタ / メソッド名 説明 PurchaseOrderPostChangeController コンストラクタ(引数無し) setPoNumber 更新する購買伝票番号を設定する。 setStrParam 構造型の各項目に値を設定する。第1引数に structure 名、第2引数に項目名、第3引数に値を設定する。setTblParam テーブル型の各項目に値を設定する。第1引数にテーブル名、第2引数に項目名、第3引数に値、第4引数にレコード番号を設する。executeBapi 上記のsetメソッドで設定した値を、接続先の SAP に更新する。更新に失敗した場合、更新処理はロールバックされる。getDocumentHeader 伝票更新後の伝票ヘッダの結果を取得する。 getExportHeader 伝票更新後の貿易管理ヘッダの結果を取得する。 getExtensionList 伝票更新後の得意先拡張項目の結果を取得する。 getAllVersionsList 伝票更新後の全バージョンの結果を取得する。 getPurchaseShippingList 伝票登録後の出荷データの結果を取得する。 getPurchaseShippingExpList 伝票登録後の出荷データエクスポートの結果を取得する。 getPurchaseComponentsList 伝票登録後のコンポーネントの結果を取得する。 getPurchaseConfirmationList 伝票登録後の転送構造:照会/一覧の結果を取得する。 getPurchaseHistoryList 伝票登録後の購買発注履歴の転送構造の結果を取得する。 getPurchaseHistoryTotalsList 伝票登録後の購買発注履歴の転送構造: 合計の結果を取得する。
サンプルプログラム¶
//■伝票番号 var strPo_number; //■ヘッダデータ var strCompCode; var strDocType; var strStatus; var strCreateDate; var strCreateBy; var strVendor; var strPmnttrms; var strPurchOrg; var strPurGroup; var strCurrency; var strDocDate; var strPoRelInd; var strRelStatus; //■伝票明細 var itemList; var itemCount; function init(request) { var objCon; var objResult; var header; //インスタンス生成 objCon = new PurchaseOrderPostChangeController(); // 説明1 //伝票番号importの各項目に値を設定 objCon.setPoNumber("4500000011"); // 説明 2 //明細tableの各項目に値を設定 objCon.setTblParam("PurchaseItemPost","PO_ITEM","00010",1); objCon.setTblParam("PurchaseItemPost","MATERIAL","000000000000000057",1); objCon.setTblParam("PurchaseItemPost","QUANTITY","320",1); objCon.setTblParam("PurchaseItemPost","PO_UNIT","ST",1); // 説明 3 //会計伝票の登録 objResult = objCon.executeBapi(); // 説明 4 //要素[ERR_CODE]に何らかの値がセットされている場合 if (objResult["ERR_CODE"] != null) { //要素[ERR_CODE]に何らかの値がセットされている場合 if (objResult["ERR_CODE"] != null) { //エラーメッセージ出力 Debug.browse(objResult); } //オブジェクトを取得 //伝票番号 strPo_number = objCon.getPoNumber(); header = objCon.getDocumentHeader(); // 説明 5 // 省略 }
購買伝票更新 API のインスタンス生成(説明1)
PurchaseOrderPostChangeController クラスのインスタンスを生成します。引数は不要です。インスタンスを生成すると、購買伝票更新 BAPI(BAPI_PO_CHANGE)の import 型の import、structure、table パラメータに値を設定することができます。
-
import の購買伝票番号に値を設定(説明2)
import パラメータの購買伝票番号に更新する伝票番号の値を設定します。
-
structure、table の各項目に値を設定(説明3)
structure パラメータ、table パラメータの各項目に値を設定します。SAP structure セットする固有名称 POITEM(明細データ) PurchaseItemPost POADDRDELIVERY(入荷伝票のアドレス) DeliveryAddress POSCHEDULE(納入日程) PurchaseSchedule POACCOUNT(勘定設定項目) PurchaseAccount POACCOUNTPROFITSEGMENT 入出庫予定イベントオブジェクト ProfitSegment POCONDHEADER(条件 (ヘッダ) ) CondHeader POCOND(条件 (明細) ) CondItem POLIMITS(外注サービス:制限) Limits POCONTRACTLIMITS(外注サービス:基本契約制限) ContractLimits POSERVICES(外注サービス:サービス行) ContractService POSRVACCESSVALUES(外注サービス:サービス行の勘定設定) ContractServiceAccount POSERVICESTEXT(外注サービス:サービステキスト (長) ) ContractServiceText EXTENSIONIN(得意先独自の項目) Extension POEXPIMPITEM(貿易管理:明細データ) ExportItem POTEXTHEADER(ヘッダテキスト) HeaderText POTEXTITEM(明細テキスト) ItemText POPARTNER(取引先) Partner POSHIPPING(在庫転送オーダーの 出荷データ) PurchaseShipping POSHIPPINGEXP(出荷データのエクスポート) PurchaseShippingExp POCOMPONENTS(コンポーネントの BAPI 構造) PurchaseComponents SAP table セットする固有名称 POCONFIRMATION (転送構造: 照会/一覧 - 仕入先確) PurchaseConfirmation POHISTORY (購買発注履歴の転送構造) PurchaseHistory POHISTORY_TOTALS (購買発注履歴の転送構造: 合計) PurchaseHistoryTotals 購買伝票の更新(説明4)
PurchaseOrderPostChangeController クラスのexecuteメソッドを実行すると、各項目にセットされた値がSAP上に購買伝票データとして更新されます。更新が成功した場合には、購買伝票更新APIの内部で自動的に commit 処理が実行されます。登録に失敗した場合には、自動的に rollback 処理が実行されます。成功・失敗の基準は、購買伝票更新用 BAPI(BAPI_PO_CHANGE)の実行後に RETURN パラメータのTYPE 値を取得して、S(正常終了)、空文字以外が1つでも存在するかどうかです。1つでも存在する場合は、rollback が自動的に実行されます。
-
structure、table データを取得(説明5)
PurchaseOrderPostChangeController クラスの execute メソッドを実行すると、購買伝票更新 API の内部で自動的に登録結果を取得します。返却されるデータは、伝票ヘッダ、貿易管理ヘッダ、得意先独自の項目、全バージョン、出荷データのエクスポート、購買発注履歴の転送構造、購買発注履歴の転送構造:合計、転送構造:照会/一覧 -仕入先確認です。その他の項目については、入力設定した項目について取得が可能です。項目の値を取得するには、KEY に SAP の各属性の項目名称を設定してください。サンプルプログラム実行結果では、全バージョンの登録結果が取得されていますが、理解しやすいようにSAP のカスタマイズにより、バージョン管理をしている為です。SAP 標準では該当データが存在しません。その他の structure、table データについても、SAP 標準ではデータが取得できない場合があります。