Hi Gurus : about BAPI
Hi GURUS,
I want to extract customer general data,customer sales data,customer company code data, customer partner rolls data...so could any body suggest me BAPI available for this.....available one bapi ?
Pls suggest it would be great helpful to me..
Thank
Lakshmi
Hi Lakshmi,
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://service.sap.com/ale
http://service.sap.com/bapi
http://www.planetsap.com/Bapi_main_page.htm
http://www.topxml.com/sap/sap_idoc_xml.asp
http://www.sapdevelopment.co.uk/
http://www.sapdevelopment.co.uk/java/jco/bapi_jco.pdf
Regards,
Priyanka.
Similar Messages
-
Hi,everyone.
Now i want to use JCo and BAPI to execute a function(create sales order ps:transaction code is VA01).
How do i to find the BAPI that i need?
And where can i find some documents about BAPI?
Thx~~ a lot
PS:if this topic isn`t suitable in Java Programming,plz tell me thx ,^^
by LouisHI Louis,
You can find out the bapis , by running transaction -bapi (Bapi Explorer).
Here u get a list of standard BAPI's given by SAP.
u can select appropriate bapi from here.. Associated with each bapi documentation is there . from this u will get a clear picture of import params ,export params and tables.
Now to execute BAPI or RFC using JCO,
please go through this sample piece of code. fill the params of standard jco methods with appropriate parameters for your use.
private static JCO.Client client;
private static JCO.Repository repository;
client =
JCO.createClient(
"<client num>",
"<user name>",
"<password>",
"en",
"<server ip or server name>",
"<instance number>");
client.connect();
repository = new JCO.Repository("REP", client);
try {
IFunctionTemplate m_read_container;
m_read_container =repository.getFunctionTemplate("<RFC Name>");
JCO.Function function_read_cont = m_read_container.getFunction();
JCO.ParameterList importparam =
function_read_cont.getImportParameterList();
importparam.setValue(<Your value to pass>, "<Import parameter name as in RFC>");
client.execute(function_read_cont);
JCO.ParameterList tables =
function_read_cont.getTableParameterList();
//For Tables
JCO.Table container = tables.getTable("<Your table Name from table parameter>");
for (int iCtr = 0; iCtr < container.getNumRows(); iCtr++) {
container.setRow(iCtr);
Strin value = container.getString("<Tale fieldName>");
JCO.ParameterList exp_abs_read =
function_read_cont.getExportParameterList();//For Export Params
JCO.Structure st_abs_read =
exp_abs_read.getStructure("<If structure using then give structure name>");
for (int iCtrst = 0;iCtrst < st_abs_read.getNumFields();
iCtrst++) {
// String str_field_val = st_abs_read.getString("<Structure Field Name>"));
String fieldName = st_abs_read.getName(iCtrst);
} catch (Exception e) {
Regards
Kishor Gopinathan -
About bapi with help of example
about bapi with help of example plz dont give links.
With the correct customizing (order types, etc...) the following BAPI will create a PM order for you.
Naturally the master data is also required to be created in SAP (Technical objects, Work places, etc...)
*& Report Z_BAPI_ALM_ORDER_MAINTAIN_TEST *
REPORT z_bapi_alm_order_maintain_test.
TABLES: mara,
resb. "anyagfoglalások táblája
DATA: it_methods LIKE STANDARD TABLE OF bapi_alm_order_method,
wa_methods LIKE LINE OF it_methods.
DATA: it_header LIKE STANDARD TABLE OF bapi_alm_order_headers_i,
wa_header LIKE LINE OF it_header.
DATA: it_operation LIKE STANDARD TABLE OF bapi_alm_order_operation,
wa_operation LIKE LINE OF it_operation.
DATA: it_component LIKE STANDARD TABLE OF bapi_alm_order_component,
wa_component LIKE LINE OF it_component.
DATA: it_component_up LIKE
STANDARD TABLE OF bapi_alm_order_component_up,
wa_component_up LIKE LINE OF it_component_up.
DATA: et_numbers LIKE STANDARD TABLE OF bapi_alm_numbers,
wa_numbers LIKE LINE OF et_numbers.
DATA: et_extension_in LIKE STANDARD TABLE OF bapiparex,
wa_extension_in LIKE LINE OF et_extension_in.
DATA: et_return LIKE STANDARD TABLE OF bapiret2,
wa_return LIKE LINE OF et_return.
DATA: it_resb LIKE STANDARD TABLE OF resb,
wa_resb LIKE LINE OF it_resb.
DATA: lv_commit TYPE i.
PARAMETERS: p_test AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: p_create RADIOBUTTON GROUP rg1 DEFAULT 'X'.
SELECTION-SCREEN COMMENT 4(30) text-rcr.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: p_change RADIOBUTTON GROUP rg1.
SELECTION-SCREEN COMMENT 4(30) text-rch.
PARAMETERS: p_aufnr LIKE aufk-aufnr MEMORY ID anr.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP.
PARAMETERS: p_compon AS CHECKBOX DEFAULT 'X'.
PARAMETERS: p_partn AS CHECKBOX DEFAULT 'X'.
START-OF-SELECTION.
IF p_aufnr IS INITIAL.
MOVE '007321002921' TO p_aufnr.
ENDIF.
PERFORM it_methods_fill.
PERFORM it_header_fill.
PERFORM it_operation_fill.
IF p_compon = 'X'.
PERFORM it_component_fill.
ENDIF.
REFRESH et_numbers.
break zaladev.
CALL FUNCTION 'Z_BAPI_ALM_ORDER_MAINTAIN'
TABLES
it_methods = it_methods
it_header = it_header
* IT_HEADER_UP =
* IT_HEADER_SRV =
* IT_HEADER_SRV_UP =
* IT_USERSTATUS =
* IT_PARTNER =
* IT_PARTNER_UP =
it_operation = it_operation
* IT_OPERATION_UP =
* IT_RELATION =
* IT_RELATION_UP =
it_component = it_component
it_component_up = it_component_up
* IT_TEXT = it_text
* IT_TEXT_LINES =
extension_in = et_extension_in
et_return = et_return
et_numbers = et_numbers.
CLEAR lv_commit.
LOOP AT et_return INTO wa_return.
IF wa_return-type = 'S' AND NOT wa_return-message_v2 IS INITIAL.
IF p_test IS INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
lv_commit = 1.
ENDIF.
EXIT.
ENDIF.
ENDLOOP.
IF lv_commit IS INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF.
break zaladev.
*& Form it_methods_fill
* text
* --> p1 text
* <-- p2 text
FORM it_methods_fill.
IF p_create = 'X'. "LÉTREHOZÁS
MOVE '1' TO wa_methods-refnumber.
MOVE 'HEADER' TO wa_methods-objecttype.
MOVE 'CREATE' TO wa_methods-method.
MOVE '%00000000001' TO wa_methods-objectkey.
APPEND wa_methods TO it_methods.
MOVE '1' TO wa_methods-refnumber.
MOVE 'OPERATION' TO wa_methods-objecttype.
MOVE 'CREATE' TO wa_methods-method.
MOVE '%000000000010010' TO wa_methods-objectkey.
APPEND wa_methods TO it_methods.
MOVE '2' TO wa_methods-refnumber.
MOVE 'OPERATION' TO wa_methods-objecttype.
MOVE 'CREATE' TO wa_methods-method.
MOVE '%000000000010020' TO wa_methods-objectkey.
APPEND wa_methods TO it_methods.
MOVE '3' TO wa_methods-refnumber.
MOVE 'OPERATION' TO wa_methods-objecttype.
MOVE 'CREATE' TO wa_methods-method.
MOVE '%0000000000100200010' TO wa_methods-objectkey.
APPEND wa_methods TO it_methods.
MOVE '4' TO wa_methods-refnumber.
MOVE 'OPERATION' TO wa_methods-objecttype.
MOVE 'CREATE' TO wa_methods-method.
MOVE '%0000000000100200020' TO wa_methods-objectkey.
APPEND wa_methods TO it_methods.
IF p_compon = 'X'.
MOVE 1 TO wa_methods-refnumber.
MOVE 'COMPONENT' TO wa_methods-objecttype.
MOVE 'CREATE' TO wa_methods-method.
MOVE '%00000000001' TO wa_methods-objectkey.
APPEND wa_methods TO it_methods.
MOVE 2 TO wa_methods-refnumber.
MOVE 'COMPONENT' TO wa_methods-objecttype.
MOVE 'CREATE' TO wa_methods-method.
MOVE '%00000000001' TO wa_methods-objectkey.
APPEND wa_methods TO it_methods.
ENDIF.
MOVE '1' TO wa_methods-refnumber.
MOVE '' TO wa_methods-objecttype.
MOVE 'SAVE' TO wa_methods-method.
MOVE '%00000000001' TO wa_methods-objectkey.
APPEND wa_methods TO it_methods.
ELSE. "MÓDOSÍTÁS
MOVE '1' TO wa_methods-refnumber.
MOVE 'HEADER' TO wa_methods-objecttype.
MOVE 'CHANGE' TO wa_methods-method.
MOVE p_aufnr TO wa_methods-objectkey.
APPEND wa_methods TO it_methods.
IF p_compon = 'X'.
MOVE 1 TO wa_methods-refnumber.
MOVE 'COMPONENT' TO wa_methods-objecttype.
MOVE 'CHANGE' TO wa_methods-method.
MOVE p_aufnr TO wa_methods-objectkey.
APPEND wa_methods TO it_methods.
MOVE 2 TO wa_methods-refnumber.
MOVE 'COMPONENT' TO wa_methods-objecttype.
MOVE 'CHANGE' TO wa_methods-method.
MOVE p_aufnr TO wa_methods-objectkey.
APPEND wa_methods TO it_methods.
MOVE 3 TO wa_methods-refnumber.
MOVE 'COMPONENT' TO wa_methods-objecttype.
MOVE 'DELETE' TO wa_methods-method.
MOVE p_aufnr TO wa_methods-objectkey.
APPEND wa_methods TO it_methods.
ENDIF.
MOVE '1' TO wa_methods-refnumber.
MOVE '' TO wa_methods-objecttype.
MOVE 'SAVE' TO wa_methods-method.
MOVE p_aufnr TO wa_methods-objectkey.
APPEND wa_methods TO it_methods.
ENDIF.
ENDFORM. " it_methods_fill
*& Form it_header_fill
* text
* --> p1 text
* <-- p2 text
FORM it_header_fill .
IF p_create = 'X'. "LÉTREHOZÁS
MOVE '%00000000001' TO wa_header-orderid.
MOVE 'D210' TO wa_header-order_type. "rendelésfajta
MOVE '2000' TO wa_header-planplant. "tervező gyár
MOVE '19' TO wa_header-mn_wk_ctr. "fel.munkahely
MOVE '2000' TO wa_header-plant. "fel.munkahely gyára
MOVE 'CUV-SZV-CSUR-ATEM-I...' TO wa_header-funct_loc. "műsz.hely
MOVE '' TO wa_header-equipment. "berendezés
MOVE '' TO wa_header-material. "anyagszám
* MOVE '' TO wa_header-LOC_WK_CTR. "fel.munkahely
* MOVE '' TO wa_header-LOC_COMP_CODE. "vállalat
* MOVE sy-datum TO wa_header-START_DATE. "kezdés dátuma
* MOVE sy-datum TO wa_header-FINISH_DATE. "befejezés dátuma
* MOVE '' TO wa_header-BASICSTART. "kezdés időpontja
* MOVE '' TO wa_header-BASIC_FIN. "befejezés időpontja
MOVE 'Teszt szöveg 1' TO wa_header-short_text. "szöveg
APPEND wa_header TO it_header.
ELSE. "MÓDOSÍTÁS
MOVE p_aufnr TO wa_header-orderid.
MOVE 'CUV-SZV-CSUR-ATEM-II..' TO wa_header-funct_loc. "műsz.hely
MOVE 'Teszt szöveg módosítva 2' TO wa_header-short_text. "szöveg
APPEND wa_header TO it_header.
ENDIF.
ENDFORM. " it_header_fill
*& Form it_operation_fill
* text
* --> p1 text
* <-- p2 text
FORM it_operation_fill .
IF p_create = 'X'. "LÉTREHOZÁS
MOVE 10 TO wa_operation-activity. "művelet
MOVE '' TO wa_operation-sub_activity. "al-művelet
MOVE 'PM01' TO wa_operation-control_key. "vezérlő kulcs
* MOVE '19' TO wa_operation-WORK_CNTR. "munkahely
* MOVE '2000' TO wa_operation-PLANT. "gyár
MOVE '' TO wa_operation-standard_text_key. "mintakulcs
MOVE 'Művelet leírása 1.sor' TO wa_operation-description."leírás
MOVE '' TO wa_operation-vendor_no. "szállító
* MOVE 3 TO wa_operation-quantity. "mennyiség
* MOVE 'KG' TO wa_operation-base_uom. "menny.egys.
* MOVE 500 TO wa_operation-PRICE. "ár
* MOVE 1 TO wa_operation-PRICE_UNIT. "áregység
* MOVE 'HUF' TO wa_operation-CURRENCY. "pénznem
* MOVE '' TO wa_operation-PERS_NO. "törzsszám
MOVE 10 TO wa_operation-work_activity. "művelet munkája
* MOVE 'KG' TO wa_operation-UN_WORK. "művelet munkája
MOVE 2 TO wa_operation-number_of_capacities. "szüks. kapacitás
APPEND wa_operation TO it_operation.
MOVE 20 TO wa_operation-activity. "művelet
MOVE '' TO wa_operation-sub_activity. "al-művelet
MOVE 'PM01' TO wa_operation-control_key. "vezérlő kulcs
* MOVE '19' TO wa_operation-WORK_CNTR. "munkahely
* MOVE '2000' TO wa_operation-PLANT. "gyár
MOVE '' TO wa_operation-standard_text_key. "mintakulcs
MOVE 'Művelet leírása 2.sor' TO wa_operation-description."leírás
MOVE '' TO wa_operation-vendor_no. "szállító
* MOVE 5 TO wa_operation-quantity. "mennyiség
* MOVE 'KG' TO wa_operation-base_uom. "menny.egys.
* MOVE 500 TO wa_operation-PRICE. "ár
* MOVE 1 TO wa_operation-PRICE_UNIT. "áregység
* MOVE 'HUF' TO wa_operation-CURRENCY. "pénznem
* MOVE '' TO wa_operation-PERS_NO. "törzsszám
MOVE 5 TO wa_operation-work_activity. "művelet munkája
* MOVE 'KG' TO wa_operation-UN_WORK. "művelet munkája
MOVE 1 TO wa_operation-number_of_capacities. "szüks. kapacitás
APPEND wa_operation TO it_operation.
MOVE 20 TO wa_operation-activity. "művelet
MOVE 10 TO wa_operation-sub_activity. "al-művelet
MOVE 'PM01' TO wa_operation-control_key. "vezérlő kulcs
* MOVE '19' TO wa_operation-WORK_CNTR. "munkahely
* MOVE '2000' TO wa_operation-PLANT. "gyár
MOVE '' TO wa_operation-standard_text_key. "mintakulcs
MOVE 'Alművelet leírása 2/1.sor' TO wa_operation-description."leírás
MOVE '' TO wa_operation-vendor_no. "szállító
* MOVE 5 TO wa_operation-quantity. "mennyiség
MOVE 'KG' TO wa_operation-base_uom. "menny.egys.
* MOVE 500 TO wa_operation-PRICE. "ár
* MOVE 1 TO wa_operation-PRICE_UNIT. "áregység
* MOVE 'HUF' TO wa_operation-CURRENCY. "pénznem
* MOVE '' TO wa_operation-PERS_NO. "törzsszám
MOVE 2 TO wa_operation-work_activity. "művelet munkája
* MOVE 'KG' TO wa_operation-UN_WORK. "művelet munkája
MOVE 1 TO wa_operation-number_of_capacities. "szüks. kapacitás
APPEND wa_operation TO it_operation.
MOVE 20 TO wa_operation-activity. "művelet
MOVE 20 TO wa_operation-sub_activity. "al-művelet
MOVE 'PM01' TO wa_operation-control_key. "vezérlő kulcs
* MOVE '19' TO wa_operation-WORK_CNTR. "munkahely
* MOVE '2000' TO wa_operation-PLANT. "gyár
MOVE '11' TO wa_operation-standard_text_key. "mintakulcs
MOVE 'Alművelet leírása 2/2.sor' TO wa_operation-description."leírás
MOVE '' TO wa_operation-vendor_no. "szállító
MOVE 5 TO wa_operation-quantity. "mennyiség
MOVE 'KG' TO wa_operation-base_uom. "menny.egys.
* MOVE 500 TO wa_operation-PRICE. "ár
* MOVE 1 TO wa_operation-PRICE_UNIT. "áregység
* MOVE 'HUF' TO wa_operation-CURRENCY. "pénznem
* MOVE '' TO wa_operation-PERS_NO. "törzsszám
MOVE 3 TO wa_operation-work_activity. "művelet munkája
* MOVE 'KG' TO wa_operation-UN_WORK. "művelet munkája
MOVE 1 TO wa_operation-number_of_capacities. "szüks. kapacitás
APPEND wa_operation TO it_operation.
ELSE. "MÓDOSÍTÁS
ENDIF.
ENDFORM. " it_operation_fill
*& Form it_component_fill
* text
* --> p1 text
* <-- p2 text
FORM it_component_fill.
IF p_create = 'X'. "LÉTREHOZÁS
MOVE '0010' TO wa_component-item_number.
MOVE '000000023336110300' TO wa_component-material. "cikkszám
MOVE '2000' TO wa_component-plant. "gyár
MOVE '0001' TO wa_component-stge_loc. "raktár
MOVE 1 TO wa_component-requirement_quantity. "felh.m.
MOVE '0020' TO wa_component-activity. "művelet
APPEND wa_component TO it_component.
MOVE '0020' TO wa_component-item_number.
MOVE '000000095000001900' TO wa_component-material. "cikkszám
MOVE '2000' TO wa_component-plant. "gyár
MOVE '' TO wa_component-stge_loc. "raktár
MOVE 2 TO wa_component-requirement_quantity. "felh.m.
MOVE '0020' TO wa_component-activity. "művelet
MOVE 'N' TO wa_component-item_cat. "tételtípus
MOVE '0000000014' TO wa_component-vendor_no. "szállító
APPEND wa_component TO it_component.
ELSE. "MÓDOSÍTÁS
SELECT * FROM resb
INTO TABLE it_resb
WHERE aufnr EQ p_aufnr.
IF sy-subrc = 0.
READ TABLE it_resb INTO wa_resb
WITH KEY aufnr = p_aufnr.
MOVE wa_resb-rsnum TO wa_component-reserv_no.
ELSE.
CLEAR wa_component-reserv_no.
ENDIF.
MOVE '0010' TO wa_component-item_number.
MOVE '0001' TO wa_component-res_item.
* MOVE '000000023336110400' TO wa_component-material. "cikkszám
* MOVE '2000' TO wa_component-plant. "gyár
* MOVE '0001' TO wa_component-stge_loc. "raktár
MOVE 6 TO wa_component-requirement_quantity. "felh.m.
MOVE '0020' TO wa_component-activity. "művelet
APPEND wa_component TO it_component.
MOVE 'X' TO wa_component_up-requirement_quantity.
MOVE 'X' TO wa_component_up-activity.
APPEND wa_component_up TO it_component_up.
MOVE '0020' TO wa_component-item_number.
MOVE '0002' TO wa_component-res_item.
* MOVE '000000095000001800' TO wa_component-material. "cikkszám
* MOVE '2000' TO wa_component-plant. "gyár
* MOVE '0001' TO wa_component-stge_loc. "raktár
MOVE 6 TO wa_component-requirement_quantity. "felh.m.
MOVE '0010' TO wa_component-activity. "művelet
APPEND wa_component TO it_component.
* MOVE 'X' TO wa_component_up-material.
MOVE 'X' TO wa_component_up-requirement_quantity.
MOVE 'X' TO wa_component_up-activity.
APPEND wa_component_up TO it_component_up.
MOVE '0030' TO wa_component-item_number.
MOVE '000000023336110400' TO wa_component-material. "cikkszám
MOVE '2000' TO wa_component-plant. "gyár
MOVE '0001' TO wa_component-stge_loc. "raktár
MOVE 7 TO wa_component-requirement_quantity. "felh.m.
MOVE '0020' TO wa_component-activity. "művelet
APPEND wa_component TO it_component.
ENDIF.
ENDFORM. " it_component_fill -
Could anyone just possibly tell me about BAPI'S and BADI'S in brief?
Hi all,
Could anyone just possibly tell me about BAPI'S and BADI'S in brief?
Regards in advance,
Sanjeev K.V.BAPI-
step by step
http://www.sapgenie.com/abap/bapi/example.htm
list of all bapis
http://www.planetsap.com/LIST_ALL_BAPIs.htm
for BAPI's
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://service.sap.com/ale
http://service.sap.com/bapi
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
http://www.planetsap.com/Bapi_main_page.htm
http://www.topxml.com/sap/sap_idoc_xml.asp
http://www.sapdevelopment.co.uk/
http://www.sapdevelopment.co.uk/java/jco/bapi_jco.pdf
Also refer to the following links..
www.sappoint.com/abap/bapiintro.pdf
www.sap-img.com/bapi.htm
www.sap-img.com/abap/bapi-conventions.htm
www.planetsap.com/Bapi_main_page.htm
www.sapgenie.com/abap/bapi/index.htm
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
BAPI
http://help.sap.com/saphelp_46c/helpdata/en/9b/417f07ee2211d1ad14080009b0fb56/frameset.htm
http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html
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
u can check the below the material also
what is BAPI?
BAPI stands for Business API(Application Program Interface).
A BAPI is remotely enabled function module ie it can be invoked from remote programs like standalone JAVA programs, web interface etc..
You can make your function module remotely enabled in attributes of Function module but
A BAPI are standard SAP function modules provided by SAP for remote access. Also they are part of Businees Objest Repository(BOR).
BAPI are RFC enabled function modules. the difference between RFc and BAPI are business objects. You create business objects and those are then registered in your BOR (Business Object Repository) which can be accessed outside the SAP system by using some other applications (Non-SAP) such as VB or JAVA. in this case u only specify the business object and its method from external system in BAPI there is no direct system call. while RFC are direct system call Some BAPIs provide basic functions and can be used for most SAP business object types. These BAPIs should be implemented the same for all business object types. Standardized BAPIs are easier to use and prevent users having to deal with a number of different BAPIs. Whenever possible, a standardized BAPI must be used in preference to an individual BAPI.
The following standardized BAPIs are provided:
Reading instances of SAP business objects
GetList ( ) With the BAPI GetList you can select a range of object key values, for example, company codes and material numbers.
The BAPI GetList() is a class method.
GetDetail() With the BAPI GetDetail() the details of an instance of a business object type are retrieved and returned to the calling program. The instance is identified via its key. The BAPI GetDetail() is an instance method. BAPIs that can create, change or delete instances of a business object type
The following BAPIs of the same object type have to be programmed so that they can be called several times within one transaction. For example, if, after sales order 1 has been created, a second sales order 2 is created in the same transaction, the second BAPI call must not affect the consistency of the sales order 2. After completing the transaction with a COMMIT WORK, both the orders are saved consistently in the database.
Create( ) and CreateFromData! ( )
The BAPIs Create() and CreateFromData() create an instance of an SAP business object type, for example, a purchase order. These BAPIs are class methods.
Change( )
The BAPI Change() changes an existing instance of an SAP business object type, for example, a purchase order. The BAPI Change () is an instance method.
Delete( ) and Undelete( ) The BAPI Delete() deletes an instance of an SAP business object type from the database or sets a deletion flag.
The BAPI Undelete() removes a deletion flag. These BAPIs are instance methods.
Cancel ( ) Unlike the BAPI Delete(), the BAPI Cancel() cancels an instance of a business object type. The instance to be cancelled remains in the database and an additional instance is created and this is the one that is actually canceled. The Cancel() BAPI is an instance method.
Add<subobject> ( ) and Remove<subobject> ( ) The BAPI Add<subobject> adds a subobject to an existing object inst! ance and the BAPI and Remove<subobject> removes a subobject from an object instance. These BAPIs are instance methods.
Example Code
U need to give the step_nr, item_nr, cond_count and cond_type so the correct conditon will be updated. If no condition exists for the given parameters, a new condition will be created.
U can find these parameters for a particular condition type in table KONV.
*& Form saveTransactionJOCR
text
--> p1 text
<-- p2 text
FORM saveTransactionJOCR .
data: salesdocument like BAPIVBELN-VBELN,
order_header_inx like bapisdh1x,
order_header_in like bapisdh1,
return type standard table of bapiret2 with header line,
conditions_in type standard table of bapicond with header line,
conditions_inx type standard table of bapicondx with header line,
logic_switch like BAPISDLS,
step_nr like conditions_in-cond_st_no,
item_nr like conditions_in-itm_number,
cond_count like conditions_in-cond_count,
cond_type like conditions_in-cond_type.
salesdocument = wa_order_information-VBELN.
LOGIC_SWITCH-COND_HANDL = 'X'.
order_header_inx-updateflag = 'U'.
conditions
clear conditions_in[].
clear conditions_inx[].
clear: step_nr,
item_nr,
cond_count,
cond_type.
step_nr = '710'.
item_nr = '000000'.
cond_count = '01'.
cond_type = 'ZCP2'.
CONDITIONS_IN-ITM_NUMBER = item_nr.
conditions_in-cond_st_no = step_nr.
CONDITIONS_IN-COND_COUNT = cond_count.
CONDITIONS_IN-COND_TYPE = cond_type.
CONDITIONS_IN-COND_VALUE = 666.
CONDITIONS_IN-CURRENCY = 'EUR'.
append conditions_in.
CONDITIONS_INX-ITM_NUMBER = item_nr.
conditions_inx-cond_st_no = step_nr.
CONDITIONS_INX-COND_COUNT = cond_count.
CONDITIONS_INX-COND_TYPE = cond_type.
CONDITIONS_INX-UPDATEFLAG = 'U'.
CONDITIONS_INX-COND_VALUE = 'X'.
CONDITIONS_INX-CURRENCY = 'X'.
append conditions_inx.
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
SALESDOCUMENT = salesdocument
ORDER_HEADER_IN = order_header_in
ORDER_HEADER_INX = order_header_inx
LOGIC_SWITCH = logic_switch
TABLES
RETURN = return
CONDITIONS_IN = conditions_in
CONDITIONS_INX = conditions_inx
if return-type ne 'E'.
commit work and wait.
endif.
ENDFORM. " saveTransactionJOCR
Bdc to Bapi
The steps to be followed are :
1. Find out the relevant BAPI (BAPI_SALESORDER_CHANGE for VA02).
[for VA01 use BAPI_SALESORDER_CREATEFROMDAT2]
2. Create a Z program and call the BAPi (same as a Funtion module call).
2. Now, if you see this BAPi, it has
-> Importing structures.
eg: SALESDOCUMENT: this will take the Sales order header data as input.
-> Tables parameters:
eg: ORDER_ITEM_IN: this will take the line item data as input.
Note :
Only specify fields that should be changed
Select these fields by entering an X in the checkboxes
Enter a U in the UPDATEFLAG field
Always specify key fields when changing the data, including in the checkboxes
The configuration is an exception here. If this needs to be changed, you need to complete it again fully.
Maintain quantities and dates in the schedule line data
Possible UPDATEFLAGS:
U = change
D = delete
I = add
Example
1. Delete the whole order
2. Delete order items
3. Change the order
4. Change the configuration
Notes
1. Minimum entry:
You must enter the order number in the SALESDOCUMENT structure.
You must always enter key fields for changes.
You must always specify the update indicator in the ORDER_HEADER_INX.
2. Commit control:
The BAPI does not run a database Commit, which means that the application must trigger the Commit so that the changes are read to the database. To do this, use the BAPI_TRANSACTION_COMMIT BAPI.
For further details... refer to the Function Module documentation for the BAPi.
Bapi to VB(Visual Basic)
Long back I had used the following flow structure to acheive the same.
Report -> SM59 RFC destination -> COM4ABAP -> VB.exe
my report uses the rfc destination to create a COM session with com4abap. com4abap calls the vb.exe and manages the flow of data between sap and vb exe.
You need to have com4abap.exe
If com4abap is installed you will find it in sapgui installatin directory , C:\Program Files\SAPpc\sapgui\RFCSDK\com4abap.
else refer OSS note 419822 for installation of com4abap
after making the settings in com4abap to point to the vb program and setting up rfc destination in sm59 to point to com4abap session , you can use the following function modules to call the vb code.
for setting up com4abap and rfc destination please refer to the documentation for com4abap.
Invoke NEW DCOM session
call function 'BEGIN_COM_SESSION'
exporting
service_dest = service_dest "(this will be a RFC destination created in SM59)
importing
worker_dest = worker_dest
exceptions
connect_to_dcom_service_failed = 1
connect_to_dcom_worker_failed = 2
others = 3.
call function 'create_com_instance' destination worker_dest
exporting
clsid = g_c_clsid
typelib = g_c_typelib
importing
instid = g_f_oid
exceptions
communication_failure = 1 message g_f_msg
system_failure = 2 message g_f_msg
invalid_instance_id = 3
others = 4.
call function 'com_invoke' destination worker_dest
exporting
%instid = g_f_oid
%method = 'UpdatePDF'
sntemp = g_v_const_filent
snsysid = sy-sysid
snflag = 'N'
tables
rssaptable = g_t_pdfdetail1
%return = g_t_pdfdetail1 "t_test
exceptions
communication_failure = 1 message g_f_msg
system_failure = 2 message g_f_msg
invalid_instance_id = 3
others = 4.
then close the com session , using
FM delete_com_instance
FM END_COM_SESSION
Reward if u find useful
Regards
Nagesh.Paruchuri -
I see in the customization documentation that we should not be using Commit statements in the FMs inside the Actions.. what about when we're calling BAPIs and they require a BAPI commit call?
thanks,
RobertHi Robert,
For BAPIs you need to set the commit level in the action definition as for function modules. SAP help portal provides following information about BAPIs and COMMIT WORK:
"The BAPI transaction model must afford the user explicit transaction control. Therefore, if several BAPIs are called together, the caller can decide him/herself when to execute a COMMIT WORK (or, as the case may be, a ROLLBACK WORK). This means that BAPIs themselves cannot (generally) execute a COMMIT WORK command."
I hope this infomration can help
Best wishes
Christoph -
hi,all
What's about BAPIs?Hi
Check All The Links............
BAPI-step by step
http://www.sapgenie.com/abap/bapi/example.htm
RFC and BAPI:
difference between RFC and BAPi
Difference between BAPI and RFC?
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
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf
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://ifr.sap.com/catalog/query.asp
Reward All Helpfull Answers........... -
I want complete information about Bapi?
i want complete information about Bapi?
Hi,
plz go through the following links....
Business application Prograaming Interface is nothing but the Method of a Business object.
BAPI-step by step
http://www.sapgenie.com/abap/bapi/example.htm
list of all bapis
http://www.planetsap.com/LIST_ALL_BAPIs.htm
for BAPI's
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://service.sap.com/ale
http://service.sap.com/bapi
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
http://www.planetsap.com/Bapi_main_page.htm
http://www.topxml.com/sap/sap_idoc_xml.asp
http://www.sapdevelopment.co.uk/
http://www.sapdevelopment.co.uk/java/jco/bapi_jco.pdf
Also refer to the following links..
www.sappoint.com/abap/bapiintro.pdf
www.sap-img.com/bapi.htm
www.sap-img.com/abap/bapi-conventions.htm
www.planetsap.com/Bapi_main_page.htm
www.sapgenie.com/abap/bapi/index.htm
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
Regards,
Nilesh -
Security about BAPI's - user access
Hi,
We just finished to develop a few BAPI´s in order to access it using a Java Program.
We mark BAPI´s as remote enabled module and we think that we should use a internet user to access the BAPI's.
My question is: how can i certified that that user only access to the BAPI´s i create. I revised the java code and anyone can use that code to access to another BAPI.
Can you tell me some comments about this issue?
Best Regards
João FernandesHi,
I assume that you use JCo to call BAPI from your Java program. JCo uses RFC for this purpose. Hence you have all possibilities of RFC to secure it. You can create a new user for this RFC. This user will have only access to your BAPI (authorization object S_RFC). YOu can get additional information about securing RFC [here.|http://help.sap.com/saphelp_nw04s/helpdata/en/37/1a9b6a338cca448508f3a48d2d1e2d/frameset.htm]
Cheers -
Question about BAPI Performance
I am currently evaluating options to implement interface between legacy systems and SAP. We have a requirement to post goodsmovement from external application. As some of my team claim that the BAPI approach can cause performance problems. I would like to cross check whether the claim is true.
And if it is, May I have your advice how can we prevent such problem about performance?
Ho w can I get additional source of information?
Kindly advise.
The BAPI which we are going to use is BAPI_GOODSMVT_CREATE
Thank youNo performance problem is there.
Infact BAPI is advisable against BDC. Also since BAPI is like FM there is no issue.
I am using it in lot of the objects we have created.
Cheers
Regards
Nishant -
hi experts,
i am very new to BAPI and BADI's
can you provide some information about this two topics.
thanks
shyamhi,
<u><b>BADI.</b></u>
check any fo the below links. this will def help u.
http://www.allsaplinks.com/badi.html
And also download this file....
http://www.savefile.com/files.php?fid=8913854
There are other tutorials on this site...
http://sapbrain.com/Tutorials/tuto_download.html
BADI'S
http://help.sap.com/saphelp_erp2005/helpdata/en/73/7e7941601b1d09e10000000a155106/frameset.htm
http://support.sas.com/rnd/papers/sugi30/SAP.ppt
http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm
http://members.aol.com/_ht_a/skarkada/sap/
http://www.ct-software.com/reportpool_frame.htm
http://www.saphelp.com/SAP_Technical.htm
http://www.kabai.com/abaps/q.htm
http://www.guidancetech.com/people/holland/sap/abap/
http://www.planetsap.com/download_abap_programs.htm
http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm
/people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-series
/people/thomas.weiss/blog/2006/04/18/how-to-implement-a-badi-and-how-to-use-a-filter--part-4-of-the-series-on-the-new-enhancement-framework
<u><b>BAPI</b></u>
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
Regards
Anver -
Need to know more about BAPIs?
Hi ABAP Gurus,
What are BAPIs? What are the uses of BAPIs? What are the advantages that theyv'e got?
Points would be rewarded for good info. no links please.
Regards,
Kiranhi kiran,
check all these links
BAPI-step by step
http://www.sapgenie.com/abap/bapi/example.htm
list of all bapis
http://www.planetsap.com/LIST_ALL_BAPIs.htm
for BAPI's
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://service.sap.com/ale
http://service.sap.com/bapi
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
http://www.planetsap.com/Bapi_main_page.htm
http://www.topxml.com/sap/sap_idoc_xml.asp
http://www.sapdevelopment.co.uk/
http://www.sapdevelopment.co.uk/java/jco/bapi_jco.pdf
Also refer to the following links..
www.sappoint.com/abap/bapiintro.pdf
www.sap-img.com/bapi.htm
www.sap-img.com/abap/bapi-conventions.htm
www.planetsap.com/Bapi_main_page.htm
www.sapgenie.com/abap/bapi/index.htm
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
if u need further info shoot me a test mail to [email protected]
if u find it useful mark the points
Regards,
Naveen -
Hi experts,
What is BAPI'S AND BADI'S? give me information along with some example..Hi,
Bapi is used to create the Database Entries :
Running BAPI directly hits the Database..for eg PO is created by running Tcode ME21n and the changes are reflected in the ReleVANT TABLES..
LIKE ekko AND ekpo so on ..
But running BAPI is direct way..when u pass all the header and item details..
Whereas BADi is provided in the SAP code just like Customer Exits..
to adjust the User Requirement .
BAdi is Object Oriented..
BAPI (Business Application Programming Interface) :
BAPIis an API method of a business object which intern is a RFC enabled Function Module.
Business Objects are the Objects which has business sence associated to it. Ex. Sales Orders, Purchase Orders etc.
The Properties of BAPI are:
Every BAPI name should start with letters 'BAPI'.
It is an API method of a Business Object.
it does not contain a internal COMMIT statement in the Function Module.
It does not contain "CALL TRANSACTION" statements.
BAPI do not raise 'EXCEPTIONS'.
a RETURN structure is defined as an interface parameter of a BAPI which is used to log all the errors, warnings and the successful processes tha are triggered in the course of execution of a BAPI.
A successful execution of a BAPI requires the data to be commited and this process of performing a COMMIT is achieved by calling the BAPI_TRANSACTION_COMMIT' explicitly if there are no errors logged in the RETURN structure.
There are two types of BAPI's: Instance Dependent & Instance Independent.
BAPI provides an access to the SAP system for external applications to have the business data processed in the form of web services. When BAPI's are used to post the data in SAP system these are used as Function Modules.
for further information check following:
Go to the below link for BAPI.
http://help.sap.com/saphelp_nw04/helpdata/en/e0/9eb2370f9cbe68e10000009b38f8cf/frameset.htm
BAPI
http://help.sap.com/saphelp_nw2004s/helpdata/en/7e/5e114a4a1611d1894c0000e829fbbd/frameset.htm
http://www.sapgenie.com/abap/bapi/example.htm
http://help.sap.com/saphelp_46c/helpdata/en/9b/417f07ee2211d1ad14080009b0fb56/frameset.htm
http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html
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
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf
BAPI Programming guide: -
http://help.sap.com/saphelp_nw04/helpdata/en/e0/9eb2370f9cbe68e10000009b38f8cf/frameset.htm
BAPI user guide: -
http://help.sap.com/saphelp_46c/helpdata/en/7e/5e115e4a1611d1894c0000e829fbbd/frameset.htm
BAPI STEP BY STEP PROCEDURE: -
http://www.sap-img.com/abap/bapi-step-by-step-guidance.htm
Example:-
http://www.erpgenie.com/abap/bapi/example.htm
PDF download: -
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/200dd1cc-589e-2910-98a9-bb2c48b78dfa
BADI
Business Add-Ins are a new SAP enhancement technique based on ABAP Objects.
Badis allow for a multi-level system landscape (SAP, partner, and customer solutions, as well as country versions, industry solutions, and the like).
Business Add-Ins can be created at each level within such a system infrastructure
Some BADI can have multiple independent implementations which is much better for software deployment as several developers can implement the same BADI independently.
1} Identify the User Exit suitable for the requirement and that is available in the system:
Code SE18 is used to Identify the BADI available.
Look for the string 'CL_EXITHANDLER' in the standard program. This is a class which has a method 'GET_INSTANCE' which is used to trigger BADI's from the Standard Program. The interface parameter for this static method 'EXIT_NAME' is used to pass the BADI to the method.
Open Standard Program and do a global search 'CL_EXITHANDLER'.
SE18 > give the BADI name found through above search.
CUSTOMER_ADD_DATA > which has a method SAVE_DATA.
2} Implement the User Exit identified through above process.
T.Code SE19 is used to Implement BADI.
SE19 > give the implementation name > Give the Definition name as CUSTOMER_ADD_DATA and the Short Text.
Check these blogs 2 find a BADI:
How to find if we have a BADI in Transaction VB02
Re: BADI for screen enhancement in MM01 transaction
Re: BADI and User exits
How To Define a New BAdI Within the Enhancement Framework (Some Basics About the BAdI,BAdI Commands in ABAP,
When to Use a BAdI?)
/people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-series
How to implement a BAdI And How to Use a Filter
/people/thomas.weiss/blog/2006/04/18/how-to-implement-a-badi-and-how-to-use-a-filter--part-4-of-the-series-on-the-new-enhancement-framework
Introducing Business Add-Ins
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f3202186-0601-0010-6591-b832b1a0d0de
How to implement BAdi in Enhancement Framework
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/d0456c54-0901-0010-f0b3-cd765fb99702
Business Add-Ins
http://help.sap.com/saphelp_47x200/helpdata/en/ee/a1d548892b11d295d60000e82de14a/frameset.htm
BAdI: Customer-Defined Functions in the Formula Builder
http://help.sap.com/saphelp_nw04/helpdata/en/04/f3683c05ea4464e10000000a114084/content.htm
Difference Between BADI and User Exits
http://www.sap-img.com/abap/difference-between-badi-and-user-exits.htm
To Use BADI - Business Add In you need to Understand ABAP OO Interface Concept
http://www.sap-img.com/abap/business-add-in-you-need-to-understand-abap-oo-interface-concept.htm
Regards,
Raj. -
Hi, all.
I tried to use arfc2 to call a bapi to get PO data from R/3 in 7.1.1. So I did model binding for my component controller`s context. Then I tried to get the result from these parameters programly. But I always got dd check error.
For example. If an attribute "A" `s data type is int. But the attribute "A" is empty in R/3, so it always returns " " to the attribue "A". Then it will raise an dd check error. The bapi which I used is BAPI_PO_GET_LIST. There are many attributes with this bapi. How can I solve this problem?
Thanks.Hi,
please check if the below link can help in your case.
[https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/oss_notes/sdn_oss_bc_db/~form/handler]
Regards
Narendra
Edited by: Narendra Singh on Apr 3, 2009 11:54 AM -
A Problem about BAPI (BAPI_SALESORDER_CREATEFROMDAT2)
Hi, all.
Now i try to use BAPI to create order,following is part of my codes:
function=this.createFunction("BAPI_SALESORDER_CREATEFROMDAT2 ");
JCO.ParameterList input = function.getImportParameterList();
JCO.ParameterList table = function.getTableParameterList();
JCO.Structure ORDER_HEADER_IN = input.getStructure("ORDER_HEADER_IN");
ORDER_HEADER_IN.setValue("TA","DOC_TYPE");
ORDER_HEADER_IN.setValue("3000","SALES_ORG");
ORDER_HEADER_IN.setValue("10","DISTR_CHAN");
ORDER_HEADER_IN.setValue("00","DIVISION");
JCO.Table ORDER_PARTNERS = table.getTable("ORDER_PARTNERS");
ORDER_PARTNERS.setValue("SP","PARTN_ROLE");
ORDER_PARTNERS.setValue("3250","PARTN_NUMB");
JCO.Table ORDER_ITEMS_IN = table.getTable("ORDER_ITEMS_IN");
ORDER_ITEMS_IN.setValue("P104","MATERIAL");
ORDER_ITEMS_IN.setValue("10","ITM_NUMBER");
I ha already setup "ORDER_HEADER_IN"`s parameters.
But i still can`t create an order successfully.
And i got two message:
1.Plz enter sold-to party or ship-to party
2.Sales documents was not changed.
Can anyone help me solve this situation?hi Louis,
Checkout the link..,
http://www.henrikfrank.dk/abapexamples/Java/sapjava_createsalesorder.htm
hope it helps..,
regards,
Vinoth -
Developeing an interface program to upload the sales order data from legacy system to SAP using BAPI for Transaction VA01. explain me in detail?
Hi,
I am giving you the code for Purchase Order.
You can refer this code to create Sales Order.
The process is same...but The interface name changes here.
REPORT ZM_BAPI_PURCHDOCU_CREATE_01.
User defined structure for Creation of PO using BAPI
DATA: BEGIN OF IT_POMAIN OCCURS 0,
BUKRS(4), "cOMAPNY cODE
ESART(4), "Purchasing Document Type
ELIFN(10), "Vendor's account number
SPRAS(1), "Language Key
EKORG(4), "Purchasing Organization
BKGRP(3), "Purchasing group
WAERS(5), "Currency Key
RESWK(4), "Supplying Plant in case of stock transport order
EBELP(6), "Item Number of Purchasing Document
MATERIAL(18), "Material Number
EWERK(4), "Plant
LGORT_D(4), "Storage location
MATKL(9), "Material group
BSTMG(13), "Purchase order quantity
BSTME(3), "Order unit
BAPICUREXT(28), "Currency amount for BAPIS (with 9 decimal places)
EEIND(10), "Delivery date
ETBDT(8), "Order date of schedule line
END OF IT_POMAIN,
Structures for PO Header and Tables for PO Item Data
WA_POHEADER TYPE BAPIMEPOHEADER,
WA_POHEADERX TYPE BAPIMEPOHEADERX,
IT_ITEM TYPE STANDARD TABLE OF BAPIMEPOITEM WITH HEADER LINE,
IT_ITEMX TYPE STANDARD TABLE OF BAPIMEPOITEMX WITH HEADER LINE,
IT_SCHEDULE TYPE STANDARD TABLE OF BAPIMEPOSCHEDULE WITH HEADER LINE,
IT_SCHEDULEX TYPE STANDARD TABLE OF BAPIMEPOSCHEDULX WITH HEADER LINE,
******Bapi return table for Messages...
IT_RETURN TYPE STANDARD TABLE OF BAPIRET2 WITH HEADER LINE.
Designing Selection Screen
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-000.
PARAMETERS: P_FILE TYPE RLGRAP-FILENAME OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
AT LINE SELECTION to give Value request for File Name p_file
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
PERFORM GET_F4.
START OF SELECTION
START-OF-SELECTION.
DATA: LV_INFILE TYPE STRING.
LV_INFILE = P_FILE.
Function Module to Upload Data from Flalt file to Internal Table
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = LV_INFILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
tables
data_tab = IT_POMAIN
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.
ELSE.
PERFORM POPULATE_BAPISTRUCT. " Populating Bapi structures
PERFORM PO_CREATE. " Creating PO using BAPI
ENDIF.
END OF SELECTION
END-OF-SELECTION.
PERFORM GET_ERROR. " Getting Error Records
*& Form GET_F4
Subroutine to get Flat File Name
form GET_F4 .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
FILE_NAME = P_FILE.
endform. " GET_F4
*& Form POPULATE_BAPISTRUCT
Subroutine to Populate BAPI PO Header & Item Structures
form POPULATE_BAPISTRUCT .
READ TABLE IT_POMAIN INDEX SY-TABIX.
Populating BAPI Header Data
WA_POHEADER-COMP_CODE = IT_POMAIN-BUKRS.
WA_POHEADER-DOC_TYPE = IT_POMAIN-ESART.
WA_POHEADER-VENDOR = IT_POMAIN-ELIFN.
WA_POHEADER-LANGU = IT_POMAIN-SPRAS.
WA_POHEADER-PURCH_ORG = IT_POMAIN-EKORG.
WA_POHEADER-PUR_GROUP = IT_POMAIN-BKGRP.
WA_POHEADER-CURRENCY = IT_POMAIN-WAERS.
WA_POHEADER-SUPPL_PLNT = IT_POMAIN-RESWK.
Populating BAPI Header X Data
WA_POHEADERX-COMP_CODE = 'X'.
WA_POHEADERX-DOC_TYPE = 'X'.
WA_POHEADERX-VENDOR = 'X'.
WA_POHEADERX-LANGU = 'X'.
WA_POHEADERX-PURCH_ORG = 'X'.
WA_POHEADERX-PUR_GROUP = 'X'.
WA_POHEADERX-CURRENCY = 'X'.
WA_POHEADERX-SUPPL_PLNT = 'X'.
Populating BAPI Item Data
IT_ITEM-PO_ITEM = IT_POMAIN-EBELP.
IT_ITEM-MATERIAL = IT_POMAIN-MATERIAL.
IT_ITEM-PLANT = IT_POMAIN-EWERK.
IT_ITEM-STGE_LOC = IT_POMAIN-LGORT_D.
IT_ITEM-MATL_GROUP = IT_POMAIN-MATKL.
IT_ITEM-QUANTITY = IT_POMAIN-BSTMG.
IT_ITEM-PO_UNIT = IT_POMAIN-BSTME.
IT_ITEM-NET_PRICE = IT_POMAIN-BAPICUREXT.
APPEND IT_ITEM.
Populating BAPI Item X Data
IT_ITEMX-PO_ITEM = IT_POMAIN-EBELP.
IT_ITEMX-MATERIAL = 'X'.
IT_ITEMX-PLANT = 'X'.
IT_ITEMX-STGE_LOC = 'X'.
IT_ITEMX-MATL_GROUP = 'X'.
IT_ITEMX-QUANTITY = 'X'.
IT_ITEMX-PO_UNIT = 'X'.
IT_ITEMX-NET_PRICE = 'X'.
APPEND IT_ITEMX.
IT_SCHEDULE-PO_ITEM = IT_POMAIN-EBELP.
IT_SCHEDULE-DELIVERY_DATE = IT_POMAIN-EEIND.
IT_SCHEDULE-PO_DATE = IT_POMAIN-ETBDT.
APPEND IT_SCHEDULE.
IT_SCHEDULEX-PO_ITEM = IT_POMAIN-EBELP.
IT_SCHEDULEX-DELIVERY_DATE = 'X'.
IT_SCHEDULEX-PO_DATE = 'X'.
APPEND IT_SCHEDULEX.
endform. " POPULATE_BAPISTRUCT
*& Form PO_CREATE
Subroutine to Create PO using exsting BAPI FM -- BAPI_PO_CREATE
form PO_CREATE .
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
poheader = WA_POHEADER
POHEADERX = WA_POHEADERX
IMPORTING
EXPPURCHASEORDER =
EXPHEADER =
EXPPOEXPIMPHEADER =
TABLES
RETURN = IT_RETURN
POITEM = IT_ITEM
POITEMX = IT_ITEMX
POSCHEDULE = IT_SCHEDULE
POSCHEDULEX = IT_SCHEDULEX.
APPEND IT_RETURN.
endform. " PO_CREATE
*& Form GET_ERROR
Subroutine for Error Handling using Bapi return structure
and update the databse using BAPI_TRANSACTION_COMMIT
form GET_ERROR .
READ TABLE IT_RETURN WITH KEY TYPE = 'E'.
IF SY-SUBRC <> 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
LOOP AT IT_RETURN.
WRITE:/ IT_RETURN-TYPE,
IT_RETURN-MESSAGE.
ENDLOOP.
ELSE.
LOOP AT IT_RETURN.
WRITE:/ IT_RETURN-TYPE,
IT_RETURN-MESSAGE.
ENDLOOP.
ENDIF.
endform. " GET_ERROR
Regards
Sandeep Reddy
Maybe you are looking for
-
Can't delete files from iTunes File Sharing
iPad, IOS 8.1.3 MacBook Pro Retina, OS 10.10.2 iTunes, v12.1 I'm trying to delete files from iTunes. In this instance, I have files I made in Pages, via my iPad, I have learned how to move them to my computer without using iCloud, which I prefer. Now
-
How do I move a bunch of photos to another part of the iPhoto Library?
Hi, Awhile ago I noticed that 11 photos shot way back in May keep appearing at the end of every new group of photos I add in my libary and not sure how to fix this. There is a spot in my libary of one photo shot on the same day and I'm wondering if I
-
Can I change iTunes & iPod display font (not font size) for selected files only?
I loaded a Russian classical music CD into iTunes and iPod. On the original CD, titles, names etc. are written in cyrillic alphabet. Once I loaded the CD into iTunes and on iPod this info was displayed unreadably in western alphabet. Example: "Èæå
-
Can't find DAQmx Create Task.vi and lots of other VI's
Hello, I have the problem that appears in the subject. I have the LabView2012 version on my computer, and I also downloaded and installed the NI-DAQmx9.4 but I can't run the project correctly because of those missing VI's. Please, any help is much a
-
Coumputer Shutdowned During Bootcamp Disk Partitioning
Hello All. I have a major problem here, hope for solution ASAP. I am installing windows on mac, and suddenly, my macbook pro(mid 2012) had shutdown. When i restarted it, my hardrive is in a partitioned form, but i cannot find my bootcamp drive. So no