View for mseg database table

I want to extract data from MSEG. Its becoming performance issue. Can anybody advice me regarding any view which i can use in place of MSEG

a view won't increase performance, have you tried to force the index or create an index for the fields you use for the mseg table
perhaps if you need specific data you can also check BSAK BSIK  BSAD BSID  tables which are related to BSEG .
kind regards
arthur de smidt
Edited by: A. de Smidt on Jul 30, 2008 1:03 PM

Similar Messages

  • View for CDPOS & CDHDR tables

    Hi all,
    I am developing a report for which I am fetching fields from CDPOS & CDHDR tables (both r cluster tables). when i run st05, it fetches values from a cluster table CDCLS which takes most of the database time.
    Is there any view for CDPOS & CDHDR tables?
    How to find the views for cluster tables?
    Thanx in advance.
    Vijay.

    hi,
    check this code,
    here i used function module to get details of cdhdr,cdpos.
    TABLES : MARC.
    DATA :BEGIN OF GI_MARC OCCURS 0,
          MATNR LIKE MARC-MATNR,
          WERKS LIKE MARC-WERKS,
          DISPO LIKE MARC-DISPO,
          END OF GI_MARC.
    DATA : CHAR TYPE I,
           COUNT TYPE I,
           VAR TYPE I.
    DATA : BEGIN OF GI_FINAL OCCURS 2000,
           MATNR LIKE MARC-MATNR,
           DISPO LIKE MARC-DISPO,
           USERNAME LIKE CDHDR-USERNAME,
           UDATE LIKE CDHDR-UDATE,
           UTIME LIKE CDHDR-UTIME,
           TCODE LIKE CDHDR-TCODE,
           TABNAME LIKE CDPOS-TABNAME,
           TABKEY  LIKE CDPOS-TABKEY,
           FNAME  LIKE CDPOS-FNAME,
           VALUE_NEW  LIKE CDPOS-VALUE_NEW,
           VALUE_OLD   LIKE CDPOS-VALUE_OLD,
           CHANGENR LIKE CDHDR-CHANGENR,
           END OF GI_FINAL.
    DATA : MATNR LIKE MARC-MATNR,
           DISPO LIKE MARC-DISPO,
           USERNAME1 LIKE CDHDR-USERNAME,
           UDATE1 LIKE CDHDR-UDATE,
           UTIME LIKE CDHDR-UTIME,
           TCODE LIKE CDHDR-TCODE,
           CHANGENR LIKE CDHDR-CHANGENR.
    DATA : GI_CDHDR LIKE CDHDR OCCURS 0 WITH HEADER LINE.
    DATA : GI_CDPOS LIKE CDPOS OCCURS 0 WITH HEADER LINE.
    DATA : OBJECTCLAS LIKE CDHDR-OBJECTCLAS VALUE 'MATERIAL',
           OBJECTID LIKE CDHDR-OBJECTID,
           USERNAME LIKE CDHDR-USERNAME VALUE 'RSS-SPE',
           UDATE LIKE CDHDR-UDATE VALUE '20070101',
           CHANGE_IND LIKE CDHDR-CHANGE_IND VALUE 'U'.
    type-pools: slis.
    data: gt_slis_fcat type slis_t_fieldcat_alv.
    data: gt_fieldcat type slis_t_fieldcat_alv.
    *data: gt_fieldcatall type slis_t_fieldcat_alv.
    data: g_repid like sy-repid.
    data: gs_layout type slis_layout_alv.
    gs_layout-zebra             = 'X'.
    gs_layout-colwidth_optimize = 'X'.
    SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-110.
    SELECT-OPTIONS :  P_DISPO FOR MARC-DISPO.
    SELECT-OPTIONS : RECORDS FOR CHAR.
    SELECTION-SCREEN : END OF BLOCK B1.
    START-OF-SELECTION.
    perform process_data.
    perform f_fieldcat_init using gt_fieldcat[].
    perform alv_display tables gi_final using gt_fieldcat[].
    form process_data.
      SELECT MATNR WERKS DISPO FROM MARC INTO TABLE GI_MARC
                                WHERE DISPO IN P_DISPO
                                AND WERKS = '1011'." Becoz we hav to chk the
    the changes made in the material while extendin tht matrl frm 1011 to
    *other plant.
      IF NOT GI_MARC[] IS INITIAL.
        IF NOT RECORDS-LOW IS INITIAL .
          IF NOT RECORDS-HIGH IS INITIAL.
            DESCRIBE TABLE GI_MARC LINES COUNT.
            IF RECORDS-HIGH < COUNT.
              DELETE GI_MARC FROM RECORDS-HIGH TO COUNT.
            ENDIF.
            IF RECORDS-LOW <> 1.
              IF RECORDS-LOW <> 0.
                DELETE GI_MARC FROM 1 TO RECORDS-LOW.
              ENDIF.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDIF.
      LOOP AT GI_MARC.
        CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
          EXPORTING
            INPUT              = GI_MARC-MATNR
         IMPORTING
           OUTPUT             = GI_MARC-MATNR
    EXCEPTIONS
      LENGTH_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.
        OBJECTID = GI_MARC-MATNR .
        CALL FUNCTION 'CHANGEDOCUMENT_READ_HEADERS'
          EXPORTING
      ARCHIVE_HANDLE                   = 0
           DATE_OF_CHANGE                   = UDATE
            OBJECTCLASS                      = OBJECTCLAS
            OBJECTID                         = OBJECTID
      TIME_OF_CHANGE                   = '000000'
           USERNAME                         = USERNAME
      LOCAL_TIME                       = ' '
      DATE_UNTIL                       = '99991231'
      TIME_UNTIL                       = '235959'
          TABLES
            I_CDHDR                          = GI_CDHDR
         EXCEPTIONS
           NO_POSITION_FOUND                = 1
           WRONG_ACCESS_TO_ARCHIVE          = 2
           TIME_ZONE_CONVERSION_ERROR       = 3
           OTHERS                           = 4
        IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
        CALL FUNCTION 'ARCH_ANA_PROGRESS_INDICATOR'
             EXPORTING
                  TEXT = 'Processing'.
        IF NOT GI_CDHDR[] IS INITIAL.
          LOOP AT GI_CDHDR.
          MOVE GI_MARC-MATNR TO GI_FINAL-MATNR.
          MOVE GI_MARC-DISPO TO GI_FINAL-DISPO.
          MOVE GI_CDHDR-USERNAME TO GI_FINAL-USERNAME.
          MOVE GI_CDHDR-UDATE TO GI_FINAL-UDATE.
          MOVE GI_CDHDR-TCODE TO GI_FINAL-TCODE.
          MOVE GI_CDHDR-CHANGENR TO GI_FINAL-CHANGENR.
            VAR = 1.
            CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
              EXPORTING
                INPUT              = GI_FINAL-MATNR
                IMPORTING
               OUTPUT             = GI_FINAL-MATNR
             EXCEPTIONS
               LENGTH_ERROR       = 1
               OTHERS             = 2
            IF SY-SUBRC <> 0.
            ENDIF.
            OBJECTID = GI_FINAL-MATNR ."to ensure that objid is in proper
    *format
            SELECT *
                   FROM CDPOS
                   INTO TABLE GI_CDPOS
              PACKAGE SIZE 100
              FOR ALL ENTRIES IN GI_cdhdr
                   WHERE OBJECTID = OBJECTID
                     AND CHANGENR = GI_CDHDR-CHANGENR
                     AND OBJECTCLAS = OBJECTCLAS
                     AND CHNGIND =  CHANGE_IND." only those values will b
    *takn which have been modified nd nt created
            IF SY-SUBRC = 0.
              LOOP AT GI_CDPOS.
          MOVE GI_MARC-MATNR TO GI_FINAL-MATNR.
          MOVE GI_MARC-DISPO TO GI_FINAL-DISPO.
          MOVE GI_CDHDR-USERNAME TO GI_FINAL-USERNAME.
          MOVE GI_CDHDR-UDATE TO GI_FINAL-UDATE.
          MOVE GI_CDHDR-TCODE TO GI_FINAL-TCODE.
          MOVE GI_CDHDR-CHANGENR TO GI_FINAL-CHANGENR.
                MOVE GI_CDPOS-TABNAME TO GI_FINAL-TABNAME.
                MOVE GI_CDPOS-TABKEY TO GI_FINAL-TABKEY.
                MOVE GI_CDPOS-FNAME TO GI_FINAL-FNAME.
                MOVE GI_CDPOS-VALUE_NEW TO GI_FINAL-VALUE_NEW.
                MOVE GI_CDPOS-VALUE_OLD TO GI_FINAL-VALUE_OLD.
                  APPEND GI_FINAL.
                  CLEAR GI_FINAL.
               ENDIF.
                VAR = VAR + 1.
       ENDSELECT.
              ENDLOOP.
            ENDIF.
          ENDLOOP.
              CALL FUNCTION 'ARCH_ANA_PROGRESS_INDICATOR'
             EXPORTING
                  TEXT = 'Processing'.
        ENDIF.
      ENDLOOP.
      endform.
    form f_fieldcat_init using lt_fieldcat type slis_t_fieldcat_alv.
      data: ls_fieldcat type slis_fieldcat_alv.
       clear ls_fieldcat.
      ls_fieldcat-fieldname    = 'MATNR'.
      ls_fieldcat-seltext_l    = 'Material number'.
    ls_fieldcat-tabname      = 'GI_final'.
      append ls_fieldcat to lt_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-fieldname    = 'DISPO'.
      ls_fieldcat-seltext_l    = 'mrp controller'.
      append ls_fieldcat to lt_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-fieldname    = 'USERNAME'.
      ls_fieldcat-seltext_l    = 'Username'.
      append ls_fieldcat to lt_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-fieldname    = 'CHANGENR'.
      ls_fieldcat-seltext_l    = 'Change Number'.
      append ls_fieldcat to lt_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-fieldname    = 'UDATE'.
      ls_fieldcat-seltext_l    = 'modified date'.
      append ls_fieldcat to lt_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-fieldname    = 'UTIME'.
      ls_fieldcat-seltext_l    = 'MODIFIED TIME'.
      append ls_fieldcat to lt_fieldcat.
    clear ls_fieldcat.
    ls_fieldcat-fieldname    = 'UDATE'.
    ls_fieldcat-seltext_l    = 'MODIFIED DATE'.
    append ls_fieldcat to lt_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-fieldname    = 'TCODE'.
      ls_fieldcat-seltext_l    = 'TRANSACTION CODE'.
      append ls_fieldcat to lt_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-fieldname    = 'TABNAME'.
      ls_fieldcat-seltext_l    = 'TABLE NAME'.
      append ls_fieldcat to lt_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-fieldname    = 'TABKEY'.
      ls_fieldcat-seltext_l    = 'TABLE KEY'.
      append ls_fieldcat to lt_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-fieldname    = 'FNAME'.
      ls_fieldcat-seltext_l    = 'FNAME'.
      append ls_fieldcat to lt_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-fieldname    = 'FVALUE'.
      ls_fieldcat-seltext_l    = 'FVALUE'.
      append ls_fieldcat to lt_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-fieldname    = 'VALUE_NEW'.
      ls_fieldcat-seltext_l    = 'NEW VALUE'.
      append ls_fieldcat to lt_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-fieldname    = 'VALUE_OLD'.
      ls_fieldcat-seltext_l    = 'OLD VALUE'.
      append ls_fieldcat to lt_fieldcat.
    endform.                    " f_fieldcat_init
    form alv_display tables  gi_final using gt_fieldcat .
      call function 'REUSE_ALV_LIST_DISPLAY'
       exporting
      I_INTERFACE_CHECK              = ' '
      I_BYPASSING_BUFFER             =
      I_BUFFER_ACTIVE                = ' '
       I_CALLBACK_PROGRAM             = ' Material list '
      I_CALLBACK_PF_STATUS_SET       = ' '
      I_CALLBACK_USER_COMMAND        = ' '
      I_STRUCTURE_NAME               =
         is_layout                      = gs_layout
         it_fieldcat                    = gt_fieldcat
      IT_EXCLUDING                   =
      IT_SPECIAL_GROUPS              =
      IT_SORT                        =
      IT_FILTER                      =
      IS_SEL_HIDE                    =
      I_DEFAULT                      = 'X'
      I_SAVE                         = ' '
      IS_VARIANT                     =
      IT_EVENTS                      =
      IT_EVENT_EXIT                  =
      IS_PRINT                       =
      IS_REPREP_ID                   =
      I_SCREEN_START_COLUMN          = 0
      I_SCREEN_START_LINE            = 0
      I_SCREEN_END_COLUMN            = 0
      I_SCREEN_END_LINE              = 0
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER        =
      ES_EXIT_CAUSED_BY_USER         =
        tables
          t_outtab                       = gi_final
    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.
    regards
    siva

  • Reg :-maintain a table maintenance view for the z table.suggest me the code

    i have question.i have created a z table related to pp module.the requirement is to maintain {table maintenance view} for this z table.how could this be done.can any one suggest me the code for this?

    Hi ,
    We have a lots of queries on table maintainance creation in the forum posted and replied to.Pls have a look at it first.
    In se11 -> change mode of the ztable -> goto -> utilities -> table maintainance generator -> click on it...
    it will give a new screen-> enter the required details like function group , authorisation(use &NC& or leave it blank if you dont know)  and screens
    2 step and 1 step means=> number of screens displayed in maintainace
    if step1 is selected then we have a screen which will be like a table control for data entry.........
    for step2 we have a table control screen and a more detailed individual field display as second screen
    click on the button 'find screen numbers' so that system automatically proposes the screen numbers
    after which click on the "create" button and follow the required instructions/messages
    once done go to SM30 enter the table name to check if maintainance has been created properly
    Hope it helps,Pls check and revert
    Regards
    Byju

  • How to configure ActiveSync for a database table in IdM 7.0

    Hi All,
    Please suggest me the steps to configure ActiveSync in IdM 7.0.
    when i try it by resource-->activeSync wizard it gives
    "The ActiveSync Wizard has been deprecated in Identity Manager 7.0 in favor of using MetaView and the resource action "Edit Synchronization Policy". "
    how to configure ActiveSync for a database table.
    Thanx
    Shant

    Hi,
    You need to a script and run it on os level. Here is an example:-
    emcli relocate_targets -src_agent=agentmachine1.domain:3872
    -dest_agent=agentmachine2.domain:3872 -target_name=RACDB
    -target_type=oracle_database -copy_from_src -force=yes
    -changed_param=MachineName:agentmachine2.domain
    Regards
    Jomon
    Edited by: JohnJomon on Nov 17, 2011 2:27 PM

  • Creating 2 table maintainance views for one custom table

    Hello All,
    I want to create 2 table maintainace views for one custom table.
    I know how to create table maintainace but I want to know whether we can create only one maintainance view or we cal also create 2 maintainace views for a single custom table.
    Regards
    Mahesh

    Hello,
    You can create as many maintenance views one one table as you want.
    Kind regards,
    Bart

  • DB view for union of table

    hi guys.
    Is it possibile to create an ABAP DataBase view for an UNION ALL of 2 tables with same fields ?
    From SE11 is possible to create only joined tables, i think...is it true ?
    I must split records of one custom table into two tables (active records and archived records); so, i thought to create an union all (view) to semplify modification on abap programs needs both tables's record.
    thanks a lot.

    hi.
    Thanks for confirmation it isn't possible to create union on abap DB view (se11).
    for Yukonkid:
    - on sql-92 "union join" is included
    - "SELECT form both tables and "union" them in an internal table"...a DB view intend to be a same solution but more easy to develop (easy=few abap's rows)
    for Sneha:
    my target is performance: i have a big table (a lot of rows) with 95% archived and using index not resulted a good solution
    bye

  • Views for PO related tables?

    Hi Guys,
               Can anybody tell me any views for PO tables with EKKO,EKPO,EKKN and EKBE ?
                         I am using these tables for displaying a report and i have to get EKBE-BELNE ,EKKN-(PRCTR,ANLN1) , EKPO-(EBELP,NETPR,KNTTP),EKKO(EBELN,BEDAT,LIFNR) into a single internal table.The reason for views is if i link these tables its taking so much of time.
    Thanks,
    Gopi Anne.

    the statement "don't use joins, use for all entries" is simply not correct, but you seemingly can't get this out of people's heads anymore.
    I would try something like this
    SELECT ... INTO ...
    FROM EKKO
    JOIN EKPO ON EKKO~EBELN = EKPO~EBELN
    JOIN EKKN ON EKPO~EBELN = EKKN~EBELN
             AND EKPO~EBELP = EKKN~EBELP
    JOIN EKBE ON EKPO~EBELN = EKBE~EBELN
             AND EKPO~EBELP = EKBE~EBELP
    WHERE ...
    If we're lucky, the optimizer will choose the correct index from either EKKO (LIFNR, BEDAT) or EKKN (ANLN1) and the thing might actually run quite quickly...
    Make sure you include EKKO-BSTYP = "F" in your WHERE-clause (for the EKKO-BEDAT index).
    Cheers
    Thomas

  • Create view for Global Temporary Table

    if view is create for global temporary table so exactly how it works which helps regarding application performance.
    Regaards,
    Sambit Ray

    A view is just a stored query. It can be on global temporary tables or regular one, makes no difference.

  • Creating maintainance view for a customising table

    Hello Team,
    I have a scenario where we have to create a maintainance view for a standard customising table. But all changes to entries for customising tables will prompt for a transportable change request. How to switch off this prompt for change request? Please let me know your views on this.
    Thanks!

    create a maintainance view for a standard customising table
    Doing that wont be a good idea.
    If you only want to disable the transport request in a production system, then call transaction SOBJ. Give the name of the object = the maintenace view, set the "[Current Settings|http://help.sap.com/saphelp_glossary/en/35/2a2c6ad9685cd5e10000009b38f974/content.htm]" flag on. (eg. F-60 on V_T001B for "Posting Periods: Specify Time Intervals")
    Regards,
    Raymond

  • Table control program for updating database table

    Does anybody have a sample code for a table control program which can insert/delete/update a database table?
    I mean like on the output on table control, if the user insert/delete/update the records, the corresponding records will be updated in database table also.
    Appreciate your input.
    Thanks.

    hi nuren,
    TABLES: kna1,knbk.
    DATA: v_kunnr LIKE kna1-kunnr.
    DATA: v_check TYPE c.
    DATA: BEGIN OF it_knbk OCCURS 0,
          banks LIKE knbk-banks,
          bankl LIKE knbk-bankl,
          bankn LIKE knbk-bankn,
          bkont LIKE knbk-bkont,
          koinh LIKE knbk-koinh,
          chk TYPE c,
          END OF it_knbk.
    DATA: v_ucomm TYPE sy-ucomm,
          v_dynnr TYPE sy-dynnr.
    DATA: l_index TYPE sy-index.
    data: count type i.
    CONTROLS: tc1 TYPE TABLEVIEW USING SCREEN 0200.
    *&      Module  STATUS_0100  OUTPUT
          text
    MODULE status_0100 OUTPUT.
      SET PF-STATUS 'ABC'.
    SET TITLEBAR 'xxx'.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    *&      Module  USER_COMMAND_0100  INPUT
          text
    MODULE user_command_0100 INPUT.
      v_ucomm = sy-ucomm.
      CASE v_ucomm.
        WHEN 'DISP' OR 'CHNG'.
          IF v_kunnr <> space.
            SELECT banks
                   bankl
                   bankn
                   bkont
                   koinh
                   FROM knbk
                   INTO TABLE it_knbk
                   WHERE kunnr = v_kunnr.
            LEAVE TO SCREEN '0200'.
          ENDIF.
        WHEN 'BACK'.
          LEAVE TO SCREEN 0.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    *&      Module  MOD_KUNNR  INPUT
          text
    MODULE mod_kunnr INPUT.
      IF NOT v_kunnr IS INITIAL.
        SELECT SINGLE
               kunnr
               FROM kna1
               INTO v_kunnr
               WHERE kunnr = v_kunnr.
        IF sy-subrc <> 0.
          MESSAGE e000(zz) WITH 'INCORRECT CUSTOMER NUMBER'.
        ENDIF.
      ENDIF.
      IF v_kunnr IS INITIAL.
        MESSAGE e000(zz) WITH 'PLEASE ENTER A VALUE'.
      ENDIF.
    ENDMODULE.                 " MOD_KUNNR  INPUT
    *&      Module  STATUS_0200  OUTPUT
          text
    MODULE status_0200 OUTPUT.
      SET PF-STATUS 'ABC1'.
    SET TITLEBAR 'xxx'.
    ENDMODULE.                 " STATUS_0200  OUTPUT
    *&      Module  SCREENMOD  OUTPUT
          text
    MODULE screenmod OUTPUT.
      IF v_ucomm = 'DISP'.
        LOOP AT SCREEN.
          screen-input = 0.
          MODIFY SCREEN.
        ENDLOOP.
      ELSE."if v_UCOMM = 'CHNG'.
        LOOP AT SCREEN.
            IF screen-group1 = 'G1'.
              screen-input = 0.
            ELSE.
              screen-input = 1.
            ENDIF.
         MODIFY SCREEN.
        ENDLOOP.
    endif.
    if sy-ucomm = 'INSE'.
    loop at screen.
    IF ( tc1-current_line <> tc1-lines ).
      screen-input = 0.
    else.
    screen-input = 1.
    modify screen.
    endif.
    endloop.
    endif.
    ENDMODULE.                 " SCREENMOD  OUTPUT
    *&      Module  EXIT2  INPUT
          text
    MODULE exit2 INPUT.
      LEAVE TO SCREEN 0.
    ENDMODULE.                 " EXIT2  INPUT
    *&      Module  modify  INPUT
          text
    MODULE modify INPUT.
          IF v_check =  'X'.
            it_knbk-chk =  'X'.
            MODIFY it_knbk index tc1-current_line.
          ELSE.
            CLEAR it_knbk-chk .
         ENDIF.
    ENDMODULE.                 " modify  INPUT
    *&      Module  USER_COMMAND_0200  INPUT
          text
    MODULE user_command_0200 INPUT.
    v_ucomm = sy-ucomm.
      CASE v_ucomm.
        WHEN 'DELE'.
            DELETE it_knbk where chk eq 'X'.
            DESCRIBE TABLE it_knbk LINES tc1-lines.
        WHEN 'INSE'.
          CLEAR it_knbk.
          APPEND it_knbk.
          DESCRIBE TABLE it_knbk LINES tc1-lines.
        WHEN 'LIST'.
          LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN '0200'.
          WRITE 'Report'.
        WHEN 'BACK'.
          LEAVE TO SCREEN '0100'.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_0200  INPUT
    *&      Module  validate  INPUT
          text
    module validate input.
    IF IT_KNBK IS INITIAL.
    MESSAGE E000(ZZ) WITH 'A BLANK LINE CANNOT BE SAVED'.
    ENDIF.
    endmodule.                 " validate  INPUT

  • Best Practice for Designing Database Tables?

    Hi,
    I work at a company for tracking devices (GPS Devices). Our SQL Server database is designed to have a table for each device we sell, currently there is 2500 tables in our database and they all have the same columns they only differ in table name. Each device
    sends about 4K records per day.
    currently each table hold from 10K records to 300K records
    What is the best practice to design a database in this situation? 
    When accessing database from a C# application, which is better to use, direct SQL commands or views? 
    a detailed description about what is best to do in such scenario would be great. 
    Thanks in advance.
    Edit:
    Tables columns are:
    [MessageID]
          ,[MessageUnit]
          ,[MessageLong]
          ,[MessageLat]
          ,[MessageSpeed]
          ,[MessageTime]
          ,[MessageDate]
          ,[MessageHeading]
          ,[MessageSatNumber]
          ,[MessageInput]
          ,[MessageCreationDate]
          ,[MessageInput2]
          ,[MessageInput3]
          ,[MessageIO]

    Hello Louis, thank you so much for your informative post. I'll describe in detail what situations I came through my 9 months of work in the company (working as a software engineer, but I am planning to take over database maintenance since no one is maintaining
    it right now and I cannot do anything else in the code to make it faster)
    At every end of the month our clients generate report for the previous month for all their cars, some clients have 100+ cars, and some have few. This is when real issue start, they are calling their data from our server through internet while having 2000
    unit sending data to our server, they keep on getting read time out since SQL Server gives priority to insert and hold all select commands. I solved it temporary in the code using "Read Uncommitted" once I initialize a connection through C#. 
    The other issue is generating reports for a month or two takes lots of time when selecting 100+ units. Thats what I want to solve, the problem is the one who wrote the C# app used hard coded SQL Statements
    AND
    the company is refusing to upgrade from SQL Server 2003 and Windows Server 2003. 
    Now talking about reports, there are summary reports, stops reports, zone reports ..etc most of them depend usually on at least MessageTime, MessageDate, MessageSpeed, MessageIO and MessageSatNumber.
    So from your post I conclude that for now I need to set snapshots so that select statements don't get kicked out in favor for insert commands, but does SQL Server automatically select from the snapshots or do I have to tell it to do so? 
    Other than proper indexing what else I need? Tom
    Phillips suggested Table partitioning but I don't think it is needed in my case since our database size is 78GB
    When I run code analysis on the app, Visual Studio tells me I better use stored procedures, views than using hard coded Select Statements, what difference will this bring me when talking about performance?
    Thanks in advance. 

  • Creating view for DataSource from table containing Structures.

    Hello All,
    I need to make a datasource for HR PY master data from a table PA9004(its special for a HR infotype) which needs some fields like PFOBEE(PF-Opening Balance-Ee).
    Field(PFOBEE) is part of a structure(PS0008) which is included in the table PA9004.I tried where-used list for this structure in programs,FuncModules,Tables but got no result of any transparent table.
    To form my Datasource I tried creating the Database view, which had inconsistencies. I tried using the table PA9004, which said "This operation failed, because the template structure quantity fields or currency fields, for example, field PFOBEE refer to a different table."
    Also Projection view cant be used for generic datasources.
    Even Create Infostructure(MC21) does not work for HR: PY-IO.
    All suggestions welcome.Mail me at [email protected]

    Hello All,
    I solved this problem by forming my generic datasource(TCode RSO2) on a Infoset which had the table pa9004. There were some warnings regarding the use of the development class, but finally I had the datasource ready.
    I checked the datasource is working using the RSA3 TCode and the DS is perfectly extracting the data. I replicated this DS in BW server and it appears exactly where I wanted.
    Some colleages had suggested writing a functional module to extract the data, which must be right but I have not tried this option yet.
    Experts may please review my solution and offer tips. I am willing to offer points to anyone offering a more elegant solution.

  • Can  Lock object  be created individually for any Database table?

    hi ,
    On which tables can we crete lock objects?
    Please explain.

    Hi,
    There are 3 types of locks.
    Shared Locked
    exclusive lock
    exclusive lock without cumulating
    For tables to ovoid duplicate i,e example take standard table sbook,when bookings were done it must be protected from overflow i,e more than seatsmax so apply lock for that.
    Regards,
    jaya

  • Maintaince view creation for a cluster table

    Hi friends,
    I have created a maintaince view for a cluster table bseg and i have activated it its working fine..
    now my problem is i can create maintaince view for mutiple tables if other tables are linked with primary table using foriegn key relationship..
    Now can any one tell me is it possible to create maintance view for cluster table with multiple tables as i need a linked table with bseg which iam not able to get... ie : when i click on the relationship tab iam not getting the linked tables for bseg...
    now can i create a maintaince view with 2 linked cluster tables..
    if so can any one tell me how to create it.
    As sap says we can create projection view for cluster and pooled table and we cannot create database view for cluster and pooled tables , but it does not mentioned like that for maintaince view....
    I assume we can do it.... as iam trying to create a maintaince view with single cluster table then it shoudl allow me to create for multiple linked cluster tables.... and is it mandatory to maintain TMG for this maintaince view....?
    Regards
    KUMAR

    yes.. ur right inserting values into a cluster table other than standard sap tarnactions is dangerious....
    But sap didnot mentioned any where that we cannot maintain data for cluster tables using maintaince view... which it said for database view..that pooled and cluster table cannot be used for database view..
    Regards
    Kumar

  • Cannot see Database Views for a new Datasource

    I need to bind some text fields to a Oracle Database View (not a Database Table, I can see them fine).
    If I drill down into the Oracle Datasource, I don't see any of the required views.
    Although the schema I am using do not own these views, I have a public synonym set up for the view. The schema I am using do have access to SELECT on the view.
    Do anyone know if Creator will recognize these Oracle synonyms for the view? Or even better, does creator recognzie tables through Database Links?
    Ritchie

    >
    I'm using the jt400 driver w/ an AS400 DBI'm guessing that's the issue.
    try this:
    select your data source and right-click "view data".
    Enter the special undocumented query
    getmetadataand run.
    This show the schema/table/view/etc metatdata returned by the db/driver.
    Check the output section for getTables(null, null, "%", new String[] {"VIEW"}
    Any rows?
    If not, try another driver.
    If there are VIEW rows, then it's a Creator bug - those bastards! :)

Maybe you are looking for