Simplify SAP R/3 development with Excel VBA/VB RFC  
Home> Bapi>MaterialBOM




The Business Object Material bill of material is the description of the composition of a material.

The structure of a bill of material is represented by a bill of
material assembly. A bill of material component of a material bill of material can be a material, a class, a document or a text.

A material bill of material can be a multiple or variant bill of material.

A material bill of material relates to the usage and, if required, to a
plant. It can be valid in several plants assigned to the material.



Available Methods

  • CreateBomGroup : Creation of a material BOM group [ BAPI_MATERIAL_BOM_GROUP_CREATE ]
  • ExistenceCheckBomGroup : Check whether BOM group for material exists [ BAPI_MAT_BOM_EXISTENCE_CHECK ]




This method enables you to create a material BOM with all its assigned objects.

In extreme case, the entire BOM group can be transferred, that means

  • All variants of a variant BOM or alternatives of a multiple BOM

  • The entire history
  • All material assignments
  • All items
  • All subitems
  • This enables the the data to be transferred from the non-SAP system in one step.


  • Make sure that a BOM can not be transferred several times. Thatalso means that you can not first transfer a part of the BOM group,such as part of the variants or items (particularly with regard to history) and then in a second run, transfer the rest (additional
    variants, assignments, other historical statuses and so on).
  • A prerequisite for the successful transfer of a BOM, is that allbusiness objects, to which a BOM refer have first been transferred into the SAP System. These are

  • Material masters
  • Document info records, provided document items exist in the BOM
  • Classes, provided class items are to be transferred

  • Change numbers tha control the change status of the BOMs
  • Standard texts, provided they are to be included in the long text of the BOM group, variants or items

  • Example

    You want to transfer several (entire) BOM groups with complete history.

  • In other words, the variants (in the case of variant BOMs) oralternatives (in the case of multiple BOMs) with their history and assigned long texts.

  • The assignment of assembly materials - possibly from different plants - to BOMs.
  • The corresponding items with their historical statuses and their long texts.
  • The sub items of these items
  • For this you generate entries in the following tables, which are organized into three categories.

  • Tables that define objects
  • BOMGROUP - Basic data for the entire BOM group
  • VARIANTS - Variant or alternative data
  • ITEMS - Items

  • SUBITEMS - Subitems
  • Tables that define the relationship between objects
  • MATERIALRELATIONS - Assignment of the header materials to the BOMgroups, with the relevant requirements

  • ITEMASSIGNMENTS - Assignment requirements of the components to the variants or alternatives
  • SUBITEMASSIGNMENTS - Assignments of subitems to items
  • Tables with other assigned attributes

  • TEXTS - Long texts for individual objects
  • The BOM groups are cumulated within the running transfer with a uniquegroup definition of up to 32 characters (BOM_GROUP_IDENTIFICATION).This is entered in all table entries. Provided an external (unique) BOM
    group is to be placed in the SAP System, this can be used for identification.

    Each object can be uniquely identified within a BOM group in the fieldOBJECT_ID. In order to be able to easily recognize the object in thedata stream of the import, the field OBJECT_TYPE is also filled with the value:

  • BOM in the table VARIANTS
  • BGR in the table BOMGROUP
  • ITM in the table ITEMS
  • SUI in the table SUBITEMS

  • In addition to this general data, the tables are individually created as follows


    Contains the essential basic characteristics of a BOM group such as

  • BOM usage (BOM_USAGE)

  • Authorization group (AUTH_GROUP)
  • Description (BOM_TEXT)
  • and so on.


    Contain the variant specific data such as

  • Laboratory (LAB_DESIGN)

  • Base quantity to which the component quantities refer (BASE_QTY)
  • Validity entries such as change number (CHANGE_NO) and/or key date (VALID_FROM_DATE)
  • In the field FUNCTION you place the value

  • NEW if the variant runs in on a specified key date
  • DEL if the variant runs out on a specified key date

    Contains the component attributes. Competing attributes that refer to
    primary objects, such as component material (COMPONENT), documentnumber (DOCUMENT_NUMBER), class number (CLASS_NUM) are determined bythe item category (ITEM_CAT). Read the information in SAP Customizingabout the relevant item types and about the other attributes related to the specified primary objects.


    Contains the sub item data

  • Quantity (SUBITEM_QTY)
  • Installation location (INSTALLATION_POINT)
  • and so on.


    Contains - by entering the variant BOM number - the assignments of the assembly materials to the BOM with the requirements

  • Plant
  • Lot size area for multiple BOMs (LOT_SIZE_FROM, LOT_SIZE_TO)


    Assigns the components of the individual variants/alternatives to BOM groups.

    In the fields SUB_OBJECT_TYPE, SUB_OBJECT_ID you enter the BOMcomponents and in the fields SUPER_OBJECT_TYPE, SUPER_OBJECT_ID you
    enter the variants/alternatives. This means, you deposit the valuesfrom the fields OBJECT_TYPE and OBJECT_ID from the table ITEMS in thefield SUB_OBJECT_TYPE, SUB_OBJECT_ID and the values from the fields OBJECT_TYPE and OBJECT_ID from the table VARIANTS in the fields

    The validity of the assignments is determined by the valid-from date (VALID_FROM_DATE) or change number (CHANGE_NO)

    The field FUNCTION has to be scheduled with a value

  • NEW component created with this validity

  • DEL component deleted with this validity.

    Assigns the sub items to the components

    You enter the subitem in the fields SUB_OBJECT_TYPE, SUB_OBJECT_ID the
    components in the fields SUPER_OBJECT_TYPE, SUPER_OBJECT_ID. Thatmeans, you deposit the values from the fields OBJECT_TYPE and OBJECT_IDof table SUBITEMS into the fields SUB_OBJECT_TYPE, SUB_OBJECT_ID andthe values from the fields OBJECT_TYPE and OBJECT_ID from table ITEMS into the fields SUPER_OBJECT_TYPE, SUPER_OBJECT_ID .


    The table TEXTS contains the individual long text lines for all theobjects whose long texts can be assigned. The assignment to the relevant objects is produced in the fields OBJECT_TYP and OBJECT_ID.


    To secure the data in the database, you have to carry out a COMMIT WORK for each BOM group.

    All errors that occur are logged in the export parameter RETURN. In thecase of inconsistencies, the entire BOM group to be generated is rejected.

    The messages specified in the export parameter RETURN, are arranged as follows:

  • Messages with the message Id BAPI provide information about the general results when processing the input.
  • 000 Processing was successful
  • 001 Processing failed
  • Messages with the message Id BAPI1080 provide detailed information about the processing.

  • The detail messages fall into two groups:

  • Message 028 highlights errors or warnings that result from theanalysis of the structure of the transferred BOM data. In the case thatonly warnings are given then the processing has been continued and
    finished successfully provided no other error messages occur. Still, in this case, the warning should be followed.
  • Message 029 highlights errors in the data of the individualimported objects (variants, items and so on). The process is cancelled.

  • In addition to messages 028 and 029, other (error) messages are given,which better describe the affected sub-objects (variants, items and soon) or their relationship with each other. The identification of theobject takes place using the message variable BOM_GROUP_IDENTIFICATION
    to identify the addected BOM group, and OBJECT_TYP and OBJECT_ID to identify the objects (variants, items and so on) within a group.

    Also (if available) the application log and/or the relevant internalmessage last set in the API are given in the export parameter RETURN.




    This module checks whether a BOM exists for the given material andplant and usage. If the value is BLANK the system looks for a group BOM.

    You can enter the selection period to be used as additional criteria.In this case, the system checks whether the BOM found exists in the given selection period.


    Note that the function module merely provides information about whethera BOM exists in the selection period or not. It does not say anythingabout the effectivity of the BOM within this period or about whichother materials or plants, the BOM is assigned to. It also does not say
    anything about which type of BOM it concerns, whether configurable, variant or multiple.