‎2009 Feb 19 1:12 AM
Hi,
Could somebody please give me sample code to post Purchase order aganist Contract?
Thanks
sarath
‎2009 Feb 19 3:03 AM
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
‎2009 Feb 19 3:03 AM
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
‎2009 Feb 19 3:10 AM
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
‎2009 Feb 19 3:10 AM