@AbapCatalog.sqlViewName: 'CTECHOBJHIERVH1'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Value Help for Hierarchical value help'
@AccessControl.personalData.blocking: #('TRANSACTIONAL_DATA')
@VDM.viewType: #CONSUMPTION
@ObjectModel.representativeKey: 'TechnicalObject'
@ObjectModel.semanticKey: [ 'TechnicalObject', 'TechObjIsEquipOrFuncnlLoc' ]
@ObjectModel.usageType.dataClass: #MASTER
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #L
@ClientHandling.algorithm: #SESSION_VARIABLE
define view C_TechObjHierVH
as select from I_TechnicalObject
association [1..1] to I_NumberOfOpenPMNotif as _NumberOfOpenPMNotif on _NumberOfOpenPMNotif.TechnicalObject = $projection.TechnicalObject
and _NumberOfOpenPMNotif.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc
association [1..1] to I_NmbrOfOpnMaintOrderByTechObj as _NmbrOfOpnMaintOrderByTechObj on _NmbrOfOpnMaintOrderByTechObj.TechnicalObject = $projection.TechnicalObject
and _NmbrOfOpnMaintOrderByTechObj.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc
{
key I_TechnicalObject.TechnicalObject,
@ObjectModel.foreignKey.association: '_TechObjIsEquipOrFuncnlLoc'
key I_TechnicalObject.TechObjIsEquipOrFuncnlLoc,
cast( case when I_TechnicalObject.TechObjIsEquipOrFuncnlLoc = 'EAMS_FL' then // Functional Location
I_TechnicalObject._FunctionalLocationLabel.FunctionalLocationLabelName
else I_TechnicalObject.TechnicalObject end as ilom_strno ) as TechnicalObjectLabel,
I_TechnicalObject._TechnicalObjectText[1: Language = $session.system_language ].TechnicalObjectDescription,
@Consumption.hidden: true
I_TechnicalObject.Equipment,
@Consumption.hidden: true
I_TechnicalObject.FunctionalLocation,
@ObjectModel.text.element: [ 'ABCIndicatorDesc' ]
I_TechnicalObject._LocationAccountAssignment.ABCIndicator,
@Semantics.text: true
I_TechnicalObject._LocationAccountAssignment._ABCIndicator._Text[1: Language = $session.system_language ].ABCIndicatorDesc,
I_TechnicalObject.AuthorizationGroup,
@ObjectModel.text.element: [ 'BusinessAreaName' ]
I_TechnicalObject._LocationAccountAssignment.BusinessArea,
@Semantics.text: true
I_TechnicalObject._LocationAccountAssignment._BusinessArea._Text[1: Language = $session.system_language ].BusinessAreaName,
I_TechnicalObject.CatalogProfile,
@ObjectModel.text.element: [ 'CompanyCodeName' ]
I_TechnicalObject._LocationAccountAssignment.CompanyCode,
@Semantics.text: true
I_TechnicalObject._LocationAccountAssignment._CompanyCode.CompanyCodeName,
@ObjectModel.text.element: [ 'ControllingAreaName' ]
I_TechnicalObject._LocationAccountAssignment.ControllingArea,
@Semantics.text: true
I_TechnicalObject._LocationAccountAssignment._ControllingArea.ControllingAreaName,
@ObjectModel.text.element: [ 'CostCenterDescription' ]
I_TechnicalObject._LocationAccountAssignment.CostCenter,
@Semantics.text: true
I_TechnicalObject._LocationAccountAssignment._CostCenter._Text[1: Language = $session.system_language ].CostCenterDescription,
@ObjectModel.text.element: [ 'WorkCenterText' ]
I_TechnicalObject._LocationAccountAssignment._WorkCenter.WorkCenter,
@Semantics.text: true
I_TechnicalObject._LocationAccountAssignment._WorkCenter._Text[1: Language = $session.system_language ].WorkCenterText,
@ObjectModel.text.element: [ 'MainWorkCenterText' ]
cast( I_TechnicalObject._WorkCenter.WorkCenter as gewrk ) as MainWorkCenter,
@Semantics.text: true
I_TechnicalObject._WorkCenter._Text[1: Language = $session.system_language ].WorkCenterText as MainWorkCenterText,
@ObjectModel.text.element: [ 'MaintenancePlantName' ]
I_TechnicalObject._LocationAccountAssignment.MaintenancePlant,
@Semantics.text: true
I_TechnicalObject._LocationAccountAssignment._MaintenancePlant.PlantName as MaintenancePlantName,
I_TechnicalObject.AssetManufacturerName,
I_TechnicalObject.ManufacturerPartTypeName,
I_TechnicalObject._WorkCenter.Plant as MaintenancePlanningPlant,
@ObjectModel.text.element: [ 'MaintenancePlannerGroupName' ]
I_TechnicalObject.MaintenancePlannerGroup,
@Semantics.text: true
I_TechnicalObject._MaintenancePlannerGroup.MaintenancePlannerGroupName,
@ObjectModel.text.element: [ 'PlantSectionPersonRespName' ]
I_TechnicalObject._LocationAccountAssignment.PlantSection,
@Semantics.text: true
I_TechnicalObject._LocationAccountAssignment._PlantSection.PlantSectionPersonRespName,
I_TechnicalObject._LocationAccountAssignment.AssetRoom,
I_TechnicalObject._LocationAccountAssignment.MaintObjectFreeDefinedAttrib,
@ObjectModel.text.element: [ 'TechnicalObjectCategoryDesc' ]
I_TechnicalObject.TechnicalObjectCategory,
@Semantics.text: true
I_TechnicalObject._TechnicalObjectCategory._Text[1: Language = $session.system_language ].TechnicalObjectCategoryDesc,
@ObjectModel.text.element: [ 'TechnicalObjectTypeDesc' ]
I_TechnicalObject.TechnicalObjectType,
@Semantics.text: true
I_TechnicalObject._TechnicalObjectType._Text[1: Language = $session.system_language ].TechnicalObjectTypeDesc,
@Semantics.amount.currencyCode: 'Currency'
@DefaultAggregation: #NONE
I_TechnicalObject.AcquisitionValue,
@Semantics.currencyCode: true
I_TechnicalObject.Currency,
@Semantics.user.createdBy: true
I_TechnicalObject.CreatedByUser,
@Semantics.businessDate.createdAt: true
I_TechnicalObject.CreationDate,
@Semantics.user.lastChangedBy: true
I_TechnicalObject.LastChangedByUser,
@Semantics.businessDate.lastChangedAt: true
I_TechnicalObject.LastChangeDate,
@ObjectModel.text.element: [ 'DivisionName' ]
I_TechnicalObject._LocationAccountAssignment.Division,
@Semantics.text: true
I_TechnicalObject._LocationAccountAssignment._Division._Text[1: Language = $session.system_language ].DivisionName,
@ObjectModel.text.element: [ 'LocationName' ]
I_TechnicalObject._LocationAccountAssignment.AssetLocation,
@Semantics.text: true
I_TechnicalObject._LocationAccountAssignment._Location.LocationName,
I_TechnicalObject._TechObjIsEquipOrFuncnlLoc._Text[1: Language = $session.system_language ].TechObjIsEquipOrFuncnlLocDesc,
cast ( '' as abap.char( 10 ) ) as DrillDownState,
0 as HierarchyNodeLevel,
CONCAT(I_TechnicalObject._TechnicalObjectHierarchy.SuperiorTechnicalObject, I_TechnicalObject._TechnicalObjectHierarchy.SuperiorObjIsEquipOrFuncnlLoc) as ParentNodeUniqueID,
case when I_TechnicalObject._TechnicalObjectHierarchy.TechnicalObject is null
then CONCAT(I_TechnicalObject.TechnicalObject, I_TechnicalObject.TechObjIsEquipOrFuncnlLoc)
else CONCAT(I_TechnicalObject._TechnicalObjectHierarchy.TechnicalObject, I_TechnicalObject._TechnicalObjectHierarchy.TechObjIsEquipOrFuncnlLoc)
end as HierarchyNodeUniqueID,
_NmbrOfOpnMaintOrderByTechObj.NumberOfOrders as NumberOfOrders,
_NumberOfOpenPMNotif.NmbrOfOpenMaintNotifications as NmbrOfOpenMaintNotifications,
I_TechnicalObject._TechObjIsEquipOrFuncnlLoc,
@UI.hidden: true
cast ( '' as vdm_j_system_status_concat_t ) as ConcatenatedActiveSystStsName ,
I_TechnicalObject.MaintObjectInternalID
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_ABCINDICATOR",
"I_ABCINDICATORTEXT",
"I_BUSINESSAREA",
"I_BUSINESSAREATEXT",
"I_COMPANYCODE",
"I_CONTROLLINGAREA",
"I_COSTCENTER",
"I_COSTCENTERTEXT",
"I_DIVISION",
"I_DIVISIONTEXT",
"I_FUNCTIONALLOCATIONLABEL",
"I_LOCATION",
"I_LOCATIONACCOUNTASSIGNMENT",
"I_MAINTENANCEPLANNERGROUP",
"I_NMBROFOPNMAINTORDERBYTECHOBJ",
"I_NUMBEROFOPENPMNOTIF",
"I_PLANT",
"I_PLANTSECTION",
"I_TECHNICALOBJECT",
"I_TECHNICALOBJECTCATEGORY",
"I_TECHNICALOBJECTCATEGORYT",
"I_TECHNICALOBJECTHIERARCHY",
"I_TECHNICALOBJECTTEXT",
"I_TECHNICALOBJECTTYPE",
"I_TECHNICALOBJECTTYPETEXT",
"I_TECHOBJISEQUIPORFUNCNLLOC",
"I_TECHOBJISEQUIPORFUNCNLLOCT",
"I_WORKCENTER",
"I_WORKCENTERTEXT"
],
"ASSOCIATED":
[
"I_NMBROFOPNMAINTORDERBYTECHOBJ",
"I_NUMBEROFOPENPMNOTIF",
"I_TECHOBJISEQUIPORFUNCNLLOC"
],
"BASE":
[
"I_TECHNICALOBJECT"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/