Skip to Content
author's profile photo Former Member
Former Member

How many indexes we can create..?

Hi all,

how many priamry and secondary indexes we can create?


Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

7 Answers

  • author's profile photo Former Member
    Former Member
    Posted on Jan 25, 2008 at 12:32 PM

    Hi Rasheed

    Primary index is only one for any given table. This index is formed by combination of all the key fields in the order of occuerence in your DB table.

    You can have any number of secondary index created for your table, but too many secondary index will have lot of run time while posting data to that DB table, as all the indexes need to be updated.



    Edited by: Ranganath Ramesh on Jan 25, 2008 1:36 PM

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Jan 25, 2008 at 12:34 PM


    Check this thread..

    secondary indexes

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jan 25, 2008 at 12:58 PM


    Primary index will be only one and it will be there by default.

    Maximun number of Secondary indexes for a table can be 9.



    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jan 28, 2008 at 10:06 AM


    only one primary index can be created on a table.

    Only 9 Indexes allowed

    from efficiency point of view only 5 can be created because

    You should not create more than five indexes for any one

    table because:

    Whenever you change table fields that occur in the index,

    the index itself is also updated. The amount of data

    increases. The optimizer has too many chances to make

    mistakes by using the 'wrong' index.

    If you are using more than one index for a database table,

    ensure that they do not overlap.

    a MAXIMUM of 15 indexes can be created with primary + secondary 16 can be created.

    You may only have one cluster index per table because it

    causes the table to be physically re-ordered on the disk.


    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jan 28, 2008 at 10:15 AM


    User exits (Function module exits) are exits developed by SAP. The exit is implementerd as a call to a functionmodule. The code for the function module is writeen by the developer. You are not writing the code directly in the function module, but in the include that is implemented in the function module.

    A user exit is a three character code that instructs the system to access a program during system processing.

    SXX: S is for standard exits that are delivered by SAP. XX represents the 2-digit exit number.

    UXX: U is for user exits that are defined by the user. XX represents the 2-digit exit number

    User exits are hooks in standard SAP code, which allow you to add functionality. The positioning of these exits has been defined by SAP, so often you can't find one where you need it!

    The implementation of user exits depends on the module. Some (and more, as you go to later releases) are implemented using CALL CUSTOMER-FUNCTION (see help documentation for this ABAP statement) - these are controlled from transactions CMOD and SMOD - have a look at the online documentation - transaction CMOD, menu Utilities --> Online Manual.

    In older areas of SAP code, the exit might be coded using an empty form supplied by SAP. E.g. look at module SAPMV45A. This has many forms beginning USEREXIT_... You can insert your own code in this.

    In other areas such as FI or LIS, there are configuration entries which allow calls to external ABAP code.

    Up until 4.5, there are field-exits. These are triggered as the first action during a PAI event. They are linked to a field's domain, and can be made global for that domain, or screen specific.

    Finally, you may need to make customer specific changes to SAP code. Note that if you choose to do this, SAP will not support the modified code.



    If the BAPI to be implemented is a standardized BAPI, use the generic names, for example, GetList, GetDetail.

    The method name must be in English (maximum 30 characters).

    The individual components of a BAPI name are separated by the use of upper and lower case.Example: GetList

    Underscores ("_") are not allowed in BAPI names.

    Each BAPI has a return parameter that is either an export parameter or an export table.

    So that customers can enhance BAPIs, each BAPI must have an ExtensionIn and an ExtensionOut parameter.


    If standardized parameters are used, you have to use the names specified for standardized parameters.

    BAPI parameter names should be as meaningful as possible. Poorly chosen names include abbreviations and technical names (e.g. "flag", table

    names, etc.).

    The parameter and field names must be in English with a maximum of 30 characters.

    The components of a parameter name in the BOR are separated by upper and lower case letters to make them easier to read. Example:


    Values that belong to each other semantically should be grouped together in one structured parameter, instead of using several scalar


    For ISO-relevant fields (country, language, unit of measure, currency), additional fields for ISO codes are provided.

    Unit of measure fields must accompany all quantity fields and currency identifiers must accompany currency amount fields.

    Standardized BAPIs

    Some BAPIs provide basic functions and can be used for most SAP business object types. These BAPIs should be implemented the same for all

    business object types. Standardized BAPIs are easier to use and prevent users having to deal with a number of different BAPIs. Whenever

    possible, a standardized BAPI must be used in preference to an individual BAPI.

    The following standardized BAPIs are provided:

    Reading instances of SAP business objects

    GetList ( ) With the BAPI GetList you can select a range of object key values, for example, company codes and material numbers.

    The BAPI GetList() is a class method.

    GetDetail() With the BAPI GetDetail() the details of an instance of a business object type are retrieved and returned to the calling program. The

    instance is identified via its key. The BAPI GetDetail() is an instance method.

    BAPIs that can create, change or delete instances of a business object type

    The following BAPIs of the same object type have to be programmed so that they can be called several times within one transaction. For example,

    if, after sales order 1 has been created, a second sales order 2 is created in the same transaction, the second BAPI call must not affect the

    consistency of the sales order 2. After completing the transaction with a COMMIT WORK, both the orders are saved consistently in the database.

    Create( ) and

    CreateFromData( ) The BAPIs Create() and CreateFromData() create an instance of an SAP business object type, for example, a purchase order.

    These BAPIs are class methods.

    Change( ) The BAPI Change() changes an existing instance of an SAP business object type, for example, a purchase order. The BAPI Change () is

    an instance method.

    Delete( ) and Undelete( ) The BAPI Delete() deletes an instance of an SAP business object type from the database or sets a deletion flag.

    The BAPI Undelete() removes a deletion flag. These BAPIs are instance methods.

    Cancel ( ) Unlike the BAPI Delete(), the BAPI Cancel() cancels an instance of a business object type. The instance to be cancelled remains in the

    database and an additional instance is created and this is the one that is actually canceled. The Cancel() BAPI is an instance method.

    Add<subobject> ( ) and Remove<subobject> ( ) The BAPI Add<subobject> adds a subobject to an existing object instance and the BAPI and

    Remove<subobject> removes a subobject from an object instance. These BAPIs are instance methods.

    BAPIs for Mass Data Processing

    The BAPIs listed above for creating and changing data can also be used for mass processing. For more information see BAPIs for Mass Data

    Transfer [Extern]

    BAPIs for Replicating Business Object Instances

    Replicate( ) and SaveReplica( ) The BAPIs Replicate() and SaveReplica() are implemented as methods of replicable business object types. They

    enable specific instances of an object type to be copied to one or more different systems. These BAPIs are used mainly to transfer data between

    distributed systems within the context of Application Link Enabling (ALE). These BAPIs are class methods.

    Other Less Used Standardized BAPIs

    Programming GetStatus() BAPIs [Extern]

    Programming ExistenceCheck() BAPIs [Extern]

    Standardized Parameters

    There are some parameters that can be created for various BAPIs because they contain the same or the equivalent data in all BAPIs. They should

    be implemented the same in all BAPIs.

    Address parameters Specific reference structures are defined for address parameters in BAPIs. You should copy these structures to use in your

    BAPI, especially if the underlying object type uses the central address management (CAM).

    Change Parameters In BAPIs that cause database changes (for example, Change() and Create() BAPIs) you must be able to distinguish between

    parameter fields that contain modified values and parameter fields that have not been modified. This distinction is made through the use of

    standardized parameters.

    Extension parameters The parameters ExtensionIn and ExtensionOut provides customers with a mechanism that enables BAPIs to be enhanced

    without modifications.

    Return Parameters Each BAPI must have an export return parameter for returning messages to the calling application. To provide application

    programmers with a consistent error handling process for BAPI calls, all return parameters must be implemented in the same, standardized way.

    Selection Parameters Standardized selection parameters are used in BAPIs that can be used to search for specific instances of a business object

    type (e.g. in GetList() ). These parameters enable the BAPI caller to specify the relevant selection criteria.

    Test Run Parameters The parameter TestRun is used in write BAPIs (Create() and Change() ), to check the entries for the object instance in the

    database before actually creating the object instance. The creation of the object instance is only simulated and data is not updated.

    Text Transfer Parameters To transfer BAPI documentation texts (e.g. the documentation of a business object type), you have to create

    standardized text transfer parameters.

    Important things to remember..

    It is important to follow the guidelines below when develop9ng BAPIs:


    BAPIs must not invoke a COMMIT WORK. instead use the BAPI TransactionCommit to execute the commit after the BAPI has executed.

    BAPI structures must not use includes.

    There should be no functional dependecies between two BAPIs

    BAPIs must perform there own authorization check

    BAPIs should not use dialogs

    BAPIs must not cause the program to abort or terminate. re4levant messages must be communicated through the return parameter.

    BAPI/ALE Integration

    When you use the BAPIs for asynchronous messagning, the application in the sendig systen calls the generated ALE IDoc interface isntead of the


    Asynchronous BAPIs use the ALE interface this way:

    Creates an IDOC from the BAPI data

    Sends the IDOC to the target system

    Receives the IDOC in trhe target system, crreates the BAPI data from the IDoc and calls the BAPI

    An ALE interface for a BAPi is created in transaction BDBG

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jan 28, 2008 at 10:17 AM

    Primary index:

    the primary index contains key fiels of a table and a pointer to non-key fields of the table. The primary index is created automatically when a table is created in database and moreover you can further define reference to the primary index which are known as Secondary index.

    we can have 9 primary indexes.

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jan 28, 2008 at 10:35 AM

    Primary index : Its the index which is automatically created for the PRIMARY KEY FIELD(S) of the table.

    The primary index is always created automatically in the R/3 System. It consists of the primary key fields of the database table. This means that for each combination of fields in the index, there is a maximum of one line in the table. This kind of index is also known as UNIQUE.

    Secondary index : Secondary Indexes can be 9. Its created as and when required,

    based upon other field(s) of the table,

    on which search criteria is used in sqls.

    Secondary indexes should contain columns that you use frequently in a selection, and that are as highly selective as possible. The fewer table entries that can be selected by a certain column, the higher that column?s selectivity. Place the most selective fields at the beginning of the index. Your secondary index should be so selective that each index entry corresponds to at most five percent of the table entries. If this is not the case, it is not worth creating the index. You should also avoid creating indexes for fields that are not always filled, where their value is initial for most entries in the table.

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.