IM-ERP Real Connect for Accel Platform プログラミングガイド 初版 2013-02-01

購買伝票 更新 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 標準ではデータが取得できない場合があります。