2009 Apr 22 1:07 PM
hi experts.....
can we create purchase order through report programming?If yes plz give me the thread details?
Hi new to xi ,
Yes.You can create purchase order through report programming.
You can do it by calling the Function Module BAPI_PO_CREATE by passing the all the maddtory fields.
Regards,
Rama chary.Pammi
2009 Apr 22 1:15 PM
SEARCH in SCN for bapi BAPI_PO_CREATE1, you will get lot of posts.
2009 Apr 22 1:18 PM
Hi,
Use this code in a program by using a BAPI function module
Anothe rway is using classical/ALV report using call transaction from a report for changing the PO
loop at i_header.
header-ref_1 = i_header-legacy.
headerx-ref_1 = c_x.
header-doc_type = i_header-bsart.
headerx-doc_type = c_x.
header-comp_code = i_header-bukrs.
headerx-comp_code = c_x.
header-purch_org = i_header-ekorg.
headerx-purch_org = c_x.
header-pur_group = i_header-ekgrp.
headerx-pur_group = c_x.
header-vendor = i_header-lifnr.
headerx-vendor = c_x.
concatenate i_header-bedat+4(4)
i_header-bedat+0(2)
i_header-bedat+2(2)
into header-doc_date.
headerx-doc_date = c_x.
header-created_by = i_header-ernam.
headerx-created_by = c_x.
header-currency = i_header-waers.
headerx-currency = c_x.
concatenate i_header-kdatb+4(4)
i_header-kdatb+0(2)
i_header-kdatb+2(2)
into header-vper_start.
headerx-vper_start = c_x.
loop at i_items where legacy = i_header-legacy.
item-po_item = i_items-ebelp.
itemx-po_item = i_items-ebelp.
itemx-po_itemx = c_x.
if i_header-bsart = 'NB'.
item-material = i_items-ematn.
itemx-material = c_x.
schedule-quantity = i_items-menge * 1000.
schedulex-quantity = c_x.
else.
item-short_text = i_items-ematn.
itemx-short_text = c_x.
*
item-matl_group = '1000'.
itemx-matl_group = c_x.
schedule-quantity = '1'.
schedulex-quantity = c_x.
endif.
item-plant = i_items-werks.
itemx-plant = c_x.
schedule-po_item = i_items-ebelp.
schedule-sched_line = '1'.
schedulex-po_item = i_items-ebelp.
schedulex-sched_line = '1'.
schedulex-po_itemx = c_x.
schedulex-sched_linex = c_x.
concatenate i_items-eildt+0(2)
'/'
i_items-eildt+2(2)
'/'
i_items-eildt+4(4)
into schedule-delivery_date.
schedulex-delivery_date = c_x.
item-price_unit = i_items-peinh * 100.
itemx-price_unit = c_x.
item-tax_code = i_items-mwskz.
itemx-tax_code = c_x.
item-shipping = i_items-evers.
itemx-shipping = c_x.
account-po_item = i_items-ebelp.
accountx-po_item = i_items-ebelp.
accountx-po_itemx = c_x.
if i_header-bsart = 'FO'.
item-pckg_no = sy-tabix.
itemx-pckg_no = 'X'.
limits-pckg_no = sy-tabix.
limits-limit = i_items-overalllimit.
limits-exp_value = i_items-expectedoverall.
posrvaccessvalues-pckg_no = sy-tabix.
posrvaccessvalues-line_no = '0'.
posrvaccessvalues-serno_line = '00'.
posrvaccessvalues-percentage = '100.0'.
posrvaccessvalues-serial_no = '01'.
account-serial_no = '1'.
accountx-serial_no = '1'.
accountx-serial_nox = c_x.
account-quantity = '1'.
accountx-quantity = c_x.
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = i_items-kostl
importing
output = account-costcenter.
accountx-costcenter = c_x.
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = i_items-sakto
importing
output = account-gl_account.
accountx-gl_account = c_x.
item-acctasscat = i_items-knttp.
itemx-acctasscat = c_x.
item-item_cat = i_items-epstp.
itemx-item_cat = c_x.
endif.
append:item,itemx,schedule,schedulex,account,accountx,limits,posrvaccessvalues.
clear :item,itemx,schedule,schedulex,account,accountx,limits,posrvaccessvalues.
endloop.
call function 'BAPI_PO_CREATE1'
exporting
poheader = header
poheaderx = headerx
* POADDRVENDOR =
* TESTRUN =
* MEMORY_UNCOMPLETE =
* MEMORY_COMPLETE =
* POEXPIMPHEADER =
* POEXPIMPHEADERX =
* VERSIONS =
* NO_MESSAGING =
* NO_MESSAGE_REQ =
* NO_AUTHORITY =
* NO_PRICE_FROM_PO =
importing
exppurchaseorder = ponumber
* EXPHEADER =
* EXPPOEXPIMPHEADER =
tables
return = return
poitem = item
poitemx = itemx
* POADDRDELIVERY =
poschedule = schedule
poschedulex = schedulex
poaccount = account
* POACCOUNTPROFITSEGMENT =
poaccountx = accountx
* POCONDHEADER =
* POCONDHEADERX =
* POCOND =
* POCONDX =
polimits = limits
* POCONTRACTLIMITS =
* POSERVICES =
posrvaccessvalues = posrvaccessvalues.
* POSERVICESTEXT =
* EXTENSIONIN =
* EXTENSIONOUT =
* POEXPIMPITEM =
* POEXPIMPITEMX =
* POTEXTHEADER =
* POTEXTITEM =
* ALLVERSIONS =
* POPARTNER =
if ponumber eq space.
loop at return where type = 'E'.
clear buffer.
move-corresponding return to e_return.
concatenate i_header-legacy e_return into buffer.
transfer buffer to p2_file.
endloop.
move-corresponding i_header to i_eheader.
transfer i_eheader to p3_file.
loop at i_items where legacy = i_header-legacy.
move-corresponding i_items to i_eitems.
transfer i_eitems to p4_file.
endloop.
else.
commit work and wait.
endif.
clear:ponumber,header,headerx,item,itemx,account,accountx,limits,return,schedule,schedulex,posrvaccessvalues.
refresh:item,itemx,account,accountx,limits,return,schedule,schedulex,posrvaccessvalues.
endloop.
close dataset p2_file.
close dataset p3_file.
close dataset p4_file.
Regards
Krishna
2009 Apr 22 2:01 PM
Hi new to xi ,
Yes.You can create purchase order through report programming.
You can do it by calling the Function Module BAPI_PO_CREATE by passing the all the maddtory fields.
Regards,
Rama chary.Pammi
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |