C_ProjectShedMaintOrderGraph

DDL: C_PROJECTSHEDMAINTORDERGRAPH SQL: CPROJSHMAINTOG Type: view CONSUMPTION Package: ODATA_PROJECT_SCHEDULE

Maintanence Order Graph Overview

C_ProjectShedMaintOrderGraph is a Consumption CDS View that provides data about "Maintanence Order Graph Overview" in SAP S/4HANA. It reads from 1 data source (I_ProjSchedMaintOrderData) and exposes 70 fields with key field MaintenanceOrder. It has 8 associations to related views. It is exposed through 1 OData service (UI_PROJECTOBJECTHIERARCHY). Part of development package ODATA_PROJECT_SCHEDULE.

Data Sources (1)

SourceAliasJoin Type
I_ProjSchedMaintOrderData MaintenanceOrder from

Associations (8)

CardinalityTargetAliasCondition
[1..1] C_ProjectForNetworkGraph _Project $projection.ProjectInternalID = _Project.ProjectInternalID
[0..1] C_WBSElementForGraph _WBSElement _WBSElement.WBSElementInternalID = $projection.WBSElementInternalID
[0..*] I_Notification _Notification $projection.MaintenanceOrder = _Notification.OrderID
[0..1] C_ProjectNetworkForGraph _ProjectNetwork _ProjectNetwork.ProjectNetwork = $projection.SuperiorProjectNetwork
[0..1] C_NetworkActivityForGraph _NetworkActivity _NetworkActivity.ProjectNetworkInternalID = $projection.SuperiorProjectNetworkIntID and _NetworkActivity.NetworkActivityInternalID = $projection.SuperiorNtwkActivityInternalID
[0..1] I_WBSElementData_2 _WBSElementData _WBSElementData.WBSElementInternalID = $projection.WBSElementInternalID
[0..1] I_ProjSchedMaintOrderBasicData _MaintenanceOrderBasicData $projection.MaintenanceOrder = _MaintenanceOrderBasicData.MaintenanceOrder
[0..1] I_Plant _Plant $projection.Plant = _Plant.Plant

Annotations (12)

NameValueLevelField
AbapCatalog.sqlViewName CPROJSHMAINTOG view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #CHECK view
EndUserText.label Maintanence Order Graph Overview view
VDM.viewType #CONSUMPTION view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MIXED view
ClientHandling.algorithm #SESSION_VARIABLE view
Metadata.ignorePropagatedAnnotations true view
Metadata.allowExtensions true view

OData Services (1)

ServiceBindingVersionContractRelease
UI_PROJECTOBJECTHIERARCHY UI_PS_PROJECT_SCHEDULE_SRV V2 C1 NOT_RELEASED

Fields (70)

KeyFieldSource TableSource FieldDescription
KEY MaintenanceOrder MaintenanceOrder
MaintenanceOrderDesc I_ProjSchedMaintOrderData OrderDescription Description
OrderTypeName Order Type Name
ProjectNetworkObject I_ProjSchedMaintOrderData ObjectInternalID
ProjectInternalID
WBSElementInternalID
MaintenanceActivityType _MaintenanceOrderBasicData MaintenanceActivityType Maintenance Activity Type
MaintenancePlannerGroup _MaintenanceOrderBasicData MaintenancePlannerGroup Planner Group
MaintenancePlannerGroupName
WorkCenter I_ProjSchedMaintOrderData MainWorkCenter Main Work Center
WorkCenterText Main Work Center Name
ResponsiblePerson Responsible Person
MaintOrdPersonResponsibleName Responsible Person Name
MaintPriority Priority
MaintPriorityDesc Priority
MaintenanceNotification _MaintenanceOrderBasicData MaintenanceNotification Notification Number
MaintenanceNotificationText _Notification NotificationText Notification
IsMarkedForDeletion I_ProjSchedMaintOrderData IsMarkedForDeletion Flagged for Deletion
OperationSystemCondition _MaintenanceOrderBasicData OperationSystemCondition System Condition
CompanyCode I_ProjSchedMaintOrderData CompanyCode Company Code
CompanyCodeName
ControllingArea I_ProjSchedMaintOrderData ControllingArea Controlling Area
ControllingAreaName
BusinessArea I_ProjSchedMaintOrderData BusinessArea Business Area
BusinessAreaName
ResponsibleCostCenter I_ProjSchedMaintOrderData ResponsibleCostCenter Resp. Cost Center
ResponsibleCostCenterName
ProfitCenter I_ProjSchedMaintOrderData ProfitCenter Profit Center
ProfitCenterNameasProfitCenterName
MainWorkCenterPlant I_ProjSchedMaintOrderData MainWorkCenterPlant Work Center Plant
MaintenancePlanningPlantName _Plant PlantName Planning Plant Name
PlannedStartDate
PlannedEndDate
ScheduledBasicStartDate
ScheduledBasicEndDate
ActualStartDate
ActualEndDate
BasicSchedulingType I_ProjSchedMaintOrderData BasicSchedulingType Schedule Type
SchedulingTypeName Schedule Type Name
LatestAcceptableCompletionDate _MaintenanceOrderBasicData LatestAcceptableCompletionDate Final Due Date
NotificationReportingDate _Notification NotificationReportingDate Notification Date
NotificationRequiredStartDate _Notification NotificationRequiredStartDate Requirement Start Date
NotificationRequiredEndDate _Notification NotificationRequiredEndDate Requirement End Date
Version
ProjectExternalID _Project ProjectExternalID Project Definition
ProjectDescription _Project ProjectDescription Project Definition Name
WBSElementExternalID _WBSElementData WBSElementExternalID WBS Element
WBSDescription _WBSElementData WBSDescription WBS Element Name
ProjectNetwork _ProjectNetwork ProjectNetwork Network
ProjectNetworkDescription _ProjectNetwork ProjectNetworkDescription Project Network Name
NetworkActivity _NetworkActivity NetworkActivity Network Activity ID
NetworkActivityDescription _NetworkActivity NetworkActivityDescription Network Activity Name
MaintOrdProcessPhaseCode _MaintenanceOrderBasicData MaintOrdProcessPhaseCode Process Phase
EAMProcessPhaseCodeDesc Process Phase Description
MaintOrdProcessSubPhaseCode _MaintenanceOrderBasicData MaintOrdProcessSubPhaseCode Process Subphase
EAMProcessSubPhaseCodeDesc Process Subphase Description
SuperiorProjectNetwork SuperiorProjectNetwork
SuperiorProjectNetworkIntID SuperiorProjectNetworkIntID
SuperiorNtwkActivityInternalID SuperiorNtwkActivityInternalID
Plant I_ProjSchedMaintOrderData Plant
MRPController I_ProjSchedMaintOrderData MRPController
OrderType I_ProjSchedMaintOrderData OrderType Order Type
OrderCategory I_ProjSchedMaintOrderData OrderCategory
_WBSElement _WBSElement
_Project _Project
_Notification _Notification
_ProjectNetwork _ProjectNetwork
_NetworkActivity _NetworkActivity
_WBSElementData _WBSElementData
_Plant _Plant
@AbapCatalog.sqlViewName: 'CPROJSHMAINTOG'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Maintanence Order Graph Overview'
@VDM.viewType: #CONSUMPTION
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory : #XL
@ObjectModel.usageType.dataClass: #MIXED
@ClientHandling.algorithm: #SESSION_VARIABLE

@Metadata: { ignorePropagatedAnnotations: true,
             allowExtensions:true }

define view C_ProjectShedMaintOrderGraph
  as select from I_ProjSchedMaintOrderData as MaintenanceOrder
  association [1..1] to C_ProjectForNetworkGraph       as _Project                   on  $projection.ProjectInternalID = _Project.ProjectInternalID

  association [0..1] to C_WBSElementForGraph           as _WBSElement                on  _WBSElement.WBSElementInternalID = $projection.WBSElementInternalID

  association [0..*] to I_Notification                 as _Notification              on  $projection.MaintenanceOrder = _Notification.OrderID

  association [0..1] to C_ProjectNetworkForGraph       as _ProjectNetwork            on  _ProjectNetwork.ProjectNetwork = $projection.SuperiorProjectNetwork

  association [0..1] to C_NetworkActivityForGraph      as _NetworkActivity           on  _NetworkActivity.ProjectNetworkInternalID  = $projection.SuperiorProjectNetworkIntID
                                                                                     and _NetworkActivity.NetworkActivityInternalID = $projection.SuperiorNtwkActivityInternalID

  association [0..1] to I_WBSElementData_2             as _WBSElementData            on  _WBSElementData.WBSElementInternalID = $projection.WBSElementInternalID
  association [0..1] to I_ProjSchedMaintOrderBasicData as _MaintenanceOrderBasicData on  $projection.MaintenanceOrder = _MaintenanceOrderBasicData.MaintenanceOrder
  association [0..1] to I_Plant                        as _Plant                     on  $projection.Plant = _Plant.Plant
{
      //Basic Data

      @ObjectModel.text.element: ['MaintenanceOrderDesc']
      @Consumption.semanticObject  : 'MaintenanceOrder'
  key MaintenanceOrder,
      @Semantics.text: true
      @EndUserText.label: 'Description'
      MaintenanceOrder.OrderDescription                                                                                                                 as MaintenanceOrderDesc,
      @EndUserText.label: 'Order Type Name'
      @Semantics.text: true
      cast ( MaintenanceOrder._OrderType._Text[1:Language = $session.system_language].OrderTypeName as ps_s4_auarttext preserving type)                 as OrderTypeName,
      @UI.hidden: true
      MaintenanceOrder.ObjectInternalID                                                                                                                 as ProjectNetworkObject,
      cast (MaintenanceOrder.ProjectInternalID as ps_s4_pspnr preserving type)                                                                          as ProjectInternalID,
      cast (MaintenanceOrder.WBSElementInternalID as ps_s4_pspnr preserving type)                                                                       as WBSElementInternalID,
      @EndUserText.label: 'Maintenance Activity Type'
      _MaintenanceOrderBasicData.MaintenanceActivityType                                                                                                as MaintenanceActivityType,
      @EndUserText.label: 'Planner Group'
      _MaintenanceOrderBasicData.MaintenancePlannerGroup                                                                                                as MaintenancePlannerGroup,
      cast ( _MaintenanceOrderBasicData._MaintenancePlannerGroup.MaintenancePlannerGroupName as eam_planner_group_name preserving type )                as MaintenancePlannerGroupName,
      @EndUserText.label: 'Main Work Center'
      MaintenanceOrder.MainWorkCenter                                                                                                                   as WorkCenter,
      @EndUserText.label: 'Main Work Center Name'
      cast ( _MaintenanceOrderBasicData._MainWorkCenter._Text[1:Language = $session.system_language].WorkCenterText as workcentertext preserving type ) as WorkCenterText,
      @EndUserText.label: 'Responsible Person'
      @ObjectModel.text.element: ['MaintOrdPersonResponsibleName']
      cast ( _MaintenanceOrderBasicData.MaintOrdPersonResponsible as ps_vernr )                                                                         as ResponsiblePerson,
      @Semantics.text: true
      @EndUserText.label: 'Responsible Person Name'
      _MaintenanceOrderBasicData._ProjSchedMaintOrdRespPerson.MaintOrdPersonResponsibleName,
      @EndUserText.label: 'Priority'
      cast ( _MaintenanceOrderBasicData.MaintPriority as priok )                                                                                        as MaintPriority,
      @EndUserText.label: 'Priority'
      cast (  _MaintenanceOrderBasicData._PriorityText[1:Language = $session.system_language].GenericPriorityDesc as priokx preserving type )           as MaintPriorityDesc,
      @EndUserText.label: 'Notification Number'
      @ObjectModel.text.element: ['MaintenanceNotificationText']
      _MaintenanceOrderBasicData.MaintenanceNotification                                                                                                as MaintenanceNotification,
      @EndUserText.label: 'Notification'
      @Semantics.text: true
      _Notification.NotificationText                                                                                                                    as MaintenanceNotificationText,
      @EndUserText.label: 'Flagged for Deletion'
      MaintenanceOrder.IsMarkedForDeletion                                                                                                              as IsMarkedForDeletion,
      @EndUserText.label: 'System Condition'
      _MaintenanceOrderBasicData.OperationSystemCondition                                                                                               as OperationSystemCondition,
      //Organizational Data

      @EndUserText.label: 'Company Code'
      MaintenanceOrder.CompanyCode,
      cast ( MaintenanceOrder._CompanyCode.CompanyCodeName as fac_co_code_name )                                                                        as CompanyCodeName,
      @EndUserText.label: 'Controlling Area'
      MaintenanceOrder.ControllingArea,
      cast ( MaintenanceOrder._ControllingArea.ControllingAreaName as ps_s4_bezei)                                                                      as ControllingAreaName,
      @EndUserText.label: 'Business Area'
      MaintenanceOrder.BusinessArea,
      cast ( MaintenanceOrder._BusinessArea._Text[1:Language = $session.system_language].BusinessAreaName as fis_gtext preserving type )                as BusinessAreaName,
      @EndUserText.label: 'Resp. Cost Center'
      MaintenanceOrder.ResponsibleCostCenter,
      cast ( MaintenanceOrder._ResponsibleCostCenterText[1:Language = $session.system_language].CostCenterName as fis_kostl_name preserving type )      as ResponsibleCostCenterName,
      @EndUserText.label: 'Profit Center'
      MaintenanceOrder.ProfitCenter,
      MaintenanceOrder._ProfitCenter[1: ValidityEndDate >= $session.system_date
      and ValidityStartDate <= $session.system_date ]._Text[1: Language = $session.system_language ].ProfitCenterName                                   as ProfitCenterName,
      @EndUserText.label: 'Work Center Plant'
      MaintenanceOrder.MainWorkCenterPlant                                                                                                              as MainWorkCenterPlant,
      @EndUserText.label: 'Planning Plant Name'
      _Plant.PlantName                                                                                                                                  as MaintenancePlanningPlantName,
      //Dates

      cast (MaintenanceOrder.PlannedStartDate as ps_s4_pstrt)                                                                                           as PlannedStartDate,
      cast (MaintenanceOrder.PlannedEndDate as ps_s4_pende)                                                                                             as PlannedEndDate,
      cast (MaintenanceOrder.ScheduledBasicStartDate as ps_s4_gstrs)                                                                                    as ScheduledBasicStartDate,
      cast (MaintenanceOrder.ScheduledBasicEndDate as ps_s4_co_gltrs)                                                                                   as ScheduledBasicEndDate,
      cast (MaintenanceOrder.ActualStartDate as cgpl_actualstartdate)                                                                                   as ActualStartDate,
      cast (MaintenanceOrder.ActualEndDate as pshlp_actual_finish_de)                                                                                   as ActualEndDate,
      @EndUserText.label: 'Schedule Type'
      @ObjectModel.text.element: ['SchedulingTypeName']
      MaintenanceOrder.BasicSchedulingType,
      @Semantics.text: true
      @EndUserText.label: 'Schedule Type Name'
      MaintenanceOrder._SchedulingTypeText[1:Language = $session.system_language].SchedulingTypeName,
      @EndUserText.label: 'Final Due Date'
      _MaintenanceOrderBasicData.LatestAcceptableCompletionDate                                                                                         as LatestAcceptableCompletionDate,
      @EndUserText.label: 'Notification Date'
      _Notification.NotificationReportingDate,
      @EndUserText.label: 'Requirement Start Date'
      _Notification.NotificationRequiredStartDate,
      @EndUserText.label: 'Requirement End Date'
      _Notification.NotificationRequiredEndDate,
      //WBS Data

      cast( ''  as vsnmr_v )                                                                                                                            as Version,
      @EndUserText.label: 'Project Definition'
      @ObjectModel.text.element: ['ProjectDescription']
      _Project.ProjectExternalID                                                                                                                        as ProjectExternalID,
      @EndUserText.label: 'Project Definition Name'
      @Semantics.text: true
      _Project.ProjectDescription                                                                                                                       as ProjectDescription,
      @EndUserText.label: 'WBS Element'
      @ObjectModel.text.element: ['WBSDescription']
      _WBSElementData.WBSElementExternalID                                                                                                              as WBSElementExternalID,
      @EndUserText.label: 'WBS Element Name'
      @Semantics.text: true
      _WBSElementData.WBSDescription                                                                                                                    as WBSDescription,
      @EndUserText.label: 'Network'
      @ObjectModel.text.element: ['ProjectNetworkDescription']
      _ProjectNetwork.ProjectNetwork                                                                                                                    as ProjectNetwork,
      @EndUserText.label: 'Project Network Name'
      @Semantics.text: true
      _ProjectNetwork.ProjectNetworkDescription                                                                                                         as ProjectNetworkDescription,
      @EndUserText.label: 'Network Activity ID'
      @ObjectModel.text.element: ['NetworkActivityDescription']
      _NetworkActivity.NetworkActivity                                                                                                                  as NetworkActivity,
      @EndUserText.label: 'Network Activity Name'
      @Semantics.text: true
      _NetworkActivity.NetworkActivityDescription                                                                                                       as NetworkActivityDescription,
      @EndUserText.label: 'Process Phase'
      @ObjectModel.text.element: ['EAMProcessPhaseCodeDesc']
      _MaintenanceOrderBasicData.MaintOrdProcessPhaseCode                                                                                               as MaintOrdProcessPhaseCode,
      @EndUserText.label: 'Process Phase Description'
      @Semantics.text: true
      _MaintenanceOrderBasicData._EAMProcessPhase._EAMProcessPhaseText[1:Language = $session.system_language].EAMProcessPhaseCodeDesc                   as EAMProcessPhaseCodeDesc,
      @EndUserText.label: 'Process Subphase'
      @ObjectModel.text.element: ['EAMProcessSubPhaseCodeDesc']
      _MaintenanceOrderBasicData.MaintOrdProcessSubPhaseCode                                                                                            as MaintOrdProcessSubPhaseCode,
      @EndUserText.label: 'Process Subphase Description'
      @Semantics.text: true
      _MaintenanceOrderBasicData._EAMProcessSubPhase._EAMProcessSubPhaseText[1:Language = $session.system_language].EAMProcessSubPhaseCodeDesc          as EAMProcessSubPhaseCodeDesc,
      //Superior

      SuperiorProjectNetwork,
      SuperiorProjectNetworkIntID,
      SuperiorNtwkActivityInternalID,
      //Status

      @EndUserText.label: 'System Status'
      @ObjectModel: { virtualElement: true,
                      virtualElementCalculatedBy: 'ABAP:CL_PS_PROJ_OBJECT_STATUS_CALC' }
      cast ( '' as vdm_j_system_status_concat_t )                                                                                                       as ConcatenatedActiveSystStsName,
      @EndUserText.label: 'User Status'
      @ObjectModel: { virtualElement: true,
                      virtualElementCalculatedBy: 'ABAP:CL_PS_PROJ_OBJECT_STATUS_CALC' }
      cast ( '' as vdm_j_user_status_concat_t )                                                                                                         as ConcatenatedActiveUserStsName,
      //For DCL

      @UI.hidden: true
      MaintenanceOrder.Plant                                                                                                                            as Plant,
      @UI.hidden: true
      MaintenanceOrder.MRPController                                                                                                                    as MRPController,
      //@UI.hidden: true

      @EndUserText.label: 'Order Type'
      @ObjectModel.text.element: ['OrderTypeName']
      MaintenanceOrder.OrderType                                                                                                                        as OrderType,
      @UI.hidden: true
      MaintenanceOrder.OrderCategory                                                                                                                    as OrderCategory,

      _WBSElement,
      _Project,
      _Notification,
      _ProjectNetwork,
      _NetworkActivity,
      _WBSElementData,
      _Plant
}
where
          ObjectInternalID               like 'OR%'
  and(
    (
          SuperiorProjectNetworkIntID    is not initial
      and SuperiorNtwkActivityInternalID is not initial
    )
  )