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

購買伝票登録 API (PurchaseOrderPayPostController)

購買伝票を登録するためには、PurchaseOrderPayPostController クラスの持つ各メソッドを利用する必要があります。
引数、戻り値についての詳細な情報は、API リストを参照してください。
また、購買伝票登録用 BAPI(BAPI_PO_CREATE1)の項目すべてにおいて登録が可能です。

各メソッドの説明

コンストラクタ / メソッド名 説明
PurchaseOrderPayPostController コンストラクタ(引数無し)
setStrParam
構造型の各項目に値を設定する。
第一引数に structure 名、第二引数に項目名、第三引数に値を設定する。
setTblParam
テーブル型の各項目に値を設定する。
第1引数にテーブル名、第2引数に項目名、第3引数に値、第4引数にレコード番号を設定する。
executeBapi
上記のsetメソッドで設定した値を、接続先の SAP に登録する。
登録に失敗した場合、登録処理はロールバックされる。
getPoNumber 伝票登録後の購買伝票番号を取得する。
getDocumentHeader 伝票登録後の伝票ヘッダの結果を取得する。
getExportHeader 伝票登録後の貿易管理ヘッダの結果を取得する。
getExtensionList 伝票登録後の得意先拡張項目の結果を取得する。
getAllVersionsList 伝票登録後の全バージョンの結果を取得する。
getPurchaseShippingList 伝票登録後の出荷データの結果を取得する。
getPurchaseShippingExpList 伝票登録後の出荷データエクスポートの結果を取得する。
getPurchaseComponentsList 伝票登録後のコンポーネントの結果を取得する。

サンプルプログラム

//■伝票番号
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 strTransportMode;
var strTcustoms;
//■伝票明細
var itemList;
var itemCount;
//■拡張得意先項目一覧
var extensionList;
var extensionCount;
//■全バージョン一覧
var allVersionList;
var allVersionCount;

function init(request) {
       var objCon;
        var objResult;
        var header;
        var expoHeader;

        
        //インスタンス生成
        //伝票ヘッダstructureの各項目に値を設定
        objCon = new PurchaseOrderPayPostController();    // 説明1

      //伝票ヘッダの structure の各項目に値を設定       // 説明2
        objCon.setStrParam("PurchaseHeaderPost","COMP_CODE","1000");
        objCon.setStrParam("PurchaseHeaderPost","DOC_TYPE","NB");
        objCon.setStrParam("PurchaseHeaderPost","VENDOR","0000100011");
        objCon.setStrParam("PurchaseHeaderPost","PMNTTRMS","1000");
        objCon.setStrParam("PurchaseHeaderPost","PURCH_ORG","1200");
        objCon.setStrParam("PurchaseHeaderPost","PUR_GROUP","001");
        objCon.setStrParam("PurchaseHeaderPost","CURRENCY","JPY");

        //仕入先住所structureの各項目に値を設定
        objCon.setStrParam("VendorAddress","REGION","埼玉県");
        objCon.setStrParam("VendorAddress","POSTL_COD1","3650039");
        objCon.setStrParam("VendorAddress","CITY","鴻巣市1-5-31");
        objCon.setStrParam("VendorAddress","COUNTRY","JP");
        objCon.setStrParam("VendorAddress","TEL1_NUMBR","048-539-6790");
        objCon.setStrParam("VendorAddress","FAX_NUMBER","048-539-6790");

        //明細tableの各項目に値を設定       // 説明3
        //1明細
        objCon.setTblParam("PurchaseItemPost","PO_ITEM","00010",1);
//        objCon.setTblParam("PurchaseItemPost","SHORT_TEXT","",1);
        objCon.setTblParam("PurchaseItemPost","MATERIAL","000000000000000057",1);
        objCon.setTblParam("PurchaseItemPost","PLANT","1220",1);
        objCon.setTblParam("PurchaseItemPost","STGE_LOC","1112",1);
        objCon.setTblParam("PurchaseItemPost","TRACKINGNO","追跡番号",1);
        objCon.setTblParam("PurchaseItemPost","MATL_GROUP","01",1);
        objCon.setTblParam("PurchaseItemPost","QUANTITY","300",1);
        objCon.setTblParam("PurchaseItemPost","PO_UNIT","ST",1);
        objCon.setTblParam("PurchaseItemPost","NET_PRICE","30000",1);
        objCon.setTblParam("PurchaseItemPost","PRICE_UNIT","1",1);
        objCon.setTblParam("PurchaseItemPost","TAX_CODE","V1",1);
        objCon.setTblParam("PurchaseItemPost","NO_MORE_GR","",1);
        objCon.setTblParam("PurchaseItemPost","ACCTASSCAT","K",1);
        objCon.setTblParam("PurchaseItemPost","DISTRIB","",1);
        objCon.setTblParam("PurchaseItemPost","GR_IND","X",1);
        objCon.setTblParam("PurchaseItemPost","IR_IND","",1);
        objCon.setTblParam("PurchaseItemPost","GR_BASEDIV","",1);
        objCon.setTblParam("PurchaseItemPost","PREQ_NAME","api登録",1);
        //2明細
        objCon.setTblParam("PurchaseItemPost","PO_ITEM","00020",2);
        objCon.setTblParam("PurchaseItemPost","SHORT_TEXT","プリンタ1",2);
        objCon.setTblParam("PurchaseItemPost","MATERIAL","000000000000000039",2);
        objCon.setTblParam("PurchaseItemPost","PLANT","1220",2);
        objCon.setTblParam("PurchaseItemPost","STGE_LOC","1112",2);
        objCon.setTblParam("PurchaseItemPost","TRACKINGNO","1Group",2);
        objCon.setTblParam("PurchaseItemPost","MATL_GROUP","01",2);
        objCon.setTblParam("PurchaseItemPost","QUANTITY","2",2);
        objCon.setTblParam("PurchaseItemPost","PO_UNIT","ST",2);
        objCon.setTblParam("PurchaseItemPost","NET_PRICE","10000",2);
        objCon.setTblParam("PurchaseItemPost","PRICE_UNIT","1",2);
        objCon.setTblParam("PurchaseItemPost","TAX_CODE","V1",2);
        objCon.setTblParam("PurchaseItemPost","ACCTASSCAT","K",2);
        objCon.setTblParam("PurchaseItemPost","GR_IND","X",2);

        //納入日程tableの各項目に値を設定
        objCon.setTblParam("PurchaseSchedule","PO_ITEM","00010",1);
        objCon.setTblParam("PurchaseSchedule","SCHED_LINE","0001",1);
        objCon.setTblParam("PurchaseSchedule","DEL_DATCAT_EXT","D",1);
        
        objCon.setTblParam("PurchaseSchedule","PO_ITEM","00020",2);
        objCon.setTblParam("PurchaseSchedule","SCHED_LINE","0001",2);
        objCon.setTblParam("PurchaseSchedule","DEL_DATCAT_EXT","D",2);
        
        //勘定設定tableの各項目に値を設定
        objCon.setTblParam("PurchaseAccount","PO_ITEM","00010",1);
        objCon.setTblParam("PurchaseAccount","SERIAL_NO","01",1);
        objCon.setTblParam("PurchaseAccount","QUANTITY","100",1);
        objCon.setTblParam("PurchaseAccount","GL_ACCOUNT","0000826700",1);
        objCon.setTblParam("PurchaseAccount","COSTCENTER","1210000000",1);

        objCon.setTblParam("PurchaseAccount","PO_ITEM","00020",2);
        objCon.setTblParam("PurchaseAccount","SERIAL_NO","01",2);
        objCon.setTblParam("PurchaseAccount","QUANTITY","2",2);
        objCon.setTblParam("PurchaseAccount","GL_ACCOUNT","0000826700",2);
        objCon.setTblParam("PurchaseAccount","COSTCENTER","1210000000",2);

        //明細テキストtableの各項目に値を設定    
        objCon.setTblParam("ItemText","PO_ITEM","00010",1);
        objCon.setTblParam("ItemText","TEXT_ID","F01",1);
        objCon.setTblParam("ItemText","TEXT_LINE","APIテキスト1明細",1);

        objCon.setTblParam("ItemText","PO_ITEM","00020",2);
        objCon.setTblParam("ItemText","TEXT_ID","F01",2);
        objCon.setTblParam("ItemText","TEXT_LINE","APIテキスト2明細",2);
        
        //会計伝票の登録
        objResult = objCon.executeBapi();       // 説明4

        //要素[ERR_CODE]に何らかの値がセットされている場合
        if (objResult["ERR_CODE"] != null) {
           //エラーメッセージ出力
           Debug.browse(objResult);
        }

    //オブジェクトを取得
    //伝票番号
    strPo_number =  objCon.getPoNumber();       // 説明5
    //伝票ヘッダ
    header = objCon.getDocumentHeader();       // 説明6
    strCompCode = header.COMP_CODE;
    strDocType = header.DOC_TYPE;
    strStatus = header.STATUS;
    strCreateDate = header.CREAT_DATE;
    strCreateBy = header.CREATED_BY;
    strVendor = header.VENDOR;
    strPmnttrms = header.PMNTTRMS;
    strPurchOrg = header.PURCH_ORG;
    strPurGroup = header.PUR_GROUP;
    strCurrency = header.CURRENCY;
    strDocDate = header.DOC_DATE;
    strPoRelInd = header.PO_REL_IND;
    strRelStatus = header.REL_STATUS;
    //貿易管理ヘッダ
    expoHeader = objCon.getExportHeader();
       strTransportMode = expoHeader.TRANSPORT_MODE;
       strTcustoms = expoHeader.CUSTOMS;

    //伝票明細
    itemList  = objCon.getPurchaseItemPostList();
    itemCount = itemList.length;
    //拡張得意先項目
    extensionList  = objCon.getExtensionList();       // 説明7
    extensionCount = extensionList.length;

    //全バージョン
    allVersionList  = objCon.getAllVersionsList();
    allVersionCount = allVersionList.length;

}
  • 購買伝票登録 API のインスタンス生成(説明1)

    PurchaseOrderPayPostController クラスのインスタンスを生成します。
    引数は不要です。
    インスタンスを生成すると、購買伝票登録 BAPI(BAPI_PO_CREATE1)のimport型のimport、structure、tableパラメータに値を設定することができます。
„
  • structure の各項目に値を設定(説明2)

    structure パラメータの項目に値を設定する場合は、setStrParam メソッドを使用します。
    第一引数の structure 名称は固定値になっています。
    後述のとおりに名称を設定して下さい。
    第二引数の項目名称は SAP の各属性の項目名称を設定してください。structure 名称、項目名称は英字の大文字、小文字は厳密に区別されます。
    第三引数に値を設定します。
    購買伝票登録 BAPI(BAPI_PO_CREATE1)の import 型の structure パラメータには変更ツールバーが存在しますが、各項目に値を設定することにより、購買伝票登録 API の内部で変更ツールバーの各項目にフラグを設定します。
  • table の各項目に値を設定(説明3)

    table パラメータの項目に値を設定する場合は、setTblParam メソッドを使用します。
    第一引数の table 名称は固定値になっています。
    後述のとおりに名称を設定して下さい。
    第二引数の項目名称は SAPの各属性の項目名称を設定してください。
    table 名称、項目名称は英字の大文字、小文字は厳密に区別されます。
    第三引数に値、第四引数にレコード番号を設定します。
    購買伝票登録 BAPI(BAPI_PO_CREATE1)のimport型の table パラメータには変更ツールバーが存在しますが、各項目に値を設定することにより、購買伝票登録 API の内部で変更ツールバーの各項目にフラグを設定します。
    SAP structure セットする固有名称
    POHEADER(伝票ヘッダ) PurchaseOrderPayPost
    POADDRVENDOR(仕入先住所) VendorAddress
    POEXPIMPHEADER(貿易管理:ヘッダデータ) ExportHeader
    VERSIONS(バージョン管理) Versions
  • 購買伝票の登録(説明4)

    PurchaseOrderPayPostControllerクラスのexecuteBapiメソッドを実行すると、各項目にセットされた値がSAP上に購買伝票データとして登録されます。
    登録が成功した場合には、購買伝票登録APIの内部で自動的にcommit処理が実行されます。
    登録に失敗した場合には、自動的にrollback処理が実行されます。
    成功・失敗の基準は、購買伝票登録用BAPI(BAPI_PO_CREATE1)の実行後にRETURNパラメータのTYPE値を取得して、S(正常終了)、空文字以外が1つでも存在するかどうかです。
    1つでも存在する場合は、rollbackが自動的に実行されます。
    SAP table セットする固有名称
    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
  • 購買伝票番号を取得(説明5)

    PurchaseOrderPayPostControllerクラスのgetPoNumberメソッドを使用すると、登録された購買伝票の伝票番号を取得することが可能です。
„
  • structureデータを取得(説明6)

    伝票ヘッダ、貿易管理ヘッダについては、PurchaseOrderPayPostControllerクラスのexecuteメソッドを実行すると購買伝票登録APIの内部で自動的に登録結果を取得します。
    伝票ヘッダはgetDocumentHeaderメソッド、貿易管理ヘッダはgetExportHeaderメソッドで取得が可能です。
    その他のstructureについては、入力設定した項目について取得が可能です。項目の値を取得するには、KEYにSAPの各属性の項目名称を設定してください。
„
  • tableデータを取得(説明7)

    得意先独自の項目、全バージョン、出荷データのエクスポートについては、PurchaseOrderPayPostControllerクラスのexecuteメソッドを実行すると購買伝票登録APIの内部で自動的に登録結果を取得します。
    得意先独自の項目はgetExtensionListメソッド、全バージョンはgetAllVersionsListメソッド、出荷データのエクスポートはgetPurchaseShippingExpListメソッドで取得が可能です。その他のtableについては、入力設定した項目について取得が可能です。
    項目の値を取得するには、KEYにSAPの各属性の項目名称を設定してください。
    サンプルプログラム実行結果では、全バージョンの登録結果が取得されていますが、理解しやすいようにSAPのカスタマイズにより、バージョン管理をしている為です。
    SAP標準では該当データが存在しません。
    その他のstructure、tableデータについても、SAP標準ではデータが取得できない場合があります。