‎2007 Jul 24 7:09 AM
Hi Guru's
Can any body give example of bapi used to upload data in sap for particular transaction.
‎2007 Jul 24 7:10 AM
hi
http://help.sap.com/saphelp_46c/helpdata/en/9b/417f07ee2211d1ad14080009b0fb56/frameset.htm
http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html
Checkout !!
http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html
http://techrepublic.com.com/5100-6329-1051160.html#
http://www.sap-img.com/bapi.htm
http://www.sap-img.com/abap/bapi-conventions.htm
http://www.sappoint.com/abap/bapiintro.pdf
http://www.sapgenie.com/abap/bapi/example.htm
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESDE8/BCFESDE8.pdf
rgds
rreshma
‎2007 Jul 24 7:11 AM
BAPI
http://help.sap.com/saphelp_46c/helpdata/en/9b/417f07ee2211d1ad14080009b0fb56/frameset.htm
http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html
Checkout !!
http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html
http://techrepublic.com.com/5100-6329-1051160.html#
http://www.sap-img.com/bapi.htm
http://www.sap-img.com/abap/bapi-conventions.htm
http://www.sappoint.com/abap/bapiintro.pdf
http://www.sapgenie.com/abap/bapi/example.htm
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESDE8/BCFESDE8.pdf
List of all BAPIs
http://www.planetsap.com/LIST_ALL_BAPIs.htm
http://www.sappoint.com/abap/bapiintro.pdf
http://www.sappoint.com/abap/bapiprg.pdf
http://www.sappoint.com/abap/bapiactx.pdf
http://www.sappoint.com/abap/bapilst.pdf
http://www.sappoint.com/abap/bapiexer.pdf
http://www.geocities.com/mpioud/Abap_programs.html
http://www.sapdevelopment.co.uk/reporting/reportinghome.htm
Regards,
Pavan
‎2007 Jul 24 7:11 AM
Hi,
Go through this program:
REPORT zmm_gr_fuel.
PARAMETERS : p_file LIKE rlgrap-filename.
TYPES: BEGIN OF ty_data_format,
header_text1 TYPE char7,
header_text2 TYPE char3,
header_text3 TYPE char3,
header_text4 TYPE char3,
vendor TYPE lifnr,
uplft_date TYPE d,
qnty TYPE erfmg,
ignore TYPE char6,
unload_pt TYPE ablad,
del_no TYPE lfbnr,
bill_of_lad TYPE frbnr_long,
indicator TYPE char1,
END OF ty_data_format.
TYPES: BEGIN OF ty_data_header.
INCLUDE STRUCTURE bapi2017_gm_head_01.
TYPES: END OF ty_data_header.
TYPES: BEGIN OF ty_ekko.
INCLUDE STRUCTURE ekko.
TYPES: END OF ty_ekko.
TYPES: BEGIN OF ty_ekpo.
INCLUDE STRUCTURE ekpo.
TYPES: END OF ty_ekpo.
TYPES: BEGIN OF ty_ekbe.
INCLUDE STRUCTURE ekbe.
TYPES: END OF ty_ekbe.
TYPES: BEGIN OF ty_data_item.
INCLUDE STRUCTURE bapi2017_gm_item_create.
TYPES: END OF ty_data_item.
DATA: it_data TYPE TABLE OF ty_data_format,
return TYPE TABLE OF bapiret2,
wa_return LIKE LINE OF return,
it_data_item TYPE TABLE OF ty_data_item,
it_ekko TYPE TABLE OF ty_ekko,
it_ekpo TYPE TABLE OF ty_ekpo,
it_ekbe TYPE TABLE OF ty_ekbe.
DATA: wa_data LIKE LINE OF it_data,
wa_data_item LIKE LINE OF it_data_item,
wa_data_header TYPE ty_data_header,
wa_ekko LIKE LINE OF it_ekko,
wa_ekpo LIKE LINE OF it_ekpo,
wa_ekbe LIKE LINE OF it_ekbe.
Data Declaration
DATA: goodsmvt_code LIKE bapi2017_gm_code.
INITIALIZATION.
goodsmvt_code-gm_code = '01'.
START-OF-SELECTION.
PERFORM clear_data.
PERFORM upload_file.
PERFORM get_ekko.
PERFORM get_ekpo.
PERFORM make_gr.
*{ INSERT UBDK900068 1
**
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file .
to provide f4 help
*CALL FUNCTION 'F4_FILENAME'
IMPORTING
FILE_NAME = p_file.
*} INSERT
*{ INSERT UBDK900068 2
*Help to Search for the Input file
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
mask = ',.TXT,.txt.'
mode = 'O'
title = ' '
IMPORTING
filename = p_file
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
&----
*& FORM FIND_FILE_PATH
&----
Find the file path
----
--> p1 p_file
----
&----
*& Form clear_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM clear_data .
CLEAR: it_data[],return[],it_data_item[],it_ekbe[],it_ekko[],it_ekpo[].
CLEAR: wa_data,wa_return,wa_data_item,wa_data_header,wa_ekbe, wa_ekpo, wa_ekko.
ENDFORM. " clear_data
&----
*& Form upload_file
&----
text
----
--> p1 text
<-- p2 text
----
FORM upload_file .
DATA: file TYPE string.
file = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = file
has_field_separator = '#'
TABLES
data_tab = it_data
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " upload_file
&----
*& Form get_ekko
&----
text
----
--> p1 text
<-- p2 text
----
FORM get_ekko .
SORT it_data BY vendor.
IF NOT it_data[] IS INITIAL.
SELECT * FROM ekko INTO CORRESPONDING FIELDS OF TABLE it_ekko
FOR ALL ENTRIES IN it_data
WHERE lifnr = it_data-vendor AND bsart = 'ZB'.
ENDIF.
ENDFORM. " get_ekko
&----
*& Form get_ekpo
&----
text
----
--> p1 text
<-- p2 text
----
FORM get_ekpo .
IF NOT it_ekko[] IS INITIAL.
SELECT * FROM ekpo INTO CORRESPONDING FIELDS OF TABLE it_ekpo
FOR ALL ENTRIES IN it_ekko
WHERE ebeln = it_ekko-ebeln.
ENDIF.
ENDFORM. " get_ekpo
&----
*& Form make_gr
&----
text
----
--> p1 text
<-- p2 text
----
FORM make_gr .
DATA: it_ekko_temp TYPE TABLE OF ty_ekko,
wa_ekko_temp LIKE LINE OF it_ekko_temp.
DATA: line_count LIKE sy-tabix.
it_ekko_temp[] = it_ekko[].
REFRESH it_ekko[].
LOOP AT it_data INTO wa_data.
line_count = sy-tabix.
"Date Validation
CONCATENATE wa_data-uplft_date4(4) wa_data-uplft_date2(2) wa_data-uplft_date+0(2)
INTO wa_data-uplft_date.
"READ TABLE it_ekko INTO wa_ekko WITH KEY lifnr = wa_data-vendor.
LOOP AT it_ekko_temp INTO wa_ekko_temp WHERE lifnr = wa_data-vendor.
IF wa_ekko_temp-kdatb <= wa_data-uplft_date AND wa_ekko_temp-kdate >= wa_data-uplft_date.
MOVE-CORRESPONDING wa_ekko_temp TO wa_ekko.
APPEND wa_ekko TO it_ekko.
ENDIF.
ENDLOOP.
"IF sy-subrc = 0 AND wa_ekko-kdatb <= wa_data-uplft_date AND wa_ekko-kdate >= wa_data-uplft_date.
LOOP AT it_ekko INTO wa_ekko.
wa_data_header-pstng_date = wa_data-uplft_date.
wa_data_header-doc_date = sy-datum.
wa_data_header-bill_of_lading = wa_data-bill_of_lad.
wa_data_header-ref_doc_no = wa_data-del_no.
CONCATENATE wa_data-header_text1 '-'
wa_data-header_text2 '-'
wa_data-header_text3 '-'
wa_data-header_text4
into wa_data_header-HEADER_TXT.
IF wa_data-indicator = 'Y'.
wa_data_item-material = '000000000000200568'.
ELSE.
wa_data_item-material = '000000000000200566'.
ENDIF.
LOOP AT it_ekpo INTO wa_ekpo WHERE ebeln = wa_ekko-ebeln AND matnr = wa_data_item-material.
"Collect Item Level Data
wa_data_item-plant = '1000'.
wa_data_item-stge_loc = '1001'.
wa_data_item-move_type = '101'.
wa_data_item-vendor = wa_data-vendor.
wa_data-qnty = wa_data-qnty / 1000.
wa_data_item-entry_qnt = wa_data-qnty.
wa_data_item-po_pr_qnt = wa_data-qnty.
wa_data_item-entry_uom = 'KL'.
wa_data_item-entry_uom_iso = 'KL'.
wa_data_item-orderpr_un = 'KL'.
wa_data_item-orderpr_un_iso = 'KL'.
wa_data_item-no_more_gr = 'X'.
wa_data_item-po_number = wa_ekpo-ebeln.
wa_data_item-po_item = wa_ekpo-ebelp.
wa_data_item-unload_pt = wa_data-unload_pt.
wa_data_item-mvt_ind = 'B'.
APPEND wa_data_item TO it_data_item.
CLEAR wa_data_item.
ENDLOOP.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header = wa_data_header
goodsmvt_code = goodsmvt_code
testrun = 'X'
TABLES
goodsmvt_item = it_data_item
return = return.
READ TABLE return INTO wa_return WITH KEY type = 'S'.
IF sy-subrc <> 0.
DESCRIBE TABLE return LINES sy-tfill.
IF sy-tfill = 0.
CALL FUNCTION <b>'BAPI_GOODSMVT_CREATE'</b>
EXPORTING
goodsmvt_header = wa_data_header
goodsmvt_code = goodsmvt_code
testrun = ' '
TABLES
goodsmvt_item = it_data_item
return = return.
CALL FUNCTION <b>'BAPI_TRANSACTION_COMMIT'</b> EXPORTING
WAIT = 'X'
IMPORTING
RETURN =
.
ENDIF.
ENDIF.
LOOP AT return INTO wa_return.
WRITE: 'Messsage TYPE ', wa_return-type,
/,'ID ', wa_return-id,
/, 'Number ', wa_return-number,
/, 'Message ', wa_return-message,
/, 'Long Text ', wa_return-message_v1,
wa_return-message_v2,
wa_return-message_v3,
wa_return-message_v4,
/, 'Failed at line', line_count.
ENDLOOP.
CLEAR: wa_ekko, wa_ekpo, wa_data, it_data_item[], wa_data_header.
ENDLOOP.
REFRESH it_ekko[].
"ENDIF.
ENDLOOP.
ENDFORM. " make_gr
Reward if useful!
‎2007 Jul 24 7:12 AM
Hi Rohit,
I have a very good program for this.
please give me ur id so that i can forward it to u..
Regards,
Sapna
‎2007 Jul 24 7:12 AM
Hi
see this sample code
Check this example of creating a sales order and for creating delivery...and PGI
************SALES ORDER INPUT CREATION.
PARAMETERS: p_auart TYPE auart OBLIGATORY.
PARAMETERS: p_vkorg TYPE vkorg OBLIGATORY.
PARAMETERS: p_vtweg TYPE vtweg OBLIGATORY.
PARAMETERS: p_spart TYPE vtweg OBLIGATORY.
PARAMETERS: p_sold TYPE kunnr OBLIGATORY.
PARAMETERS: p_ship TYPE kunnr OBLIGATORY.
*ITEM
PARAMETERS: p_matnr TYPE matnr OBLIGATORY.
PARAMETERS: p_menge TYPE kwmeng OBLIGATORY.
PARAMETERS: p_plant TYPE werks_d OBLIGATORY.
PARAMETERS: p_itcat TYPE pstyv OBLIGATORY.
DATA DECLARATIONS.
DATA: v_vbeln LIKE vbak-vbeln.
DATA: header LIKE bapisdhead1.
DATA: headerx LIKE bapisdhead1x.
DATA: item LIKE bapisditem OCCURS 0 WITH HEADER LINE.
DATA: itemx LIKE bapisditemx OCCURS 0 WITH HEADER LINE.
DATA: partner LIKE bapipartnr OCCURS 0 WITH HEADER LINE.
DATA: return LIKE bapiret2 OCCURS 0 WITH HEADER LINE.
DATA: lt_schedules_inx TYPE STANDARD TABLE OF bapischdlx
WITH HEADER LINE.
DATA: lt_schedules_in TYPE STANDARD TABLE OF bapischdl
WITH HEADER LINE.
HEADER DATA
header-doc_type = p_auart.
headerx-doc_type = 'X'.
header-sales_org = p_vkorg.
headerx-sales_org = 'X'.
header-distr_chan = p_vtweg.
headerx-distr_chan = 'X'.
header-division = p_spart.
headerx-division = 'X'.
headerx-updateflag = 'I'.
PARTNER DATA
partner-partn_role = 'AG'.
partner-partn_numb = p_sold.
APPEND partner.
partner-partn_role = 'WE'.
partner-partn_numb = p_ship.
APPEND partner.
ITEM DATA
itemx-updateflag = 'I'.
item-itm_number = '000010'.
itemx-itm_number = 'X'.
item-material = p_matnr.
itemx-material = 'X'.
item-plant = p_plant.
itemx-plant = 'X'.
item-target_qty = p_menge.
itemx-target_qty = 'X'.
item-target_qu = 'EA'.
itemx-target_qu = 'X'.
item-item_categ = p_itcat.
itemx-item_categ = 'X'.
APPEND item.
APPEND itemx.
Fill schedule lines
lt_schedules_in-itm_number = '000010'.
lt_schedules_in-sched_line = '0001'.
lt_schedules_in-req_qty = p_menge.
APPEND lt_schedules_in.
Fill schedule line flags
lt_schedules_inx-itm_number = '000010'.
lt_schedules_inx-sched_line = '0001'.
lt_schedules_inx-updateflag = 'X'.
lt_schedules_inx-req_qty = 'X'.
APPEND lt_schedules_inx.
Call the BAPI
CALL FUNCTION 'BAPI_SALESDOCU_CREATEFROMDATA1'
EXPORTING
sales_header_in = header
sales_header_inx = headerx
IMPORTING
salesdocument_ex = v_vbeln
TABLES
return = return
sales_items_in = item
sales_items_inx = itemx
sales_schedules_in = lt_schedules_in
sales_schedules_inx = lt_schedules_inx
sales_partners = partner.
Check the return table.
LOOP AT return WHERE type = 'E' OR type = 'A'.
EXIT.
ENDLOOP.
IF sy-subrc = 0.
WRITE: / 'Error in creating document'.
ELSE.
COMMIT WORK AND WAIT.
WRITE: / 'Document ', v_vbeln, ' created'.
ENDIF.
************DELIVERY CREATION.
DATA: BEGIN OF t_vbap OCCURS 0,
vbeln LIKE vbap-vbeln,
posnr LIKE vbap-posnr,
zmeng LIKE vbap-kwmeng,
matnr LIKE vbap-matnr,
werks LIKE vbap-werks,
END OF t_vbap.
DATA: t_request TYPE STANDARD TABLE OF bapideliciousrequest
WITH HEADER LINE.
DATA: t_created TYPE STANDARD TABLE OF bapideliciouscreateditems
WITH HEADER LINE.
DATA: t_return TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE.
SELECT vbeln posnr zmeng matnr werks
INTO TABLE t_vbap
FROM vbap
WHERE vbeln = v_vbeln.
LOOP AT t_vbap.
t_request-document_numb = t_vbap-vbeln.
t_request-document_item = t_vbap-posnr.
t_request-quantity_sales_uom = t_vbap-zmeng.
t_request-quantity_base__uom = t_vbap-zmeng.
t_request-id = 1.
t_request-document_type = 'A'.
t_request-delivery_date = sy-datum.
t_request-material = t_vbap-matnr.
t_request-plant = t_vbap-werks.
t_request-date = sy-datum.
t_request-goods_issue_date = sy-datum.
t_request-goods_issue_time = sy-uzeit.
APPEND t_request.
ENDLOOP.
CALL FUNCTION 'BAPI_DELIVERYPROCESSING_EXEC'
TABLES
request = t_request
createditems = t_created
return = t_return.
READ TABLE t_return WITH KEY type = 'E'.
IF sy-subrc = 0.
MESSAGE e208(00) WITH 'Delivery creation error'.
ENDIF.
COMMIT WORK.
*
************Post goods issue.
READ TABLE t_created INDEX 1.
DATA: vbkok_wa TYPE vbkok.
vbkok_wa-vbeln_vl = t_created-document_numb.
vbkok_wa-wabuc = 'X'.
DATA: v_error.
CALL FUNCTION 'WS_DELIVERY_UPDATE'
EXPORTING
vbkok_wa = vbkok_wa
delivery = t_created-document_numb
IMPORTING
ef_error_in_goods_issue_0 = v_error.
COMMIT WORK.
Please try this link
http://www.erpgenie.com/abap/bapi/example.htm
<b>Reward points if useful</b>
Regards
Ashu
‎2007 Jul 24 7:14 AM
Hi,
check this link.... u will get all help from this code..BAPI_GOODSMVT_CREATE
<b>http://sap4.com/wiki/index.php?title=BAPI_GOODSMVT_CREATE&printable=yes</b>
List of all BAPIs
http://www.planetsap.com/LIST_ALL_BAPIs.htm
http://www.sappoint.com/abap/bapiintro.pdf
http://www.sappoint.com/abap/bapiprg.pdf
http://www.sappoint.com/abap/bapiactx.pdf
http://www.sappoint.com/abap/bapilst.pdf
http://www.sappoint.com/abap/bapiexer.pdf
http://www.geocities.com/mpioud/Abap_programs.html
http://www.sapdevelopment.co.uk/reporting/reportinghome.htm
Regards
‎2007 Jul 24 7:16 AM
Hi,
Use the following for Transaction VA01.
data:
l_i_ret TYPE STANDARD TABLE OF bapiret2, "Return
l_i_schdl TYPE STANDARD TABLE OF bapischdl, "Schedule line
l_i_partners TYPE STANDARD TABLE OF bapiparnr, "Partner
l_i_orderitems TYPE STANDARD TABLE OF bapisditm, "Item
l_rec_orderhd TYPE bapisdhd1.
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
order_header_in = l_rec_orderhd
IMPORTING
salesdocument = l_vbeln
TABLES
return = l_i_ret
order_items_in = l_i_orderitems
order_partners = l_i_partners
order_schedules_in = l_i_schdl.
You can use this to create the sales documents.
For more Info,
https://wiki.sdn.sap.com/wiki/display/Snippets/ABAP-Simpleprogramtocreatesalesorderusing+BAPI
Regards,
Padmam.
‎2007 Jul 24 8:46 AM