//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_VARIABLEdefineview P_VersEngBillOfMaterial
asselectfrom I_MaterialBOM as MaterialBOM
innerjoin I_EngBOMUsage as EngBOMUsage on MaterialBOM.BillOfMaterialVariantUsage = EngBOMUsage.BillOfMaterialVariantUsage
// innerjoin P_BOMItmModifiedDate as BOMItmModifiedDate on MaterialBOM.BillOfMaterial = BOMItmModifiedDate.BillOfMaterial
// and MaterialBOM.BillOfMaterialCategory = BOMItmModifiedDate.BillOfMaterialCategory
// and MaterialBOM.BillOfMaterialVariant = BOMItmModifiedDate.BillOfMaterialVariant
// and MaterialBOM.BillOfMaterialVersion = BOMItmModifiedDate.BillOfMaterialVersion
leftouter 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,
casewhen MaterialBOM.Plant = ''
thencast (2 as mpe_mec_ebom_type preserving type)
elsecast(1 as mpe_mec_ebom_type preserving type)
endas 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,
// casewhen BOMItmModifiedDate.BOMItemLastChangeDate > BOMItmModifiedDate.BOMItemRecordCreationDate
// then// BOMItmModifiedDate.BOMItemLastChangeDate
// else// BOMItmModifiedDate.BOMItemRecordCreationDate
// endas BOMItemLastChangeDate,
// Unitization Flag
casewhen EffectivityType isnotnullthencast('X' as mpe_cima_untz_matl_ind_type preserving type )
elsecast('' as mpe_cima_untz_matl_ind_type preserving type )
endas 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":""
}
}*/