C_ProdnRtgVersAssignableBOM

DDL: C_PRODNRTGVERSASSIGNABLEBOM Type: view_entity CONSUMPTION Package: MPE_PLAN_RTG_VERS

Routing Version Assignable BOM

C_ProdnRtgVersAssignableBOM is a Consumption CDS View that provides data about "Routing Version Assignable BOM" in SAP S/4HANA. It reads from 4 data sources (I_MaterialBOM, I_Material, I_MaterialTypeToBOOType, I_MfgBOMUsages) and exposes 27 fields with key fields BillOfMaterialVariantUsage, BillOfMaterial, BillOfMaterialVariant, BillOfMaterialCategory, BillOfMaterialVersion. It has 4 associations to related views. Part of development package MPE_PLAN_RTG_VERS.

Data Sources (4)

SourceAliasJoin Type
I_MaterialBOM AssignableBOM from
I_Material Material inner
I_MaterialTypeToBOOType MaterialTypeToBOOType inner
I_MfgBOMUsages MfgBOMUsage inner

Associations (4)

CardinalityTargetAliasCondition
[0..1] I_Material _Material $projection.Material = _Material.Material
[0..1] I_Plant _Plant $projection.Plant = _Plant.Plant
[1..1] C_MngProdnRtgPlantMaterialVH _MngProdnRtgPlantMaterialVH $projection.Plant = _MngProdnRtgPlantMaterialVH.MRPPlant and $projection.Material = _MngProdnRtgPlantMaterialVH.Material
[0..*] I_ProductionVersion _ProductionVersion $projection.Material = _ProductionVersion.Material and $projection.Plant = _ProductionVersion.Plant

Annotations (10)

NameValueLevelField
AccessControl.authorizationCheck #CHECK view
VDM.viewType #CONSUMPTION view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #MASTER view
Search.searchable true view
UI.headerInfo.typeName Manage Routing Assignable BOM List view
UI.headerInfo.title.type #STANDARD view
UI.headerInfo.title.value BillOfMaterial view
EndUserText.label Routing Version Assignable BOM view

Fields (27)

KeyFieldSource TableSource FieldDescription
KEY BillOfMaterialVariantUsage I_MaterialBOM BillOfMaterialVariantUsage
KEY BillOfMaterial I_MaterialBOM BillOfMaterial
KEY BillOfMaterialVariant I_MaterialBOM BillOfMaterialVariant
KEY BillOfMaterialCategory I_MaterialBOM BillOfMaterialCategory
KEY BillOfMaterialVersion I_MaterialBOM BillOfMaterialVersion
BOMHeaderText I_MaterialBOM BOMHeaderText
BOMAlternativeText I_MaterialBOM BOMAlternativeText
Material I_MaterialBOM Material
Plant I_MaterialBOM Plant
BOMHeaderBaseUnit I_MaterialBOM BOMHeaderBaseUnit
EngineeringChangeDocument I_MaterialBOM EngineeringChangeDocument
IsVersionBillOfMaterial I_MaterialBOM IsVersionBillOfMaterial
IsLatestBOMVersion I_MaterialBOM IsLatestBOMVersion
BOMVersionStatus I_MaterialBOM BOMVersionStatus
ValidityStartDate
ValidityEndDate
RecordCreationDate I_MaterialBOM RecordCreationDate
CreatedByUser
LastChangeDate I_MaterialBOM LastChangeDate
LastChangedByUser
LastChangeDateTime I_MaterialBOM LastChangeDateTime
_BillOfMaterialVariantUsage
_BOMChangeNumbers I_MaterialBOM _BOMChangeNumbers
_Material _Material
_Plant _Plant
_MngProdnRtgPlantMaterialVH _MngProdnRtgPlantMaterialVH
_ProductionVersion _ProductionVersion
@AccessControl.authorizationCheck: #CHECK
@VDM.viewType: #CONSUMPTION
@ObjectModel.usageType:
{
    serviceQuality: #C,
    sizeCategory:   #L,
    dataClass:      #MASTER
}
@Search.searchable: true
@UI.headerInfo: {
    typeName: 'Manage Routing Assignable BOM List',
    title: {
      type: #STANDARD,
      value: 'BillOfMaterial'
    }
}
@EndUserText.label: 'Routing Version Assignable BOM'

define view entity C_ProdnRtgVersAssignableBOM
  as select from I_MaterialBOM           as AssignableBOM
    inner join   I_MfgBOMUsages          as MfgBOMUsage           on AssignableBOM.BillOfMaterialVariantUsage = MfgBOMUsage.BillOfMaterialVariantUsage
    inner join   I_Material              as Material              on AssignableBOM.Material = Material.Material
    inner join   I_MaterialTypeToBOOType as MaterialTypeToBOOType on  Material.MaterialType                      = MaterialTypeToBOOType.MaterialType
                                                                  and MaterialTypeToBOOType.BillOfOperationsType = 'V'

  association [0..1] to I_Material                   as _Material                   on  $projection.Material = _Material.Material

  association [0..1] to I_Plant                      as _Plant                      on  $projection.Plant = _Plant.Plant

  association [1..1] to C_MngProdnRtgPlantMaterialVH as _MngProdnRtgPlantMaterialVH on  $projection.Plant    = _MngProdnRtgPlantMaterialVH.MRPPlant
                                                                                    and $projection.Material = _MngProdnRtgPlantMaterialVH.Material

  //  association [0..1] to C_MaterialBOMVH              as _MngProdnRtgBOMVH           on  $projection.Material                   = _MngProdnRtgBOMVH.Material

  //                                                                                    and $projection.Plant                      = _MngProdnRtgBOMVH.Plant

  //                                                                                    and $projection.BillOfMaterialVariantUsage = _MngProdnRtgBOMVH.BillOfMaterialVariantUsage

  //                                                                                    and $projection.BillOfMaterialVariant      = _MngProdnRtgBOMVH.BillOfMaterialVariant


  association [0..*] to I_ProductionVersion          as _ProductionVersion          on  $projection.Material = _ProductionVersion.Material
                                                                                    and $projection.Plant    = _ProductionVersion.Plant
{
      //      @ObjectModel.foreignKey.association: '_BillOfMaterialVariantUsage'

      @ObjectModel.foreignKey.association: null
  key AssignableBOM.BillOfMaterialVariantUsage,

      @ObjectModel.readOnly: true
      //      @UI.selectionField.position: 10

      //      @Consumption.valueHelp: '_MngProdnRtgBOMVH'

      @Search: { defaultSearchElement: true, fuzzinessThreshold: 0.8, ranking: #MEDIUM }
  key AssignableBOM.BillOfMaterial,
      @ObjectModel.readOnly: true
  key AssignableBOM.BillOfMaterialVariant,
  key AssignableBOM.BillOfMaterialCategory,
      //      @ObjectModel.foreignKey.association: '_BOMVersion'

  key AssignableBOM.BillOfMaterialVersion,
      @ObjectModel.readOnly: true
      AssignableBOM.BOMHeaderText,

      @ObjectModel.readOnly: true
      AssignableBOM.BOMAlternativeText,

      @ObjectModel.readOnly: true
      //      @UI.selectionField.position: 50

      @Consumption.valueHelp: '_MngProdnRtgPlantMaterialVH'
      @ObjectModel.foreignKey.association: '_Material'
      @Search: { defaultSearchElement: true, fuzzinessThreshold: 0.8, ranking: #MEDIUM }
      AssignableBOM.Material,

      @ObjectModel.readOnly: true
      //      @UI.selectionField.position: 50

      @Consumption.valueHelp: '_MngProdnRtgPlantMaterialVH'
      @ObjectModel.foreignKey.association: '_Plant'
      @Search: { defaultSearchElement: true, fuzzinessThreshold: 0.8, ranking: #MEDIUM }
      AssignableBOM.Plant,

      AssignableBOM.BOMHeaderBaseUnit,

      @ObjectModel.readOnly: true
      AssignableBOM.EngineeringChangeDocument,

      AssignableBOM.IsVersionBillOfMaterial,
      AssignableBOM.IsLatestBOMVersion,
      AssignableBOM.BOMVersionStatus,

      @ObjectModel.readOnly: true
      @Semantics.businessDate.from: true
      cast(AssignableBOM.HeaderValidityStartDate as pph_begda preserving type)                        as ValidityStartDate,

      @ObjectModel.readOnly: true
      @Semantics.businessDate.to: true
      cast(AssignableBOM.HeaderValidityEndDate as pph_endda preserving type)                          as ValidityEndDate,

      AssignableBOM.RecordCreationDate,
      @Semantics.user.createdBy: true
      cast(AssignableBOM.CreatedByUser as vdm_createdbyuserid preserving type)                        as CreatedByUser,

      AssignableBOM.LastChangeDate,
      @Semantics.user.lastChangedBy: true
      cast(AssignableBOM.LastChangedByUser as vdm_lastchangedbyuserid preserving type)                as LastChangedByUser,

      AssignableBOM.LastChangeDateTime                                                                as LastChangeDateTime,

      -- associations

      AssignableBOM._BillOfMaterialVariantUsage,
      AssignableBOM._BOMChangeNumbers,
      _Material,
      _Plant,
      _MngProdnRtgPlantMaterialVH,
      //      _BOMVersion,

      //      _MngProdnRtgBOMVH,

      _ProductionVersion
}
where
       AssignableBOM.BillOfMaterialCategory  =  'M'
  //  and AssignableBOM.HeaderValidityStartDate    <= $session.system_date

  //  and AssignableBOM.HeaderValidityEndDate      >= $session.system_date

  and  AssignableBOM.IsVersionBillOfMaterial =  'X'
  and  AssignableBOM.IsMarkedForDeletion     =  ' '
  and(
       AssignableBOM.IsLatestBOMVersion      =  'X'
    or AssignableBOM.BOMVersionStatus        =  '01' --> Also not released BOMs are assignable now. Overall check happens before release of routing.
  )
  and  AssignableBOM.BillOfMaterialVersion   <> ' '