C_ProjSchedOperationGraph

DDL: C_PROJSCHEDOPERATIONGRAPH SQL: COPERATIONGROVW Type: view CONSUMPTION Package: ODATA_PROJECT_SCHEDULE

Operation Graph Overview

C_ProjSchedOperationGraph is a Consumption CDS View that provides data about "Operation Graph Overview" in SAP S/4HANA. It reads from 1 data source (I_NetworkActivityByInternalKey) and exposes 59 fields with key fields OrderInternalBillOfOperations, NetworkActivityInternalID. It has 15 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_NetworkActivityByInternalKey NetworkActivity from

Associations (15)

CardinalityTargetAliasCondition
[1..1] I_NetworkActivityDatesQuantity _NetworkActivityDatesQuantity $projection.OrderInternalBillOfOperations = _NetworkActivityDatesQuantity.ProjectNetworkInternalID and $projection.NetworkActivityInternalID = _NetworkActivityDatesQuantity.NetworkActivityInternalID
[0..1] I_ProjSchedMaintOrderData _MaintenanceOrder $projection.OrderInternalBillOfOperations = _MaintenanceOrder.OrderInternalBillOfOperations
[0..1] C_ProjectShedMaintOrderGraph _WorkOrderGraphOverview $projection.MaintenanceOrder = _WorkOrderGraphOverview.MaintenanceOrder
[0..1] I_StatusObjectStatusBasic _ActivityConfirmed $projection.NetworkActivityObject = _ActivityConfirmed.StatusObject and _ActivityConfirmed.StatusCode = 'I0009'
[0..1] I_StatusObjectStatusBasic _ActivityPartiallyConfirmed $projection.NetworkActivityObject = _ActivityPartiallyConfirmed.StatusObject and _ActivityPartiallyConfirmed.StatusCode = 'I0010'
[0..1] I_OperationControlProfileText _OperationControlProfileText $projection.OperationControlKey = _OperationControlProfileText.OperationControlProfile and _OperationControlProfileText.Language = $session.system_language
[0..1] I_Plant _Plant $projection.Plant = _Plant.Plant
[0..1] I_MaterialText _AssemblyText $projection.Assembly = _AssemblyText.Material and _AssemblyText.Language = $session.system_language
[0..1] I_EquipmentText _EquipmentText $projection.Equipment = _EquipmentText.Equipment and _EquipmentText.Language = $session.system_language
[0..1] I_FunctionalLocationLabel _FunctionalLocationLabel $projection.FunctionalLocation = _FunctionalLocationLabel.FunctionalLocation
[0..1] I_FunctionalLocationText _FunctionalLocationText $projection.FunctionalLocation = _FunctionalLocationText.FunctionalLocation and _FunctionalLocationText.Language = $session.system_language
[0..*] I_EAMProcessPhaseText _EAMProcessPhaseText $projection.MaintOrdProcessPhaseCode = _EAMProcessPhaseText.EAMProcessPhaseCode
[0..*] I_EAMProcessSubPhaseText _EAMProcessSubPhaseText $projection.MaintOrdProcessSubPhaseCode = _EAMProcessSubPhaseText.EAMProcessSubPhaseCode
[0..*] C_ProjectNetworkRelationship _Successor _Successor.PredecessorProjNtwkIntID = $projection.OrderInternalBillOfOperations and _Successor.PredecessorNtwkActyIntID = $projection.NetworkActivityInternalID
[0..*] C_ProjectNetworkRelationship _Predecessor _Predecessor.SuccessorProjNtwkIntID = $projection.OrderInternalBillOfOperations and _Predecessor.SuccessorNtwkActyIntID = $projection.NetworkActivityInternalID

Annotations (12)

NameValueLevelField
AbapCatalog.sqlViewName COPERATIONGROVW view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #CHECK view
EndUserText.label Operation 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 (59)

KeyFieldSource TableSource FieldDescription
KEY OrderInternalBillOfOperations
KEY NetworkActivityInternalID I_NetworkActivityByInternalKey NetworkActivityInternalID
MaintenanceOrder _MaintenanceOrder MaintenanceOrder Order
MaintenanceOrderOperation I_NetworkActivityByInternalKey NetworkActivity Operation
WBSElementExternalID WBS Element ID
OperationDescription I_NetworkActivityByInternalKey NetworkActivityDescription Operation Description
OrderDescription _MaintenanceOrder OrderDescription Order Name
WBSDescription WBS Element Name
OrderType _MaintenanceOrder OrderType Order Type
MaintenanceOrderTypeName Order Type Name
OperationControlKey I_NetworkActivityByInternalKey NetworkActivityControlProfile Control Key
OperationControlProfileName
OperationWorkCenter Work Center
WorkCenterText
Plant I_NetworkActivityByInternalKey Plant Plant
PlantName _Plant PlantName
Assembly I_NetworkActivityByInternalKey Assembly Assembly
AssemblyName _AssemblyText MaterialName
FunctionalLocation I_NetworkActivityByInternalKey FunctionalLocation Functional Location
FunctionalLocationLabelName _FunctionalLocationLabel FunctionalLocationLabelName
FunctionalLocationName _FunctionalLocationText FunctionalLocationName Functional Location
Equipment I_NetworkActivityByInternalKey Equipment Equipment
EquipmentName _EquipmentText EquipmentName
IsMarkedForDeletion I_NetworkActivityByInternalKey IsMarkedForDeletion Flagged for Deletion
NetworkActivityObject I_NetworkActivityByInternalKey NetworkActivityObject
SchedldBasicEarliestStartDate _NetworkActivityDatesQuantity SchedldBasicEarliestStartDate Earliest Start Date
SchedldBasicEarliestEndDate _NetworkActivityDatesQuantity SchedldBasicEarliestEndDate Earliest Finish Date
SchedldBasicLatestStartDate _NetworkActivityDatesQuantity SchedldBasicLatestStartDate Latest Start Date
ScheduledBasicLatestEndDate _NetworkActivityDatesQuantity ScheduledBasicLatestEndDate Latest Finish Date
StandardDuration _NetworkActivityDatesQuantity StandardDuration Duration
StandardDurationUnit _NetworkActivityDatesQuantity StandardDurationUnit
ActualStartDate _NetworkActivityDatesQuantity ActualStartDate Actual Exec. Start Date
ActualEndDate _NetworkActivityDatesQuantity ActualEndDate Actual Exec. Finish Date
ActyConfFcstdEndDate _NetworkActivityDatesQuantity ActyConfFcstdEndDate Forecast Finish
ActyBscStartDateConstraintType _NetworkActivityDatesQuantity ActyBscStartDateConstraintType Start Restriction
ActyBscStartDateConstraintText Start Restriction Text
ActyBscEndDateConstraintType _NetworkActivityDatesQuantity ActyBscEndDateConstraintType End Restriction
ActyBscEndDateConstraintText End Restriction Text
ConstraintDateForBscStartDate _NetworkActivityDatesQuantity ConstraintDateForBscStartDate Start Restriction Date
ConstraintDateForBscEndDate _NetworkActivityDatesQuantity ConstraintDateForBscEndDate End Restriction Date
TotalFloatForBasicDates _NetworkActivityDatesQuantity TotalFloatForBasicDates Total Float
BasicDatesFreeFloat _NetworkActivityDatesQuantity BasicDatesFreeFloat Free Float
PlannedWorkQuantity _NetworkActivityDatesQuantity PlannedWorkQuantity Planned Work
ActualWorkQuantity _NetworkActivityDatesQuantity ActualWorkQuantity Actual Work
NtwkActivityWorkQuantityUnit _NetworkActivityDatesQuantity NtwkActivityWorkQuantityUnit
Version
MaintOrdProcessPhaseCode I_NetworkActivityByInternalKey MaintOrdProcessPhaseCode Process Phase
EAMProcessPhaseCodeDesc Process Phase Description
MaintOrdProcessSubPhaseCode I_NetworkActivityByInternalKey MaintOrdProcessSubPhaseCode Process Subphase
EAMProcessSubPhaseCodeDesc Process Subphase Description
_NetworkActivityDatesQuantity _NetworkActivityDatesQuantity
_MaintenanceOrder _MaintenanceOrder
_WorkOrderGraphOverview _WorkOrderGraphOverview
_ActivityConfirmed _ActivityConfirmed
_ActivityPartiallyConfirmed _ActivityPartiallyConfirmed
_EAMProcessPhaseText _EAMProcessPhaseText
_EAMProcessSubPhaseText _EAMProcessSubPhaseText
_Successor _Successor
_Predecessor _Predecessor
@AbapCatalog.sqlViewName: 'COPERATIONGROVW'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Operation 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_ProjSchedOperationGraph
  as select from I_NetworkActivityByInternalKey as NetworkActivity
  association [1..1] to I_NetworkActivityDatesQuantity as _NetworkActivityDatesQuantity on  $projection.OrderInternalBillOfOperations = _NetworkActivityDatesQuantity.ProjectNetworkInternalID
                                                                                        and $projection.NetworkActivityInternalID     = _NetworkActivityDatesQuantity.NetworkActivityInternalID

  association [0..1] to I_ProjSchedMaintOrderData      as _MaintenanceOrder             on  $projection.OrderInternalBillOfOperations = _MaintenanceOrder.OrderInternalBillOfOperations

  association [0..1] to C_ProjectShedMaintOrderGraph   as _WorkOrderGraphOverview       on  $projection.MaintenanceOrder = _WorkOrderGraphOverview.MaintenanceOrder
  association [0..1] to I_StatusObjectStatusBasic      as _ActivityConfirmed            on  $projection.NetworkActivityObject = _ActivityConfirmed.StatusObject
                                                                                        and _ActivityConfirmed.StatusCode     = 'I0009'
  association [0..1] to I_StatusObjectStatusBasic      as _ActivityPartiallyConfirmed   on  $projection.NetworkActivityObject      = _ActivityPartiallyConfirmed.StatusObject
                                                                                        and _ActivityPartiallyConfirmed.StatusCode = 'I0010'
  association [0..1] to I_OperationControlProfileText  as _OperationControlProfileText  on  $projection.OperationControlKey       = _OperationControlProfileText.OperationControlProfile
                                                                                        and _OperationControlProfileText.Language = $session.system_language
  association [0..1] to I_Plant                        as _Plant                        on  $projection.Plant = _Plant.Plant
  association [0..1] to I_MaterialText                 as _AssemblyText                 on  $projection.Assembly   = _AssemblyText.Material
                                                                                        and _AssemblyText.Language = $session.system_language
  association [0..1] to I_EquipmentText                as _EquipmentText                on  $projection.Equipment   = _EquipmentText.Equipment
                                                                                        and _EquipmentText.Language = $session.system_language
  association [0..1] to I_FunctionalLocationLabel      as _FunctionalLocationLabel      on  $projection.FunctionalLocation = _FunctionalLocationLabel.FunctionalLocation
  association [0..1] to I_FunctionalLocationText       as _FunctionalLocationText       on  $projection.FunctionalLocation   = _FunctionalLocationText.FunctionalLocation
                                                                                        and _FunctionalLocationText.Language = $session.system_language
  association [0..*] to I_EAMProcessPhaseText          as _EAMProcessPhaseText          on  $projection.MaintOrdProcessPhaseCode = _EAMProcessPhaseText.EAMProcessPhaseCode
  association [0..*] to I_EAMProcessSubPhaseText       as _EAMProcessSubPhaseText       on  $projection.MaintOrdProcessSubPhaseCode = _EAMProcessSubPhaseText.EAMProcessSubPhaseCode

  association [0..*] to C_ProjectNetworkRelationship   as _Successor                    on  _Successor.PredecessorProjNtwkIntID = $projection.OrderInternalBillOfOperations
                                                                                        and _Successor.PredecessorNtwkActyIntID = $projection.NetworkActivityInternalID
  association [0..*] to C_ProjectNetworkRelationship   as _Predecessor                  on  _Predecessor.SuccessorProjNtwkIntID = $projection.OrderInternalBillOfOperations
                                                                                        and _Predecessor.SuccessorNtwkActyIntID = $projection.NetworkActivityInternalID
{
  key cast (NetworkActivity.ProjectNetworkInternalID as co_aufpl preserving type)                                                as OrderInternalBillOfOperations,

  key NetworkActivity.NetworkActivityInternalID                                                                                  as NetworkActivityInternalID,


      @ObjectModel.text.element: ['OrderDescription']
      @EndUserText.label: 'Order'
      _MaintenanceOrder.MaintenanceOrder                                                                                         as MaintenanceOrder,
      @ObjectModel.text.element: ['OperationDescription']
      @EndUserText.label: 'Operation'
      NetworkActivity.NetworkActivity                                                                                            as MaintenanceOrderOperation,
      @ObjectModel.text.element: ['WBSDescription']
      @EndUserText.label: 'WBS Element ID'
      _MaintenanceOrder._WBSElementData.WBSElementExternalID                                                                     as WBSElementExternalID,
      @Semantics.text: true
      @EndUserText.label: 'Operation Description'
      NetworkActivity.NetworkActivityDescription                                                                                 as OperationDescription,
      @Semantics.text: true
      @EndUserText.label: 'Order Name'
      _MaintenanceOrder.OrderDescription                                                                                         as OrderDescription,
      @Semantics.text: true
      @EndUserText.label: 'WBS Element Name'
      _MaintenanceOrder._WBSElementData.WBSDescription                                                                           as WBSDescription,
      @EndUserText.label: 'Order Type'
      @ObjectModel.text.element: ['MaintenanceOrderTypeName']
      _MaintenanceOrder.OrderType                                                                                                as OrderType,
      @EndUserText.label: 'Order Type Name'
      @Semantics.text: true
      _MaintenanceOrder._OrderType._Text[1:Language = $session.system_language].OrderTypeName                                    as MaintenanceOrderTypeName,
      @EndUserText.label: 'Fully Confirmed'
      cast( ( case when _ActivityConfirmed.StatusIsInactive = ' '
          then 'X'
          else ' '
          end ) as boole_d )                                                                                                     as ObjectIsConfirmed,
      @EndUserText.label: 'Partially Confirmed'
      cast( ( case when _ActivityPartiallyConfirmed.StatusIsInactive = ' '
          then 'X'
          else ' '
          end  ) as boole_d )                                                                                                    as ObjectIsPartiallyConfirmed,
      @EndUserText.label: 'Control Key'
      @ObjectModel.text.element: ['OperationControlProfileName']
      NetworkActivity.NetworkActivityControlProfile                                                                              as OperationControlKey,
      @Semantics.text: true
      cast ( _OperationControlProfileText.OperationControlProfileName as ps_s4_pph_steutxt )                                     as OperationControlProfileName,
      @EndUserText.label: 'Work Center'
      NetworkActivity._WorkCenter.WorkCenter                                                                                     as OperationWorkCenter,
      NetworkActivity._WorkCenter._Text[1:Language=$session.system_language].WorkCenterText                                      as WorkCenterText,
      @EndUserText.label: 'Plant'
      NetworkActivity.Plant                                                                                                      as Plant,
      _Plant.PlantName                                                                                                           as PlantName,
      @EndUserText.label: 'Assembly'
      @ObjectModel.text.element: ['AssemblyName']
      NetworkActivity.Assembly                                                                                                   as Assembly,
      @Semantics.text: true
      _AssemblyText.MaterialName                                                                                                 as AssemblyName,
      @EndUserText.label: 'Functional Location'
      NetworkActivity.FunctionalLocation                                                                                         as FunctionalLocation,
      @ObjectModel.text.element: ['FunctionalLocationName']
      _FunctionalLocationLabel.FunctionalLocationLabelName                                                                       as FunctionalLocationLabelName,
      @EndUserText.label: 'Functional Location'
      @Semantics.text: true
      _FunctionalLocationText.FunctionalLocationName                                                                             as FunctionalLocationName,
      @EndUserText.label: 'Equipment'
      @ObjectModel.text.element: ['EquipmentName']
      NetworkActivity.Equipment                                                                                                  as Equipment,
      @Semantics.text: true
      _EquipmentText.EquipmentName                                                                                               as EquipmentName,
      @EndUserText.label: 'Flagged for Deletion'
      NetworkActivity.IsMarkedForDeletion                                                                                        as IsMarkedForDeletion,
      @UI.hidden: true
      NetworkActivity.NetworkActivityObject                                                                                      as NetworkActivityObject,
      //Dates and work

      @EndUserText.label: 'Earliest Start Date'
      _NetworkActivityDatesQuantity.SchedldBasicEarliestStartDate                                                                as SchedldBasicEarliestStartDate,
      @EndUserText.label: 'Earliest Finish Date'
      _NetworkActivityDatesQuantity.SchedldBasicEarliestEndDate                                                                  as SchedldBasicEarliestEndDate,
      @EndUserText.label: 'Latest Start Date'
      _NetworkActivityDatesQuantity.SchedldBasicLatestStartDate                                                                  as SchedldBasicLatestStartDate,
      @EndUserText.label: 'Latest Finish Date'
      _NetworkActivityDatesQuantity.ScheduledBasicLatestEndDate                                                                  as ScheduledBasicLatestEndDate,
      @EndUserText.label: 'Duration'
      @Semantics.quantity.unitOfMeasure: 'StandardDurationUnit'
      _NetworkActivityDatesQuantity.StandardDuration                                                                             as StandardDuration,
      @Semantics.unitOfMeasure: true
      _NetworkActivityDatesQuantity.StandardDurationUnit                                                                         as StandardDurationUnit,
      @EndUserText.label: 'Actual Exec. Start Date'
      _NetworkActivityDatesQuantity.ActualStartDate                                                                              as ActualStartDate,
      @EndUserText.label: 'Actual Exec. Finish Date'
      _NetworkActivityDatesQuantity.ActualEndDate                                                                                as ActualEndDate,
      @EndUserText.label: 'Forecast Finish'
      _NetworkActivityDatesQuantity.ActyConfFcstdEndDate                                                                         as ActyConfFcstdEndDate,
      @EndUserText.label: 'Start Restriction'
      @ObjectModel.text.element: 'ActyBscStartDateConstraintText'
      _NetworkActivityDatesQuantity.ActyBscStartDateConstraintType                                                               as ActyBscStartDateConstraintType,
      @EndUserText.label: 'Start Restriction Text'
      @Semantics.text: true
      _NetworkActivityDatesQuantity._BscStartConstraintTypeText[1:Language = $session.system_language].StartConstraintTypeText   as ActyBscStartDateConstraintText,
      @EndUserText.label: 'End Restriction'
      @ObjectModel.text.element: 'ActyBscEndDateConstraintText'
      _NetworkActivityDatesQuantity.ActyBscEndDateConstraintType                                                                 as ActyBscEndDateConstraintType,
      @EndUserText.label: 'End Restriction Text'
      @Semantics.text: true
      _NetworkActivityDatesQuantity._BscFinishConstraintTypeText[1:Language = $session.system_language].FinishConstraintTypeText as ActyBscEndDateConstraintText,
      @EndUserText.label: 'Start Restriction Date'
      _NetworkActivityDatesQuantity.ConstraintDateForBscStartDate                                                                as ConstraintDateForBscStartDate,
      @EndUserText.label: 'End Restriction Date'
      _NetworkActivityDatesQuantity.ConstraintDateForBscEndDate                                                                  as ConstraintDateForBscEndDate,
      @EndUserText.label: 'Total Float'
      _NetworkActivityDatesQuantity.TotalFloatForBasicDates                                                                      as TotalFloatForBasicDates,
      @EndUserText.label: 'Free Float'
      _NetworkActivityDatesQuantity.BasicDatesFreeFloat                                                                          as BasicDatesFreeFloat,
      @EndUserText.label: 'Planned Work'
      @Semantics.quantity.unitOfMeasure: 'NtwkActivityWorkQuantityUnit'
      _NetworkActivityDatesQuantity.PlannedWorkQuantity                                                                          as PlannedWorkQuantity,
      @EndUserText.label: 'Actual Work'
      @Semantics.quantity.unitOfMeasure: 'NtwkActivityWorkQuantityUnit'
      _NetworkActivityDatesQuantity.ActualWorkQuantity                                                                           as ActualWorkQuantity,
      @EndUserText.label: 'Forecast Work'
      @Semantics.quantity.unitOfMeasure: 'NtwkActivityWorkQuantityUnit'
      _NetworkActivityDatesQuantity.ForecastedWorkQty                                                                            as ForecastedWorkQty,
      @Semantics.unitOfMeasure: true
      _NetworkActivityDatesQuantity.NtwkActivityWorkQuantityUnit                                                                 as NtwkActivityWorkQuantityUnit,
      cast( ''  as vsnmr_v )                                                                                                     as Version,
      //New 12.10.2021

      @EndUserText.label: 'Process Phase'
      @ObjectModel.text.element: ['EAMProcessPhaseCodeDesc']
      NetworkActivity.MaintOrdProcessPhaseCode,
      @EndUserText.label: 'Process Phase Description'
      @Semantics.text: true
      _EAMProcessPhaseText[1:Language = $session.system_language].EAMProcessPhaseCodeDesc                                        as EAMProcessPhaseCodeDesc,
      @EndUserText.label: 'Process Subphase'
      @ObjectModel.text.element: ['EAMProcessSubPhaseCodeDesc']
      NetworkActivity.MaintOrdProcessSubPhaseCode,
      @EndUserText.label: 'Process Subphase Description'
      @Semantics.text: true
      _EAMProcessSubPhaseText[1:Language = $session.system_language].EAMProcessSubPhaseCodeDesc                                  as EAMProcessSubPhaseCodeDesc,
      //End

      //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,
      //Associations

      _NetworkActivityDatesQuantity,
      _MaintenanceOrder,
      _WorkOrderGraphOverview,
      _ActivityConfirmed,
      _ActivityPartiallyConfirmed,
      _EAMProcessPhaseText,
      _EAMProcessSubPhaseText,
      _Successor,
      _Predecessor
}
where
      NetworkActivity.NetworkActivityObject like 'OV%'
  and _MaintenanceOrder.MaintenanceOrder    is not initial