‎2007 Aug 24 11:56 AM
‎2007 Aug 24 11:58 AM
follow these links
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,
srinivas
<b>*reward for useful answers*</b>
‎2007 Aug 24 11:59 AM
Hi Satish,
In Simpler terms BAPI's are Function Module assigned to OBJECTS. The functionality is similar to a function module..
Check the link given below:
http://help.sap.com/saphelp_470/helpdata/en/e0/9eb2370f9cbe68e10000009b38f8cf/frameset.htm
Reward if helpful.
Best Regards,
Ram.
‎2007 Aug 24 12:00 PM
Hi
BAPI is a medium of converting npn sap system to sap system by converting data. Its not screen dependent like BDC. BAPI acts as function modules in which you have to transfer data through internal tables.
If you need any particular information of BAPI then let me know.
Aditya
‎2007 Aug 24 12:00 PM
Hi,
There is lot of help on SDN.
But for your knowledge in brief i can tell you,
1. Through BAPI transaction you can find list of bapis.
2. Its business interface Function modules using RFC.
3. You can take data from SAP and NON-SAP systems.
4. Like ususal Function Module , you can call BAPI in Reports.
5. From SE37, you can check documentation of parameters for perticular BAPI.
6. Search SDN for examples.
Reward if useful!
‎2007 Aug 24 12:28 PM
Hi satish,
this question comes every week a couple of times. Let us know what you expected to find when searching this forum or other internet resources and what you did not find.
In short:
BAPIS are function modules replacing transaction functionalities. They can be called from outside SAP and so they never have any screen I/O.
Most BAPI parameters, mainly internal TABLES, come in pairs, one is called PARAM and the second PRAMX. In PARAMX you have the same field names as in PARAM, but PRAMX fields are flags. If you want a certaiin PARAM field to be used (inserted, changed, deleted) then the PARAMX field must be set to 'X'.
RETURN parameter of BAPI contains oe or more messages, TYPE E means failure.
Look at this FORM calling a (slightly modified) BAPI for SD order creation. It is incomplete but shows how to proceed:
*&---------------------------------------------------------------------*
*& Form bapi_create_sales_document
*&---------------------------------------------------------------------*
* Create order from IDOC data using BAPI in own system
* store non-standard referemce data to database
* write messages to protocol
* append IDOC status table
*----------------------------------------------------------------------*
FORM bapi_create_sales_document
USING ps_edidc TYPE edidc
pt_idoc_head TYPE ty_t_idoc_head
pt_item_w_cond TYPE ty_t_item_w_cond
pt_idoc_par TYPE ty_t_idoc_par
pt_idoc_hcond TYPE ty_t_idoc_hcond
pr_sbal TYPE REF TO /well/u_cl_sbal
CHANGING pt_idoc_status TYPE ty_t_bdidocstat.
DATA:
lv_subrc TYPE sysubrc,
lv_vbeln TYPE vbeln,
lv_msg TYPE string, "#EC NEEDED
ls_order_header_in TYPE bapisdhd1,
ls_order_header_inx TYPE bapisdhd1x,
lt_order_items_in TYPE TABLE OF bapisditm,
lt_order_items_inx TYPE TABLE OF bapisditmx,
lt_order_schdl TYPE TABLE OF bapischdl,
lt_order_schdlx TYPE TABLE OF bapischdlx,
lt_order_partners TYPE TABLE OF bapiparnr,
lt_order_conditions TYPE TABLE OF bapicond,
lt_order_text TYPE TABLE OF bapisdtext,"***CCC
lt_return TYPE TABLE OF bapiret2,
ls_tvak TYPE tvak,
lv_vbtyp TYPE vbtyp,
lv_oj_name TYPE oj_name,"biz object <==> VBTYP
lt_idoc_par TYPE ty_t_idoc_par,
lt_item_w_cond TYPE ty_t_item_w_cond.
FIELD-SYMBOLS:
<idoc_head> TYPE LINE OF ty_t_idoc_head,
<idoc_par> TYPE LINE OF ty_t_idoc_par,
<return> TYPE bapiret2.
* pre-precondition NPAX must have a document number
PERFORM check_npax_number_given
USING pt_idoc_head
ps_edidc
gr_sbal
CHANGING pt_idoc_status
lv_subrc.
CHECK lv_subrc = 0.
* Precondition for document creation: NPAX order unique in SAP
PERFORM check_npax_unique
USING pt_idoc_head
pt_idoc_par
ps_edidc
gr_sbal
CHANGING pt_idoc_status
lv_subrc.
CHECK lv_subrc = 0.
* provide IDOC header data
READ TABLE pt_idoc_head INDEX 1 ASSIGNING <idoc_head>.
* Partner segments without customer number to be ignored
* From here on, use local copy of idoc segments
lt_idoc_par = pt_idoc_par.
LOOP AT lt_idoc_par ASSIGNING <idoc_par>
WHERE kunnr IS initial.
MESSAGE i117 WITH <idoc_par>-parvw INTO lv_msg.
* Partner segment & without partner number ignored
PERFORM log_symsg USING pr_sbal.
DELETE lt_idoc_par.
ENDLOOP." AT lt_idoc_par ASSIGNING <idoc_par>
* Precondition for document creation: Mapping possible
PERFORM check_mapping_validity
USING ps_edidc
pt_idoc_head
pt_item_w_cond
lt_idoc_par
pt_idoc_hcond
pr_sbal
CHANGING pt_idoc_status
lv_subrc.
CHECK lv_subrc = 0.
* special NPAX conditions like markup comes as header conditions
* Those conditions are transferred into 'virtual' items
*
* first transfer idoc item data to local table an use it
lt_item_w_cond = pt_item_w_cond.
PERFORM create_items_4_head_conditions
USING pt_idoc_hcond
CHANGING lt_item_w_cond.
* decide: Order or Return
PERFORM tvak_get_single
USING <idoc_head>-auart
CHANGING ls_tvak.
lv_vbtyp = ls_tvak-vbtyp .
PERFORM prepare_header
USING pt_idoc_head
lt_idoc_par
CHANGING ls_order_header_in ls_order_header_inx.
PERFORM prepare_header_text
USING ls_order_header_in
<idoc_head>-text1
<idoc_head>-text2
CHANGING lt_order_text.
* Item data with schedule lines and conditions
PERFORM prepare_item_complete
USING lt_item_w_cond
ls_order_header_in
pr_sbal
<idoc_head>
CHANGING lt_order_items_in
lt_order_items_inx
lt_order_schdl
lt_order_schdlx
lt_order_conditions
lt_order_text.
PERFORM prepare_partners
USING lt_idoc_par
<idoc_head>-bukrs
ls_order_header_in
CHANGING lt_order_partners.
* Master Data Check:
* Actual: Destination Country correct in customer master of recipient
* PERFORM check_master_data
* USING ps_edidc
* lt_order_partners
* <idoc_head>-bukrs
* ls_order_header_in
* gr_sbal
* CHANGING pt_idoc_status
* lv_subrc.
* CHECK lv_subrc = 0.
* Not nice but necessary: herader needed for partners,
* partners needed for tax classification
* so header ist to be read and modified again here
PERFORM determine_taxk1
USING lt_order_partners
CHANGING ls_order_header_in
ls_order_header_inx.
PERFORM prepare_head_conditions
USING pt_idoc_hcond
ls_order_header_in-currency
CHANGING lt_order_conditions.
CASE lv_vbtyp.
WHEN gc_vbtyp_order.
lv_oj_name = 'BUS2032'.
WHEN gc_vbtyp_return.
lv_oj_name = 'BUS2102'.
WHEN gc_vbtyp_credit_req.
lv_oj_name = 'BUS2094'.
WHEN gc_vbtyp_debit_req.
lv_oj_name = 'BUS2096'.
WHEN OTHERS.
* no good
ENDCASE." lv_vbtyp.
* Inform sub-processes and user-exits: This is NPAX
PERFORM zz_srv_set_npax_memory_str
USING pt_idoc_head.
CALL FUNCTION '/WELL/V_BAPI_SD_SALESDOC_CREAT'
EXPORTING
* SALESDOCUMENTIN =
order_header_in = ls_order_header_in
order_header_inx = ls_order_header_inx
* SENDER =
* BINARY_RELATIONSHIPTYPE =
* INT_NUMBER_ASSIGNMENT =
* BEHAVE_WHEN_ERROR =
* LOGIC_SWITCH =
* TESTRUN =
* CONVERT = ' '
business_object = lv_oj_name
IMPORTING
salesdocument = lv_vbeln
TABLES
return = lt_return
order_items_in = lt_order_items_in
order_items_inx = lt_order_items_inx
order_partners = lt_order_partners
order_schedules_in = lt_order_schdl
order_schedules_inx = lt_order_schdlx
order_conditions_in = lt_order_conditions
* ORDER_CFGS_REF =
* ORDER_CFGS_INST =
* ORDER_CFGS_PART_OF =
* ORDER_CFGS_VALUE =
* ORDER_CFGS_BLOB =
* ORDER_CFGS_VK =
* ORDER_CFGS_REFINST =
* ORDER_CCARD =
order_text = lt_order_text
* ORDER_KEYS =
* EXTENSIONIN =
* PARTNERADDRESSES =
.
PERFORM npax_data_save
USING ps_edidc-docnum "Idoc number
pt_idoc_head "IDOC header segment (4 filenmame)
lt_idoc_par "partners for role AG - Kunnr NPAX
ls_order_header_in "Document header data BAPI-processed
lt_item_w_cond "IDOC items (ref MWST etc...)
lt_order_items_in "IDOC items data BAPI-processed
lt_order_conditions "document condition table
lv_vbeln. "Doc num created and BAPI-returned
LOOP AT lt_return ASSIGNING <return>.
MESSAGE
ID <return>-id
TYPE <return>-type
NUMBER <return>-number
WITH <return>-message_v1
<return>-message_v2
<return>-message_v3
<return>-message_v4
INTO lv_msg.
PERFORM log_symsg USING pr_sbal.
ENDLOOP."t lt_return assigning <return>.
PERFORM append_idoc_status_bapi
USING ps_edidc
lt_return
CHANGING pt_idoc_status.
ENDFORM. " bapi_create_sales_document
Regards,
Clemens