Skip to Content
0
Former Member
Feb 18, 2009 at 10:26 AM

BAPI_PO_CHANGE me22n add profit center for purchase requisition number

622 Views

Hello all,

I have to add an item line for a specific sales order( p_vbeln ).

for that i use BAPI_SALESORDER_CHANGE and it works and the item is inserted.

( p_posnr = sales order item and ln_etnr = schedule_line = 1 )

Now I have to maintain the specific po item line and to insert the Profit Center related to the Purchase Requisition Number that was assigned to the above sales order item like using transaction ME22N.

when i use the transaction all i have to do is to ADD the Purchase requisition number to the PO Order Number and to add the PROFIT CENTER.

for this i use BAPI_PO_CHANGE.

i colect the folowing data:

from table VBFA( vbelv = sales order number vbeln = l_ebeln)

PO Number = p_ebeln.

from table VBEP ( vbeln = sales order number, posnr = the previously inserted sales order item )

Purchase Requisition Number = l_banfn

Purchase Requisition Item = l_bnfpo

from table VBAP (vbeln = sales order number, posnr = the previously inserted sales order item )

Profit Center = l_prctr

from table EKKN

select max( ebelp )

from ekkn

into l_ebelp

where ebeln = l_ebeln.

add 10 to l_ebelp

Purchase Order Item = l_ebelp .

and i move the data:

i_t_poitem-po_item = l_ebelp.

i_t_poitem-preq_no = l_banfn.

i_t_poitem-preq_item = l_bnfpo.

i_t_poitem-acctasscat = cc_x.

APPEND i_t_poitem.

i_t_poitemx-po_item = l_ebelp.

i_t_poitemx-po_itemx = cc_x.

i_t_poitemx-preq_no = cc_x.

i_t_poitemx-preq_item = cc_x.

i_t_poitemx-acctasscat = cc_x.

APPEND i_t_poitemx.

i_t_poaccount-po_item = l_ebelp.

i_t_poaccount-itm_number = p_posnr.

i_t_poaccount-SCHED_LINE = ln_etnr.

i_t_poaccount-profit_ctr = l_prctr.

APPEND i_t_poaccount.

i_t_poaccountx-po_item = l_ebelp.

i_t_poaccountx-profit_ctr = cc_x.

APPEND i_t_poaccountx.

then i use the function BAPI_PO_CHANGE:

CALL FUNCTION 'BAPI_PO_CHANGE'

EXPORTING

purchaseorder = p_ebeln

testrun = l_test

TABLES

return = i_t_return_po

poitem = i_t_poitem

poitemx = i_t_poitemx

poaccount = i_t_poaccount

poaccountx = i_t_poaccountx.

BUT i get the folowing result ( messages in return table)

Insert item for PO-order

Message: Changing of PO using Enjoy BAPI unsuccessful ;

Message: Purchase order item 00120 still contains faulty account assignments ;

Message: Enter Profit Center ;

what should i do?

best regards,

emilia