C_TechObjNotifSubQuery

DDL: C_TECHOBJNOTIFSUBQUERY SQL: CTECHOBJNOTIF Type: view CONSUMPTION Package: IWOC

Tech. Object and Notification Subquery

C_TechObjNotifSubQuery is a Consumption CDS View that provides data about "Tech. Object and Notification Subquery" in SAP S/4HANA. It reads from 2 data sources (P_MaintNotifRefObject, P_MaintNotifRefObject) and exposes 69 fields with key field MaintenanceNotification. Part of development package IWOC.

Data Sources (2)

SourceAliasJoin Type
P_MaintNotifRefObject P_MaintNotifRefObject from
P_MaintNotifRefObject P_MaintNotifRefObject union_all

Parameters (2)

NameTypeDefault
P_Language sylangu
P_KeyDate sydate

Annotations (10)

NameValueLevelField
EndUserText.label Tech. Object and Notification Subquery view
VDM.viewType #CONSUMPTION view
AbapCatalog.sqlViewName CTECHOBJNOTIF view
AccessControl.authorizationCheck #NOT_REQUIRED view
AbapCatalog.compiler.compareFilter true view
ObjectModel.representativeKey MaintenanceNotification view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #XL view

Fields (69)

KeyFieldSource TableSource FieldDescription
KEY MaintenanceNotification P_MaintNotifRefObject MaintenanceNotification
Equipment P_MaintNotifRefObject Equipment
FunctionalLocation P_MaintNotifRefObject FunctionalLocation
TechObjectWithLeadingZeros
TechObjIsEquipOrFuncnlLoc
TechnicalObject
TechnicalObjectDescription
TechObjIsEquipOrFuncnlLocDesc
TechnicalObjectCategory
TechnicalObjectCategoryDesc
TechnicalObjectType
TechnicalObjectTypeDesc
CreatedByUser
CreationDate
LastChangedByUser
LastChangeDate
AssetManufacturerName
ManufacturerPartTypeName
MaintenancePlanningPlant
MainWorkCenter
MaintenanceWorkCenter
MaintenancePlant
PlantSection
AssetLocation
MaintObjectFreeDefinedAttrib
BusinessArea
ControllingArea
CostCenter
CompanyCode
Division
AssetRoom
ABCIndicator
MaintenancePlannerGroup
CatalogProfile
MaintenanceNotification
Equipment P_MaintNotifRefObject Equipment
FunctionalLocation P_MaintNotifRefObject FunctionalLocation
TechObjectWithLeadingZeros
TechObjIsEquipOrFuncnlLoc
TechnicalObject
TechnicalObjectDescription
TechObjIsEquipOrFuncnlLocDesc
TechnicalObjectCategory
TechnicalObjectCategoryDesc
TechnicalObjectType
TechnicalObjectTypeDesc
CreatedByUser
CreationDate
LastChangedByUser
LastChangeDate
AssetManufacturerName
ManufacturerPartTypeName
MaintenancePlanningPlant
MainWorkCenter
MaintenanceWorkCenter
MaintenancePlant
PlantSection
AssetLocation
MaintObjectFreeDefinedAttrib
BusinessArea
ControllingArea
CostCenter
CompanyCode
Division
AssetRoom
ABCIndicator
MaintenancePlannerGroup
CatalogProfile
AuthorizationGroup
@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
 

  
}