Adapting SAP transactions as BAPI

As most of the BAPIs are based transactions, I would like to know how you would approach to create a BAPI interfaced function that works like a given SAP transaction.
For example, FV60 requires a few entries into mandatory fields, and then calls Modules and Functions. Having found the Screens from Dialog Programming, how should/would one go about converting it into BAPI Import, Export and Tables? Perhaps Vendor could be an Import field, or the whole Header, a BAPI Import Stucture, while the items are Import Tables, which the BAPI will return, when successful, a Export Structure/Field with the Invoice Document Number.
Since both are coded on ABAP, I would believe that it is a pretty simple task, only needing to figure out how to transfer some Dialog specific portions, remove "real-time" field checking and placing it as Returns, and some other adjustments as you fit it into a BAPI. All done in the "top-most layer" such that as little change as necessary is needed, and with maximum code re-use?
I hope the idea is presented clear enough. Any help would be appreciated.

I don't think that this is a simple task because I've been long enough in development to know that there are at least as many variants as we have developers. But if I had to do this I'd do it the following way:
1. Check the transaction tediously. Make sure that there are no hidden popups etc. Expecially check if save or similar buttons send additional question pop ups.
2. If there are no additional popups, look at the number of screens. Ideally you have an entry screen and a number of screens where you do multiple input entries. Now it depends on your transaction. Does the transaction save the data only or does it give you a list as return? If it is save only, you should think about a CREATE_FROM_LIST BAPI, otherwise a simple CREATE could be complicated enough. Now create your BAPI with all input fields as one or multiple Import structures and similar output structures. Don't forget BAPIRETURN or BAPIRET2.
Copy all the coding from the PAI of your main screen (where you press the save button) into the function module. Now make it syntax error free which might be complicated enough. Then test it, test it, test it, especially with wrong data.
That's all but it is more than enough.
Best regards
   Dirk

Similar Messages

  • What method, BAPI, etc. is used to launch a standard SAP transaction?

    Hello friends,
    Is there a simple way of finding out what method, BAPI, FM, etc. is used  to launch a standard SAP transaction?
    I was told that instead of CALL TRANSACTION using BDCDATA stuff, I can use the method or BAPI or FM, or whatever to get the same results. The problem is I don't know how to find out this information.
    Apparently using BDCDATA for a CALL TRANSACTION form within an ABAP  program can be hazardous because of SAP's upgrades, new releases etc... If one of the screens is modified during the next release, then the BDCDATA will no longer work. So I need to launch a transaction from within my ABAP  without having to worry about future changes implemented by SAP.
    Any ideas?
    Your help is greatly appreciated,

    Hi,
    It depends on which transaction you are looking for. Usually it comes by experience. You can search in SE37 or transaction BAPI to find out relevant BAPI suitable for you. All BAPI FMs starts with name BAPI.
    eg: If you want to findout the BAPI for VA01 transaction, try like this.
    SE37=> enter BAPIsalescreate* and click F4.
    You can see below list of FMs.
    BAPI_SALESDOCU_CREATEFROMDATA
    BAPI_SALESORDER_CREATEFROMDAT1
    BAPI_SALESORDER_CREATEFROMDAT2
    BAPI_SALESORDER_CREATEFROMDATA
    BAPI_SALES_DEL_SCHEDULE_CREATE
    BAPI_SALESORDER_PROXY_CREATE
    BAPI_SALESDOCU_CREATEFROMDATA1
    BAPI_SALESDOCU_CREATEWITHDIA
    By looking at the name we can identify upto 60%. Just go through the FM documentation and see if it works for u and how to use it.
    SCN is always there to help us out. But before posting to ask for a BAPI, please search and give a try to findout:)
    Thanks,
    Vinod.

  • SAP BAPI to get Component of any SAP Transaction

    Dear All,
    I Want to get the Component Id of any given SAP Transaction Code, with the help of some SAP RFC.
    I tried to get the Component, I got it too but I need some SAP BAPI to do this task.
    Some details are available over here,
    Component of any SAP Transaction
    Please Help.

    Hi Cvrian,
    There is no BAPI for this but there are some RFC functions to get what you want (since they are not BAPIs they may change without notice but probably won't).
    First get the transaction dev class info with RFC AKB_GET_TADIR. 
    For example if you give it OBJECT_TYPE = TRAN  and NAME = SU01 you will get the dev class info for transaction SU01. 
    The dev class info includes a component (in this example HLB0100102).  Now call RFC RH_GET_APPLICATION_COMPONENTS to get the list of component to map it to the human-readable component (in this example BC-SEC-USR-ADM). 
    Hope that solves your requirement.  This is not really a SolMan question but I wanted to be helpful

  • Create with Dynpro-Technology an  SAP Transaction

    Hello Experts!
    Imagine, I want to try create any SAP transaction
    lets say e.g. SalesDistribution's VA01 or any other transaction
    with the WebDynpro-Technology. In order to assure the 100 percent
    guarantee of correctly working of this transaction with WebDynpro,
    normally I have to copy really each coding line or to use really exact
    the same methods and their calls like SAP original. It s must be
    kind of constructing an airbus.
    Suppose every logic every screen, every subscrenn.
    How can I can realize such a monster job easier.
    Is  there any known relief existing
    to do such things much more easier. For small applications
    with a call of two or three Bapi's through
    Adaptive RFC it is very helpful, but in case of recreating
    transactions through  WebDynpro-Technology ???
    reagards
    sas
    Message was edited by:
            erdem sas

    Sas,
    If you really have a requirement for this Monster Project, you can probably do that.
    But SAP Documentation says Web Dynpro use for UI Development with little coding. It is not advised to keep all the bussiness logic. Usually this business logic goes to the backend system, may be SAP.
    All the business logic is already there in the SAP R/3. It is advisable to call directly BAPI , with Adapative RFC Model or Web Service model.
    It is just my thinking.
    Regards,
    Sridhar

  • Adding Data to the database for SAP Transactions

    Hi
    I'm new to the whole ABAP. I would like to enquire about adding transaction data in SAP through ABAP but it must be immediate.
    I know that one can use a BAPI to add data and can rollback if any problems occur.
    But if no BAPI exists how does one write code to add a document to the SAP database but with everything SAP transaction requires like the BAPI. What is the process and how???
    So let say I wanted to do FB01 which is SAP FI document and must be immediate. There is a BAPI that exists for it but if there was not one how would I do this???
    I know one can also use BDC but that creates a batch and then needs to be executed in SM35, I want a way to add data for two or three SAP transactions, if any problems occur with any of the steps rollback everything else commit everything to the database.
    Any simple detail examples (code) that satisfy the above will be greatly appreciated and REWARDED.
    Thanks in advance

    Luis,
    i have a code exactly same BDC for FB01.
    refer:
    REPORT z_etching_fb01
           NO STANDARD PAGE HEADING LINE-SIZE 255.
    *etching invoice load
    INCLUDE bdcrecx1.
    TYPE-POOLS: truxs , slis.
    *PARAMETERS: dataset(132) LOWER CASE DEFAULT
    *                              'c:\temp\etchingload.txt'.
    PARAMETER: pfile LIKE rlgrap-filename." OBLIGATORY.
    SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-001.
    PARAMETER:    p_kunnr LIKE kna1-kunnr OBLIGATORY,           "kna1-kunnr
                  p_bukrs LIKE bseg-bukrs,
                  p_mwskz LIKE t007a-mwskz OBLIGATORY,"t007a-mwskz
                  p_prctr LIKE cepc-prctr OBLIGATORY,"cepc-prctr
    *            p_newko LIKE ska1-saknr OBLIGATORY DEFAULT 41000000,"
                p_budat LIKE bkpf-budat OBLIGATORY ,
                p_hkont LIKE bseg-hkont OBLIGATORY DEFAULT 41000000 ,
                p_waers TYPE waers OBLIGATORY DEFAULT 'GBP'."tcurr-waers
    SELECTION-SCREEN END OF BLOCK a.
    SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-002.
    PARAMETER : report AS CHECKBOX DEFAULT 'X'.
    SELECTION-SCREEN END OF BLOCK b.
    ***    DO NOT CHANGE - the generated data section - DO NOT CHANGE    ***
    *   If it is nessesary to change the data section use the rules:
    *   1.) Each definition of a field exists of two lines
    *   2.) The first line shows exactly the comment
    *       '* data element: ' followed with the data element
    *       which describes the field.
    *       If you don't have a data element use the
    *       comment without a data element name
    *   3.) The second line shows the fieldname of the
    *       structure, the fieldname must consist of
    *       a fieldname and optional the character '_' and
    *       three numbers and the field length in brackets
    *   4.) Each field must be type C.
    *** Generated data section with specific formatting - DO NOT CHANGE  ***
    *                          ALV                                           *
    DATA: it_fieldcat     TYPE    slis_t_fieldcat_alv,
          wa_fieldcat     LIKE    LINE OF it_fieldcat,
          it_top_of_page  TYPE    slis_t_listheader,
          ls_layout       TYPE    slis_layout_alv,
          gt_events       TYPE    slis_t_event.
    DATA: it_raw TYPE truxs_t_text_data.
    DATA: BEGIN OF record,
    * data element: BLDAT
            bldat_001(010),   "Invoice Date
    * data element: BLART
            blart_002(002),   " Doc Type DR or DG if credit
    * data element: BUKRS
            bukrs_003(004),   " Company Code
    * data element: BUDAT
            budat_004(010),   "Posting Date
    * data element: MONAT
            monat_005(002),   "period"
    * data element: WAERS
            waers_006(005),   "Currency
    * data element: XBLNR1
            xblnr_007(016),   "Invoice Number
    * data element: BKTXT
            bktxt_008(025),   "PO number
    * data element: SAEOBJART
            docid_009(010),
    * data element: NEWBS
            newbs_010(002),   "posting Key
    * data element: NEWKO
            newko_011(017),   "Customer number or GL account
    * data element: WRBTR
            wrbtr_012(016),   "Amount
    * data element: DZTERM
            zterm_013(004),
    * data element: DZBD1T
            zbd1t_014(003),
    * data element: DZFBDT
            zfbdt_015(010),
    * data element: DZUONR
            zuonr_016(018),   "Invoice Number
    * data element: SGTXT
            sgtxt_017(050),   " PO number
    * data element: NEWBS
            newbs_018(002),
    * data element: NEWKO
            newko_019(017),   "GL Account
    * data element: WRBTR
            wrbtr_020(016),   "Amount
    * data element: MWSKZ
            mwskz_021(002),   "Tax
    * data element: DZUONR
            zuonr_022(018),   "Invoice Number
    * data element: SGTXT
            sgtxt_023(050),   "PO Number
    * data element: PRCTR
            prctr_024(010),   "Profit Center
    * data element: WRBTR
            wrbtr_025(016),   " Amount
    * data element: MWSKZ
            mwskz_026(002),   "Tax
    * data element: DZUONR
            zuonr_027(018),   "Invoice Number
    * data element: SGTXT
            sgtxt_028(050),   "PO Number
    * data element: FMORE
            fmore_029(001),
    * data element: PRCTR
            prctr_030(010),   "Pr Center
    * data element: FWSTE
            fwste_01_031(016),
          END OF record.
    DATA: BEGIN OF it_excel OCCURS 0,
    * data element: XBLNR1
          xblnr_007(016),   "Invoice Number
    * data element: BLDAT
          bldat_001(010),   "Invoice Date
    * data element: WRBTR
          wrbtr_012(016),   "Amount
    * data element: WRBTR
          wrbtr_025(016),   " Tax Amount
    * data element: WRBTR
          wrbtr_020(016),   "Gross Amount
    * data element: BLART
          blart_002(002),   " No of units
    * data element: MONAT
          monat_005(002),   "No of units second test"
    * data element: BKTXT
            bktxt_008(025),   "PO number
    * data element: SGTXT
          sgtxt_017(050),   " PO number
    * data element: BUKRS
          bukrs_003(004),   " Company Code
    * data element: BUDAT
          budat_004(010),   "Posting Date
    *        budat_004 TYPE string,   "Posting Date
    * data element: WAERS
          waers_006(005),   "Currency*
    * data element: NEWKO
          newko_011(017),   "Customer number or GL account
    * data element : kunnr
          kunnr_019(010),   " customer
          mwskz(002),
         prctr(010),
          date(002),
          month(002),
    ** data element: BKTXT
    *      bktxt_008(025),   "PO number
    ** data element: SAEOBJART
    *      docid_009(010),
    ** data element: NEWBS
    *      newbs_010(002),   "posting Key
    ** data element: DZTERM
    *      zterm_013(004),
    ** data element: DZBD1T
    *      zbd1t_014(003),
    ** data element: DZFBDT
    *      zfbdt_015(010),
    ** data element: DZUONR
    *      zuonr_016(018),   "Invoice Number
    ** data element: NEWBS
    *      newbs_018(002),
    ** data element: NEWKO
    *      newko_019(017),   "GL Account
    ** data element: MWSKZ
    *      mwskz_021(002),   "Tax
    ** data element: DZUONR
    *      zuonr_022(018),   "Invoice Number
    ** data element: SGTXT
    *      sgtxt_023(050),   "PO Number
    ** data element: PRCTR
    *      prctr_024(010),   "Profit Center
    ** data element: MWSKZ
    *      mwskz_026(002),   "Tax
    ** data element: DZUONR
    *      zuonr_027(018),   "Invoice Number
    ** data element: SGTXT
    *      sgtxt_028(050),   "PO Number
    ** data element: FMORE
    *      fmore_029(001),
    ** data element: PRCTR
    *      prctr_030(010),   "Pr Center
    ** data element: FWSTE
    *      fwste_01_031(016),
        END OF it_excel.
    DATA : BEGIN OF it_bkpf OCCURS 0,
            belnr LIKE bkpf-belnr,
            budat LIKE bkpf-budat,
            bldat LIKE bkpf-bldat,
            xblnr LIKE bkpf-xblnr,
            bktxt LIKE bkpf-bktxt,
            total LIKE bseg-dmbtr,
            numdocs TYPE p DECIMALS 0,
            END OF it_bkpf,
            BEGIN OF it_bseg OCCURS 0,
              belnr LIKE bseg-belnr,
              dmbtr LIKE bseg-dmbtr,
              mwsts LIKE bseg-mwsts,
              pswsl LIKE bseg-pswsl,
              END OF it_bseg,
              BEGIN OF it_final OCCURS 0,
                belnr LIKE bkpf-belnr,
                budat LIKE bkpf-budat,
                bldat LIKE bkpf-bldat,
                xblnr LIKE bkpf-xblnr,
                bktxt LIKE bkpf-bktxt,
                dmbtr LIKE bseg-dmbtr,
                mwsts LIKE bseg-mwsts,
                pswsl LIKE bseg-pswsl,
                END OF it_final.
    ***** End generated data section ***
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR pfile.
      PERFORM sub_browse_file. "Get file name
    START-OF-SELECTION.
      PERFORM sub_data_load.  " Transfer excel into internal table.
      PERFORM sub_calc_excel.
      IF report = 'X'.
    *    PERFORM data_selection.
    *    PERFORM data_move.
    *********************************GET ALV  DATA
        PERFORM alv_get_data.
    *********************************ALV GRID DATA
        PERFORM alv_grid.
      ENDIF.
    *if report = ''.
    *  PERFORM write.
    *  PERFORM open_dataset USING dataset.
      PERFORM open_group.
    *  DO.
    *    READ DATASET dataset INTO record.
      LOOP AT it_excel.
    *   IF sy-subrc <> 0. EXIT. ENDIF.
        PERFORM bdc_dynpro      USING 'SAPMF05A' '0100'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RF05A-NEWKO'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'BKPF-BLDAT'
                                      it_excel-bldat_001.
        PERFORM bdc_field       USING 'BKPF-BLART'
                                      'DR'." record-blart_002.
        PERFORM bdc_field       USING 'BKPF-BUKRS'
                                      it_excel-bukrs_003.
        PERFORM bdc_field       USING 'BKPF-BUDAT'
                                      it_excel-budat_004.
        PERFORM bdc_field       USING 'BKPF-MONAT'
                                    '3'. "record-monat_005.
        PERFORM bdc_field       USING 'BKPF-WAERS'
                                      it_excel-waers_006.
        PERFORM bdc_field       USING 'BKPF-XBLNR'
                                      it_excel-xblnr_007.
        PERFORM bdc_field       USING 'BKPF-BKTXT'
                                      it_excel-bktxt_008.
        PERFORM bdc_field       USING 'FS006-DOCID'
                                     '*' ."record-docid_009.
        PERFORM bdc_field       USING 'RF05A-NEWBS'
                                    '01'." record-newbs_010.
        PERFORM bdc_field       USING 'RF05A-NEWKO'
                                    it_excel-kunnr_019  .
        PERFORM bdc_dynpro      USING 'SAPMF05A' '0301'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RF05A-NEWKO'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'BSEG-WRBTR'
                                    it_excel-wrbtr_020."  it_excel-wrbtr_012.
        PERFORM bdc_field       USING 'BSEG-ZTERM'
                                      'NT30' ."  record-zterm_013.
        PERFORM bdc_field       USING 'BSEG-ZBD1T'
                                      '30'."record-zbd1t_014.
        PERFORM bdc_field       USING 'BSEG-ZFBDT'
                                      it_excel-bldat_001."record-zfbdt_015.
        PERFORM bdc_field       USING 'BSEG-ZUONR'
                                      it_excel-xblnr_007."record-zuonr_016.
        PERFORM bdc_field       USING 'BSEG-SGTXT'
                                      it_excel-sgtxt_017.
        PERFORM bdc_field       USING 'RF05A-NEWBS'
                                     '50'." record-newbs_018.
        PERFORM bdc_field       USING 'RF05A-NEWKO'
                                   it_excel-newko_011."  record-newko_019."Gl account
        PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'BSEG-SGTXT'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'BSEG-WRBTR'
                                      it_excel-wrbtr_012."changes from 12 to 20
        PERFORM bdc_field       USING 'BSEG-MWSKZ'
                                     it_excel-mwskz." record-mwskz_021.
        PERFORM bdc_field       USING 'BSEG-ZUONR'
                                    it_excel-xblnr_007."  record-zuonr_022.
        PERFORM bdc_field       USING 'BSEG-SGTXT'
                                     it_excel-sgtxt_017."  record-sgtxt_023.
        PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'COBL-PRCTR'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=ENTE'.
        PERFORM bdc_field       USING 'COBL-PRCTR'
                                    it_excel-prctr ." record-prctr_024.
        PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'BSEG-WRBTR'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=STER'.
        PERFORM bdc_field       USING 'BSEG-WRBTR'
                                     it_excel-wrbtr_012." it_excel-wrbtr_025.
        PERFORM bdc_field       USING 'BSEG-MWSKZ'
                                      it_excel-mwskz.
        PERFORM bdc_field       USING 'BSEG-ZUONR'
                                     it_excel-xblnr_007." record-zuonr_027.
        PERFORM bdc_field       USING 'BSEG-SGTXT'
                                     it_excel-sgtxt_017." record-sgtxt_028.
        PERFORM bdc_field       USING 'DKACB-FMORE'
                                     'X' ."record-fmore_029.
        PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'COBL-PARGB'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=ENTE'.
        PERFORM bdc_field       USING 'COBL-PRCTR'
                                     it_excel-prctr." record-prctr_030.
        PERFORM bdc_dynpro      USING 'SAPLTAX1' '0300'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'BSET-FWSTE(01)'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=GOBU'.
        PERFORM bdc_field       USING 'BSET-FWSTE(01)'
                                    it_excel-wrbtr_025."  record-fwste_01_031.
        PERFORM bdc_transaction USING 'FB01'.
        REFRESH:bdcdata,messtab.
      ENDLOOP.
      REFRESH:bdcdata.
    **    PERFORM bdc_dynpro      USING 'SAPMF05A' '0100'.
    *    PERFORM bdc_field       USING 'BDC_CURSOR'
    *                                  'RF05A-NEWKO'.
    *    PERFORM bdc_field       USING 'BDC_OKCODE'
    *                                  '/00'.
    *    PERFORM bdc_field       USING 'BKPF-BLDAT'
    *                                  record-bldat_001.
    *    PERFORM bdc_field       USING 'BKPF-BLART'
    *                                  record-blart_002.
    *    PERFORM bdc_field       USING 'BKPF-BUKRS'
    *                                  record-bukrs_003.
    *    PERFORM bdc_field       USING 'BKPF-BUDAT'
    *                                  record-budat_004.
    *    PERFORM bdc_field       USING 'BKPF-MONAT'
    *                                  record-monat_005.
    *    PERFORM bdc_field       USING 'BKPF-WAERS'
    *                                  record-waers_006.
    *    PERFORM bdc_field       USING 'BKPF-XBLNR'
    *                                  record-xblnr_007.
    *    PERFORM bdc_field       USING 'BKPF-BKTXT'
    *                                  record-bktxt_008.
    *    PERFORM bdc_field       USING 'FS006-DOCID'
    *                                  record-docid_009.
    *    PERFORM bdc_field       USING 'RF05A-NEWBS'
    *                                  record-newbs_010.
    *    PERFORM bdc_field       USING 'RF05A-NEWKO'
    *                                  record-newko_011.
    *    PERFORM bdc_dynpro      USING 'SAPMF05A' '0301'.
    *    PERFORM bdc_field       USING 'BDC_CURSOR'
    *                                  'RF05A-NEWKO'.
    *    PERFORM bdc_field       USING 'BDC_OKCODE'
    *                                  '/00'.
    *    PERFORM bdc_field       USING 'BSEG-WRBTR'
    *                                  record-wrbtr_012.
    *    PERFORM bdc_field       USING 'BSEG-ZTERM'
    *                                  record-zterm_013.
    *    PERFORM bdc_field       USING 'BSEG-ZBD1T'
    *                                  record-zbd1t_014.
    *    PERFORM bdc_field       USING 'BSEG-ZFBDT'
    *                                  record-zfbdt_015.
    *    PERFORM bdc_field       USING 'BSEG-ZUONR'
    *                                  record-zuonr_016.
    *    PERFORM bdc_field       USING 'BSEG-SGTXT'
    *                                  record-sgtxt_017.
    *    PERFORM bdc_field       USING 'RF05A-NEWBS'
    *                                  record-newbs_018.
    *    PERFORM bdc_field       USING 'RF05A-NEWKO'
    *                                  record-newko_019.
    *    PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
    *    PERFORM bdc_field       USING 'BDC_CURSOR'
    *                                  'BSEG-SGTXT'.
    *    PERFORM bdc_field       USING 'BDC_OKCODE'
    *                                  '/00'.
    *    PERFORM bdc_field       USING 'BSEG-WRBTR'
    *                                  record-wrbtr_020.
    *    PERFORM bdc_field       USING 'BSEG-MWSKZ'
    *                                  record-mwskz_021.
    *    PERFORM bdc_field       USING 'BSEG-ZUONR'
    *                                  record-zuonr_022.
    *    PERFORM bdc_field       USING 'BSEG-SGTXT'
    *                                  record-sgtxt_023.
    *    PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
    *    PERFORM bdc_field       USING 'BDC_CURSOR'
    *                                  'COBL-PRCTR'.
    *    PERFORM bdc_field       USING 'BDC_OKCODE'
    *                                  '=ENTE'.
    *    PERFORM bdc_field       USING 'COBL-PRCTR'
    *                                  record-prctr_024.
    *    PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
    *    PERFORM bdc_field       USING 'BDC_CURSOR'
    *                                  'BSEG-WRBTR'.
    *    PERFORM bdc_field       USING 'BDC_OKCODE'
    *                                  '=STER'.
    *    PERFORM bdc_field       USING 'BSEG-WRBTR'
    *                                  record-wrbtr_025.
    *    PERFORM bdc_field       USING 'BSEG-MWSKZ'
    *                                  record-mwskz_026.
    *    PERFORM bdc_field       USING 'BSEG-ZUONR'
    *                                  record-zuonr_027.
    *    PERFORM bdc_field       USING 'BSEG-SGTXT'
    *                                  record-sgtxt_028.
    *    PERFORM bdc_field       USING 'DKACB-FMORE'
    *                                  record-fmore_029.
    *    PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
    *    PERFORM bdc_field       USING 'BDC_CURSOR'
    *                                  'COBL-PARGB'.
    *    PERFORM bdc_field       USING 'BDC_OKCODE'
    *                                  '=ENTE'.
    *    PERFORM bdc_field       USING 'COBL-PRCTR'
    *                                  record-prctr_030.
    *    PERFORM bdc_dynpro      USING 'SAPLTAX1' '0300'.
    *    PERFORM bdc_field       USING 'BDC_CURSOR'
    *                                  'BSET-FWSTE(01)'.
    *    PERFORM bdc_field       USING 'BDC_OKCODE'
    *                                  '=GOBU'.
    *    PERFORM bdc_field       USING 'BSET-FWSTE(01)'
    *                                  record-fwste_01_031.
    *    PERFORM bdc_transaction USING 'FB01'.
    *  ENDDO.
      PERFORM close_group.
    *  PERFORM close_dataset USING dataset.
    *endif.
    *&      Form  sub_browse_file
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM sub_browse_file .
      CALL FUNCTION 'F4_FILENAME'
       EXPORTING
         program_name        = syst-cprog
         dynpro_number       = syst-dynnr
    *   FIELD_NAME          = ' '
       IMPORTING
         file_name           = pfile.
    ENDFORM.                    " sub_browse_file
    *&      Form  sub_data_load
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM sub_data_load .
      CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
        EXPORTING
    *     I_FIELD_SEPERATOR          =
          i_line_header              = 'X'
          i_tab_raw_data             = it_raw
          i_filename                 = pfile
        TABLES
          i_tab_converted_data       = it_excel[]
    *   EXCEPTIONS
    *     CONVERSION_FAILED          = 1
    *     OTHERS                     = 2
      IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " sub_data_load
    **&      Form  data_selection
    **       text
    **  -->  p1        text
    **  <--  p2        text
    *FORM data_selection .
    *  SELECT * FROM bkpf
    *      INTO CORRESPONDING FIELDS OF TABLE it_bkpf
    *      WHERE budat = p_budat AND
    *      bukrs = p_bukrs.
    *  IF NOT it_bkpf[] IS INITIAL.
    *    SELECT belnr dmbtr mwsts pswsl
    *        FROM bseg INTO TABLE it_bseg
    *        FOR ALL ENTRIES IN it_bkpf
    *        WHERE belnr = it_bkpf-belnr AND
    *        kunnr = p_kunnr AND
    *        hkont = p_hkont AND
    *        pswsl = p_waers.
    *  ENDIF.
    *ENDFORM.                    " data_selection
    **&      Form  data_move
    **       text
    **  -->  p1        text
    **  <--  p2        text
    *FORM data_move.
    *  SORT : it_bseg BY belnr,
    *          it_bkpf BY belnr.
    *  LOOP AT it_bseg.
    *    it_final-dmbtr = it_bseg-dmbtr.
    *    it_final-belnr = it_bseg-belnr.
    *    it_final-mwsts = it_bseg-mwsts.
    *    it_final-pswsl = it_bseg-pswsl.
    *    READ TABLE it_bkpf WITH KEY belnr = it_bseg-belnr BINARY SEARCH.
    *    IF sy-subrc = 0.
    *      it_final-budat = it_bkpf-budat.
    *      it_final-bldat = it_bkpf-bldat.
    *      it_final-xblnr = it_bkpf-xblnr.
    *      it_final-bktxt = it_bkpf-bktxt.
    *    ENDIF.
    *    APPEND it_final.
    *    CLEAR it_final.
    *  ENDLOOP.
    *ENDFORM.                    " data_move
    *&      Form  alv_get_data
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM alv_get_data .
      CLEAR it_fieldcat.
    ***************** Document number
    *  wa_fieldcat-col_pos    = '1'.                    " ALV O/P COL-1
      wa_fieldcat-fieldname  = 'XBLNR_007'.
      wa_fieldcat-seltext_m  = 'Document number'.
      wa_fieldcat-just       = 'L'.
      wa_fieldcat-no_zero(1) = 'X'.
      wa_fieldcat-outputlen  = 15.
      wa_fieldcat-tabname    = 'IT_EXCEL'.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
    ***************** Posting Date
    *  wa_fieldcat-col_pos    = '2'.                    " ALV O/P COL-1
      wa_fieldcat-fieldname  = 'BUDAT_004'.
      wa_fieldcat-seltext_m  = 'Posting Date'.
      wa_fieldcat-just       = 'L'.
      wa_fieldcat-no_zero(1) = 'X'.
      wa_fieldcat-outputlen  = 20.
      wa_fieldcat-tabname    = 'IT_EXCEL'.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
    ******************** Document Date
    *  wa_fieldcat-col_pos    = '3'.                     " ALV O/P COL-2
      wa_fieldcat-fieldname  = 'BLDAT_001'.
      wa_fieldcat-seltext_m  = 'Document Date'.
      wa_fieldcat-just       = 'L'.
      wa_fieldcat-tabname    = 'IT_EXCEL'.
      wa_fieldcat-outputlen  = 15.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
    ********************* REFERENCE DOCUMENT
    **  wa_fieldcat-col_pos    = '4'.                     " ALV O/P COL-2
    *  wa_fieldcat-fieldname  = 'XBLNR'.
    *  wa_fieldcat-seltext_m  = 'REFERENCE DOCUMENT'.
    *  wa_fieldcat-just       = 'L'.
    *  wa_fieldcat-tabname    = 'IT_EXCEL'.
    **  wa_fieldcat-outputlen  = 15.
    *  APPEND wa_fieldcat TO it_fieldcat.
    *  CLEAR wa_fieldcat.
    ***************** DOCUMENT HEADER TEXT
    *  wa_fieldcat-col_pos    = '5'.                     " ALV O/P COL-3
      wa_fieldcat-fieldname  = 'SGTXT_017'.
      wa_fieldcat-seltext_m  = 'DOCUMENT HEADER TEXT'.
      wa_fieldcat-just       = 'L'.
      wa_fieldcat-tabname    = 'IT_EXCEL'.
    *  wa_fieldcat-outputlen  = 15.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
    *******************Invoice Net amount
    *  wa_fieldcat-col_pos    = '6'.                     " ALV O/P COL-4
      wa_fieldcat-fieldname  = 'WRBTR_012'.
      wa_fieldcat-seltext_m  = 'Invoice Net amount'.
      wa_fieldcat-just       = 'L'.
      wa_fieldcat-tabname    = 'IT_EXCEL'.
    *  wa_fieldcat-outputlen  = 15.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
    *********** Tax Amount
    *  wa_fieldcat-col_pos    = '7'.                     " ALV O/P COL-5
      wa_fieldcat-fieldname  = 'WRBTR_025'.
      wa_fieldcat-seltext_m  = 'Tax Amount'.
      wa_fieldcat-just       = 'L'.
    * wa_fieldcat-no_zero(1) = 'X'.
      wa_fieldcat-tabname    = 'IT_EXCEL'.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
    *********** NEt Amount
    *  wa_fieldcat-col_pos    = '7'.                     " ALV O/P COL-5
      wa_fieldcat-fieldname  = 'WRBTR_020'.
      wa_fieldcat-seltext_m  = 'Net Amount'.
      wa_fieldcat-just       = 'L'.
    * wa_fieldcat-no_zero(1) = 'X'.
      wa_fieldcat-tabname    = 'IT_EXCEL'.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
    *********** General ledger currency
    *  wa_fieldcat-col_pos    = '7'.                     " ALV O/P COL-5
      wa_fieldcat-fieldname  = 'WAERS_006'.
      wa_fieldcat-seltext_l  = 'General ledger currency'.
      wa_fieldcat-just       = 'L'.
    * wa_fieldcat-no_zero(1) = 'X'.
      wa_fieldcat-outputlen  = 25.
      wa_fieldcat-tabname    = 'IT_EXCEL'.
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR wa_fieldcat.
    ENDFORM.                    " alv_get_data
    *&      Form  alv_grid
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM alv_grid .
    *  PERFORM fill_list_header USING it_top_of_page[].
    *  PERFORM event-build USING gt_events[].
      PERFORM fill_layout USING ls_layout.
    MESSAGE 'Please press F3 to generate a session or call transaction method after getting report!' TYPE 'I'.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program = sy-repid
          is_layout          = ls_layout
          it_fieldcat        = it_fieldcat
          it_events          = gt_events[]
          i_save             = 'A'
        TABLES
          t_outtab           = it_excel
        EXCEPTIONS
          program_error      = 1
          OTHERS             = 2.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDFORM.                    " alv_grid
    *                                     FORM FILL_LAYOUT                      *
    FORM fill_layout  USING    p_ls_layout  TYPE slis_layout_alv.
      p_ls_layout-zebra       = 'X'.
      p_ls_layout-cell_merge  = 'X'.
    ENDFORM.                                                         "fill_layout
    *&      Form  sub_calc_excel
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM sub_calc_excel .
          data: idate TYPE sy-datum,
              tdat8 type string.
      LOOP AT it_excel.
        CONCATENATE  it_excel-blart_002 '/' it_excel-monat_005 '/' it_excel-bktxt_008 INTO
            it_excel-sgtxt_017.
        it_excel-bukrs_003 = p_bukrs.
    *    it_excel-budat_004 = p_budat.
        it_excel-waers_006 = p_waers.
        it_excel-newko_011 = p_hkont.
        it_excel-kunnr_019 = p_kunnr.
        it_excel-mwskz     = p_mwskz.
        it_excel-prctr     = p_prctr.
        idate              = p_budat.
        CALL FUNCTION 'DATUMSAUFBEREITUNG'
         EXPORTING
    *       FLAGM                 = ' '
    *       FLAGW                 = ' '
           IDATE                 = idate
    *       IMONT                 = ' '
    *       IWEEK                 = ' '
         IMPORTING
    *       MDAT4                 =
    *       MDAT6                 =
    *       TDAT4                 =
    *       TDAT6                 =
            TDAT8                 = tdat8
    *       WDAT4                 =
    *       WDAT6                 =
    *     EXCEPTIONS
    *       DATFM_UNGUELTIG       = 1
    *       DATUM_UNGUELTIG       = 2
    *       OTHERS                = 3
        IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
          it_excel-budat_004 = tdat8.
    *    CONCATENATE it_excel-budat_004+4(2) '/' it_excel-budat_004+6(2) '/'  it_excel-budat_004+0(4)
    *                INTO it_excel-budat_004.
    *    SPLIT it_excel-bldat_001 AT '/' INTO it_excel-month it_excel-date.
    *    CONCATENATE it_excel-date '.' it_excel-month '.' it_excel-bldat_001+6(4) INTO it_excel-bldat_001.
        MODIFY it_excel.
        CLEAR it_excel.
      ENDLOOP.
    ENDFORM.                    " sub_calc_excel
    *&      Form  write
    *       text
    *  -->  p1        text
    *  <--  p2        text
    *form write .
    *OPEN DATASET dataset FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
    *data: wa_excel like line of it_excel.
    *loop at it_excel into wa_excel.
    *TRANSFER wa_excel to dataset.
    *endloop.
    *CLOSE DATASETdataset.
    *endform.                    " write

  • Creation of "Web Dynpro for Java"  for SAP transaction

    Hi All,
             In EP when we create SAP transaction iView for SAP transaction,
    a)ITS server is required if we choose SAP GUI Type as WebGui(Performance wise as well as some other issues)
    b)SAP GUI has to be installed if we choose SAP GUI Type as WinGui.(User has to install SAP GUI).
    Can we overcome these two issues by creating Web Dynpro application for SAP transaction in quicker way. Any suggestions are appreciated.
    Thanks and Regards,
    Gangadharayya.

    Hi,
    It is not possible to display a transaction directly in a java web dynpro. If you do not want to use a transaction iview the only other possibility is to create a web dynpro that uses BAPI's as models.
    Regards,
    Christophe

  • Extraction of data from SAP R/3 Bapi into SAP BW

    hi,
    i am extracting data from sap r/3 bapi into sap bw. can u please send me the link and documents of how to extract the data from bapi to sap bw.
    Answers will be rewarded
    Thanks
    sd shahid

    Hi Swapnali,
    In your case you have to send process order to XI and you have a bapi that satisfies your requirement.
    Here the solution depends what is the triggerring point of the Interface.
    If you want that from SAP side Interface should be triggered, then Use ABAP proxy program
    You have to craete a Abap proxy class using outbound message interafce defined in IR of XI.This can be done by transaction SPROXY.
    Then create a program that call sync/async method that is created by Sproxy t.code.
    In this way , when u will execute the proxy program in R/3 , then call will be made to BAPI in Sap from XI server and u will get output back to your proxy program.
    If your requirement is to not to trigger from SAP then nothing is required in R/3 side.
    In XI , Bapi will be added in imported objects in Integration repository and bapi will be called.
    Hope this will help u.
    Please revert in case of queries.
    Regards,
    Monica

  • XI and SAP --- & transactions

    HELLO EVERYONE,
    i have very stupid question with me but then also wanted to clear it.
    when i login in XI i have tcodes to do specific tasks and same is with any r/3 system.
    My doubt is with the IDOC list which we see in the XI side, e.g when i give we02 then it will give me IDOC list and same is with the SAP R/3 system also.
    Why XI has all these transactions ? when do we need to use we02 in XI??
    thanks,
    gaurav
    Message was edited by:
            gaurav sharma

    HI
    Below are the complete T-CODES which we use in SAP XI.
                 COMPLETE SAP XI TRANSACTION CODES
    ALRTCATDEF- Alerts Configuration.
    ALRTDISP - Display of Alerts Created
    SXMB_IFR -> Start Integration Builder
    SXMB_MONI -> Integration Engine - Monitoring
    SXI_MONITOR -> XI: Message Monitoring
    SXI_CACHE ->   To Access IS runtime cache
    SXI_SUPPORT -> Test all the Repository and Directory Objects
    SXI_CACHE -> XI data directory cacheidx1 -> idoc adapter
    IDX2 -> idoc metadata
    IDX5 -> monitocr idoc adapter
    SM21 -> log di sistema
    ST22 -> dump abap (analisi di eccezioni)
    SMQ1 -> messages inbound e outbound queue
    SMQ2 -> messages inbound e outbound queue
    SMICM -> J2EE administration
    ST06 -> stato della macchina cpu memory filesystem machine status - cpu, memory and file system.
    ST03 -> workload.
    SCC4 -> visualizza mandanti del sistema
    WE20 -> partner profiles
    sale - ale settings
    RZ10 - edit system profile
    SM59 ->mantain rfc destinations
    BD64 -> mantain distribution model (trasformazioni)
    SU01 -> users
    AL08 -> list all logged users(user login logon)
    SE10 -> Change Request
    SE09 -> Change Request
    WE05 -> All idocs
    WE19 -> IDoc Test Tool
    WE21 -> port definition
    SE11 -> Data dictionary
    SM21 -> log sistema xi
    se37 -> mantain funcion modules
    SICF -> http server configuration
    SMGW -> trace, alzare livello di trace.
    BD13 ->
    BD64 -> modelli di distribuzione
    PFCG -> Roles
    tabella TSTC -> sap transactions codes
    tabella TSTCT -> transaction descriptions
    STMS -> transports management
    SPAM -> apply ABAP support packages
    SPAU -> manage objects after apply support packages
    SE01 -> manage change requests
    SLDCHECK -> Test SLD Connection
    SLDAPICUST-> SLD API Customizing
    SXMB_ADM -> Integration Engine - Administration
    SXMB_MONI_BPE -> Process Engine - Monitoring
    SE38 -> ABAP Editor
    SE11 -> ABAP Dictionary
    ST22 -> ABAP dump analysis
    SPROXY-> ABAP Proxy Generation
    SE80 -> Object Navigator
    ABAPDOCU -> ABAP Documentation and Examples
    SE24-> Class Builder
    SM21-> Online System Log Analysis
    SMQ1-> qRFC Monitor (Outbound Queue)
    SMQ2-> qRFC Monitor (Inbound Queue)
    RZ70-> SLD Administration
    SM58-> Asynchronous RFC Error Log
    SM59-> RFC Destinations (Display/Maintain)
    SMICM-> ICM Monitor
    WE60-> Documentation for IDoc types
    BD87-> Status Monitor for ALE Messages
    IDX1-> Port Maintenance in IDoc Adapter
    IDX2-> Meta Data Overview in IDoc Adapter
    WE05-> IDoc Lists
    WE02-> Display IDoc
    WE19-> Test tool
    WE09-> Search for IDocs by Content
    WE20-> Partner Profiles
    WE21-> Port definition in XI
    SE16-> Data Browser
    SE93-> Maintain Transaction Codes
    SM30-> Call View Maintenance
    SU01-> User Maintenance
    SM02-> System Messages
    BD54 -Logical System Creation.
    SWXF_PBUILDER -> for Detail BPM Process
    SMQS - > to register the destination in QOUT scheduler
    WEOUTQUEUE - > to start the queue processing
    SMQR - > to register the queue
    IDXPW - > to activate the IDOC message package
    IDXP - > to monitor the message packages.
    SWF_XI_CUSTOMIZING -> transaction to check prerequisites for integration processes
    Reward with points if found useful
    cheers

  • SAP Transaction in Two phase Commit ?

    Hi all,
    When we make a connection to SAP system from .NET application using .NET connector, we can make calls to transactional BAPI/RFC’s. But is there any way in which we can make SAP transaction take part in MS DTC (Microsoft Distributed Transaction Coordinator) transactions?
    We want to implement a two phase commit and hence this question. Please let us know if you are aware of any mechanism using which we can implement a two phase commit.
    The call scenario is described below:
    TransactionScope
    1.     SQL_StoredProc1();
    2.     SQL_StoresProc2();
         10.           SAP_TransactionBAPI();
         11.          SQLStoredProcn();
          12.           SQLTransaction_Commit();
          13.      SAPTransaction_Commit();
    Exception ()
    SQLTransaction_Rollback();
    SAPTransaction_Rollback();
    In the above case all the statements have to be executed successfully or they have to be rolled back. Let’s think of the situation where all the statements up to line 13 have been executed successfully, but there was a failure during the commit of SAP, and then we have to rollback the SQL transaction also which is already committed.
    This situation can be handled if and only if SAP transaction manager follows XA transaction protocol and it can include itself in MSDTC. So that every transaction manager votes for the commit (it can be called half commit) if the transaction is successful otherwise all the transactions should be rolled back.
    Can anybody tell me the way to include SAP transaction manager in MSDTC if it at all possible?

    Hi Saket,
    I did  not understand much of your query but just wanted to know how are you making a connection to the backend here?
    If using DataSources and if the datasource is configured directly in the EP server (using Visual Administrator), you have an option of the required 2-way commit.
    The datasource takes care of it directly. Apart from this, the datasource will also take cre of the connection pooling.
    Hope this helps.
    Awaiting Reply.
    Warm Regards,
    Ritu

  • Call SAP Transaction from BSP

    Hi,
    I am new to BSP. I have to call SAP Screen on button click event on BSP and also need to pass data at runtime.
    I searched this forum but didn't find the right solution. I tried to call SAP screen from BAPI and through URL but no success.
    Anyone knows how it can be done?
    Regards,
    Usman Malik

    Thanks for your reply,
    Actually I am very new to BSP. I don't understand where to put this code?
    [System]
    Name=DEV
    Description=DEV [Development]
    Client=123
    [User]
    Name=RAJA
    Language=EN
    [Function]
    Title=
    Command=*SU01 USR02-BNAME=raja;
    Type=Transaction
    [Configuration]
    WorkDir=d:xxxxxxSapWorkDir
    [Options]
    Reuse=1
    Second thing is about shortcut. Do I have to place this shortcut on server?
    Thanks,
    Usman Malik

  • Run SAP transaction from Java?

    I'm looking for answers for two questions:
    1) Can I run an SAP transaction from Java & capture the result either in a file or table.. or any such structure?
    2) Can I run an ABAP report directly from Java? and then capture the result as well? I realise that I can use the JCO to run any RFC enabled function module..? But what about a report itself.? Can I run the report behind an SAP transaction directly from Java?
    I need this information urgently, and would appreciate any help on this.

    Hi Deepika,
    I think the requirement you have asked is quite complex and there is no solution as far as i have know.
    You can use BAPI to run SAP Transactions for example BAPI_MATERIAL_DISPLAY will take you to MM03 transaction when you pass a valid material number to it.
    When i searched for the same i ended up with no solution,
    but got a good link which gave some idea
    http://expertanswercenter.techtarget.com/eac/knowledgebaseCategory/0,295197,sid63_tax296869_idx25_off25,00.html
    Go through that link that might be helpful.
    Thanks & Regards,
    Kathir~

  • Recreating SAP transaction...

    I am in the process of recreating an SAP transaction in web dynpro java.  I'm fairly new to the SAP world so I am running into some roadblocks.  I understand how to create models and such to access SAP back-end systems. The specific transaction that I am looking at is iw21 which is the Create PM Notification.
    from the screen, when you select notification type, I want to translate that into a drop-down box in web dynpro.  My problem is though finding that information to display in the drop-down.  I am able to connect to the ECC system and create the model but I don't know what fields or anything relate to the ABAP field.
    Is there an easy way to translate this and find out what information I need to grab to be able to recreate this screen as a web dynpro application.
    Any help or references would be great.
    Thanks.

    Dear Gabel8,
    If you want to achive same functionality as iw21 transaction in the webdynpro then you should have the remote enabled function module RFC's or BAPI's to connect from webdynpro to get the required runtime data's.
    Please get in touch with ABAP team and ask for RFC for the tcode. once you hvae RFC's or BAPI's then start working on webdynpro and devlop the functionality as you want.
    Best Regards
    Arun Jaiswal

  • Transaction with BAPIs

    Hi,
    I have some input fields in my application (that handles transaction with BAPIs) those are mapped to some value attributes. I have created a model for RFC and have bound the model attributes to custom controller. From custome controller to view controller.At runtime i read these input fields and set the corresponding model attributes in the view controller.
    Now when i deploy the application, as soon as the method is called to set the model attributes in view controller, it throws an exception that
    <i>The initial exception that caused the request to fail, was:
       <b>com.sap.tc.webdynpro.progmodel.context.ContextException: DataNodeInfo(FlightBookingCust.Bapi_Flbooking_Createfromdata_Input.Booking_Data): value node is created without a reference</b></i>
    Please suggest what should be done?
    Thanks,
    Kushagra.

    Hi ,
      please find the code below :
    public void onActionBookFlight(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
       wdContext.nodeBooking_Data().createElement(); <i>//// i have implemented this line beacuse earlier application  was throwing "Null point exception error". please tell if it's not required.</i>
    wdContext.current<b>Booking_Data</b>Element().set<b>Customerid</b>(wdContext.currentContextElement().get<b>Va_customerid</b>());
      ****Booking_Data (model node)>> Customerid (model attribute)
    ****va_customerid (value attribute) is mapped to the input field.
    and exception is
    com.sap.tc.webdynpro.progmodel.context.ContextException:
    DataNodeInfo(FlightBookingCust.Bapi_Flbooking_Createfromdata_Input.Booking_Data): value node is created without a reference
         at com.sap.tc.webdynpro.progmodel.context.NodeInfo.packElement(NodeInfo.java:881)
         at com.sap.tc.webdynpro.progmodel.context.MappedNodeElement.<init>(MappedNodeElement.java:36)
         at
    com.sap.tut.wd.flightbooking.wdp.IPrivateFlightBookingView$IBooking_DataElement.<init>(IPrivateFlightBookingView.java:1666)
         at
    com.sap.tut.wd.flightbooking.wdp.IPrivateFlightBookingView$IContextNode.doCreateElement(IPrivateFlightBookingView.java:75)
         at com.sap.tc.webdynpro.progmodel.context.NodeInfo.createElement(NodeInfo.java:854)
         at com.sap.tc.webdynpro.progmodel.context.Node.createElementInternal(Node.java:1346)
         at com.sap.tc.webdynpro.progmodel.context.Node.createElement(Node.java:1365)
         at com.sap.tut.wd.flightbooking.FlightBookingView.onActionBookFlight(FlightBookingView.java:154)
         at
    com.sap.tut.wd.flightbooking.wdp.InternalFlightBookingView.wdInvokeEventHandler(InternalFlightBookingView.java:278)
         at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:87)
         at com.sap.tc.webdynpro.progmodel.controller.Action.fire(Action.java:67)
         at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.handleAction(WebDynproMainTask.java:101)
         at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.handleActionEvent(WebDynproMainTask.java:304)
         at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.execute(WebDynproMainTask.java:649)
         at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:59)
         at com.sap.tc.webdynpro.clientserver.cal.ClientManager.doProcessing(ClientManager.java:248)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doWebDynproProcessing(DispatcherServlet.java:154)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:116)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:55)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
         at
    com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageLis
    tener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:95)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:160)
    Thanks,
    Kushagra

  • Component of any SAP Transaction

    Dear All,
    I want to find the Component linked to any transaction.
    Ex: Transaction SE11 has component Value  BC-DWB-DIC-ED.
    Can some one please tell me the function module or table to get the component linked with any SAP Transaction.
    Thanking You All.

    Problem solved.
    Thanks a lot MAX.
    but according to my new requirement I need some RFC BAPI to get the Component ,
    I can not use the User defined BAPI , I need SAP Custom BAPI.
    Is it possible...????
    Thanking You All.
    Edited by: cvrian on Jan 21, 2011 8:17 AM

  • Does each SAP transaction iview create a log on to the backend ECC?

    Hi,
    If I put multiple SAP transaction iviews in a role, each pointing to a different SAP transaction in the same backend system, does the launch of each iview create a new logon in the backend system when using SAP logon tickets?  If so, is it possible to make it only launch a new session if one logon has already been created?
    Regards
    Cindy

    Hello Cindy,
    launching of diffrent Transactio Iview form same back end is quite similar as loged in to backend with Proper credentials and opening diffrent transaction's by useing
    /oxx(Transaction Name)
    Hope it will add to ur knowladge.
    Regards.
    Soni Vinit

Maybe you are looking for