‎2009 Jan 07 6:30 PM
Hi,
I'm using the bapi_po_create1 to create a service po but it is always giving the error about accounting for the item. Where a sample code:
data poheader type bapimepoheader.
data poheaderx type bapimepoheaderx.
data return type table of bapiret2.
data poitem type table of bapimepoitem.
data wa_poitem type bapimepoitem.
data poitemx type table of bapimepoitemx.
data wa_poitemx type bapimepoitemx.
data poaccount type table of bapimepoaccount.
data wa_poaccount type bapimepoaccount.
data poaccountx type table of bapimepoaccountx.
data wa_poaccountx type bapimepoaccountx.
data poservices type table of bapiesllc.
data wa_poservices type bapiesllc.
data item_nr type ebelp value 10.
data service_line type packno value 100.
data int_serv_line type srv_line_no value 1.
* --------------------------------------------------- *
* ---------------- Header --------------------------- *
* --------------------------------------------------- *
poheader-comp_code = 'PT01'.
poheader-doc_type = 'NB'.
poheader-vendor = '0000100405'.
poheader-purch_org = 'GF'.
poheader-pur_group = 'GF0'.
poheader-doc_date = sy-datum.
poheaderx-comp_code = 'X'.
poheaderx-doc_type = 'X'.
poheaderx-vendor = 'X'.
poheaderx-purch_org = 'X'.
poheaderx-pur_group = 'X'.
poheaderx-doc_date = 'X'.
* --------------------------------------------------- *
* ----------------- Item ---------------------------- *
* --------------------------------------------------- *
wa_poitem-po_item = item_nr.
wa_poitem-short_text = 'testeJAC'.
wa_poitem-plant = '0006'.
wa_poitem-matl_group = 'SERVICOS'.
wa_poitem-item_cat = '9'.
wa_poitem-acctasscat = 'K'.
wa_poitem-distrib = 'V'.
*wa_poitem-tax_code = 'A0'.
wa_poitem-pckg_no = service_line.
append wa_poitem to poitem.
wa_poitemx-po_item = item_nr.
wa_poitemx-po_itemx = 'X'.
wa_poitemx-short_text = 'X'.
wa_poitemx-plant = 'X'.
wa_poitemx-matl_group = 'X'.
wa_poitemx-item_cat = 'X'.
wa_poitemx-acctasscat = 'X'.
wa_poitemx-distrib = 'X'.
*wa_poitemx-tax_code = 'X'.
wa_poitemx-pckg_no = 'X'.
append wa_poitemx to poitemx.
* --------------------------------------------------- *
* ----------------- Account-------------------------- *
* --------------------------------------------------- *
**wa_poaccount-po_item = item_nr.
**wa_poaccount-serial_no = '01'.
***wa_poaccount-quantity = '2000'.
**wa_poaccount-gl_account = '6223610099'.
**wa_poaccount-costcenter = '602630'.
**wa_poaccount-bus_area = '0012'.
**wa_poaccount-co_area = 'PT01'.
**
**append wa_poaccount to poaccount.
**
**wa_poaccountx-po_item = item_nr.
**wa_poaccountx-serial_no = '01'.
**wa_poaccountx-po_itemx = 'X'.
***wa_poaccountx-quantity = 'X'.
**wa_poaccountx-gl_account = 'X'.
**wa_poaccountx-costcenter = 'X'.
**wa_poaccountx-bus_area = 'X'.
**wa_poaccountx-co_area = 'X'.
**
**append wa_poaccountx to poaccountx.
wa_poaccount-po_item = item_nr.
wa_poaccount-costcenter = '602630'.
wa_poaccount-gl_account = '6223610099'.
wa_poaccount-serial_no = '01'.
wa_poaccount-co_area = 'PT01'.
append wa_poaccount to poaccount.
wa_poaccountx-po_item = item_nr.
wa_poaccountx-serial_no = '01'.
wa_poaccountx-po_itemx = 'X'.
wa_poaccountx-costcenter = 'X'.
wa_poaccountx-gl_account = 'X'.
wa_poaccountx-co_area = 'X'.
append wa_poaccountx to poaccountx.
* --------------------------------------------------- *
* ----------------- Service ------------------------- *
* --------------------------------------------------- *
wa_poservices-pckg_no = service_line.
wa_poservices-line_no = int_serv_line.
wa_poservices-service = '5000491'.
wa_poservices-quantity = '2000'.
wa_poservices-base_uom = 'L'.
wa_poservices-tax_code = 'A0'.
append wa_poservices to poservices.
* --------------------------------------------------- *
* ----------------- Create PO ---------------------- *
* --------------------------------------------------- *
call function 'BAPI_PO_CREATE1'
exporting
poheader = poheader
poheaderx = poheaderx
* IMPORTING
* EXPPURCHASEORDER =
tables
return = return
poitem = poitem
poitemx = poitemx
poaccount = poaccount
poaccountx = poaccountx
poservices = poservices
.If anyone have an idea its great.
thanzs in advanced
Jaime
‎2009 Jan 07 6:34 PM
Could you be a bit more forthcoming about "the error about accounting for the item?"
Rob
‎2009 Jan 08 10:20 AM
Hi, heres the output of the return
E BAPI 001 No instance of object type PurchaseOrder has been created. External reference: E MEPO 000 Purchase order still contains faulty items E 06 436 In case of account assignment, please enter acc. assignment data for item
Thanzs for the help
‎2009 Jan 08 11:35 AM
Hi, problem solved.
The problem was the missing of a second line of service and uisng the table psrvaccessvalues to relate the account to the service.
heres the code:
wa_poservices-pckg_no = service_line.
wa_poservices-line_no = int_serv_line.
wa_poservices-service = '000000000005000491'.
wa_poservices-quantity = '2000'.
wa_poservices-base_uom = 'L'.
*wa_poservices-tax_code = 'A0'.
wa_poservices-outl_ind = 'X'.
wa_poservices-subpckg_no = service_line + 1.
append wa_poservices to poservices.
clear wa_poservices.
wa_poservices-pckg_no = service_line + 1.
wa_poservices-line_no = int_serv_line + 1.
wa_poservices-service = '000000000005000491'.
wa_poservices-quantity = '2000'.
wa_poservices-base_uom = 'L'.
wa_poservices-outl_ind = 'X'.
append wa_poservices to poservices.
* --------------------------------------------------- *
* ----------------- Accounting to Service ----------- *
* --------------------------------------------------- *
wa_posrvaccessvalues-pckg_no = service_line + 1.
wa_posrvaccessvalues-line_no = int_serv_line + 1.
wa_posrvaccessvalues-serno_line = 01.
wa_posrvaccessvalues-serial_no = 01.
wa_posrvaccessvalues-quantity = '2000'.
append wa_posrvaccessvalues to posrvaccessvalues.