2016-11-02 13 views
0

BAPI_PO_CREATEBAPI_PO_CREATE1の2つの機能が見つかりました。 CREATE1には最新の変更日があるので、これは使用するのに最適なものと想定しました。一例として、私は素材なしでかなり単純な購入をしています。このようにBAPI_PO_CREATE1アカウント割り当てエラー

call function 'BAPI_PO_CREATE1' 
    exporting 
    poheader = po_header 
    poheaderx = po_header_x 
    testrun = abap_false 
    tables 
    return  = returning 
    poitem  = po_items 
    poitemx = po_items_x 
    poaccount = po_accounts 
    poaccountx = po_accounts_x 
    poschedule = po_schedule 
    poschedulex = po_schedule_x. 

、私はコストオブジェクトとしてG/L勘定とWBS要素を使用しています:

append initial line to po_accounts assigning field-symbol(<po_account>). 
<po_account>-po_item = current_position. 
" Classes that call CONVERSION_EXIT 
<po_account>-gl_account = /dim/cl_bonadm_exit=>int_saknr(<item>-gl_account). 
<po_account>-wbs_element = /dim/cl_bonadm_exit=>int_posnr(<item>-wbs_id). 

append initial line to po_accounts_x assigning field-symbol(<po_account_x>). 
<po_account_x>-po_item = current_position. 
<po_account_x>-po_itemx = abap_true. 
<po_account_x>-gl_account = abap_true. 
<po_account_x>-wbs_element = abap_true. 

しかし、私はエラーメッセージを取得し続ける:

No instance of object type PurchaseOrder has been created. External reference: 
Purchase order item 00010 still contains faulty account assignments 
Can delivery date be met? 
Account 475000 requires an assignment to a CO object 

ME21nで同じ正確なデータを記入すると、納期の警告が表示されますが、注文書のエラーは表示されません。私は2つの異なるSAPノートに出くわしましたが、どちらも実装できません。また、アカウントからWBS要素を削除しても、エラーメッセージが表示されます。

また、BAPI構造のCOオブジェクト項目のWBS要素を入力しようとしましたが、何もしませんでした。私はこのエラーメッセージを投げるBAPIのポイントをトレースすることができますが、なぜそれが起こっているのかわかりません。

全体方法:http://hastebin.com/ufarisozav.xml

答えて

0

あなたにもテーブルpoaccountxを入力する必要があります(機能モジュールのドキュメントに示されているように)、それ以外のシステムはpoaccountテーブルに挿入されたデータの一部またはすべてを無視するかもしれません。

+0

私はこれも記入しました。投稿に追加されたコードスニペットは含まれていません – user3704258

+0

だから、*完全な*サンプルはとても重要です。あなたは 'SERIAL_NO'も記入してそれを貼り付けるのを忘れましたか? – vwegert

+0

いいえ、私はそれに何かを投げて見てみましょう。編集:何も変更されていない、私は方法全体のスニペットを含んだ。 – user3704258