I_BILLOFMATERIALCOMPONENT

CDS View

Bill of Material Components

I_BILLOFMATERIALCOMPONENT is a CDS View in S/4HANA. Bill of Material Components. It contains 115 fields. 4 CDS views read from this table.

CDS Views using this table (4)

ViewTypeJoinVDMDescription
I_BOMItemHdrChangeState view from COMPOSITE BOM Item with Header Changes
I_BOMItemHdrChangeState view union_all COMPOSITE BOM Item with Header Changes
I_MaintBOMItemHdrChangeState view from COMPOSITE Maintenance BOM Item with Header Changes
I_SalesBOMItemHdrChangeState view from COMPOSITE Sales Order BOM Item change state

Fields (115)

KeyField CDS FieldsUsed in Views
KEY BillOfMaterial BillOfMaterial 1
KEY BillOfMaterialCategory BillOfMaterialCategory 3
KEY BillOfMaterialItemNodeNumber BillOfMaterialItemNodeNumber 3
KEY BillOfMaterialItemUUID BillOfMaterialItemUUID 3
KEY BillOfMaterialVariant BillOfMaterialVariant 3
KEY BillOfMaterialVersion BillOfMaterialVersion 3
_BOMItemCategory _BOMItemCategory 2
_Currency _Currency 1
_Dost _Dost 1
_Eqst _Eqst 1
_Kdst _Kdst 1
_Mast _Mast 1
_Prst _Prst 1
_Stst _Stst 1
_Tpst _Tpst 1
_UnitOfMeasure _UnitOfMeasure 3
AlternativeItemGroup AlternativeItemGroup 3
AlternativeItemPriority AlternativeItemPriority 3
AlternativeItemStrategy AlternativeItemStrategy 3
BillOfMaterialComponent BillOfMaterialComponent 3
BillOfMaterialItemCategory BillOfMaterialItemCategory 3
BillOfMaterialItemCategoryDesc BillOfMaterialItemCategoryDesc 3
BillOfMaterialItemNumber BillOfMaterialItemNumber 1
BillOfMaterialItemQuantity BillOfMaterialItemQuantity 1
BillOfMaterialItemUnit BillOfMaterialItemUnit 3
BOMIsRecursive BOMIsRecursive 3
BOMItemCreatedByUser BOMItemCreatedByUser 3
BOMItemDescription BOMItemDescription 1
BOMItemHasFixedQuantity BOMItemHasFixedQuantity 3
BOMItemInternalChangeCount BOMItemInternalChangeCount 1
BOMItemIsCostingRelevant BOMItemIsCostingRelevant 3
BOMItemIsPlantMaintRelevant BOMItemIsPlantMaintRelevant 3
BOMItemIsSalesRelevant BOMItemIsSalesRelevant 3
BOMItemIsSparePart BOMItemIsSparePart 3
BOMItemLastChangeDate BOMItemLastChangeDate 3
BOMItemLastChangedByUser BOMItemLastChangedByUser 3
BOMItemRecordCreationDate BOMItemRecordCreationDate 1
BOMItemSorter BOMItemSorter 3
BOMItemText2 BOMItemText2 1
ChgToEngineeringChgDocument ChgToEngineeringChgDocument 3
ClassNumber ClassNumber 3
ClassType ClassType 3
ComponentDescription ComponentDescription 3
ComponentScrapInPercent ComponentScrapInPercent 1
CostElement CostElement 3
Creditor Creditor 3
Currency Currency 3
DeliveryDurationInDays DeliveryDurationInDays 3
DependencyObjectNumber DependencyObjectNumber 3
DiscontinuationGroup DiscontinuationGroup 3
DistrKeyCompConsumption DistrKeyCompConsumption 3
DocNumber DocNumber 1
DocumentIsCreatedByCAD DocumentIsCreatedByCAD 3
DocumentPart DocumentPart 1
DocumentType DocumentType 1
DocumentVersion DocumentVersion 1
EngineeringChangeDocument EngineeringChangeDocument 3
ExplosionType ExplosionType 3
FixedQuantity FixedQuantity 1
FollowUpGroup FollowUpGroup 3
FormulaKey FormulaKey 1
GoodsReceiptDuration GoodsReceiptDuration 3
IdentifierBOMItem IdentifierBOMItem 3
InheritedNodeNumberForBOMItem InheritedNodeNumberForBOMItem 3
InheritedNodeNumberVersionBOM InheritedNodeNumberVersionBOM 3
IsALE IsALE 3
IsBOMRecursiveAllowed IsBOMRecursiveAllowed 3
IsBulkMaterial IsBulkMaterial 3
IsClassificationRelevant IsClassificationRelevant 3
IsConfigurableBOM IsConfigurableBOM 3
IsDeleted IsDeleted 3
IsEngineeringRelevant IsEngineeringRelevant 3
IsMaterialProvision IsMaterialProvision 3
IsNetScrap IsNetScrap 1
IsPhantomItem IsPhantomItem 3
IsPMAssemblyRelevant IsPMAssemblyRelevant 3
IsProductionRelevant IsProductionRelevant 3
IsSoftwareComponent IsSoftwareComponent 3
IsSubItem IsSubItem 3
LastChangeDateTime LastChangeDateTime 3
LeadTimeOffset LeadTimeOffset 3
LongTextLanguage LongTextLanguage 3
MaterialComponentIsPhantomItem MaterialComponentIsPhantomItem 3
MaterialComponentPrice MaterialComponentPrice 1
MaterialGroup MaterialGroup 3
MaterialIsCoProduct MaterialIsCoProduct 3
MaterialPriceUnitQty MaterialPriceUnitQty 1
MultipleSelectionAllowed MultipleSelectionAllowed 3
ObjectType BillOfMaterialObjectType,ObjectType 3
OperationLeadTimeOffset OperationLeadTimeOffset 3
OperationScrapInPercent OperationScrapInPercent 1
OpsLeadTimeOffsetUnit OpsLeadTimeOffsetUnit 3
OrigSalesOrderBOM OrigSalesOrderBOM 1
OrigSalesOrderBOMItmCategory OrigSalesOrderBOMItmCategory 3
OrigSalesOrderBOMItmNodeNumber OrigSalesOrderBOMItmNodeNumber 3
OrigSalesOrderBOMItmNumber OrigSalesOrderBOMItmNumber 3
PreliminaryMaterial PreliminaryMaterial 2
ProdOrderIssueLocation ProdOrderIssueLocation 3
ProductionSupplyArea ProductionSupplyArea 3
PurchasingGroup PurchasingGroup 3
PurchasingOrganization PurchasingOrganization 3
QuantityVariableSizeItem QuantityVariableSizeItem 1
ReferencePoint ReferencePoint 3
RequiredComponent RequiredComponent 3
ResultingItemCategory ResultingItemCategory 3
Size1 Size1 3
Size2 Size2 3
Size3 Size3 3
SpecialProcurementType SpecialProcurementType 3
UnitOfMeasureForSize1To3 UnitOfMeasureForSize1To3 3
UnitOfMeasureForVarSizeItem UnitOfMeasureForVarSizeItem 1
UsageProbabilityPercent UsageProbabilityPercent 3
ValidityEndDate ValidityEndDate 3
ValidityStartDate ValidityStartDate 3
VariableSizeCompUnitOfMeasure VariableSizeCompUnitOfMeasure 3
@AbapCatalog.sqlViewName: 'IBOMCOMPS'
@ClientHandling.type : #INHERITED
@ClientHandling.algorithm : #SESSION_VARIABLE
@VDM.viewType: #COMPOSITE
@ObjectModel.usageType: {serviceQuality: #D, sizeCategory: #L, dataClass: #TRANSACTIONAL}
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #NOT_REQUIRED
@EndUserText.label: 'Bill of Material Components'
@ObjectModel.createEnabled: true
@Search.searchable: false
@AbapCatalog.preserveKey:true

define view I_BillOfMaterialComponent
  as select from P_BOMItems as valid_items
  association [1..1] to I_BillOfMaterialItemCategory as _BOMItemCategory on  $projection.BillOfMaterialItemCategory = _BOMItemCategory.BillOfMaterialItemCategory
  association [0..1] to I_BomItemCategoryText as _BOMItemCategoryText                on  $projection.BillOfMaterialItemCategory = _BOMItemCategoryText.BillOfMaterialItemCategory
                                                                                     and _BOMItemCategoryText.Language = $session.system_language
  //association [0..1] to I_Material                   as _Material        on  $projection.BillOfMaterialComponent = _Material.Material

  association [1..1] to I_UnitOfMeasure              as _UnitOfMeasure   on  $projection.BillOfMaterialItemUnit = _UnitOfMeasure.UnitOfMeasure
  //association [1..1] to I_BillOfMaterialUsage        as _BillOfMaterialVariantUsage on  $projection.billofmaterialvariantusage = _BillOfMaterialVariantUsage.BillOfMaterialVariantUsage

  association [1..1] to I_Currency                   as _Currency        on  $projection.Currency = _Currency.Currency
  association [0..*] to I_MaterialBOMLink            as _Mast            on  $projection.BillOfMaterialCategory = _Mast.BillOfMaterialCategory
                                                                         and $projection.BillOfMaterial         = _Mast.BillOfMaterial
                                                                         and $projection.BillOfMaterialVariant  = _Mast.BillOfMaterialVariant
  association [0..1] to I_DocumentBOMLink            as _Dost            on  $projection.BillOfMaterialCategory = _Dost.BillOfMaterialCategory
                                                                         and $projection.BillOfMaterial         = _Dost.BillOfMaterial
                                                                         and $projection.BillOfMaterialVariant  = _Dost.BillOfMaterialVariant
  association [0..1] to I_Prst                       as _Prst            on  $projection.BillOfMaterialCategory = _Prst.BillOfMaterialCategory
                                                                         and $projection.BillOfMaterial         = _Prst.BillOfMaterial
                                                                         and $projection.BillOfMaterialVariant  = _Prst.BillOfMaterialVariant
  association [0..1] to I_SalesOrderBOMLink          as _Kdst            on  $projection.BillOfMaterialCategory = _Kdst.BillOfMaterialCategory
                                                                         and $projection.BillOfMaterial         = _Kdst.BillOfMaterial
                                                                         and $projection.BillOfMaterialVariant  = _Kdst.BillOfMaterialVariant
  association [0..1] to I_Eqst                       as _Eqst            on  $projection.BillOfMaterialCategory = _Eqst.BillOfMaterialCategory
                                                                         and $projection.BillOfMaterial         = _Eqst.BillOfMaterial
                                                                         and $projection.BillOfMaterialVariant  = _Eqst.BillOfMaterialVariant
  association [0..1] to I_Tpst                       as _Tpst            on  $projection.BillOfMaterialCategory = _Tpst.BillOfMaterialCategory
                                                                         and $projection.BillOfMaterial         = _Tpst.BillOfMaterial
                                                                         and $projection.BillOfMaterialVariant  = _Tpst.BillOfMaterialVariant
  association [0..1] to I_Stst                       as _Stst            on  $projection.BillOfMaterialCategory = _Stst.BillOfMaterialCategory
                                                                         and $projection.BillOfMaterial         = _Stst.BillOfMaterial
                                                                         and $projection.BillOfMaterialVariant  = _Stst.BillOfMaterialVariant
  association [0..1] to I_Material                    as _Material       on  $projection.BillOfMaterialComponent = _Material.Material
  association [0..1] to I_MaterialText                as _MaterialText   on  $projection.BillOfMaterialComponent = _MaterialText.Material
                                                                                      and _MaterialText.Language              = $session.system_language
  association [0..1] to I_MaterialText                as _MaterialTextEN              on  $projection.BillOfMaterialComponent = _MaterialTextEN.Material
                                                                                      and _MaterialTextEN.Language            = 'E'

   association [0..1] to I_DocumentInfoRecordDesc      as _DocumentText                on  $projection.DocumentType    = _DocumentText.DocumentInfoRecordDocType
                                                                                      and $projection.DocNumber       = _DocumentText.DocumentInfoRecordDocNumber
                                                                                      and $projection.DocumentPart    = _DocumentText.DocumentInfoRecordDocPart
                                                                                      and $projection.DocumentVersion = _DocumentText.DocumentInfoRecordDocVersion
                                                                                      and _DocumentText.Language      = $session.system_language

  association [0..1] to I_DocumentInfoRecordDesc      as _DocumentTextEN              on  $projection.DocumentType    = _DocumentTextEN.DocumentInfoRecordDocType
                                                                                      and $projection.DocNumber       = _DocumentTextEN.DocumentInfoRecordDocNumber
                                                                                      and $projection.DocumentPart    = _DocumentTextEN.DocumentInfoRecordDocPart
                                                                                      and $projection.DocumentVersion = _DocumentTextEN.DocumentInfoRecordDocVersion
                                                                                      and _DocumentTextEN.Language    = 'E'
  association [0..1] to I_ClfnClassVH                 as _Class                       on  $projection.ClassNumber = _Class.Class
                                                                                      and $projection.ClassType   = _Class.ClassType                                                                                
                                                                                                                                                                    
                                                                                                                                                            
{
  key valid_items.BillOfMaterialCategory,
      //@ObjectModel.readOnly: true

  key valid_items.BillOfMaterial,
      //@ObjectModel.readOnly: true

  key valid_items.BillOfMaterialVariant,
      //@ObjectModel.readOnly: true

  key valid_items.BillOfMaterialItemNodeNumber,
      //@ObjectModel.readOnly: true

  key valid_items.BillOfMaterialItemUUID,
  
      valid_items.BillOfMaterialVersion,
      //@ObjectModel.readOnly: true

      --@EndUserText.label: ''
      valid_items.BOMItemInternalChangeCount,
      //@ObjectModel.readOnly: true

      @Semantics.businessDate.from: true
      valid_items.ValidityStartDate,     
      //@ObjectModel.readOnly: true

      @Semantics.businessDate.to: true
 /*     case when valid_items.BillOfMaterialVersion = ''  or valid_items.ValidityStartDate = '00000000' 
      then
      cast( valid_items.ValidityEndDate as datub preserving type )
      else cast('99991231' as datub )
      end as ValidityEndDate, */      
      valid_items.ValidityEndDate, 
      //@ObjectModel.readOnly: true

      valid_items.ChangeNumberFrom                                 as EngineeringChangeDocument,
      //@ObjectModel.readOnly: true

      cast( valid_items.ChangeNumberTo as aenra preserving type )  as ChgToEngineeringChgDocument,
      //@ObjectModel.readOnly: true

      valid_items.InheritedNodeNumberForBOMItem,
      @ObjectModel.readOnly: true
      valid_items.InheritedNodeNumberVersionBOM,
      --@ObjectModel.readOnly: true
      //valid_items.BOMItemNodeCount,

     // @ObjectModel.readOnly: true

      valid_items.BOMItemRecordCreationDate,
      //@ObjectModel.readOnly: true

      valid_items.BOMItemCreatedByUser,
      valid_items.BOMItemLastChangeDate,
      valid_items.BOMItemLastChangedByUser,
      @Search: {defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8}
      valid_items.BillOfMaterialComponent,
      ' '                                                          as MaterialName, // To be removed

      @ObjectModel.foreignKey.association: '_BOMItemCategory'
      valid_items.BillOfMaterialItemCategory,
      valid_items.BillOfMaterialItemNumber,
      @Semantics.unitOfMeasure: true
      @ObjectModel.foreignKey.association: '_UnitOfMeasure'
      case when _BOMItemCategory.FixedItemCategory = 'R'
      then UnitOfMeasureForVarSizeItem
      else valid_items.BillOfMaterialItemUnit
      end                                                          as BillOfMaterialItemUnit,
      @Semantics.quantity.unitOfMeasure: 'BillOfMaterialItemUnit'
      @DefaultAggregation :#NONE
      case when _BOMItemCategory.FixedItemCategory = 'R'
      then NumberOfVariableSizeItem
      else valid_items.BillOfMaterialItemQuantity
      end                                                          as BillOfMaterialItemQuantity,
      cast( valid_items.IsAssembly as stlkz preserving type )      as IsAssembly,
      //'' as AssemblyIndicator,

      valid_items.IsSubItem,

      valid_items.BOMItemSorter,
      valid_items.FixedQuantity,
      valid_items.BOMItemHasFixedQuantity,
      valid_items.PurchasingGroup,
      @Semantics.currencyCode: true
      @ObjectModel.foreignKey.association: '_Currency'
      valid_items.Currency,
      @Semantics.amount.currencyCode : 'Currency'
      @DefaultAggregation :#NONE
      valid_items.MaterialComponentPrice,
      valid_items.IdentifierBOMItem,
      valid_items.MaterialPriceUnitQty,
      valid_items.ComponentScrapInPercent,
      valid_items.OperationScrapInPercent,
      valid_items.IsNetScrap,
      valid_items.NumberOfVariableSizeItem,
       case when _BOMItemCategory.FixedItemCategory = 'R'
      then BillOfMaterialItemUnit
      else valid_items.UnitOfMeasureForVarSizeItem
      end                                                          as VariableSizeCompUnitOfMeasure,
       valid_items.QuantityVariableSizeItem,
      valid_items.UnitOfMeasureForVarSizeItem,
      valid_items.FormulaKey,
      //valid_items.BOMItemDescription,

      cast ( case 
            when _BOMItemCategory.FixedItemCategory = 'L' or _BOMItemCategory.FixedItemCategory = 'C' or _BOMItemCategory.FixedItemCategory = 'I'
               then
               case when _MaterialText.MaterialName is not null or _MaterialText.MaterialName <> ''
               then _MaterialText.MaterialName
               else _MaterialTextEN.MaterialName
               end
            when _BOMItemCategory.FixedItemCategory = 'T'
               then valid_items.BOMItemDescription
            when _BOMItemCategory.FixedItemCategory = 'R' and  (valid_items.BillOfMaterialComponent is not null)
               then
               case when _MaterialText.MaterialName is not null or _MaterialText.MaterialName <> ''
               then _MaterialText.MaterialName
               else _MaterialTextEN.MaterialName
               end
            when _BOMItemCategory.FixedItemCategory = 'R' and  (valid_items.BillOfMaterialComponent = '')
               then valid_items.BOMItemDescription
            when _BOMItemCategory.FixedItemCategory = 'D'
               then
               case when _DocumentText.DocumentDescription is not null or _DocumentText.DocumentDescription <> ''
               then _DocumentText.DocumentDescription
               else _DocumentTextEN.DocumentDescription
               end
            when _BOMItemCategory.FixedItemCategory = 'K'
               then
               case when _Class._ClassDescription[1:Language = $session.system_language].ClassDescription is not null
                        or _Class._ClassDescription[1:Language = $session.system_language].ClassDescription <> ''
                    then _Class._ClassDescription[1:Language = $session.system_language].ClassDescription
                    else _Class._ClassDescription[1:Language = 'E'].ClassDescription
               end
            when _BOMItemCategory.FixedItemCategory = 'N' and (valid_items.BillOfMaterialComponent <> '')
               then
               case when _MaterialText.MaterialName is not null or _MaterialText.MaterialName <> ''
               then _MaterialText.MaterialName
               else _MaterialTextEN.MaterialName
               end
            when _BOMItemCategory.FixedItemCategory = 'N' and  (valid_items.BillOfMaterialComponent = '')
               then valid_items.BOMItemDescription
            when _BOMItemCategory.FixedItemCategory = 'P' and (valid_items.BillOfMaterialComponent <> '')
               then
                case when _MaterialText.MaterialName is not null or _MaterialText.MaterialName <> ''
               then _MaterialText.MaterialName
                else _MaterialTextEN.MaterialName
               end
            when _BOMItemCategory.FixedItemCategory = 'P' and  (valid_items.BillOfMaterialComponent = '')
               then valid_items.BOMItemDescription
            when _BOMItemCategory.FixedItemCategory = 'S' and (valid_items.BillOfMaterialComponent <> '')
               then
            case when _MaterialText.MaterialName is not null or _MaterialText.MaterialName <> ''
               then _MaterialText.MaterialName
               else _MaterialTextEN.MaterialName
               end              
       end as ojtxp ) as ComponentDescription ,
      valid_items.BOMItemDescription,
      valid_items.BOMItemText2,
      valid_items.LongTextLanguage,
      valid_items.MaterialGroup,
      valid_items.DocumentType,
      valid_items.DocNumber,
      valid_items.DocumentVersion,
      valid_items.DocumentPart,
      valid_items.ClassNumber,
      valid_items.ClassType,
      valid_items.ResultingItemCategory,
      valid_items.DependencyObjectNumber,
      valid_items.ObjectType,
      valid_items.IsClassificationRelevant,
      valid_items.IsBulkMaterial,
      valid_items.BOMItemIsSparePart  , 
      valid_items.BOMItemIsSalesRelevant,
      valid_items.IsProductionRelevant,
      valid_items.BOMItemIsPlantMaintRelevant,
      valid_items.BOMItemIsCostingRelevant,
      valid_items.IsEngineeringRelevant,
      valid_items.SpecialProcurementType,
      valid_items.IsBOMRecursiveAllowed,
      valid_items.OperationLeadTimeOffset,
      valid_items.OpsLeadTimeOffsetUnit,
      valid_items.IsMaterialProvision,
      valid_items.BOMIsRecursive,
      valid_items.DocumentIsCreatedByCAD,
      valid_items.DistrKeyCompConsumption,
      valid_items.DeliveryDurationInDays,
      valid_items.Creditor,
      valid_items.CostElement,
      valid_items.Size1,
      valid_items.Size2,
      valid_items.Size3,
      valid_items.UnitOfMeasureForSize1To3,
      valid_items.GoodsReceiptDuration,
      valid_items.PurchasingOrganization,
      valid_items.RequiredComponent,
      valid_items.MultipleSelectionAllowed,
      valid_items.ProdOrderIssueLocation,
      valid_items.MaterialIsCoProduct,
      valid_items.ExplosionType,
      valid_items.FollowUpGroup,
      valid_items.DiscontinuationGroup,
      valid_items.IsConfigurableBOM,
      valid_items.ReferencePoint,
      valid_items.LeadTimeOffset,
      valid_items.IsSoftwareComponent,
      valid_items.ProductionSupplyArea,
      valid_items.IsDeleted,
      valid_items.IsALE,
//Alternative Item Fields

      valid_items.AlternativeItemGroup,
      valid_items.AlternativeItemPriority,
      valid_items.AlternativeItemStrategy,
      valid_items.UsageProbabilityPercent,     
      _BOMItemCategoryText.BillOfMaterialItemCategoryDesc as BillOfMaterialItemCategoryDesc,
      cast ( valid_items.IsPhantomItem as dumps preserving type )  as MaterialComponentIsPhantomItem,
      cast ( valid_items.IsPhantomItem as dumps preserving type )  as IsPhantomItem,
      valid_items.LastChangeDateTime                               as LastChangeDateTime,
      valid_items.IsPMAssemblyRelevant,
      
       valid_items.OrigSalesOrderBOMItmCategory,
       valid_items.OrigSalesOrderBOM,
       valid_items.OrigSalesOrderBOMItmNodeNumber,
       valid_items.OrigSalesOrderBOMItmNumber,
       valid_items.PreliminaryMaterial,
      // valid_items.BOMItemGroup,

      _BOMItemCategory,
      //_Material,

      _UnitOfMeasure,
      _Currency,
      //_BillOfMaterialVariantUsage,

      _Mast,
      _Dost,
      _Prst,
      _Kdst,
      _Eqst,
      _Tpst,
      _Stst

    
}