Bdc,lsmw,bapi

hello all,
please tell me about difference between bdc , lsmw, bapi
Moderator Message: Search for available information before posting.
Edited by: kishan P on Dec 28, 2010 4:32 PM

Hi Karthik,
All the 3 can be used for the same purpose.
BDC - was the first provided by SAP for mass data entry in to SAP Database with Screen checks
LSMW - Originated as a 3rd party tool with many more functionalities and ease of use
BAPI - Some times the transaction screens changes, in those cases the BDC's fail as they purely refer to the screen elements. BAPI's provide a more consistent way to make entries in SAP systems without referencing the screen elements but still adhering to the underlying business logic, so the data entry is syntactically and semantically correct.
Hope this helps.
Regards,
Gaurav

Similar Messages

  • Differences between  BDC , LSMW, BAPI,CATT

    Hi ABAP Gurus,
    Just I have completed my ABAP course. Could you please explain the differences between BDC(Session and Call Transaction),LSMW,CATT and BAPI. Their advantages & limitions.
    Thanks in advance.
    Chandra Mohan

    BDC techniques used in programs:
    1) Building a BDC table and calling a transaction,
    2) Building a session and a set of BDC scenarios and keeping the session available in SM35,
    3) Building a session and lauching the transaction right after closing the session.
    BDC using Call Transaction
    LSMW:
    The Data Transfer Workbench (or DX Workbench, transaction SXDA) is an integrated SAP tool that supports data transfer and analysis. It does not have the built-in features for mapping for source structures to target structures, but it will allow you to integrate Legacy System Migration Workbench (LSMW) objects as processing tasks within a run definition. The DX workbench has many features for creating test data and performing data migrations - for example, logging of data migration runs. However, if you need to map or convert data, you should use the LSMW. Or, you can integrate your LSMW objects as task within a more user-friendly data migration run, in which the LSMW project steps "Read data", "Convert data," and "Start IDoc processing" are automated and use the features of both tools. If you donot need logging and automated data migration runs, you can perform your data migration without the DX Workbench.
    BDC:
    Batch Data Communication (BDC) is the oldest batch interfacing technique that SAP provided since the early versions of R/3. BDC is not a typical integration tool, in the sense that, it can be only be used for uploading data into R/3 and so it is not bi-directional. BDC works on the principle of simulating user input for transactional screen, via an ABAP program. Typically the input comes in the form of a flat file. The ABAP program reads this file and formats the input data screen by screen into an internal table (BDCDATA). The transaction is then started using this internal table as the input and executed.
    BDC using Call transaction involves calling an SAP transaction in back ground from within the ABAP
    program. The process involves building an Internal BDC table containing the screen information needed to
    execute the required transaction and then passing this to the Call transaction command (See code example).
    The full procedure for creating a BDC program is as follows:
    What is the difference between batch input and call transaction in BDC?
    Session method.
    1) synchronous processing.
    2) can tranfer large amount of data.
    3) processing is slower.
    4) error log is created
    5) data is not updated until session is processed.
    Call transaction.
    1) asynchronous processing
    2) can transfer small amount of data
    3) processing is faster.
    4) errors need to be handled explicitly
    5) data is updated automatically
    BATINPUT/DIRECT INPUT
    A: Batch-inputs can not be used to fill the "delivery due list" screen because it is not a dynpro. This is a standard SAP report. A SAP report (check with "System -> Status") may be called using SUBMIT sentence with the appropriate options . It is preferred to call a report than create a Batch-input program.
    GO THROUGH THIS LINK
    http://www.guidancetech.com/people/holland/sap/abap/zzsni001.htm
    BAPI - Some times the transaction screens changes, in those cases the BDC's fail as they purely refer to the screen elements. BAPI's provide a more consistent way to make entries in SAP systems without referencing the screen elements but still adhering to the underlying business logic, so the data entry is syntactically and semantically correct.
    You can check the below links also
    Re: Differences between LSMW and BDC
    BDC  AND BAPI

  • DI vs LSMW vs BDC vs Bapi

    can anyone provide some clarification reagrding DI i.e. Direct Input method ....We use DI if there is no alternate is available i.e. No BAPI, BDC, LSMW..? what preferences and priorities for LSMW, BAPI, BDC, DI..

    Hi
    check the link
    http://www.geekinterview.com/question_details/33450
    Regards,
    Stock

  • FAQ's BDC & LSMW

    Hi All please answer these Questions,
    1.     What is BDC ?
    2.     What is call transaction method ? what is the
    syntax/procedure?
    3.     What is session method and what is the
    syntax/procedure?
    4.     Difference between call transaction & session method?
    5.     which of these methods can be best used in background
    process?
    6.     What is direct input method?
    7.     How LSMW is advantageous than normal BDC?
    8.     what are the steps in lsmw?
    9.     IN LSMW can you use BAPI, ?
    10.     Can you call a bdc from a report program?
    11.     what is the difference between synchronus &
    asynchronus methods?
    12.     call transaction uses synchronus or synchronus method?
    13.     session method uses synchronus or synchronus method?
    14.     What is bapi?
    15.     how bapi is different from call transaction/session?
    16.     what r the advantages of bapi?
    17.     for uploading master data(ex:customer data) into sap,
    which methods you prefer? call
    transaction/session/lsmw/bapi? why?
    18.     tell any 2 standard bapi function modules used for
    uploading sales order data?
    Thnaks in advance
                                                                                    Ranjith

    Hi,
    1.BDC is Batch Data Communication where data is transferred from legacy system to SAP system.
           Different methods of BDC are
             1. Call Transaction Method.
             2. Session Method
             3. Direct Input method.
    2.  Call Transaction Method is  one of the method in BDC for Data Transfer.
         Syntax :
                CALL TRANSACTION trans [using bdctab MODE mode].
                    Where trans = Transaction Code
                              Bdctab = Internal table of structure BDCDATA.
                              Mode = Display mode.
                 Three possible entries are there for MODE.
                            A          -           Display all .
                            E          -           Display errors only.
                            N          -           No Display.
          Procedure :
                 1.     Prepare a BDCDATA structure for the transaction that u wish 2 run.
                 2.     With a CALL TRANSACTION USING statement,call the transaction and prepare the BDCDATA structure. For example:
                          CALL TRANSACTON ‘ZSRC’ USING BDCDATA MODE ‘A’.
                                   MESSAGES INTO MESSTAB.
                           IF SY-SUBRC <> 0.
                            <Error_handling>.
                           ENDIF.
    3.  Procedure :
                 1.     Generate the batch input session using function module BDC_OPEN_GROUP.
                 2.     The proceed as follows for each transaction that the session contains:
                              a . In the BDCDATA structure, enter the value for all screens and fields that must be processed in the transaction.
                              b. Use BDC INSERT to transfer the transaction and the BDCDATA structure to the session.
                               c.Close the batch input session with BDC CLOSE GROUP
                               d.Start to process the generated session.
    4.Session method.
    1) asynchronous processing.
    2) can tranfer large amount of data.
    3) processing is slower.
    4) error log is created
    5) data is not updated until session is processed.
    Call transaction.
    1) synchronous processing
    2) can transfer small amount of data
    3) processing is faster.
    4) errors need to be handled explicitly
    5) data is updated automatically
    5.Call Transaction method.
    6.Direct Input is a technique  which doesnot create a session but stores data directly.To enhance the batch input procedure, the system offers the direct input technique, especially for transferring large amounts of data.
    7.In LSMW ,there are two more import techniques (BAPI,IDoc) & Mapping can be done automatically.It contains 17 to 18 steps for migrating the data.It's an automatic procedure.
    8.Goto Transaction 'LSMW' and execute it.We can view the steps.
    9.Yes,We can.There is an option in 'Maintaining Object Attributes'.
    12.Synchronous processing.
        In Database Update,it may be Synchronous or Asynchronous.
    13.Asynchronous processing.
        In Database Update,it is  Synchronous.
    14.BAPI(Business Application Programming Interface) they are actually methods (business functions) exposed by the sap environment to manipulate business objects defined in the business objects repository. other sap or non sap systems can use these bapis for their business operations.
    16: regarding advantages for BAPI, please refer: http://help.sap.com/saphelp_nw04/helpdata/en/7e/5e11dc4a1611d1894c0000e829fbbd/frameset.htm

  • BDC Using BAPI

    Hi All,
    Pls Send me sample code for using Bapi in a Bdc Program to upload Flat file
      (non-SAP)   Data into SAP R/3 .
    Rgds
    Rafi .

    Hi
    You can straight use a BAPI and upload the data into SAP like how you do using a BDC program.
    see the doc
    BAPI - BAPIs (Business Application Programming Interfaces) are the standard SAP interfaces. They play an important role in the technical integration and in the exchange of business data between SAP components, and between SAP and non-SAP components. BAPIs enable you to integrate these components and are therefore an important part of developing integration scenarios where multiple components are connected to each other, either on a local network or on the Internet.
    BAPIs allow integration at the business level, not the technical level. This provides for greater stability of the linkage and independence from the underlying communication technology.
    LSMW- No ABAP effort are required for the SAP data migration. However, effort are required to map the data into the structure according to the pre-determined format as specified by the pre-written ABAP upload program of the LSMW.
    The Legacy System Migration Workbench (LSMW) is a tool recommended by SAP that you can use to transfer data once only or periodically from legacy systems into an R/3 System.
    More and more medium-sized firms are implementing SAP solutions, and many of them have their legacy data in desktop programs. In this case, the data is exported in a format that can be read by PC spreadsheet systems. As a result, the data transfer is mere child's play: Simply enter the field names in the first line of the table, and the LSM Workbench's import routine automatically generates the input file for your conversion program.
    The LSM Workbench lets you check the data for migration against the current settings of your customizing. The check is performed after the data migration, but before the update in your database.
    So although it was designed for uploading of legacy data it is not restricted to this use.
    We use it for mass changes, i.e. uploading new/replacement data and it is great, but there are limits on its functionality, depending on the complexity of the transaction you are trying to replicate.
    The SAP transaction code is 'LSMW' for SAP version 4.6x.
    Check your procedure using this Links.
    BAPI with LSMW
    http://esnips.com/doc/ef04c89f-f3a2-473c-beee-6db5bb3dbb0e/LSMW-with-BAPI
    For document on using BAPI with LSMW, I suggest you to visit:
    http://www.****************/Tutorials/LSMW/BAPIinLSMW/BL1.htm
    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.
    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 points if useful
    Regards
    Anji

  • LSMW/ BAPI method for Document upload (CV01N)

    Hi All,
    Could you please let me know if it is possible to use LSMW (BAPI method) for creation of document ?(using CV01N) and linking files.
    If yes, what is the business object for doing the same?
    I did came across a BAPI "BAPI_DOCUMENT_CREATE2", but in order to use it for mass upload , we will have to develop a program. SO I was trying to see of the LSMW method could be used.
    Thanks and Regards,
    Narendra

    Hi Narendra,
    LSMW is not supporting for attachements. Please check and confirm. If you have to upload bulk files then use BDC(Batch data collection) it's very useful for uploading thousands documents at a time. Ask abap'r to write a bdc program.
    I hope this will resolve the query.
    Regards,
    Ravindra

  • LSMW BAPI for Initial Stock (561)

    Hi all,
    I've done LSMW for initial stock (movement type 561) using BAPI method:
    Business object = BUS2017
    Method = CREATEFROMDATA
    Message Type = MBGMCR
    Basic Type = MBGMCR03
    LSMW works well but the result shows material document with only one item.
    How can I generate material document from LSMW BAPI with many items within?
    Thanks in advance.
    Peerasit

    Try Another option as below
    Make bdc for MB1C stock upload using movement type 561 by recording through transaction SHDB.
    Regards,
    Sandesh Sawant

  • BAPI vs LSMW BAPI

    Dear Friends,
    What is the advantage of using LSMW BAPI over Normal Bapi ? what are the differences ?
    When we will go for LSMW and when we will go for BDC/BAPI/IDoc ?
    Thanks all.
    Vinay.
    Moderator message: FAQ, please search for previous discussions of this topic.
    Edited by: Thomas Zloch on Nov 21, 2011 3:51 PM

    Hi,
    BAPI is nothing but remote function module and can be called from the same sytem or different sytem..
             or different applciation like EP(enterprise portal or XI)..
             Bapi(tables are updated using form routines) is a alternative of BDC(tables are using Screens) ..
    BDC- is nothinf but Batch data communication, and it is done through shdb transaction and screen
            recording and ok_codes and data is updated to tables using screen and ok_codes..
    LSMW--is a local and you can map fields to screen fields in transacion and update the table using  
                lsmw and generally these can be done manually by function people..
    Regards,
    Prabhudas

  • Netprice Picked up from last document-Open PO load using LSMW BAPI method.

    Hi Experts,
    I m doing Open PO load using LSMW BAPI method...(BAPI_PO_CREAT1).
    Inside the LSMW BAPI picks up the NETPR value from the last document and doesnt consider the value from load file...
    Please advice me how to handle this issue...
    I tried giving values to field CALCTYPE at item level or POCOND table with with carry out new pricing options....but nothig works for me...
    PLease give your valuable inputs to achieve the requirement....
    Bharathi.J

    read OSS Note 580225 - Purchasing BAPIs: Conditions and pricing

  • Error while creating the ASSET using LSMW BAPI method ( BUS1022 )

    Hello,
    Im creating assets using the below LSMW BAPI method
    Business Object      BUS1022     
    Method                     CREATEINCLVALUES
    Message Type         FIXEDASSET_CREATEINCLVALU
    Basic Type              FIXEDASSET_CREATEINCLVALU
    the following errors were triggered while populating the values to ACQ_VALUE and ORD_DEP value.
    Correction to ordinary dep. greater than acc. dep. in area 01
    Correction to ordinary dep. greater than acc. dep. in area 30
    Correction to ordinary dep. greater than acc. dep. in area 31
    Correction to ordinary dep. greater than acc. dep. in area 32
    if i pass only ACQ_VALUE, I am able to create the asset with out any issues.
    Can you guys plz guide me to fix this issue to create the asset with both ACQ_VALUE and ORD_DEP values??
    Cheers,
    Sriram.

    Hello,
    Review AO21.
    Regards
    Waza

  • In LSMW, what is diff between LSMW-BAPI and LSMW-IDOC

    hello all
    In LSMW, what is diff between LSMW-BAPI and LSMW-IDOC

    Hi Swamy,
    The differences between IDoc and BAPI are as follows: 
    IDOC
    IDocs are text encoded documents with a rigid structure that are used to exchange data between R/3 and a foreign system.
    Idocs are processed asynchronously and no information whatsoever is returned to the client.
    The target system need not be always online. The IDOC would be created and would send the IDOC once the target system is available (tRFC concept). Hence supports guaranteed delivery.
    With asynchronous links the sub-process on the client can be finished even if the communication line or the server is not available. In this case the message is stored in the database and the communication can be done later.
    The disadvantage of asynchronous links is that the sub-process on the server cannot return information to the calling sub-process on the client. A special way for sending information back to the client is required. In addition, a special error handling mechanism is required to handle errors on the receiving side.
    IDOCs may be more changeable from release to release.
    IDOCs  are poorly documented.
    BAPI
    BAPIs are a subset of the RFC-enabled function modules, especially designed as Application Programming Interface (API) to the SAP business object, or in other words: are function modules officially released by SAP to be called from external programs.
    BAPIs are called synchronously and (usually) return information.
    For BAPIs the client code needs to do the appropriate error handling.
    Problems with synchronous links occur if the communication line or the server is temporarily not available. If this happens, the sub-process on the client cannot be finished (otherwise there would be data inconsistencies).
    Synchronous links have the advantage that the sub-process on the server can return values to the sub-process on the client that has started the link.
    BAPIs are not totally immune to upgrades.
    BAPIs are reasonably well documented.
    Reward points if useful.
    Best Regards,
    Sekhar

  • Non English characters conversion issue in LSMW BAPI Inbound IDOCs

    Hi Experts,
    We have some fields in customer master LSMW data load program which can
    contain non-English characters. We are facing issues in LSMW BAPI
    method with non-English characters Conversion. LMSW steps read and
    conversion are showing the non-English characters properly with out any
    issue. While creating inbound IDOCs most of the non-English characters
    replaced with '#' and its causing issues in creating customer master data in
    system. In our scenario customer data with non-English characters in
    the first name, last name and address details. Any specific setting
    needs to be done from our side? Please suggest me to resolve this issue.
    Thanks
    Rajesh Yadla

    If your language is a unicode tehn you need to change the options  like IN SAP you need to change it to unicode  in the initial screen Customize local layout(ALT F12) options 118  --> Encoding ....

  • Best practice to upload data for Appraisals: BDC, LSMW or functional module

    Hi,
    I have heard that BDC and LSMW do not work for data upload in appraisals. Is it true?
    Can we use ECATT or SECATT to upload data in appraisals?
    I somewhere got the information that functional modules
    HRHAP_DOCUMENT_PREPARE
    HRHAP_DOC_UPDATE_BODY_AND_SAVE
    HRHAP_DOCUMENT_CREATE
    are used to upload the data for appraisals?
    Many of my earlier clients found it very hectic to create appraisal templates every year (PHAP_CREATE). They needed something automated for this.  I managed to suggest them manual upload or SECATT, but I am not sure if BDC/LSMW work for this.
    Can somebody throw some light on this?
    Best regards,
    Veera Sasidhar Jangam

    Hi,
    You need to write a code for same and use function modules available as those does direct updates to database.
    If client is not bothered about look and feel during dataload or do not care about display infotypes during data updates then use above method otherwise BDC needs to be written with screen control programming in it.
    Thanks,
    Ameet

  • Unable to create PO with multiple line items through LSMW-BAPI method

    Hi All,
    I have a requirement of creating PO through LSMW. I can't use LSMW standard batch input program since there are some fileds not available and also it has many limitations. I'm using LSMW-BAPI method ( Business object BUS2012) which create IDOC and uses BAPI_PO_CREATE1 to ultimately post the PO in the system. I am trying to create PO from a single file which contains both Header and Item data.
    Now my problem is that everytime PO is being created with Single line item only. Everytime I am giving multiple item data in the source file LSMW is preparing multiple IDOCs for multiple line items. As per my understanding this is happenng since header and item is in the same hierarchy level of IDOC type PORDCR102 and the control record is inserted for every line item in the source file.
    It seems that through LSMW-BAPI  it is not possible to create PO with multiple line items. Can anybody provide some input regarding this? Thanks in advance.
    BR,
    Atanu Mukherjee

    Solved by myself.
    Earlier the problem was that LSMW was not being able to recognize items under same header. It was creating new IDOCs every time it gets a new item. To enable this we need to create two structure HEADERDATA and ITEMDATA.  Two additional identifier fields with identifier value 'H' and 'I' should be added in these two structures respectively. Then we need one sequential file with the identifiers field followed by the header and Item data. Example:
    H~header data
    I~item data
    I~item data 
    This would help the standard program to understand what are the items under same header and ultimately create PO with multiple line items.
    BR,
    Atanu Mukherjee

  • Uploading subcontracting PO using LSMW-BAPI method

    I am trying to upload the subcontracting Purchase order using LSMW-BAPI .
    Bapi name -Create from Data1
    Business Object  -    BUS2012                             Purchase Order
    Method               -    CREATEFROMDATA1          Create Enjoy Purchase Ord
    Message Type     -    PORDCR1                           Create Purchase Order
    Basic Type          -    PORDCR102                        Create Purchase Order
    In this BAPI - for subcontracting material (component), required quantity & plant values are provided in a input file .
    When I trying to upload this PO, PO gets created but component data not getting uploaded.
    In documentation of BAPI -under restriction section -there is a restriction for subcontracting.
    So can we create Subcontracting PO using this PO.
    any solution on same.
    Because most of the conversion part is done. Only for subcontracting PO this bapi is not working.
    Please anybody know about the solution guide me ASAP.
    Thanks

    Hi Vikram,
    I am also having same scenario , I m using BAPI - BAPI_GOODSMVT_CREATE To create GR  for Subcontracting PO
    Can u please tell me how can solve this problem.
    Normal GR its working but for Subcontracting PO its not working.
    Regards,
    Sanket

Maybe you are looking for

  • How can I get the selected rows from two ALV grids at the same time?

    I have a program that uses two ALV grids in one dialog screen. I'm using the OO ALV model (SALV* classes). The user can select any number of rows from each grid. Then, when a toolbar pushbutton is pressed, I'd have to retrieve the selected rows from

  • How to make the text_field to editable in the adobe document?

    Hi, expert, I meet a problem when I develop a WDA. I hope to get your help. Thanks a lot. The following is my action: Action: 1. I am using "Text Field" control rather "Text" Control in the pfd form by transfer code "sfp". I make sure in Object Palet

  • Please help me clarify the benefits of Lightroom and PSE

    Hello, I've had PSE for many years and I am a light user of it. I've got about 13000 family photos I want to catalog, mark favorites, and touch up favorites - mostly adjust lighting and color, crop, red eye. I will occasionally edit out an object, li

  • 3D Tween not working in Test mode or Published version

    Hi, I'm pretty much tearing my hair out with this one. I am creating a 3d tween using the 3D rotation tool and everything looks great when I play it on the timeline but as soon as I test or publish the movie, the image is static, doesn't rotate and a

  • Using perl DBI on Solaris 10 gives core dump

    I am using perl 5.8.4 which comes along with Solaris 10. I have installed DBI-1.58. Even a test command is not working. perl -MDBI -e 'print "$DBI::VERSION\n";' Bus Error (core dumped) truss perl -MDBI -e 'print "$DBI::VERSION\n";' shows stat("/usr/l