Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Regarding BAPI_PO_CHANGE

Former Member
0 Likes
409

Even after calling BAPI_PO_CHANGE and bapi_transaction_commit.

but it is not creating new item by using BAPI_PO_CHANGE

my requirement is,

if an item has open quantity,

1.i should change item quantity to quantity received

and set delivery complete indicator.

(EKPO-MENGE GT SUM OF EKET-WEMNG). then change , ekpo-menge = (sum of eket-wemng)

2.create new item with that open quantity.

(EBELP = EBELP + 10)ADD NEW ITEM.

Even after calling BAPI_PO_CHANGE and bapi_transaction_commit.

but it is not creating new item by using BAPI_PO_CHANGE

my requirement is,

if an item has open quantity,

1.i should change item quantity to quantity received

and set delivery complete indicator.

(EKPO-MENGE GT SUM OF EKET-WEMNG). then change , ekpo-menge = (sum of eket-wemng)

2.create new item with that open quantity.

(EBELP = EBELP + 10)ADD NEW ITEM.

1 REPLY 1
Read only

Former Member
0 Likes
343

Venu,

Please check the below code for creating the PO using the BAPI_PO_CREATE . Use the same methodology for BAPI_PO_CHANGE also.

&----


*& Report YPRA_SAMPLE08 *

*& *

&----


*& *

*& *

&----


REPORT ypra_sample08.

Create Service PO

DATA: wa_po_header TYPE bapiekkoc,

wa_po_add_header TYPE bapiekkoa,

ws_po_number TYPE bapiekkoc-po_number,

ws_po_number1 TYPE bapimepoheader-po_number,

ws_pack_no TYPE packno,

i_poitems TYPE bapiekpoc OCCURS 0 WITH HEADER LINE,

i_poitems_sch TYPE bapieket OCCURS 0 WITH HEADER LINE,

i_acct_ass TYPE bapiekkn OCCURS 0 WITH HEADER LINE,

i_return TYPE bapireturn OCCURS 0 WITH HEADER LINE,

i_return1 TYPE bapiret2 OCCURS 0 WITH HEADER LINE,bapiret2,

i_services TYPE bapiesllc OCCURS 0 WITH HEADER LINE,

bapi_esll TYPE bapiesllc OCCURS 0 WITH HEADER LINE,

i_srv_accass TYPE bapiesklc OCCURS 0 WITH HEADER LINE,

i_po_limits TYPE bapiesuhc OCCURS 0 WITH HEADER LINE,

i_po_contract_limits TYPE bapiesucc OCCURS 0 WITH HEADER LINE.

DATA: serial_no LIKE bapiesknc-serial_no,

line_no LIKE bapiesllc-line_no,

pack_no LIKE bapiesllc-line_no.

wa_po_header-doc_date = sy-datum.

wa_po_header-doc_type = 'ZES3'.

wa_po_header-co_code = 'SP01'.

wa_po_header-purch_org = 'SP01'.

wa_po_header-pur_group = 'ES1'.

wa_po_header-vendor = '0001000025'.

wa_po_header-created_by = sy-uname.

wa_po_header-langu = sy-langu.

i_poitems-po_item = 10.

i_poitems-item_cat = '9'.

i_poitems-acctasscat = 'K'.

i_poitems-plant = 'SP01'.

i_poitems-short_text = '007002046'.

i_poitems-disp_quan = '1'.

*i_poitems-mat_grp = 'ZES1'.

*i_poitems-pckg_no = '0000000265'.

*i_poitems-line_no = 1.

i_poitems-pckg_no = 10.

APPEND i_poitems.

i_poitems_sch-po_item = 10.

i_poitems_sch-deliv_date = sy-datum.

APPEND i_poitems_sch.

i_acct_ass-po_item = 10.

i_acct_ass-serial_no = 01.

*i_acct_ass-g_l_acct = '0007910100'.

i_acct_ass-co_area = '1000'.

i_acct_ass-cost_ctr = '0000012000'.

APPEND i_acct_ass.

i_acct_ass-po_item = 10.

i_acct_ass-serial_no = 02.

i_acct_ass-co_area = '1000'.

i_acct_ass-cost_ctr = '0000012000'.

APPEND i_acct_ass.

i_acct_ass-po_item = 10.

i_acct_ass-serial_no = 03.

i_acct_ass-co_area = '1000'.

i_acct_ass-cost_ctr = '0000012000'.

APPEND i_acct_ass.

*i_acct_ass-po_item = 10.

*i_acct_ass-serial_no = 04.

*i_acct_ass-co_area = '1000'.

*i_acct_ass-cost_ctr = '0000012000'.

*APPEND i_acct_ass.

bapi_esll-pckg_no = 10.

bapi_esll-line_no = 1.

bapi_esll-outl_no = '0'.

bapi_esll-outl_ind = 'X'.

bapi_esll-subpckg_no = 20.

bapi_esll-from_line = 1.

bapi_esll-to_line = 3.

APPEND bapi_esll.

bapi_esll-pckg_no = 20.

bapi_esll-line_no = 2.

bapi_esll-service = '000000000003000018'.

bapi_esll-quantity = '317946.000'.

bapi_esll-gr_price = '21111.0000'.

bapi_esll-price_unit = '10000'.

APPEND bapi_esll.

*bapi_esll-pckg_no = 30.

*bapi_esll-line_no = 1.

*bapi_esll-outl_no = '0'.

*bapi_esll-outl_ind = 'X'.

*bapi_esll-subpckg_no = 40.

*APPEND bapi_esll.

bapi_esll-pckg_no = 20.

bapi_esll-line_no = 3.

bapi_esll-service = '000000000003000017'.

bapi_esll-quantity = '317946.000'.

bapi_esll-gr_price = '21111.0000'.

bapi_esll-price_unit = '10000'.

APPEND bapi_esll.

i_srv_accass-pckg_no = 10.

i_srv_accass-line_no = 1.

i_srv_accass-serno_line = 01.

i_srv_accass-serial_no = 01.

i_srv_accass-percentage = 100.

APPEND i_srv_accass.

i_srv_accass-pckg_no = 20.

i_srv_accass-line_no = 2.

i_srv_accass-serno_line = 02.

i_srv_accass-serial_no = 02.

i_srv_accass-percentage = 100.

i_srv_accass-quantity = '1'.

APPEND i_srv_accass.

i_srv_accass-pckg_no = 20.

i_srv_accass-line_no = 3.

i_srv_accass-serno_line = 03.

i_srv_accass-serial_no = 03.

i_srv_accass-percentage = 100.

i_srv_accass-quantity = '1'.

APPEND i_srv_accass.

*i_srv_accass-pckg_no = 40.

*i_srv_accass-line_no = 3.

*i_srv_accass-serno_line = 03.

*i_srv_accass-serial_no = 03.

*i_srv_accass-percentage = 100.

*i_srv_accass-quantity = '1'.

*APPEND i_srv_accass.

CALL FUNCTION 'BAPI_PO_CREATE'

EXPORTING

po_header = wa_po_header

po_header_add_data = wa_po_add_header

  • HEADER_ADD_DATA_RELEVANT =

  • PO_ADDRESS =

skip_items_with_error = 'X'

  • ITEM_ADD_DATA_RELEVANT =

  • HEADER_TECH_FIELDS =

IMPORTING

purchaseorder = ws_po_number

TABLES

po_items = i_poitems

  • PO_ITEM_ADD_DATA =

po_item_schedules = i_poitems_sch

po_item_account_assignment = i_acct_ass

  • PO_ITEM_TEXT =

return = i_return

  • po_limits = i_po_limits

  • po_contract_limits = i_po_contract_limits

po_services = bapi_esll

po_srv_accass_values = i_srv_accass

  • PO_SERVICES_TEXT =

  • PO_BUSINESS_PARTNER =

  • EXTENSIONIN =

  • POADDRDELIVERY =

.

IF NOT ws_po_number IS INITIAL.

ws_po_number1 = ws_po_number.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

wait = '2'.

WRITE: / ws_po_number.

ENDIF.

break gbpra8.

LOOP AT i_return.

ENDLOOP.

Regards,

Prakash.