P_VersEngBillOfMaterial

DDL: P_VERSENGBILLOFMATERIAL SQL: PVERSENGBOM Type: view COMPOSITE

P_VersEngBillOfMaterial is a Composite CDS View in SAP S/4HANA. It reads from 2 data sources (I_EngBOMUsage, I_MaterialBOM) and exposes 43 fields with key fields BillOfMaterialCategory, BillOfMaterial, BillOfMaterialVariant, Material, Plant.

Data Sources (2)

SourceAliasJoin Type
I_EngBOMUsage EngBOMUsage inner
I_MaterialBOM MaterialBOM from

Annotations (9)

NameValueLevelField
AbapCatalog.sqlViewName PVERSENGBOM view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #NOT_REQUIRED view
ObjectModel.usageType.serviceQuality #X view
ObjectModel.usageType.sizeCategory #XXL view
ObjectModel.usageType.dataClass #MASTER view
VDM.private true view
VDM.viewType #COMPOSITE view
ClientHandling.algorithm #SESSION_VARIABLE view

Fields (43)

KeyFieldSource TableSource FieldDescription
KEY BillOfMaterialCategory I_MaterialBOM BillOfMaterialCategory
KEY BillOfMaterial I_MaterialBOM BillOfMaterial
KEY BillOfMaterialVariant I_MaterialBOM BillOfMaterialVariant
KEY Material I_MaterialBOM Material
KEY Plant I_MaterialBOM Plant
KEY BillOfMaterialVersion I_MaterialBOM BillOfMaterialVersion
BillOfMaterialVariantUsage I_MaterialBOM BillOfMaterialVariantUsage
BillOfMaterialUUID I_MaterialBOM BillOfMaterialUUID
IsMultipleBOMAlt IsMultipleBOMAlt
BillOfMaterialHeaderUUID I_MaterialBOM BillOfMaterialHeaderUUID
BOMHeaderInternalChangeCount I_MaterialBOM BOMHeaderInternalChangeCount
BOMPrioritizedVersion BOMPrioritizedVersion
BOMUsagePriority BOMUsagePriority
BillOfMaterialAuthsnGrp I_MaterialBOM BillOfMaterialAuthsnGrp
BOMVersionStatus I_MaterialBOM BOMVersionStatus
BOMAlternativeText I_MaterialBOM BOMAlternativeText
BOMGroup I_MaterialBOM BOMGroup
BOMHeaderBaseUnit I_MaterialBOM BOMHeaderBaseUnit
BOMHeaderQuantityInBaseUnit I_MaterialBOM BOMHeaderQuantityInBaseUnit
BOMHeaderText I_MaterialBOM BOMHeaderText
BOMIsToBeDeleted I_MaterialBOM BOMIsToBeDeleted
BOMTechnicalType I_MaterialBOM BOMTechnicalType
BillOfMaterialStatus I_MaterialBOM BillOfMaterialStatus
ChgToEngineeringChgDocument I_MaterialBOM ChgToEngineeringChgDocument
CreatedByUser I_MaterialBOM CreatedByUser
DocumentIsCreatedByCAD I_MaterialBOM DocumentIsCreatedByCAD
EngineeringChangeDocument I_MaterialBOM EngineeringChangeDocument
HeaderValidityEndDate I_MaterialBOM HeaderValidityEndDate
HeaderValidityStartDate I_MaterialBOM HeaderValidityStartDate
IsALE I_MaterialBOM IsALE
IsConfiguredMaterial I_MaterialBOM IsConfiguredMaterial
IsVersionBillOfMaterial I_MaterialBOM IsVersionBillOfMaterial
IsLatestBOMVersion I_MaterialBOM IsLatestBOMVersion
IsMarkedForDeletion I_MaterialBOM IsMarkedForDeletion
LaboratoryOrDesignOffice I_MaterialBOM LaboratoryOrDesignOffice
RecordCreationDate I_MaterialBOM RecordCreationDate
LastChangeDate I_MaterialBOM LastChangeDate
LastChangedByUser I_MaterialBOM LastChangedByUser
MatFromLotSizeQuantity I_MaterialBOM MatFromLotSizeQuantity
MaterialToLotSizeQuantity I_MaterialBOM MaterialToLotSizeQuantity
_UnitOfMeasure I_MaterialBOM _UnitOfMeasure
_BillOfMaterialVariantUsage I_MaterialBOM _BillOfMaterialVariantUsage
_BillOfMaterialItem I_MaterialBOM _BillOfMaterialItem
//Private View Representing All Version Controlled Engineering Bill Of Materials

@AbapCatalog.sqlViewName: 'PVERSENGBOM'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@ObjectModel.usageType: {serviceQuality:#X, sizeCategory: #XXL, dataClass: #MASTER}
@VDM.private: true
@VDM.viewType: #COMPOSITE
@ClientHandling.algorithm: #SESSION_VARIABLE
define view P_VersEngBillOfMaterial
  as select from           I_MaterialBOM        as MaterialBOM 
    inner join             I_EngBOMUsage        as EngBOMUsage        on MaterialBOM.BillOfMaterialVariantUsage = EngBOMUsage.BillOfMaterialVariantUsage    
    
//    inner join             P_BOMItmModifiedDate as BOMItmModifiedDate on  MaterialBOM.BillOfMaterial         = BOMItmModifiedDate.BillOfMaterial

//                                                                     and MaterialBOM.BillOfMaterialCategory = BOMItmModifiedDate.BillOfMaterialCategory

//                                                                      and MaterialBOM.BillOfMaterialVariant  = BOMItmModifiedDate.BillOfMaterialVariant

//                                                                     and MaterialBOM.BillOfMaterialVersion  = BOMItmModifiedDate.BillOfMaterialVersion                                                                      


    left outer to one join I_UnitizedMaterial   as UnitizedMatl       on MaterialBOM.Material = UnitizedMatl.Material


{
  key MaterialBOM.BillOfMaterialCategory,
  key MaterialBOM.BillOfMaterial,
  key MaterialBOM.BillOfMaterialVariant,  
  key MaterialBOM.Material,
  key MaterialBOM.Plant,
  key MaterialBOM.BillOfMaterialVersion,
      MaterialBOM.BillOfMaterialVariantUsage,
      MaterialBOM.BillOfMaterialUUID,
      IsMultipleBOMAlt,
      MaterialBOM.BillOfMaterialHeaderUUID,
      MaterialBOM.BOMHeaderInternalChangeCount,
      BOMPrioritizedVersion,
      BOMUsagePriority,
      MaterialBOM.BillOfMaterialAuthsnGrp,
      MaterialBOM.BOMVersionStatus,
      MaterialBOM.BOMAlternativeText,
      MaterialBOM.BOMGroup,
      case when MaterialBOM.Plant = ''
        then
            cast (2 as mpe_mec_ebom_type preserving type)
        else
            cast(1 as mpe_mec_ebom_type preserving type)
      end                        as EBOMType,
      MaterialBOM.BOMHeaderBaseUnit,
      MaterialBOM.BOMHeaderQuantityInBaseUnit,
      MaterialBOM.BOMHeaderText,
      MaterialBOM.BOMIsToBeDeleted,
      MaterialBOM.BOMTechnicalType,
      MaterialBOM.BillOfMaterialStatus,
      MaterialBOM.ChgToEngineeringChgDocument,
      MaterialBOM.CreatedByUser,
      MaterialBOM.DocumentIsCreatedByCAD,
      MaterialBOM.EngineeringChangeDocument,
      MaterialBOM.HeaderValidityEndDate,
      MaterialBOM.HeaderValidityStartDate,
      MaterialBOM.IsALE,
      MaterialBOM.IsConfiguredMaterial,
      MaterialBOM.IsVersionBillOfMaterial,
      MaterialBOM.IsLatestBOMVersion,
      MaterialBOM.IsMarkedForDeletion,
      MaterialBOM.LaboratoryOrDesignOffice,
      MaterialBOM.RecordCreationDate,
      MaterialBOM.LastChangeDate,
      MaterialBOM.LastChangedByUser,
      MaterialBOM.MatFromLotSizeQuantity,
      MaterialBOM.MaterialToLotSizeQuantity,

//      case when BOMItmModifiedDate.BOMItemLastChangeDate > BOMItmModifiedDate.BOMItemRecordCreationDate

//           then

//                BOMItmModifiedDate.BOMItemLastChangeDate

//           else

//                BOMItmModifiedDate.BOMItemRecordCreationDate

//      end                        as BOMItemLastChangeDate,


      // Unitization Flag

      case
        when EffectivityType is not null
            then  cast('X' as mpe_cima_untz_matl_ind_type preserving type )
      else cast('' as mpe_cima_untz_matl_ind_type preserving type )
        end                      as IsMaterialUnitized,

      MaterialBOM._UnitOfMeasure,
      MaterialBOM._BillOfMaterialVariantUsage,
      MaterialBOM._BillOfMaterialItem

}
where
  MaterialBOM.IsVersionBillOfMaterial = 'X'
  and
  //Select only those Material BOMs which are version controlled and are Material BOMs indicated by Billofmaterialcategory as M

  MaterialBOM.BillOfMaterialCategory  = 'M'
  and
  //In the selected version list bring up only those Version BOMs which are released

  MaterialBOM.BOMVersionStatus        = '99'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_ENGBOMUSAGE",
"I_MATERIALBOM",
"I_UNITIZEDMATERIAL"
],
"ASSOCIATED":
[
"I_BILLOFMATERIALITEM",
"I_BILLOFMATERIALUSAGE",
"I_UNITOFMEASURE"
],
"BASE":
[
"I_MATERIALBOM"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/