Enable Multiple entry at table maintanance at a time by more then one user

Hello all,
My requirment is to enable the multple user, can login to the same table for making there entry simultaneosuly . i have created the table and table maintance as well. and i have created the new lock object and added the code accrdingly and i have used the custom fm which is generated in the tablemainta function group.
forex: table xyz user 1 , 2, 3, 4, 5,so on..
table should allow all user tomake there entry at time and the entry edited one user should be disabled to other user. I have gone the forum i didnt found the correct one ..plz guide me
regards
raju

>
swathi4 m wrote:
> This is not happening.
What is not happening? If you want to control update access to a database table, you'll need to implement a lock object.  Read the SAP help on lock objects or search this forum.

Similar Messages

  • I have to make Multiple entry at table maintanance at a time

    Hello all,
    My requirment is to enable the multple user can loginto the same table for making there entry simultaneosuly .
    i have created the table and table maintance as well. and i have created the new lock object and added the code accrdingly and i have used the custom fm which is generated in the tablemainta  function group.
    forex: table xyz
    user 1 , 2, 3, 4, 5,so on..
    table should allow all user tomake there entry at time and the entry edited one user should be disabled to other user.
    I have gone the forum i didnt found the correct one ..plz guide me ..plz find the attached code .i got this code and referredthe samein my prog ..any suggestions on the below.
    1.       Create table ZTEST_SHUKS3.
    2.       Create table maintenance generator for the table. 
    3       Create lock object EYTSS_E433SH in SE11. Give it name as EZTEST_SHUKS3. 
    4       create a report  ZREP_SHUKS3 and transaction code ZTEST_SHUKS3  to call this report. This tcode will call table  mainatance     generator of table ZTEST_SHUKS3 . 
    5  create the report as below
    6 Now open table maintenance function  group(ZTEST_SHUKS3)  in SE80.We know for table maintenance SAP automatically creates code in the function group. Now we will make some modification in that existing code to change the behavior. Open the screen you created through table maintenance and add one module. 
    screen: 0001
    double clik on screen and add one module in PBO of the screen
    loop at extract with control
    tctrl_ZTEST_SHUKS3 CURSOR NEXTLINE.
    MODULE LIST SHOW LISTE
    ADD HERE
    MODULE m_change_locking
    Check the code below to be added in the module m_change_locking. 
    MODULE m_change_locking OUTPUT.
    *Call the function module corresponding to the lock object we created
      CALL FUNCTION 'ENQUEUE_EZTEST_SHUKS3'
        EXPORTING
          matnr          = ztest_shuks3-matnr
          werks          = ztest_shuks3-werks
        EXCEPTIONS
          foreign_lock   = 1
          system_failure = 2
          OTHERS         = 3.
      IF sy-subrc NE 0.
    row is locked..hence gray..
        LOOP AT SCREEN.
          screen-input = 0.
          MODIFY SCREEN.
        ENDLOOP.
      ENDIF.
    ENDMODULE.                 " m_change_locking  OUTPUT 
    REPORT  zrep_shuks3.
    **Selection range for view maintenance
    DATA:
      BEGIN OF selekttab OCCURS 1.         "Selektionsbereich
            INCLUDE STRUCTURE vimsellist.
    DATA: END OF selekttab,
    **Table of inactive CUA functions for view maintenance
    BEGIN OF excl_cua_funct OCCURS 1.    "inaktive CUA-Fkt bei View-Pflege
            INCLUDE STRUCTURE vimexclfun.
    DATA: END OF excl_cua_funct.
    DATA: lt_enq_del TYPE STANDARD TABLE OF seqg3,
          lt_enq_read TYPE STANDARD TABLE OF seqg7,
          lw_enq_read TYPE seqg7,
          lw_enq_del TYPE seqg3,
          lv_subrc TYPE sy-subrc.
    *Read all the lock details in system
    CALL FUNCTION 'ENQUE_READ2'
      EXPORTING
        gclient = sy-mandt
        gname   = ' '
        guname  = '*'
      TABLES
        enq     = lt_enq_read.
    *We will search entry for table level lock for our table
    LOOP AT lt_enq_read INTO lw_enq_read
    WHERE gname EQ 'RSTABLE'
    AND   garg CS 'ZTEST_SHUKS3'.
      MOVE-CORRESPONDING lw_enq_read TO lw_enq_del.
      APPEND lw_enq_del TO lt_enq_del.
    ENDLOOP.
    *Delete table level lock entry for our table
    CALL FUNCTION 'ENQUE_DELETE'
      EXPORTING
        check_upd_requests = 1
      IMPORTING
        subrc              = lv_subrc
      TABLES
        enq                = lt_enq_del.
    *Now call the table maintenace generator.
    CALL FUNCTION 'VIEW_MAINTENANCE_CALL'
      EXPORTING
        action               = 'U'
        view_name            = 'ZTEST_SHUKS3'
        show_selection_popup = 'X'
      TABLES
        dba_sellist          = selekttab
        excl_cua_funct       = excl_cua_funct.
    I followed the same steps but still not getting the multiple user enable .
    plz help
    regards
    Raju
    Edited by: abaprthree on Jul 22, 2009 7:54 PM

    Hi,
    I think you are looking for the report which will allow only for entries not for change. In this case, at PBO you write the code to make all the rows in display mode which have records using LOOP at SCREEN .....ENDLOOP. When you click on on NEW ENTRY button, add blank rows and put user entries. When you save,check for existing entries in the table because many users are entering the data at the same time, so check for duplicates KEY entries and UPDATE the table on SAVE button. If you will go in this way, I don't think you have to go for LOCK object. It's required only if you are going for EDIT mode.

  • How can I restrict more then one user to access the table?

    Hi !
    I have a problem and two solutions and I am a bit confused as to
    which one is the best one and/or can there be any better way of
    handling the problem ?
    Problem : I have to update a key field of a table when I update
    it in the form 5.0 screen. I am basically doing a maintenance of
    a table and if a certain field is updated then the change has to
    be reflected in two more tables. But the issue is that the field
    is a part of the key in those two tables. So all I can think of
    is that I need to insert new set or rows for that new value of
    the field and delete the old set of records for old values of
    the field.
    There are two ways of doing it;
    1.One option can be to explicitely define two cursors separately
    and fetch the values in them one by one and then insert the new
    records and then delete the old records in both the tables. This
    I feel will be a cumbersome process both in terms of processing
    time and the coding.
    2.Second option I was thinking can be to create two flat tables
    (without keys) and insert the values in them and update the
    changed field there and then insert the rows in the respective
    tables. Delete the old records in the main tables and delets the
    records in these flat tables. This is a bit more faster and
    easier to predict and code. This seems to be a better option for
    me.
    Any comments on these ?
    In both the cases I was thinking of making some provision so
    that more then one person can't update the table simultaneously.
    Since if there are more then one persons doing the processing
    then some inconsistency might creep into the whole process.
    This is easier to do in the second process as if I check the
    data in the flat tables and if there is some data then I can
    presume that some one is doing the processing and I can ask the
    other person to hold for a while. But in this case how can I
    stop more then two people to simultaneously check for the empty
    table and start inserting the record ?
    I was just thinking of having a sepatare table having only one
    field and this will be a key field and as the process begins the
    process will insert a fix value say 'Y' in the key field and at
    the end of the process the record will be deleted and this way
    we can restrict the user to access the process more then one at
    a time..? Since you can't have same value of the key in a table
    more then once.
    Any better way of handling it will be deeply appreciated.
    How about locking the table at the begining and releasing the
    lock at the end ? Will there be any issue in that? since I am
    inserting and deleting the rows in the same transaction.
    Comments welcome,
    Shobhit
    null

    How about performing the update IN the database using a stored
    procedure?
    By using non-database fields on your form to get the
    information, you can then call the procedure in the database to
    perform the updates. If an error occurs in the procedure you
    rollback, if necessary, and send a message or status back to the
    form. If it succeeds you might wish to commit and then re-
    execute the form's query -- using either the original key values
    or the new key values...
    null

  • To delete multiple entries in table control in module pool

    Hi,
    Please help me out to know , <b>how to delete multiple entries from table control</b> when multiple lines in table control are selected.
    Regards,
    Irfan Hussain

    hai,
        you can do it inthis way.
    in the PAI event.
    loop at <table control name>
      module del_itab.
    endloop.
    in the nodule,write the folowing code.
    if <tablecontrol>-fieldname = 'X'.
    delete <tablecontrol-itab>
    endif.
    cheers

  • How  to maintain the entries using table maintanance??

    Hi,
    I have created a Ztable. and I have created table maintanance generator, then attached the table to a
    Tcode. but I am unable to maintain the entries in table maintanance??
    Can anyone help me out
    Regards
    Devi

    Hi this will help u.
    Hi,
    Go to SE11 enter table name ->change
    Utilities-> Table Maintenance Generator
    delete the Table maintenance by pressing delete button on menu,
    then start creating it again.
    Enter Auth.Group as &NC&
    Enter function group < some name>
    Maintenance Type -> One step
    Overview screen -> some Number (1 or 2)
    Press create
    enter dev class and save, activate.
    Go to SM 30 and check again.
    Reward if useful
    Regards,
    Hema Sundara.

  • How to insert multiple entries in table control

    Hi All,
    I want to insert multiple entries in table control in BDC program.Can any body help in this regard.
    Thanks,
    Satish.

    Hi,
    Go through the following 2 example programs:
    THis is example to upload the Bank details of the Vendor which has the TC.
    REPORT zprataptable2
           NO STANDARD PAGE HEADING LINE-SIZE 255.
    DATA : BEGIN OF itab OCCURS 0,
            i1 TYPE i,
            lifnr LIKE   rf02k-lifnr,
            bukrs LIKE   rf02k-bukrs,
            ekorg LIKE   rf02k-ekorg,
            ktokk LIKE   rf02k-ktokk,
            anred LIKE lfa1-anred,
            name1 LIKE lfa1-name1,
            sortl LIKE lfa1-sortl,
            land1 LIKE lfa1-land1,
            akont LIKE lfb1-akont,
            fdgrv LIKE lfb1-fdgrv,
             waers LIKE lfm1-waers,
            END OF itab.
    DATA : BEGIN OF jtab OCCURS 0,
            j1 TYPE i,
            banks LIKE lfbk-banks,
            bankl LIKE lfbk-bankl,
            bankn LIKE lfbk-bankn,
             END OF jtab.
    DATA : cnt(4) TYPE n.
    DATA : fdt(20) TYPE c.
    DATA : c TYPE i.
    INCLUDE bdcrecx1.
    START-OF-SELECTION.
      CALL FUNCTION 'WS_UPLOAD'
        EXPORTING
          filename = 'C:\first1.txt'
          filetype = 'DAT'
        TABLES
          data_tab = itab.
      CALL FUNCTION 'WS_UPLOAD'
       EXPORTING
         filename                      = 'C:\second.txt'
         filetype                      = 'DAT'
        TABLES
          data_tab                      = jtab.
      LOOP AT itab.
        PERFORM bdc_dynpro      USING 'SAPMF02K' '0100'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RF02K-KTOKK'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'RF02K-LIFNR'
                                      itab-lifnr.
        PERFORM bdc_field       USING 'RF02K-BUKRS'
                                      itab-bukrs.
        PERFORM bdc_field       USING 'RF02K-EKORG'
                                       itab-ekorg.
        PERFORM bdc_field       USING 'RF02K-KTOKK'
                                       itab-ktokk.
        PERFORM bdc_dynpro      USING 'SAPMF02K' '0110'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'LFA1-LAND1'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'LFA1-ANRED'
                                      itab-anred.
        PERFORM bdc_field       USING 'LFA1-NAME1'
                                      itab-name1.
        PERFORM bdc_field       USING 'LFA1-SORTL'
                                      itab-sortl.
        PERFORM bdc_field       USING 'LFA1-LAND1'
                                      itab-land1.
        PERFORM bdc_dynpro      USING 'SAPMF02K' '0120'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'LFA1-KUNNR'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_dynpro      USING 'SAPMF02K' '0130'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'LFBK-BANKN(01)'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=ENTR'.
        cnt = 0.
        LOOP AT jtab WHERE j1 = itab-i1.
          cnt = cnt + 1.
          CONCATENATE 'LFBK-BANKS(' cnt ')' INTO fdt.
          PERFORM bdc_field  USING fdt jtab-banks.
          CONCATENATE 'LFBK-BANKL(' cnt ')' INTO fdt.
          PERFORM bdc_field USING fdt jtab-bankl.
          CONCATENATE 'LFBK-BANKN(' cnt ')' INTO fdt.
          PERFORM bdc_field   USING fdt jtab-bankn.
          IF cnt = 5.
            cnt = 0.
            PERFORM bdc_dynpro      USING 'SAPMF02K' '0130'.
            PERFORM bdc_field       USING 'BDC_CURSOR'
                                          'LFBK-BANKS(01)'.
            PERFORM bdc_field       USING 'BDC_OKCODE'
                                          '=P+'.
            PERFORM bdc_dynpro      USING 'SAPMF02K' '0130'.
            PERFORM bdc_field       USING 'BDC_CURSOR'
                                          'LFBK-BANKN(02)'.
            PERFORM bdc_field       USING 'BDC_OKCODE'
                                          '=ENTR'.
          ENDIF.
        ENDLOOP.
        PERFORM bdc_dynpro      USING 'SAPMF02K' '0130'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'LFBK-BANKS(01)'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=ENTR'.
        PERFORM bdc_dynpro      USING 'SAPMF02K' '0210'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'LFB1-FDGRV'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'LFB1-AKONT'
                                      itab-akont.
        PERFORM bdc_field       USING 'LFB1-FDGRV'
                                      itab-fdgrv.
        PERFORM bdc_dynpro      USING 'SAPMF02K' '0215'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'LFB1-ZTERM'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_dynpro      USING 'SAPMF02K' '0220'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'LFB5-MAHNA'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_dynpro      USING 'SAPMF02K' '0310'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'LFM1-WAERS'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'LFM1-WAERS'
                                      itab-waers.
        PERFORM bdc_dynpro      USING 'SAPMF02K' '0320'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RF02K-LIFNR'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=ENTR'.
        PERFORM bdc_dynpro      USING 'SAPLSPO1' '0300'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=YES'.
        PERFORM bdc_transaction USING 'XK01'.
      ENDLOOP.
      PERFORM close_group.
    ABAP Name   :   ZMM_PR_UPLOAD_MAT
    Description :   PR Upload BDC Program(With Material)
    Created by  :   Anji Reddy V
    Created on  :   04/11/2004
    Description :   This Program is used to Upload the Purchase
                     Requisition data Using the Transaction ME51N.
      Modification Log:
      Date         Programmer          Correction    Description
      04/11/2004   Anji Reddy          Initial
    REPORT zmm_pr_upload_mat
           NO STANDARD PAGE HEADING
           LINE-SIZE 255.
    Standard Include for Selection Screen
    INCLUDE bdcrecx1.
    Internal Table for Upload Data
    DATA: BEGIN OF i_pr OCCURS 0,
    Header Screen
            sno(3),               " SNo
            bsart(004),           " PR Type
            epstp(001),           " Item Category
            knttp(001),           " Account Assignment
            eeind(010),           " Delivery Date
           lpein(001),          " Category of Del Date
            werks(004),           " Plant
            lgort(004),           " Storage Location
            ekgrp(003),           " Purchasing Group
            matkl(009),           " Material Group
            bednr(010),           " Tracking No
            afnam(012),            " Requisitioner
    Item Details
            matnr(018),           " Material No
            menge(017),           " Quantity
           badat(010),
           frgdt(010),
            preis(014),           " Valuation Price
           waers(005),           " Currency
           peinh(005),
           wepos(001),
           repos(001),
            sakto(010),           " GL Account
            kostl(010),           " Cost Center
           bnfpo(005),
          END OF i_pr.
    Internal Table for header Data
    DATA: BEGIN OF it_header OCCURS 0,
            sno(3),               " SNo
            bsart(004),           " PR Type
            epstp(001),           " Item Category
            knttp(001),           " Account Assignment
            eeind(010),           " Delivery Date
            werks(004),           " Plant
            lgort(004),           " Storage Location
            ekgrp(003),           " Purchasing Group
            matkl(009),           " Material Group
            bednr(010),           " Tracking No
            afnam(012),            " Requisitioner
          END OF it_header.
    Internal Table for Item Data
    DATA: BEGIN OF it_item OCCURS 0,
            sno(3),               " SNo
            matnr(018),           " Material No
            menge(017),           " Quantity
            preis(014),           " Valuation Price
            sakto(010),           " GL Account
            kostl(010),           " Cost Center
          END OF it_item.
    Data Variables & Constants
    CONSTANTS : c_x             VALUE 'X'.  " Flag
    DATA : v_l(2),                          " Counter
           v_rowno(5),                      " Row No
           v_2(2),                          " Counter
           v_rows LIKE sy-srows,            " Rows in TC
           v_field(45).                     " String
    Parameters
    PARAMETERS: p_file LIKE ibipparms-path.  " Filename
    At selection-screen on Value Request for file Name
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
    Get the F4 Values for the File
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          program_name  = syst-cprog
          dynpro_number = syst-dynnr
        IMPORTING
          file_name     = p_file.
    Start of Selection
    START-OF-SELECTION.
    Open the BDC Session
      PERFORM open_group.
    Upload the File into internal Table
      CALL FUNCTION 'UPLOAD'
        EXPORTING
          filename                = p_file
          filetype                = 'DAT'
        TABLES
          data_tab                = i_pr
        EXCEPTIONS
          conversion_error        = 1
          invalid_table_width     = 2
          invalid_type            = 3
          no_batch                = 4
          unknown_error           = 5
          gui_refuse_filetransfer = 6
          OTHERS                  = 7.
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      SORT i_pr BY sno.
      LOOP AT i_pr.
        MOVE-CORRESPONDING i_pr TO it_item.
        APPEND it_item.
        CLEAR it_item.
        AT END OF sno.
          READ TABLE i_pr INDEX sy-tabix.
          MOVE-CORRESPONDING i_pr TO it_header.
          APPEND it_header.
          CLEAR it_header.
        ENDAT.
      ENDLOOP.
      SORT it_header BY sno.
      SORT it_item BY sno.
      v_rows = sy-srows - 6.
    Upload the Data from Internal Table
      LOOP AT it_header.
    Header Data
        PERFORM bdc_dynpro      USING 'SAPMM06B' '0100'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'EBAN-BEDNR'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'EBAN-BSART'
                                      it_header-bsart.
        PERFORM bdc_field       USING 'RM06B-EPSTP'
                                      it_header-epstp.
        PERFORM bdc_field       USING 'EBAN-KNTTP'
                                      it_header-knttp.
        PERFORM bdc_field       USING 'RM06B-EEIND'
                                      it_header-eeind.
       PERFORM bdc_field       USING 'RM06B-LPEIN'
                                     it_header-lpein.
        PERFORM bdc_field       USING 'EBAN-WERKS'
                                      it_header-werks.
        PERFORM bdc_field       USING 'EBAN-LGORT'
                                      it_header-lgort.
        PERFORM bdc_field       USING 'EBAN-EKGRP'
                                      it_header-ekgrp.
        PERFORM bdc_field       USING 'EBAN-MATKL'
                                      it_header-matkl.
        PERFORM bdc_field       USING 'EBAN-BEDNR'
                                      it_header-bednr.
        PERFORM bdc_field       USING 'EBAN-AFNAM'
                                      it_header-afnam.
    Item Details
        v_l = 0.
    To add no. of rows
        v_2 = 0 .
    As the screen is showing 13 rows defaulted to 130
        v_rowno = 130 .
        LOOP AT it_item WHERE sno = it_header-sno.
          v_l = v_l + 1.
          IF v_l = 14 .
            IF v_2 = 12 .
              v_2 = 12 .
              v_l = 2 .
    From second time onwards it is displaying 12 rows only
              v_rowno = v_rowno + 120 .
              PERFORM bdc_dynpro      USING 'SAPMM06B' '0106'.
              PERFORM bdc_field       USING 'BDC_CURSOR'
                                            'RM06B-BNFPO'.
              PERFORM bdc_field       USING 'RM06B-BNFPO'
                                            v_rowno.
              PERFORM bdc_field       USING 'BDC_OKCODE'
                                            '/00'.
              PERFORM bdc_field       USING 'BDC_OKCODE'
                                                '/00'.
            ELSE.
    V_2 initialized to 12 for second screen purpose
              v_2 = 12 .
              v_l = 2 .
              PERFORM bdc_dynpro      USING 'SAPMM06B' '0106'.
              PERFORM bdc_field       USING 'BDC_CURSOR'
                                            'RM06B-BNFPO'.
              PERFORM bdc_field       USING 'RM06B-BNFPO'
                                            v_rowno .
              PERFORM bdc_field       USING 'BDC_OKCODE'
                                            '/00'.
              PERFORM bdc_field       USING 'BDC_OKCODE'
                                                '/00'.
            ENDIF.
          ENDIF.
          PERFORM bdc_dynpro      USING 'SAPMM06B' '0106'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          CLEAR v_field.
          CONCATENATE 'EBAN-MATNR(' v_l ')' INTO v_field.
          PERFORM bdc_field   USING v_field it_item-matnr.
          CLEAR v_field.
          CONCATENATE 'EBAN-MENGE(' v_l ')' INTO v_field.
          PERFORM bdc_field   USING v_field it_item-menge.
          PERFORM bdc_dynpro      USING 'SAPMM06B' '0102'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'EBAN-PREIS'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_field       USING 'EBAN-PREIS'
                                      it_item-preis.
          PERFORM bdc_dynpro      USING 'SAPMM06B' '0505'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'EBKN-SAKTO'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '=ENTE'.
          PERFORM bdc_field       USING 'EBKN-SAKTO'
                                      it_item-sakto.
    Cost Center
          PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'COBL-KOSTL'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '=ENTE'.
          PERFORM bdc_field       USING 'COBL-KOSTL'
                                        it_item-kostl.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '=ENTE'.
        ENDLOOP.
        PERFORM bdc_dynpro      USING 'SAPMM06B' '0106'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RM06B-BNFPO'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=BU'.
    Call The Transaction
        PERFORM bdc_transaction USING 'ME51'.
      ENDLOOP.
    Close the BDC Session
      PERFORM close_group.
    reward for useful answers.
    Regards,
    Anji

  • I cannot delete multiple entries from table

    Hi
    i am trying to delete multiple entries from table while keeping some data.
    for example I have the following table
    Plant                            Item
    US101                         777
    US101                         888
    US101                         999
    US101                         666
    I want to keep the  rows where the item is 777 and 888 for plant US101 and keep delete the rest data
    I wrote the following code
    Delete source_package where Plant = 'US101' and Item NE '777' or '888'.
    but all the rows get deleted.
    I tried deleting single row and it worked.
    Delete source_package where Plant = 'US101' and Item NE '777' .
    How can I delete multiple rows.
    thanks

    Hi Bhat Vaidya,
    Plz refer the following code.. IT will solve ur problem..
    REPORT  ZSDN_TEST.
    data: BEGIN OF it_data OCCURS 10,
            plant(4),
            item_num TYPE string,
          END OF it_data.
    data: str type string.
    data: it_final like it_data OCCURS 10 WITH HEADER LINE.
    it_data-plant = 'US01'. it_Data-item_num = 777.  append it_data.
    it_data-plant = 'US01'. it_Data-item_num = 888.  append it_data.
    it_data-plant = 'US01'. it_Data-item_num = 999.  append it_data.
    it_data-plant = 'US01'. it_Data-item_num = 666.  append it_data.
    delete it_data where plant = 'US01' and item_num ne 777 and item_num ne 888.
    LOOP AT it_data.
    write:it_data-plant,it_data-item_num.
    skip.
    ENDLOOP.
    Regards,
    Apoorv

  • No entry in table T001P when running time eval

    Hi,
    Can someone tell me, why this error occurs. "No entry in table T001P" when running time evaluation PT60. I checked his Infotype 1 and has the Personal Area/Subarea assigned.
    Thanks,
    Swarna.

    Hi,
    Please check these tables:
    V_001P_ALL
    V_503_AL
    Or try creating a blank entry in table T001P.
    Hope this helps,
    Reward points if helpful,
    Thank You,

  • Common diemsions and more then one fact table join problem

    Hi,
    I have 5 common dimension and 3 fact table which in the same subject area. When I want to display results from more then one fact table sending database then query more then one and I think BI server join this two different result on OBI server. But I think if obi server sending database query for exp. WITH SAWITH0 .... the results get effective.
    +++002002:2ea0000:2ea000f:----2009/03/14 10:12:59
    -------------------- SQL Request:
    SET VARIABLE QUERY_SRC_CD='Report';SELECT "- Common Dimensions"."Year Month" saw_0, "- Subs. Tariff"."Subscriber Current Tariff Type" saw_1, "- Common Measures".Arpu saw_2, "- Common Measures"."Gross Margin" saw_3, "- Call Out"."Callout Dur" saw_4, "- Case".Case_Info_Num saw_5 FROM "CUSTOMER PROFILING" WHERE ("- Common Dimensions"."Year Month" = 200901) AND ("- Subs. Tariff"."Subscriber Current Tariff Type" = 'PREPAID') ORDER BY saw_0, saw_1
    +++002002:2ea0000:2ea000f:----2009/03/14 10:12:59
    -------------------- General Query Info:
    Repository: Star, Subject Area: CUSTOMER PROFILING REV, Presentation: CUSTOMER PROFILING
    +++002002:2ea0000:2ea000f:----2009/03/14 10:13:00
    -------------------- Sending query to database named CENTRAVEA (id: <<471777>>):
    select T223282.DIM_TIME_MONTH_ID as c1,
    T221204.DIM_SUBS_CURRENT_TARIFF_TYPE as c2,
    avg(T223490.FACT_CP_ARPU) as c3,
    sum(T223490.FACT_CP_GROSS_MARGIN) as c4,
    sum(T223490.FACT_CP_CO_DUR) as c5
    from
    DM.DIM_SUBSCRIBER T221204 /* A_DIM_SUBSCRIBER */ ,
    DM.DIM_TIME_MONTH T223282 /* A_DIM_TIME_MONTH */ ,
    DM.FACT_CUST_PROFILING_PART3 T223490 /* A_FACT_CUST_PROFILING_PART3 */
    where ( T221204.DIM_SUBS_ID = T223490.DIM_SUBS_ID and T221204.DIM_SUBS_CURRENT_TARIFF_TYPE = 'PREPAID' and T223282.DIM_TIME_MONTH_ID = T223490.DIM_TIME_MONTH_ID and T223282.DIM_TIME_MONTH_ID = 200901 and T223490.DIM_TIME_MONTH_ID = 200901 )
    group by T221204.DIM_SUBS_CURRENT_TARIFF_TYPE, T223282.DIM_TIME_MONTH_ID
    order by c1, c2
    +++002002:2ea0000:2ea000f:----2009/03/14 10:13:00
    -------------------- Sending query to database named CENTRAVEA (id: <<471881>>):
    select T223282.DIM_TIME_MONTH_ID as c1,
    T221204.DIM_SUBS_CURRENT_TARIFF_TYPE as c2,
    sum(T223294.FACT_CP_CASE_INFO_NO) as c3
    from
    DM.DIM_SUBSCRIBER T221204 /* A_DIM_SUBSCRIBER */ ,
    DM.DIM_TIME_MONTH T223282 /* A_DIM_TIME_MONTH */ ,
    DM.FACT_CUST_PROFILING_PART1 T223294 /* A_FACT_CUST_PROFILING_PART1 */
    where ( T221204.DIM_SUBS_ID = T223294.DIM_SUBS_ID and T221204.DIM_SUBS_CURRENT_TARIFF_TYPE = 'PREPAID' and T223282.DIM_TIME_MONTH_ID = T223294.DIM_TIME_MONTH_ID and T223282.DIM_TIME_MONTH_ID = 200901 and T223294.DIM_TIME_MONTH_ID = 200901 )
    group by T221204.DIM_SUBS_CURRENT_TARIFF_TYPE, T223282.DIM_TIME_MONTH_ID
    order by c1, c2
    I have another subject area and which defined like this subject area contain two dimension and 5 fact table. If I want to display results on this subject area I can see best sql for my database
    My problem is why this two different subject areas create different queries. I think following query is the best for database.
    Thanks for your help
    +++002002:2ea0000:2ea0015:----2009/03/14 10:30:06
    -------------------- SQL Request:
    SET VARIABLE QUERY_SRC_CD='Report';SELECT "Dim - Segments"."Marketing Segment" saw_0, "Fact - Campaign Response"."Fact Campaign Award Amount" saw_1, "Fact - Customer Interaction"."Issue Response Cost" saw_2 FROM "AVEA ALL" ORDER BY saw_0
    +++002002:2ea0000:2ea0015:----2009/03/14 10:30:06
    -------------------- General Query Info:
    Repository: Star, Subject Area: AVEA ALL, Presentation: AVEA ALL
    +++002002:2ea0000:2ea0015:----2009/03/14 10:30:06
    -------------------- Sending query to database named AVEA ALL (id: <<474694>>):
    WITH
    SAWITH0 AS (select sum(T51461.FACT_CMPGN_AWARD_AMOUNT) as c1,
    T49384.DIM_MARKETING_SGMNT_DESC as c2
    from
    DM.DIM_MARKETING_SEGMENT T49384 /* DIM_BI_MARKETING_SEGMENT */ ,
    DM.FACT_CMPGN_RESPONSE T51461 /* FACT_BI_CMPGN_RESPONSE */
    where ( T49384.DIM_MARKETING_SGMNT_ID = T51461.DIM_MARKETING_SGMNT_ID )
    group by T49384.DIM_MARKETING_SGMNT_DESC),
    SAWITH1 AS (select sum(T51503.FACT_CUST_INT_ISSUE_RES_COST) as c1,
    T49384.DIM_MARKETING_SGMNT_DESC as c2
    from
    DM.DIM_MARKETING_SEGMENT T49384 /* DIM_BI_MARKETING_SEGMENT */ ,
    DM.FACT_CUST_INTERACTN T51503 /* FACT_BI_CUST_INTERACTN */
    where ( T49384.DIM_MARKETING_SGMNT_ID = T51503.DIM_MARKETING_SGMNT_ID )
    group by T49384.DIM_MARKETING_SGMNT_DESC)
    select distinct case when SAWITH0.c2 is not null then SAWITH0.c2 when SAWITH1.c2 is not null then SAWITH1.c2 end as c1,
    SAWITH0.c1 as c2,
    SAWITH1.c1 as c3
    from
    SAWITH0 full outer join SAWITH1 On SAWITH0.c2 = SAWITH1.c2
    order by c1

    I find solution on Oracle® Business Intelligence Suite Enterprise Edition Release Notes.
    If you use a version of Oracle Database 10g Release 2 prior to 10.2.0.3, then you might encounter an issue with a Full Outer Join that causes severe database performance issues and appears to hang the database when the Oracle BI Server sends to the database SQL queries that include WITH clauses.
    To work around this issue when using Oracle Database 10g Release 1 or 2, upgrade to Oracle Database 10g Release 2 Patch Set 2 (for 10.2.0.3). For performance reasons, this is the preferred workaround.
    To work around this issue without installing Patch Set 2, modify the Database Features table using the Administration Tool. This configuration prevents the Oracle BI Server from sending SQL constructs that expose the issue in an unpatched Oracle Database 10g.
    To modify the Database Features table:
    In the Administration Tool, open the properties of the Physical Database metadata object.
    Navigate to the Features tab.
    Ensure the values for the PERF_PREFER_MINIMAL_WITH_USAGE and PERF_PREFER_INTERNAL_STITCH_JOIN entries are selected, that is, set to True.

  • Load more than one user groups to system session variable GROUP from table

    hi, I found that the value of the system session variable GROUP can be assigned by setting a sql in initialization blocks.
    however, if there are some users with more than one user group.
    can this be done by table driven (using sql in initialization blocks) ?
    thanks !!

    Referencing GROUP session variable in initialization blocks for different types of authentication
    http://108obiee.blogspot.com/2009/10/referencing-group-session-variable-in.html
    Users are assigned to multiple groups from external table with semicolons, see example two and three from the post.
    Regards
    Goran
    http://108obiee.blogspot.com

  • How we can lock No more than one user can use the table  at a single time

    Hi Abapers,
    0)  which  function modules to lock & unlock a table.
    1) When you execute the program, we can check if there is any lock on this table. If yes, the user should be able to only view the table contents and not modify.
    2) If there is no lock, then lock the table and go into change mode.
    3) On exiting from the program, unlock the table using the function module.
    4) more than one user can't modify the table just display.
    Note: If there is any lock, display message saying table is locked.
    Plz help me for this requirement.
    Thanks
    Nani

    Hello Nani
    Have a look at the lock object EMMARAE (<i>Lock MARA and MARM/MAKT exclusively</i>) in transaction SE11.
    Inspect the F1 help for field <b>Lock mode</b>:
    DE ENQMODE
    Short Text
         Lock mode
    Definition
         Defines how to synchronize table record access by several users.
    The following modes exist:
         Exclusive lock
             The locked data can be read or processed by one user only. A request
             for another exclusive lock or for a shared lock is rejected.
         Shared lock
             Several users can read the same data at the same time, but as soon
             as a user edits the data, a second user can no longer access this
             data. Requests for further shared locks are accepted, even if they
             are issued by different users, but exclusive locks are rejected.
         Exclusive but not cumulative lock
             Exclusive locks can be requested by the same transaction more than
             once and handled successively, but an exclusive but not cumulative
             lock can only be requested once by a given transaction. All other
             lock requests are rejected.
    If you want to lock a standard table search whether the table is used in lock objects (<i>Where-Used-List</i>). If it is a customer table you have to create your own lock object (including two function modules: one for enqueuing and the other for dequeuing).
    The lock modules can be found in menu <b>GoTo -> Lock Modules</b>.
    Given these lock modules the logic should be quite clear after starting the program:
    1. Request lock -> if successful, continue in Change mode; -> if failed, continue in Display mode
    2. Before leaving the report remove lock (note: no problem if no lock has been set in the beginning).
    Regards
      Uwe

  • Fetching The more then One Company ID by using PLSQL Table on Block B1(FORM

    I have two blocks in Form (Forms 10g) .On the Block B2 I have populated the Company Id by using the PLSQL Table.Now I selected more than two company ID from that Block ...I just want to keep the Company ID in the Temp Field on the Block B1.which I have selected on the Block B2.Any idea how can I assign more then one Company ID to That Temp Field on B1.

    This doesn't appear to have any connection to JMS or indeed to Java. Wrong forum. Locking.

  • Using more then one table/view in same Report

    Hi,
    I am using Discoverer Plus Version 9.0.4.43.15.
    Is it possible to use more then one table/view in a report without the tables/views being joined in any way? It would be like using two different datasets in the same report without the datasets having anything to do with one another. Right now when I select items from the available tab I can only pick tables that relate to one another in some way.
    Or is it possible to use more the one table in the same report? Each table using a different query/view/table.
    Thanks

    Spence,
    try following type of query using set operator UNION / UNION ALL:
    select col1,col2
    from t1
    union all
    select col1,col2
    from t2
    If you don't have restrictions then this is the best way.

  • Updating more then one table

    Is it possible to update more then one table (just out of curiousity)?
    Something like (I know the following doesn't actually work but that's the basic logic):
    UPDATE ps_vchr_hdr_stg a, ps_vchr_line_stg b
    SET a.voucher_style = 'ADJ', b.po_id = ' '
    WHERE a.key1 = b.key1
    AND a.key2= b.key2
    and a.gross_amt < 0

    Hi, I don't think it is possible:
    UPDATE {table_reference | [THE] (subquery1)} [alias]
    SET
    {column_name = {sql_expression | (subquery2)}
    | (column_name [, column_name]...) = (subquery3)}
    [, {column_name = {sql_expression | (subquery2)}
        | (column_name [, column_name]...) = (subquery3)}]...
    [WHERE {search_condition | CURRENT_OF cursor_name}] [RETURNING]
    [row_expression [, row_expression]... INTO
    {variable_name | :host_variable_name}
    [, {variable_name | :host_variable_name}]...];If you need to perform 2 or more operations put it into procedure or function as separate statements.
    Regards,
    Tomas

  • Linking One table with more then one tablespace

    Hi,
    Can anybody help to link one table to more then one tablespace?
    Thanks in advance.

    If the table is not partitionned you cannot store a table in different tablespaces. If the table is partitionned you can store each partition in a different tablespace. Example from 10.2 Data Warehousing Guide:
    CREATE TABLE sales_composite
    (salesman_id  NUMBER(5),
    salesman_name VARCHAR2(30),
    sales_amount  NUMBER(10),
    sales_date    DATE)
    PARTITION BY RANGE(sales_date)
    SUBPARTITION BY HASH(salesman_id)
    SUBPARTITION TEMPLATE(
    SUBPARTITION sp1 TABLESPACE ts1,
    SUBPARTITION sp2 TABLESPACE ts2,
    SUBPARTITION sp3 TABLESPACE ts3,
    SUBPARTITION sp4 TABLESPACE ts4)
    (PARTITION sales_jan2000 VALUES LESS THAN(TO_DATE('02/01/2000','MM/DD/YYYY'))
    PARTITION sales_feb2000 VALUES LESS THAN(TO_DATE('03/01/2000','MM/DD/YYYY'))
    PARTITION sales_mar2000 VALUES LESS THAN(TO_DATE('04/01/2000','MM/DD/YYYY'))
    PARTITION sales_apr2000 VALUES LESS THAN(TO_DATE('05/01/2000','MM/DD/YYYY'))
    PARTITION sales_may2000 VALUES LESS THAN(TO_DATE('06/01/2000','MM/DD/YYYY')));Edited by: P. Forstmann on 13 févr. 2010 09:08

Maybe you are looking for

  • Airdisks crashing, Finder won't relaunch, only solution is to restart the computer. (Lion)

    when I try to delete a folder with a locked file from my AirDisk, I get the spinning beachball and the foce quit won't relaunch the finder. Unplugging the airport doesn't help either. the only thing I can do it restart the computer. I have a 27" 2010

  • How to set up with cacheing DNS for local network?

    Our new Lion Server has a static IP Address pointed to over the internet by our registrar's zone file. Planning the Lion Server installation process with the intent of hosting Web, Mail and Open Directory services to a small number of users who are n

  • Transferring data to a New Hard Drive?

    Is there a way to transfer everything from my Main Hard drive (boot volume, programs, plugins, etc.) to an external firewire drive and then back onto a new larger hard drive that will replace the old one with any certainty that it will work without d

  • Control cost and control quantity in production order cost analysis

    Hi, When I checked the WIP value, I found there are two field, control cost and control quantity, in the cost analysis of production order which has some relationship with WIP calculation. But I do not know where the control cost from and by what the

  • Charger keeps shutting off or wont charge mac book pro

    the led on the charged says that my macbook pro is fully charged but on the screen it says not charging. the computer isnt fully charged because when I unplug it. the computer dies. my charger also gets really hot on the end that attaches to the comp