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

BAPI_PO_CREATE

Former Member
0 Likes
670

Hi,

Could somebody please give me sample code to post Purchase order aganist Contract?

Thanks

sarath

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
590

Check this Code.... might be helpful..

CALL FUNCTION 'BAPI_PO_CREATE'

EXPORTING

PO_HEADER = PO_HEADER

PO_HEADER_ADD_DATA = PO_HEADER_ADD_DATA

HEADER_ADD_DATA_RELEVANT = HEADER_ADD_DATA_RELEVANT

PO_ADDRESS = PO_ADDRESS

SKIP_ITEMS_WITH_ERROR = SKIP_ITEMS_WITH_ERROR

ITEM_ADD_DATA_RELEVANT = ITEM_ADD_DATA_RELEVANT

IMPORTING

PURCHASEORDER = PURCHASEORDER

TABLES

PO_ITEMS = PO_ITEMS

PO_ITEM_ADD_DATA = PO_ITEM_ADD_DATA

PO_ITEM_SCHEDULES = PO_ITEM_SCHEDULES

PO_ITEM_ACCOUNT_ASSIGNMENT = PO_ITEM_ACCOUNT_ASSIGNMENT

PO_ITEM_TEXT = PO_ITEM_TEXT

RETURN = RETURN

PO_LIMITS = PO_LIMITS

PO_CONTRACT_LIMITS = PO_CONTRACT_LIMITS

PO_SERVICES = PO_SERVICES

PO_SRV_ACCASS_VALUES = PO_SRV_ACCASS_VALUES

PO_SERVICES_TEXT = PO_SERVICES_TEXT

PO_BUSINESS_PARTNER = PO_BUSINESS_PARTNER

EXTENSIONIN = EXTENSIONIN

POADDRDELIVERY = POADDRDELIVERY

EXCEPTIONS

OTHERS = 1.

regards

3 REPLIES 3
Read only

Former Member
0 Likes
591

Check this Code.... might be helpful..

CALL FUNCTION 'BAPI_PO_CREATE'

EXPORTING

PO_HEADER = PO_HEADER

PO_HEADER_ADD_DATA = PO_HEADER_ADD_DATA

HEADER_ADD_DATA_RELEVANT = HEADER_ADD_DATA_RELEVANT

PO_ADDRESS = PO_ADDRESS

SKIP_ITEMS_WITH_ERROR = SKIP_ITEMS_WITH_ERROR

ITEM_ADD_DATA_RELEVANT = ITEM_ADD_DATA_RELEVANT

IMPORTING

PURCHASEORDER = PURCHASEORDER

TABLES

PO_ITEMS = PO_ITEMS

PO_ITEM_ADD_DATA = PO_ITEM_ADD_DATA

PO_ITEM_SCHEDULES = PO_ITEM_SCHEDULES

PO_ITEM_ACCOUNT_ASSIGNMENT = PO_ITEM_ACCOUNT_ASSIGNMENT

PO_ITEM_TEXT = PO_ITEM_TEXT

RETURN = RETURN

PO_LIMITS = PO_LIMITS

PO_CONTRACT_LIMITS = PO_CONTRACT_LIMITS

PO_SERVICES = PO_SERVICES

PO_SRV_ACCASS_VALUES = PO_SRV_ACCASS_VALUES

PO_SERVICES_TEXT = PO_SERVICES_TEXT

PO_BUSINESS_PARTNER = PO_BUSINESS_PARTNER

EXTENSIONIN = EXTENSIONIN

POADDRDELIVERY = POADDRDELIVERY

EXCEPTIONS

OTHERS = 1.

regards

Read only

Former Member
0 Likes
590

Hello

check this code may helpful u......

report ztest_141

line-size 132

line-count 65

no standard page heading.

*---- Structure: PO Header

data: begin of bapiekkoc.

include structure bapiekkoc.

data: end of bapiekkoc.

*---- PO Header Additional Data

data: begin of bapiekkoa.

include structure bapiekkoa.

data: end of bapiekkoa.

*---- Transfer Structure: Create PO Item

data: begin of bapiekpoc occurs 0.

include structure bapiekpoc.

data: end of bapiekpoc.

*---- Transfer Structure: PO Item Additional Data

data: begin of bapiekpoa occurs 0.

include structure bapiekpoa.

data: end of bapiekpoa.

*---- Transfer Structure: Display/List PO Schedule

data: begin of bapieket occurs 0.

include structure bapieket.

data: end of bapieket.

*---- Transfer Structure: Display/List:

data: begin of bapiekkn occurs 0.

include structure bapiekkn.

data: end of bapiekkn.

*---- Transfer Structure: Create PO Item Text

data: begin of bapiekpotx occurs 0.

include structure bapiekpotx.

data: end of bapiekpotx.

*---- Structure to hold the function call return code

data: begin of bapireturn1 occurs 0.

include structure bapireturn.

data: end of bapireturn1.

*---- Internal table to store the success messages

data: begin of itab_message occurs 0,

vbeln like bapiekkoc-po_number,

mess(50) type c,

end of itab_message.

*---- Internal table to store the error messages

data: begin of itab_error occurs 0.

include structure bapireturn.

data: end of itab_error.

*---- Variables

data: vbeln like bapiekkoc-po_number.

at selection-screen.

*==================

        • Validate the screen selection parameters here.

top-of-page.

*===========

        • Print the page Header here.

format color col_heading.

write : / 'REPORT OUTPUT :', /.

format color off.

start-of-selection.

*==================

perform read_input_file.

perform map_input_data.

end-of-selection.

*================

        • Print the audit report here.

*---- write out the error messages

loop at itab_error.

if sy-tabix = 1.

format color col_negative.

write : / 'ERROR REPORT',

/.

format color off.

endif.

write / itab_error.

endloop.

*---- Write out the success messages

loop at itab_message.

if sy-tabix = 1.

format color col_positive.

write : /,

/ 'SUCCESS REPORT',

/.

format color off.

endif.

write : / itab_message.

endloop.

&----


*& Form READ_INPUT_FILE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form read_input_file.

&----


*& Form MAP_INPUT_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form map_input_data.

*---- Map all the input file fields with the bapi structures and build

*---- the loop and refresh logic to process multiple records

perform fill_bapiekkoc.

perform fill_bapiekkoa.

perform fill_bapiekpoc.

perform fill_bapiekpoa.

perform fill_bapieket.

perform fill_bapiekkn.

perform fill_bapiekpotx.

*----CALL THE FUNCTION TO CREATE THE PURCHASEORDER

perform call_create_purchaseorder.

endform. " MAP_INPUT_DATA

&----


*& Form CALL_CREATE_PURCHASEORDER

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form call_create_purchaseorder.

call function 'BAPI_PO_CREATE'

exporting

po_header = bapiekkoc

po_header_add_data = bapiekkoa

importing

purchaseorder = vbeln

tables

po_items = bapiekpoc

po_item_schedules = bapieket

return = bapireturn1

exceptions

others = 1.

if sy-subrc = 0.

clear bapireturn1.

read table bapireturn1 index 1.

if bapireturn1-type = ' ' or bapireturn1-type = 'S'.

clear itab_message.

move vbeln to itab_message-vbeln.

move ' : PURCHASEORDER CREATED SUCCESSFULLY' to itab_message-mess.

append itab_message.

else.

clear itab_error.

move bapireturn1 to itab_error.

append itab_error.

endif.

else.

write : / 'ERROR IN FUNCTION CALL'.

exit.

endif.

endform. " CALL_CREATE_PURCHASEORDER

&----


*& Form FILL_BAPIEKKOC

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form fill_bapiekkoc.

clear bapiekkoc.

bapiekkoc-doc_type = 'NB'.

*move itab- to bapiekkoc-DOC_CAT.

*move itab- to bapiekkoc-CO_CODE.

bapiekkoc-purch_org = '1000'.

bapiekkoc-pur_group = '001'.

*move itab- to bapiekkoc-AGREEMENT.

bapiekkoc-vendor = 'SCM550-12'.

*move itab- to bapiekkoc-SUPPL_PLNT.

*move itab- to bapiekkoc-CREATED_BY.

endform. " FILL_BAPIEKKOC

&----


*& Form FILL_BAPIEKKOA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form fill_bapiekkoa.

clear bapiekkoa.

*----Build the move statements here

bapiekkoa-ref_1 = 'SALES PERSON'.

bapiekkoa-our_ref = 'OUR REFE'.

*move itab- to bapiekkoa-SALES_PERS.

*move itab- to bapiekkoa-TELEPHONE.

*move itab- to bapiekkoa-TRNSP_MODE.

*move itab- to bapiekkoa-CUSTOMS.

endform. " FILL_BAPIEKKOA

&----


*& Form FILL_BAPIEKPOC

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form fill_bapiekpoc.

clear bapiekpoc.

*---- build the move statements here

*move itab- to bapiekpoc-PO_NUMBER.

bapiekpoc-po_item = '00010'.

*move itab- to bapiekpoc-ADDRESS.

bapiekpoc-material = '2044'. "'AM2-401'.

bapiekpoc-pur_mat = '2044'. "'AM2-401'.

*move itab- to bapiekpoc-INFO_REC.

*move itab- to bapiekpoc-ITEM_CAT.

*move itab- to bapiekpoc-ACCTASSCAT.

*move itab- to bapiekpoc-AGREEMENT.

*move itab- to bapiekpoc-AGMT_ITEM.

bapiekpoc-store_loc = ' '.

*move itab- to bapiekpoc-MAT_GRP.

*move itab- to bapiekpoc-SHORT_TEXT.

*move itab- to bapiekpoc-DISTRIB.

*move itab- to bapiekpoc-PART_INV.

*move itab- to bapiekpoc-KANBAN_IND.

bapiekpoc-plant = '1000'.

*move itab- to bapiekpoc-ALLOC_TBL.

*move itab- to bapiekpoc-AT_ITEM.

bapiekpoc-unit = 'PC'.

bapiekpoc-net_price = '100000'.

bapiekpoc-price_unit = '5'.

*move itab- to bapiekpoc-CONV_NUM1.

*move itab- to bapiekpoc-CONV_DEN1.

bapiekpoc-orderpr_un = 'PC' .

*bapiekpoc-QUANTITY = '20'.

*move itab- to bapiekpoc-PCKG_NO.

*move itab- to bapiekpoc-PROMOTION.

*move itab- to bapiekpoc-ACKN_REQD.

*move itab- to bapiekpoc-TRACKINGNO.

*move itab- to bapiekpoc-PLAN_DEL.

*move itab- to bapiekpoc-RET_ITEM.

*move itab- to bapiekpoc-AT_RELEV.

*move itab- to bapiekpoc-VEND_MAT.

*move itab- to bapiekpoc-MANUF_PROF.

*move itab- to bapiekpoc-MANU_MAT.

*move itab- to bapiekpoc-mFR_NO.

*move itab- to bapiekpoc-mFR_NO_EXT.

*move itab- to bapiekpoc-pO_PRICE.

*move itab- to bapiekpoc-sHIPPING.

*bapiekpoc-DISP_QUAN = '10'.

append bapiekpoc.

endform. " FILL_BAPIEKPOC

&----


*& Form FILL_BAPIEKPOA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form fill_bapiekpoa.

clear bapiekpoa.

*---- build the move statements here

*move itab- to bapiekpoa-INFO_UPD.

*move itab- to bapiekpoa-REMINDER1.

*move itab- to bapiekpoa-REMINDER2.

*move itab- to bapiekpoa-REMINDER3.

*move itab- to bapiekpoa-OVERDELTOL.

*move itab- to bapiekpoa-UNLIMITED.

*move itab- to bapiekpoa-UNDER_TOL.

*move itab- to bapiekpoa-GR_IND.

*move itab- to bapiekpoa-GR_NON_VAL.

*move itab- to bapiekpoa-IR_IND.

*move itab- to bapiekpoa-DEL_COMPL.

*move itab- to bapiekpoa-FINAL_INV.

*move itab- to bapiekpoa-BUS_TRANST.

*move itab- to bapiekpoa-EXPIMPPROC.

*move itab- to bapiekpoa-COMM_CODE.

*move itab- to bapiekpoa-REG_ORIGIN.

*move itab- to bapiekpoa-COUNT_ORIG.

append bapiekpoa.

endform. " FILL_BAPIEKPOA

&----


*& Form FILL_BAPIEKET

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form fill_bapieket.

clear bapieket.

*---- build the move statements here

bapieket-po_item = '000010'.

*move itab- to bapieket-SERIAL_NO.

*move itab- to bapieket-DEL_DATCAT.

bapieket-deliv_date = sy-datum.

*move itab- to bapieket-DELIV_TIME.

*bapieket-QUANTITY = '2'.

*move itab- to bapieket-PREQ_NO.

*move itab- to bapieket-PREQ_ITEM.

*move itab- to bapieket-CREATE_IND.

*move itab- to bapieket-QUOTA_NO.

*move itab- to bapieket-QUOTA_ITEM.

*move itab- to bapieket-BOMEXPL_NO.

*move itab- to bapieket-RESERV_NO.

*move itab- to bapieket-BATCH.

*move itab- to bapieket-VEND_BATCH.

*move itab- to bapieket-VERSION.

append bapieket.

endform. " FILL_BAPIEKET

&----


*& Form FILL_BAPIEKKN

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form fill_bapiekkn.

clear bapiekkn.

*---- build the move statements here

bapiekkn-po_item = '000010'.

*move itab- to bapiekkn-SERIAL_NO.

bapiekkn-quantity = '2'.

*move itab- to bapiekkn-DISTR_PERC.

*move itab- to bapiekkn-G_L_ACCT.

*move itab- to bapiekkn-BUS_AREA.

*move itab- to bapiekkn-COST_CTR.

*move itab- to bapiekkn-PROJ_EXT.

*move itab- to bapiekkn-SD_DOC.

*move itab- to bapiekkn-SDOC_ITEM.

*move itab- to bapiekkn-SCHED_LINE.

*move itab- to bapiekkn-ASSET_NO.

*move itab- to bapiekkn-SUB_NUMBER.

*move itab- to bapiekkn-ORDER_NO.

*move itab- to bapiekkn-GR_RCPT.

*move itab- to bapiekkn-UNLOAD_PT.

*move itab- to bapiekkn-CO_AREA.

*move itab- to bapiekkn-TO_COSTCTR.

*move itab- to bapiekkn-TO_ORDER.

*move itab- to bapiekkn-TO_PROJECT.

*move itab- to bapiekkn-COST_OBJ.

*move itab- to bapiekkn-PROF_SEGM.

*move itab- to bapiekkn-PROFIT_CTR.

*move itab- to bapiekkn-WBS_ELEM_E.

*move itab- to bapiekkn-NETWORK.

*move itab- to bapiekkn-ROUTING_NO.

*move itab- to bapiekkn-RL_EST_KEY.

*move itab- to bapiekkn-COUNTER.

*move itab- to bapiekkn-PART_ACCT.

*move itab- to bapiekkn-CMMT_ITEM.

*move itab- to bapiekkn-REC_IND.

*move itab- to bapiekkn-FUNDS_CTR.

*move itab- to bapiekkn-FUND.

*move itab- to bapiekkn-FUNC_AREA.

*move itab- to bapiekkn-REF_DATE.

*move itab- to bapiekkn-Activity.

append bapiekkn.

endform. " FILL_BAPIEKKN

&----


*& Form FILL_BAPIEKPOTX

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form fill_bapiekpotx.

clear bapiekpotx.

*---- build the move statements here

*move itab- to bapiekpotx-PO_NUMBER.

*move itab- to bapiekpotx-PO_ITEM.

*move itab- to bapiekpotx-TEXT_ID.

*move itab- to bapiekpotx-TEXT_FORM.

*move itab- to bapiekpotx-TEXT_LINE.

append bapiekpotx.

endform. " FILL_BAPIEKPOTX

Thank u,

santhosh

Read only

former_member632729
Contributor
0 Likes
590

Hi Dude,

Go through this link : [;

link;[;

Link:[http://www.sapmaterial.com/create_po.html]