Why to use bapis

Hi all,
I want to learn when we need to use bapi's?
Please pay attention on the question. I just want to learn the use of bapis..
Thanks.

Hello Deniz,
BAPI stands for Business API(Application Program Interface).
I have answered this question before..
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.
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
u can check the below the material also
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 Helpful.
Regards
Sasidhar Reddy Matli.

Similar Messages

  • When and Why we use BAPI, RFC and IDOC.. in XI

    Hi,
            Could any one tell me why we some time use BAPI, and some times use RFC and some times use IDOC while communicating with the SAP systems.
    Is there any differences while using the same.
    regards,
    Sunil

    Sunil,
    RFC and BAPI are same as per the technical point of view both are remote enabled function module..
    BAPI is provided by SAP while RFC is created by a developer..
    IDoc is another proprietary technology of SAP for exchnaging messages .
    Difference lies here :
    1. For RFC/BAPI you need to use RFc adapter
    while for IDoc you need to use IDoc adapter..
    2. For RFC you need to create RFC destinations not for Idoc
    3. For Idoc you also need to manage Partners Profiles..inn R3..
    These are few differences in using RFC/BAPI and Idoc...not the only ones..
    Feel free for any clarification..
    Regards,

  • To transfer the data Cross the systems why we are not using BAPI Method?

    Hello All,
    To transfer the data Cross the systems why we are not using BAPI Method? why we are using only ALE/IDoc's?

    Hi Naveen,
       Listing down those I know -
       1. Master data is expected to be changed/created less frequestly.
       2. Transactional data is expected to be chnaged/created more frequestly.
       3. Transactions to create/change/display master data do no have message control integration, since you are not supposed to print/fax/mail master data to your partners.
       4. Distribution of master data in generally supposed to happen within Enterprise boundry and typically you will have one central server maintaining master data which will be distributed to multiple downstream operation system (Some thing where MDM fits). So ideally when distributing master data using ALE you will be sending it to multiple systems.
       5. Distributing transactional data PO/SO etc is same as sending fax/print which fits with the requirement of message control.
    Hope this helps,
    Regards,
    Sanjeev

  • For Enjoy Transactions why we are using BAPI only.

    Hi All,
    (already  searched the forum for this one)
    Can anyone please explain me or send related links--->
    1) Why we are calling me21n as ENJOY transaction.
    2) What are ENJOY Transactions.
    3) Why we have to use BAPI ony
        to update ENJOY Transactions instead of BDC.
    regards,
    phaneendra p.

    These new transactions should make life for the end user a bit easier, since SAP transactions not always accelerate in design, logic, etc. That's why SAP has introduced these new transactions which in the end, will have the same result. In these socalled 'Enjoy' transactions, SAP started using these 'new' enjoy sap controls like ALV grid, text editor, HTML viewer etc.
    For 'updating' Enjoy transaction (BTW: You are NOT updating the transactions, but rather the purchase order or whatever) you will have to use BAPI's (or FM for that matter) in stead of BDC since Enjoy Controls work with a different framework in which you can not call a certain screen and field. Like in an ALV grid, not every field has it's own screen field name. So you cannot use them in BDC.
    Hope this makes any sense, otherwise search the forum. There have been some similar questions in the past as I can remember. Especially why you can not use BDC with enjoy sap transactions.

  • Error when using BAPI

    Please find herewith my below code. This program i have created for transferring goods with mvt type '657' to '555' using BAPI 'BAPI_GOODSMVT_CREATE' for TCODE MB1A.
    *& Report  Z_BAPI_FOR_MB1A
    REPORT  Z_BAPI_FOR_MB1A.
    Tables : mkpf, mseg, WB2_V_MKPF_MSEG2.
    DATA:
    it_mb1a LIKE BAPI2017_GM_ITEM_CREATE OCCURS 0 WITH HEADER LINE,
    it_return LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE,
    it_ex_headret LIKE BAPI2017_GM_HEAD_RET OCCURS 0 WITH HEADER LINE,
    it_im_header LIKE BAPI2017_GM_HEAD_01, " OCCURS 0, " WITH HEADER LINE,
    it_im_gmcode LIKE BAPI2017_GM_CODE, " OCCURS 0, "WITH HEADER LINE,
    mat_doc type bapi2017_gm_head_ret-mat_doc,
    mat_docyear type bapi2017_gm_head_ret-doc_year.
    *data : lv_intense(01).
    data : it_mseg like WB2_V_MKPF_MSEG2 occurs 0 with header line,
           it_cost like csks occurs 0 with header line.
    selection-screen begin of block a with frame title text-001.
    parameters: p_date type sy-datum default sy-datum.
    select-options: so_budat for WB2_V_MKPF_MSEG2-budat,
                    so_werks for WB2_V_MKPF_MSEG2-werks_i,
                    so_matnr for WB2_V_MKPF_MSEG2-matnr_i,
                    so_lgort for WB2_V_MKPF_MSEG2-lgort_i.
    selection-screen end of block a.
    select * from WB2_V_MKPF_MSEG2 into
    table it_mseg where
    budat in so_budat and
    werks_i in so_werks and
    matnr_i in so_matnr and
    lgort_i in so_lgort and
    bwart_i = '657'.
    select * from csks into table it_cost
    for all entries in it_mseg where
    gsber = it_mseg-werks_i.
    *Filling BAPI Header Tables
    it_im_header-pstng_date = sy-datum.
    it_im_header-doc_date = sy-datum.
    it_im_gmcode-gm_code = '03'.
    *Filling BAPI Item Tables
    loop at it_mseg.
    read table it_cost with key gsber = it_mseg-werks_i.
    it_mb1a-material = it_mseg-matnr_i.
    it_mb1a-plant = it_mseg-werks_i.
    it_mb1a-stge_loc = it_mseg-lgort_i.
    it_mb1a-batch = it_mseg-charg_i.
    it_mb1a-move_type = 555. " '103'.
    it_mb1a-entry_qnt = it_mseg-menge_i.
    it_mb1a-costcenter = it_cost-KOSTL.
    it_mb1a-gl_account = '530089'.
    append it_mb1a.
    clear it_mb1a.
    clear it_cost.
    endloop.
    CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
      EXPORTING
        goodsmvt_header               = it_im_header
        goodsmvt_code                 = it_im_gmcode
    *   TESTRUN                       = ' '
    *   GOODSMVT_REF_EWM              =
    IMPORTING
       GOODSMVT_HEADRET              = it_ex_headret
       MATERIALDOCUMENT              = mat_doc
       MATDOCUMENTYEAR               = mat_docyear
      tables
        goodsmvt_item                 = it_mseg
    *   GOODSMVT_SERIALNUMBER         =
        return                        = it_return
    *   GOODSMVT_SERV_PART_DATA       =
    *   EXTENSIONIN                   =
    if sy-subrc = 0.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
       WAIT          = 'X'
    * IMPORTING
    *   RETURN        =
    endif.
    But when i execute the above i am getting the following error.
    Runtime Errors         CALL_FUNCTION_UC_STRUCT
    Except.                CX_SY_DYN_CALL_ILLEGAL_TYPE
    Date and Time          27.01.2009 14:43:06
    Short text
         Type conflict during structure parameter transfer at CALL FUNCTION.
    What happened?
         Error in the ABAP Application Program
         The current ABAP program "Z_BAPI_FOR_MB1A" had to be terminated because it has
         come across a statement that unfortunately cannot be executed.
    Error analysis
         An exception occurred that is explained in detail below.
         The exception, which is assigned to class 'CX_SY_DYN_CALL_ILLEGAL_TYPE', was
          not caught and
         therefore caused a runtime error.
         The reason for the exception is:
         In the function "BAPI_GOODSMVT_CREATE", the STRUCTURE parameter "GOODSMVT_ITEM"
          is typed in such a way
         that only actual parameters are allowed, which are compatible in Unicode
          with respect to the fragment view. However, the specified actual
         parameter "IT_MSEG" has an incompatible fragment view.
    Missing Handling of System Exception
         Program                                 Z_BAPI_FOR_MB1A
    Trigger Location of Exception
        Program                                 Z_BAPI_FOR_MB1A
        Include                                 Z_BAPI_FOR_MB1A
        Row                                     72
        Module Name                             START-OF-SELECTION
    Source Code Extract
    Line  SourceCde
       42 lgort_i in so_lgort and
       43 bwart_i = '657'.
       44
       45 select * from csks into table it_cost
       46 for all entries in it_mseg where
       47 gsber = it_mseg-werks_i.
       48 *Filling BAPI Header Tables
       49 it_im_header-pstng_date = sy-datum.
       50 it_im_header-doc_date = sy-datum.
       51 it_im_gmcode-gm_code = '03'.
       52
       53 *Filling BAPI Item Tables
       54 loop at it_mseg.
       55
       56 read table it_cost with key gsber = it_mseg-werks_i.
       57
       58 it_mb1a-material = it_mseg-matnr_i.
       59 it_mb1a-plant = it_mseg-werks_i.
       60 it_mb1a-stge_loc = it_mseg-lgort_i.
       61 it_mb1a-batch = it_mseg-charg_i.
       62 it_mb1a-move_type = 555. " '103'.
      64 it_mb1a-costcenter = it_cost-KOSTL.
      65 it_mb1a-gl_account = '530089'.
      66
      67 append it_mb1a.
      68 clear it_mb1a.
      69 clear it_cost.
      70 endloop.
      71
    72*>>>> CALL FUNCTION 'BAPI_GOODSMVT_CREATE'*  73   EXPORTING
      74     goodsmvt_header               = it_im_header
      75     goodsmvt_code                 = it_im_gmcode
      76 *   TESTRUN                       = ' '
      77 *   GOODSMVT_REF_EWM              =
      78  IMPORTING
      79    GOODSMVT_HEADRET              = it_ex_headret
      80    MATERIALDOCUMENT              = mat_doc
      81    MATDOCUMENTYEAR               = mat_docyear
      82   tables
      83     goodsmvt_item                 = it_mseg
      84 *   GOODSMVT_SERIALNUMBER         =
      85     return                        = it_return
      86 *   GOODSMVT_SERV_PART_DATA       =
      87 *   EXTENSIONIN                   =
      88           .
      89 if sy-subrc = 0.
      90 CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      91  EXPORTING
    Can u explain why this is coming. Your valuable suggestions are required.
    Thanks,
    Jitesh M Nair

    Hi,
    Try this Code.
    CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
            EXPORTING
              GOODSMVT_HEADER       = WF_HEADER
              GOODSMVT_CODE         = WF_CODE
              TESTRUN               = WL_space
            IMPORTING
              MATERIALDOCUMENT      = FS_MATERIAL_DOC
            TABLES
              GOODSMVT_ITEM         = INT_ITEM
              GOODSMVT_SERIALNUMBER = INT_SERIALNO
              RETURN                = INT_RETURN1.
    *VARIABLES for goods movement creation bapi
    DATA : WF_HEADER  TYPE   BAPI2017_GM_HEAD_01,
           WF_CODE    TYPE   BAPI2017_GM_CODE.
    DATA : FS_MATERIAL_DOC   TYPE BAPI2017_GM_HEAD_RET-MAT_DOC,
           FS_SERIALNO       TYPE BAPI2017_GM_SERIALNUMBER,
           FS_ITEM           TYPE BAPI2017_GM_ITEM_CREATE,
           FS_RETURN1        TYPE BAPIRET2,
    data declaration for goods movement creation bapi
    DATA : INT_ITEM     TYPE TABLE OF BAPI2017_GM_ITEM_CREATE,
           INT_SERIALNO TYPE TABLE OF BAPI2017_GM_SERIALNUMBER,
           INT_RETURN1  TYPE TABLE OF BAPIRET2.
    Hope this will help.
    Regards,
    Rohan.

  • Error while creating Contracts using BAPI

    Hello,
    I am trying to use BAPI BUS2014 to create new Purchasing Contracts. Now everything works fine, except for some strange cases where Contracts are failing out with a message as:
    Reference document or master record has different language
    I don't understand it why. Language being set in Contracts is defined for those items in MM and it works for others but not for all. I think I am missing some basic point here. Can anyone please suggest?
    Any help is highly appreciated!
    Cheers
    EssKay

    OK - stupid question. I did figure it out myself. Sorry for my impatience. This is my first BAPI program, so a bit too shaky
    Cheers
    EssKay

  • Sales order creation with reference to quote using BAPI

    Hi All,
    I am trying to create a sales order with reference to quote using BAPI BAPI_SALESORDER_CREATEFROMDAT2.
    I am passing the Quote number and preceding doc.category (B) at the header level and
    at item level I am passing the quote number and the line item number in the quote for REF_DOC and REF_DOC_IT.
    The order is created but there seems to be some issue with the document flow.
    I do not see the Reference Doc number at the header level from the Sales order document flow whereas I can see the Reference Doc for each line item.
    In VBFA I can see the Ref.Doc number at the header level along with the Ref.Doc at the line item level.
    Why do you think it is not showing at the header level from Sales Document Document Flow?
    Is there any bug in the standard BAPI or is there any OSS note?
    Any answer would be greatly appreciated.
    Thanks
    Sandeep

    hi,
    Are you giving different quotation numbers in the different line items, if that is the case you will not get that in the header document flow, as it cann't point to all the quotations.
    Thanks,
    Mahesh.

  • SAP ECC 6.0 - Using BAPIs for C# to extract data out

    I have had a client recommend a strategy of extracting data usin C# (Visual Studio 2005) to extract data from SAP ECC using BAPIs.
    We do have an existing methodology in place using flat files to extract data to non SAP systems
    We have purchase XI which we intend to implement next year.
    I basically wanted to keep things tidy and continue with the flat file interface strategy just to keep things simple going forward to XI.
    THen there is also the security piece, the developer has had to slowly build a profile / roles that alows him to come in thru visual studio to access these BAPIs
    I am looking for anyone who has had experience with this and what your experiences are.  As well, what are the SAP best practicies concerning this strategy
    Thank YOU ALL who will reply

    I think that SAP's strategy toward exposing BAPI is leaning toward leveraging their AS-JAVA stack.  With the AS-JAVA Enterprise Services and standard delivered web content, SAP is already exposing many existing BAPI/Business Functionality outside of the ABAP world.   However, that's not saying that traditional flat files have no place in the future.  Matter of fact, I don't see flat/delimited files going away any time soon.
    It all really comes down to what you are doing, you may even end up with a landscape that's a mix of files/RFCs.  Here inhouse, we leverage file based transfers for large data sets such as SAP BI OHS extracts, and daily R/3 FI extracts.  Why file?  because it's simple, easy to control, and you can see the data being transferred.  A file can be "hold in my hands" if you will, at best there's just a few characters in-flight.
    As for RFCs, any type of RFCs in fact (Anything from sap .net connector to AS-JAVA ESOA Based ES), are basically designed for transactional data.  Here, you are looking at things that are high in transactional count but small in individual size.  Your client's call using C#, it all really depends on how you are doing it.  MOST IMPORTANTLY:  Make sure you are using a proven, standarized, and SAP supported way, PERIOD.  NEVER EVER go into production with a "hack".
    For the high-transactional-count-small-individual transactions, we leverage BizTalk Server (BTS) here.  I'll be frank, we are not using BTS because we wrote it.  We are using BTS because it just works better for us, in our environment.  BTS now support SAP 2.0 connector (registered program ID) and SAP 3.0 (WCF based, direct SAP RFC call, supported by Microsoft AND SAP).  We are leveraging these adapters and BTS (as distribution and transformation) in our environment more and more.
    So, long story short:  Determine the transaction type, multiple solutions is ok, make sure the solution is supported!

  • Doubt on Good movements using BAPI'S for Uploading

    Hi Experts,
             i am doing a bdc program to upload for mb1a transaction using BAPI..I am new to BAPI area..But with some reference i have finished the program..But i dont know why in clear statement and in gui upload showing error..IN gui upload when i activate the exception its throwing error..Hereby i am pasting the code...Any idea pls share with me..
    <removed by moderator>
    I dont know how to make the code show correctly...any help???????
    Regards
    Karthick
    Moderator message: please post only relevant code parts, observe the maximum of 5000 characters per post to preserve formatting, leave out commented lines, etc.
    Edited by: Thomas Zloch on Feb 10, 2011 6:05 PM
    sorry moderator...it will not happen again..
    my scenario is like this i ahve to upload the serial number with respect to the quantity in unit of measure..i am not getting any idea on this..for example if the quantity for the material is 5 then it has to upload five serial numbers...
    please help me on this!!!!!!!!
    regards
    Karthick
    Edited by: karthicksap on Feb 12, 2011 5:25 AM

    Hi kris,
         Finally i finished the coding..its working fine...but now its throwing material is not maintained in plant..checked with that..but material is maintained there..i dont know why its throwing the error..i checked with debugging and i found that its taking the last serial number only..for every material..my flatfile is like this..
    11.01.2011     11.01.2011     abc     9051     5101     stbdx300     3     600001     0     1000000000000001
    11.01.2011     11.01.2011     abc     9051     5101     stbdx300     3     600001     0     1000000000000002
    11.01.2011     11.01.2011     abc     9051     5101     stbdx300     3     600001     0     1000000000000003
    any idea kris.>?????
    regards
    Karthick

  • Delivery Document Lock Issue in Z Program using BAPI(s)

    Hi,
    I am a functional consultant posting this in ABAP forum. We have developed a Z-Program.
    User enters the Service Order no. in this program and executes it.
    The program then updates the following linked documents in the following sequence using BAPI(s)
    Outbound Delivery
    Service Notification
    Service Order (This is done using BDC of IW32)
    It sometimes happens that once the Program reaches the iw32 bdc, it gives error "Delivery XXXXXXXX is locked by User ID XXXXXX"
    The user ID being that of the person executing the transaction.
    This happens like 3 out of 100 times in the Production Server. We are unable to replicate this issue in Quality or Development Server.
    We believe it to be a performance issue (database updating is slow)
    However Client wants us to investigate the Program and see what is possible.
    We are thinking of putting WAIT after the BAPI(s) of the Delivery Update.
    Any suggestions, please help.

    Hello Suhas,
    Thanks for the reply.
    These documents are seperate objects but are interlinked. i.e I can see in the Document Flow for Service Order, which is the Service Notification and Outbound Delivery for the Material.
    Also, If I'm in change mode in the Outbound Delivery, I cannot go into the change mode of the Service Order.
    Yes, we are using BAPI_TRANSACTION_COMMIT after each BAPI in the Program. We have used the Wait Statement in all BAPIs for the Service Notification. These BAPI(s) are before the IW32 BDC.
    I am copying code from one of the commit BAPI(s)
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
                    EXPORTING
                      wait = c_x.
                  WAIT UP TO 1 SECONDS.
    I noticed in the Outbound Delivery BAPI(s) (two of them) don't have the wait in the BAPI_TRANSACTION_COMMIT. Hence I though if we add this, could this resolve the issue?
    Service Order gets updated last through BDC for IW32 after all the BAPI(s) are executed for Outbound Delivery and Service Notification.
    I understand WAIT would increase processing time, that is why I am posting this to know if we have some other solution available for such a lock issue.

  • How create a purchase order without imputation using bapi: BAPI_PO_CREATE1

    Hello Forum
    I have an request for purchase order with imputation K (cost center, EBAN-KNTTP). During the liberation of the request for purchase order, and using the Bapi: BAPI_PO_CREATE1, I want to create a Purchase Order without imputation (imputation empty or charge empty).
    The system displays the following error: The request for purchase order, item (position) 10, is attributed to another order...
    I imagine that is because the request for purchase order has imputation (charged) K and the purchase order will have no type of imputation (imputation empty).
    However, manually, Yes, I can create the purchase order. That is, I first release, the request for purchase order. Then I create the order of purchase using ME21 and with reference to request for purchase order, and when SAP returns the items of the request for purchase order, I manually remove the imputation K, and these items to become the purchase order.
    Please support me want to know how to resolve this case, why can not I create a purchase order without imputation to from the request for purchase order with imputation K, using Bapi
    Thank you.
    Greetings,

    Hi,
    In the item overview of the purchase order creation screen (ME21N), you have a column Purchasing Doc and next it item no.  You can give the existing purchase order number here with item no which will create a purchase order, and changes can be made wherever you require.
    Hope this helps.
    Thanks
    Krishna.

  • Withholding Tax not populated using BAPI

    Hello
    We are using BAPI to post invoices instead of FB60 but noticed a difference in the withholding tax data.
    Using FB60 when we provide a N1, the tax code shows up as starand the withholding tax exempt is populated along with the  withholding tax code from the vendor master.
    When we try to do the same using the BAPI providing it with N1, it does not populate the withholding tax exempt and withholding tax code fields
    We are using classing withholding tax.
    why the BAPI is behaving differently than FB60 and not picking up the standard configuration
    This is priority as we are in Production and invoices which dont have these withholding  tax information are not getting picked up for payment.
    Thanks

    Solved myself...using the ACCOUNTPAYABLE-W_TAX_CODE field to populate the tax code which is stored on the Vendor Master

  • LSMW using BAPI

    why we have to create PARTNER PROFILE while using BAPI in LSMW , and what is the correct way to create that

    Hi
    Partner Profile creation is not linked with LSMW or BAPI
    it is linked with ALE,EDI, IDOC
    we create partner profiles using WE20 tcode
    and we define Inbound, Outbound paramters related to Idoc data transmission
    <b>Reward points for useful Answers</b>
    Regards
    Anji

  • How to use Bapi -  'BAPI_ACC_DOCUMENT_POST'

    Hi Gurus,
    I want to use Bapi - 'BAPI_ACC_DOCUMENT_POST'.
    The below code gived message that - Document posted successfully: BKPFF 180000046710012010 DW1CLNT100
    but the document number gererated is not getting stored in any of BKPF or BSEG tables.
    The Bapi should work in the same way as FB01
    Please check and let me know your valuable suggestions on why document number is not getting saved.
    DATA: lwa_header  TYPE bapiache09,
          lt_ar       TYPE TABLE OF bapiacar09,
          lwa_ar      TYPE bapiacar09,
          lt_return   TYPE TABLE OF bapiret2,
          lwa_return  TYPE bapiret2,
          lt_curr     TYPE TABLE OF bapiaccr09,
          lwa_curr    TYPE bapiaccr09.
    *Start
    DATA : it_accountgl  TYPE STANDARD TABLE OF bapiacgl09 ,
           lwa_accountgl TYPE bapiacgl09.
    *End
    CLEAR: lwa_header, lt_ar, lwa_ar, lt_return, lwa_return, lt_curr, lwa_curr.
    lwa_header-bus_act      = 'BKPF'.
    lwa_header-username     = 'GOWDA'.
    lwa_header-comp_code    = '1001'.
    lwa_header-doc_date     = '20091102'.
    lwa_header-pstng_date   = '20091102'.
    lwa_header-trans_date   = '20091102'.
    lwa_header-fisc_year    = '2010'.
    lwa_header-fis_period   = '06'.
    lwa_header-doc_type     = 'DR'.
    lwa_accountgl-itemno_acc = '0000000001'.
    lwa_accountgl-gl_account = '0020000000'.
    lwa_accountgl-tax_code   = 'V1'.
    lwa_accountgl-item_text  = 'BAPI Test G/L line item'.
    APPEND lwa_accountgl TO it_accountgl.
    *lwa_ar-itemno_acc  = '0000000001'.
    *lwa_ar-customer    = '4000000006'.
    *lwa_ar-gl_account  = '0012110000'.
    **lwa_ar-gl_account  = '0020000000'.
    *lwa_ar-profit_ctr  = '0000000217'.
    *APPEND lwa_ar TO lt_ar.
    lwa_curr-itemno_acc = '0000000001'.
    lwa_curr-curr_type  = '00'.
    lwa_curr-currency   = 'USD'.
    lwa_curr-amt_base   = '100.00'.
    APPEND lwa_curr TO lt_curr.
    CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
      EXPORTING
        documentheader    = lwa_header
      TABLES
        accountgl         = it_accountgl
        accountreceivable = lt_ar
        currencyamount    = lt_curr
        return            = lt_return.
    COMMIT WORK.
    DATA: bt_return LIKE bapiret2.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait   = 'X'
      IMPORTING
        return = bt_return.
    LOOP AT lt_return INTO lwa_return.
      WRITE: / lwa_return-message.
    ENDLOOP.

    Hi Avi
    check this code  may you get some hint
    DATA gd_documentheader LIKE bapiache09.
    DATA l_type            LIKE gd_documentheader-obj_type.
    DATA l_key             LIKE gd_documentheader-obj_key.
    DATA l_sys             LIKE gd_documentheader-obj_sys.
    DATA it_accountgl      LIKE TABLE OF bapiacgl09 WITH HEADER LINE.
    DATA it_currencyamount LIKE TABLE OF bapiaccr09 WITH HEADER LINE.
    DATA it_return         LIKE TABLE OF bapiret2   WITH HEADER LINE.
    DATA it_return1        LIKE TABLE OF bapiret2   WITH HEADER LINE.
    gd_documentheader-username   = sy-uname.
    gd_documentheader-header_txt = 'BAPI Test'.
    gd_documentheader-comp_code  =  'RS01'.
    gd_documentheader-fisc_year  = '2008'.
    *gd_documentheader-doc_date   = '0'.
    *gd_documentheader-pstng_date = sy-datum.
    gd_documentheader-bus_act    = 'RMRP'.
    gd_documentheader-fis_period = '11'.
    gd_documentheader-doc_type = 'DW'.
    CLEAR it_accountgl.
    it_accountgl-itemno_acc     = 1.
    it_accountgl-gl_account     = '0011500000'.
    it_accountgl-tax_code       = 'V0'.
    it_accountgl-item_text      = 'BAPI Test G/L line item'.
    it_accountgl-customer       = 'AG0460'.
    *it_accountgl-profit_ctr     = '0000002002'.
    it_accountgl-de_cre_ind     = 'H'.
    it_accountgl-comp_code      = 'RS01'.
    it_accountgl-doc_type       = 'DR'.
    *it_accountgl-fis_period     = '06'.
    *it_accountgl-fisc_year      = '2009'.
    it_accountgl-pstng_date     = sy-datum.
    APPEND it_accountgl.
    CLEAR it_currencyamount.
    it_currencyamount-itemno_acc   = 1.
    it_currencyamount-curr_type    = '00'.
    it_currencyamount-currency     = 'INR'.
    it_currencyamount-amt_base     = '100'.
    APPEND it_currencyamount.
    CLEAR it_currencyamount.
    it_currencyamount-itemno_acc   = 2.
    it_currencyamount-curr_type    = '00'.
    it_currencyamount-currency     = 'INR'.
    it_currencyamount-amt_base     = '100'.
    APPEND it_currencyamount.
    CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
      EXPORTING
        documentheader = gd_documentheader
      IMPORTING
        obj_type       = l_type
        obj_key        = l_key
        obj_sys        = l_sys
      TABLES
        accountgl      = it_accountgl
        currencyamount = it_currencyamount
        return         = it_return.
    WAIT UP TO 10 SECONDS.
    IF sy-subrc IS INITIAL.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          wait = 'X'.
    ENDIF.
    Regards
    Nilesh

  • Module pool to create goods mvt by using Bapi

    Hi can any one help me to develop a module pool program to create goods movement by using BAPI. Pls give me guidelines to proceed further...
    i should be grateful to you people for proving help...
    thank you
    with regards
    bheem

    Why do you want to develop a module pool to do this?  There are standard transactions to do goods movement (MB01, MB1A, MB1B, MIGO, etc.)
    Not sure why you want to development something that is already there.  Granted, if you are interfacing to an external system.
    Albert

Maybe you are looking for

  • Can't access itunes, and won't let me install or uninstall

    When i click on itunes it says files are not supported, and that i need to uninstall and reinstall. I then try to do so and it says files are unable to be found. and when i just download itunes without uninstalling it says other files must be uninsta

  • Button and 'disjointed' rollover

    I have put a button in the first frame of a movie clip and a graphic and the second and third frames. The graphics give the appearance that the button is being highlighted in a way different than when you actually roll over the button itself. I am do

  • Protocol error help

    Hello. When I hotsync my palm centro i get this message: Protocol Error: Handheld file could not be opened. (4004)  SYNCERR_FILE_NOT_OPEN Does anyone know how to address/fix this error.....or is it even worth messing with??? Thank you!!!   Post relat

  • Ad-Hock WorkFlow Configuration

    Hello, I am new to UWL. I dont have any backend system. I want to get hands-on experience with UWL. Could you please provide some links, or documents on how to configure the Ad-hoc workflow. I have the document to configure the backend systems(R/3 or

  • Help with completion of Accelerometer and Heel force VI please

    Hi all, First off I'm very stressed as regards to trying to complete this full package, let me explain a little further. Essentially I have 3 VI's an EMG VI and Accelerometer (Trunk Tilt) VI and an FSR (Heel Force) VI. The idea behind the VI is to si