@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 <> ' '
/*+[internal] {
"BASEINFO":
{
"FROM ":
[
"I_MATERIAL",
"I_MATERIALBOM",
"I_MATERIALTYPETOBOOTYPE",
"I_MFGBOMUSAGES"
],
"ASSOCIATED":
[
"C_MNGPRODNRTGPLANTMATERIALVH",
"I_BILLOFMATERIALUSAGE",
"I_BOMCHANGES",
"I_MATERIAL",
"I_PLANT",
"I_PRODUCTIONVERSION"
],
"BASE":
[
"I_MATERIALBOM"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/
Depth:
1
2
3
4
5
All
Reload
C_ProdnRtgVersAssignableBOM view_entity