@EndUserText.label: 'Tech. Object and Notification Subquery'
@VDM.viewType: #CONSUMPTION
@AbapCatalog.sqlViewName: 'CTECHOBJNOTIF'
@AccessControl.authorizationCheck: #NOT_REQUIRED
@AbapCatalog.compiler.compareFilter: true
@ObjectModel.representativeKey: 'MaintenanceNotification'
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #XL
/*
*
* Subview for Notification and Technical Object join in order to simplify the join
* condition in C_PMNotificationHeader to a simple equi-join.
*
* Former join condition in C_PMNotificationHeader:
*
* association [0..1] to C_TechnicalObject as _TechnicalObject on
* ( _TechnicalObject.TechObjectWithLeadingZeros = $projection.FunctionalLocation and _TechnicalObject.TechObjIsEquipOrFuncnlLoc = 'EAMS_FL' and
* $projection.Equipment = '' )
* or
* ( _TechnicalObject.TechObjectWithLeadingZeros = $projection.Equipment and _TechnicalObject.TechObjIsEquipOrFuncnlLoc = 'EAMS_EQUI' )
*
*
*/
define view C_TechObjNotifSubQuery
with parameters
@Consumption.hidden: true
@Environment.systemField: #SYSTEM_LANGUAGE
P_Language : sylangu,
@Consumption.hidden: true
@Environment.systemField: #SYSTEM_DATE
P_KeyDate : sydate
// If an Equipment and a Functional Location are assigned to the Notification Header
// we select the Equipment as the Technical Object!
// Functional Location is only considered as the Technical Object if there is no Equipment assigned (Equipment = '')
as select from P_MaintNotifRefObject
association[0..1] to C_TechnicalObject as _TechnicalObject on
(
_TechnicalObject.FunctionalLocation = $projection.FunctionalLocation and
_TechnicalObject.TechObjIsEquipOrFuncnlLoc = 'EAMS_FL' and
$projection.Equipment = ''
)
{
key P_MaintNotifRefObject.MaintenanceNotification,
P_MaintNotifRefObject.Equipment,
P_MaintNotifRefObject.FunctionalLocation,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].TechObjectWithLeadingZeros,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].TechObjIsEquipOrFuncnlLoc,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].TechnicalObject,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].TechnicalObjectDescription,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].TechObjIsEquipOrFuncnlLocDesc,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].TechnicalObjectCategory,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].TechnicalObjectCategoryDesc,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].TechnicalObjectType,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].TechnicalObjectTypeDesc,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].CreatedByUser,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].CreationDate,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].LastChangedByUser,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].LastChangeDate,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].AssetManufacturerName,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].ManufacturerPartTypeName,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].MaintenancePlanningPlant,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].MainWorkCenter,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].MaintenanceWorkCenter,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].MaintenancePlant,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].PlantSection,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].AssetLocation,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].MaintObjectFreeDefinedAttrib,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].BusinessArea,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].ControllingArea,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].CostCenter,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].CompanyCode,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].Division,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].AssetRoom,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].ABCIndicator,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].MaintenancePlannerGroup,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].CatalogProfile,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].AuthorizationGroup
}
union all
select from P_MaintNotifRefObject
association[0..1] to C_TechnicalObject as _TechnicalObject on
(
_TechnicalObject.TechObjectWithLeadingZeros = $projection.Equipment and
_TechnicalObject.TechObjIsEquipOrFuncnlLoc = 'EAMS_EQUI'
)
{
key P_MaintNotifRefObject.MaintenanceNotification,
P_MaintNotifRefObject.Equipment,
P_MaintNotifRefObject.FunctionalLocation,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].TechObjectWithLeadingZeros,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].TechObjIsEquipOrFuncnlLoc,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].TechnicalObject,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].TechnicalObjectDescription,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].TechObjIsEquipOrFuncnlLocDesc,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].TechnicalObjectCategory,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].TechnicalObjectCategoryDesc,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].TechnicalObjectType,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].TechnicalObjectTypeDesc,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].CreatedByUser,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].CreationDate,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].LastChangedByUser,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].LastChangeDate,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].AssetManufacturerName,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].ManufacturerPartTypeName,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].MaintenancePlanningPlant,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].MainWorkCenter,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].MaintenanceWorkCenter,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].MaintenancePlant,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].PlantSection,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].AssetLocation,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].MaintObjectFreeDefinedAttrib,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].BusinessArea,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].ControllingArea,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].CostCenter,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].CompanyCode,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].Division,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].AssetRoom,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].ABCIndicator,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].MaintenancePlannerGroup,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].CatalogProfile,
_TechnicalObject( P_Language: $parameters.P_Language, P_KeyDate: $parameters.P_KeyDate)[ 1: inner ].AuthorizationGroup
}