C_MilestoneGraphOverview

DDL: C_MILESTONEGRAPHOVERVIEW SQL: CMLSGRAPHOV Type: view CONSUMPTION

Milestone Graph Overview

C_MilestoneGraphOverview is a Consumption CDS View that provides data about "Milestone Graph Overview" in SAP S/4HANA. It reads from 1 data source (I_ProjectMilestoneData) and exposes 39 fields with key fields ProjectMilestone, ProjectMilestoneInternalID, Version. It has 5 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_ProjectMilestoneData ProjectMilestone from

Associations (5)

CardinalityTargetAliasCondition
[0..1] C_WBSElementForGraph _WBSElement _WBSElement.WBSElementInternalID = $projection.WBSElementInternalID
[0..1] C_ProjectForNetworkGraph _Project _Project.ProjectInternalID = $projection.ProjectInternalID
[0..1] C_ProjectNetworkForGraph _ProjectNetwork _ProjectNetwork.ProjectNetwork = $projection.ProjectNetwork
[0..1] C_NetworkActivityForGraph _NetworkActivity _NetworkActivity.ProjectNetworkInternalID = $projection.ProjectNetworkInternalID and _NetworkActivity.NetworkActivityInternalID = $projection.NetworkActivityInternalID
[1..1] E_ProjectMilestone _Extension $projection.ProjectMilestone = _Extension.ProjectMilestone

Annotations (13)

NameValueLevelField
AbapCatalog.sqlViewName CMLSGRAPHOV view
ClientHandling.algorithm #SESSION_VARIABLE view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #NOT_REQUIRED view
VDM.viewType #CONSUMPTION view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #M view
ObjectModel.usageType.dataClass #MIXED view
Metadata.ignorePropagatedAnnotations true view
Metadata.allowExtensions true view
EndUserText.label Milestone Graph Overview view

Fields (39)

KeyFieldSource TableSource FieldDescription
KEY ProjectMilestone
KEY ProjectMilestoneInternalID ProjectMilestoneInternalID
KEY Version
WBSElementExternalID
WBSElementObject
ProjectExternalID
ProjectInternalID
ProjectNetworkendasProjectNetwork Network
char440asNetworkActivity
SuperiorNtwkActivityExternalID
WBSDescriptionendasWBSDescription
WBSElementInternalID
ProjectNetworkInternalID ProjectNetworkInternalID
NetworkActivityInternalID NetworkActivityInternalID
AuthorizationGroup AuthorizationGroup
UsageCode UsageCode Usage
UsageCodeNameendasUsageCodeName
LastChangeDate
ScheduledBasicDate ScheduledBasicDate
CreatedByUser CreatedByUser
CreationDate
LastChangedByUser
ProjCostToBeInvoicedPercent
IsDeleted
MlstnIsRelevantForPrgrsAnlys MlstnIsRelevantForPrgrsAnlys
MlstnIsRelevantForDteInSlsDoc MlstnIsRelevantForDteInSlsDoc
MlstnIsRelevantForTrendAnlys MlstnIsRelevantForTrendAnlys
MlstnIsUsedforMlstnFunc MlstnIsUsedforMlstnFunc
MlstnReleaseStopIsActive MlstnReleaseStopIsActive
DateIsOffsetToParentEndDate DateIsOffsetToParentEndDate
MlstnDateOffsetPercent MlstnDateOffsetPercent
MlstnDateOffsetDurationUnit MlstnDateOffsetDurationUnit
MlstnDateOffsetDuration MlstnDateOffsetDuration
DateIsOffsetToParentLtstDates DateIsOffsetToParentLtstDates
WorkflowTask WorkflowTask
_ProjectNetwork _ProjectNetwork
_NetworkActivity _NetworkActivity
_WBSElement _WBSElement
_Project _Project
@AbapCatalog.sqlViewName: 'CMLSGRAPHOV'
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey:true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #NOT_REQUIRED
@VDM.viewType: #CONSUMPTION
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #M
@ObjectModel.usageType.dataClass: #MIXED

@Metadata: { ignorePropagatedAnnotations: true,
             allowExtensions:true }
@EndUserText.label: 'Milestone Graph Overview'
define view C_MilestoneGraphOverview

  as select from I_ProjectMilestoneData as ProjectMilestone
  association [0..1] to C_WBSElementForGraph      as _WBSElement      on  _WBSElement.WBSElementInternalID = $projection.WBSElementInternalID
  association [0..1] to C_ProjectForNetworkGraph  as _Project         on  _Project.ProjectInternalID = $projection.ProjectInternalID
  association [0..1] to C_ProjectNetworkForGraph  as _ProjectNetwork  on  _ProjectNetwork.ProjectNetwork = $projection.ProjectNetwork
  association [0..1] to C_NetworkActivityForGraph as _NetworkActivity on  _NetworkActivity.ProjectNetworkInternalID  = $projection.ProjectNetworkInternalID
                                                                      and _NetworkActivity.NetworkActivityInternalID = $projection.NetworkActivityInternalID
  association [1..1] to E_ProjectMilestone        as _Extension       on  $projection.ProjectMilestone = _Extension.ProjectMilestone
{
       @ObjectModel.text.element: 'MilestoneDescription'
       //key  cast(ProjectMilestone as ps_s4_mlst_zaehl preserving type)      as ProjectMilestone,

  key  cast(ProjectMilestone as mlst_zaehl)                            as ProjectMilestone,
  key  ProjectMilestoneInternalID,
  key  cast( ''  as vsnmr_v )                                          as Version,
       @ObjectModel.text.element: ['WBSDescription']
       ProjectMilestone._WBSElement.WBSElementExternalID               as WBSElementExternalID,
       ProjectMilestone._WBSElement.WBSElementObject,
       @ObjectModel.text.element: ['ProjectDescription']
       ProjectMilestone._WBSElement._Project.ProjectExternalID         as ProjectExternalID,
       ProjectMilestone._WBSElement.ProjectInternalID                  as ProjectInternalID,
       @ObjectModel.text.element: ['ProjectNetworkDescription']
       @EndUserText.label: 'Network'
       case
       when  ProjectMilestone._ProjectNetwork.ProjectNetwork is null
       then ''
       else  ProjectMilestone._ProjectNetwork.ProjectNetwork
       end                                                             as ProjectNetwork,
       @ObjectModel.text.element: ['NetworkActivityDescription']
       lpad(
       cast(
       case
       when ProjectMilestone._NetworkActivity.NetworkActivity is null
       then ''
       else ProjectMilestone._NetworkActivity.NetworkActivity
       end as abap.char( 4 )), 4, '0' )                                as NetworkActivity,
       lpad(_NetworkActivity.SuperiorNtwkActivityExternalID, 4, '0'  ) as SuperiorNtwkActivityExternalID,
       case
       when ProjectMilestone._WBSElement.WBSElementHierarchyLevel is null
       then 0
       else ProjectMilestone._WBSElement.WBSElementHierarchyLevel
       end                                                             as WBSElementHierarchyLevel,
       @Semantics.text: true
       case
       when ProjectMilestone._WBSElement._WBSElementShortText.LanguageBasedShortText is not initial
       then ProjectMilestone._WBSElement._WBSElementShortText.LanguageBasedShortText
       else ProjectMilestone._WBSElement.WBSDescription
       end                                                             as WBSDescription,
       //ProjectMilestone._WBSElement.WBSDescription,

       @Semantics.text: true
       case
       when ProjectMilestone._WBSElement._Project._ProjectShortText.LanguageBasedShortText is not initial
       then ProjectMilestone._WBSElement._Project._ProjectShortText.LanguageBasedShortText
       else ProjectMilestone._WBSElement._Project.ProjectDescription
       end                                                             as ProjectDescription,
       //ProjectMilestone._WBSElement._Project.ProjectDescription,

       @Semantics.text: true
       case
       when ProjectMilestone._ProjectNetwork._NetworkShortText.LanguageBasedShortText is not initial
       then ProjectMilestone._ProjectNetwork._NetworkShortText.LanguageBasedShortText
       else ProjectMilestone._ProjectNetwork.ProjectNetworkDescription
       end                                                             as ProjectNetworkDescription,
       //ProjectMilestone._ProjectNetwork.ProjectNetworkDescription,

       @Semantics.text: true
       case
       when ProjectMilestone._NetworkActivity._ActivityShortText.LanguageBasedShortText is not initial
       then ProjectMilestone._NetworkActivity._ActivityShortText.LanguageBasedShortText
       else ProjectMilestone._NetworkActivity.NetworkActivityDescription
       end                                                             as NetworkActivityDescription,
       //ProjectMilestone._NetworkActivity.NetworkActivityDescription,

       cast( WBSElementInternalID as ps_pspnr)                         as WBSElementInternalID,
       ProjectNetworkInternalID,
       NetworkActivityInternalID,
       @Consumption:{ hidden: true}
       AuthorizationGroup,
       @EndUserText.label: 'Milestone Name'
       @Semantics.text: true
       case
       when ProjectMilestone._MilestoneShortText.LanguageBasedShortText is not initial
       then ProjectMilestone._MilestoneShortText.LanguageBasedShortText
       else
       _Text.MilestoneDescription
       //case

       //when _Text[1: Language = $session.system_language ].MilestoneDescription is not initial

       //then cast(_Text[1: Language = $session.system_language ].MilestoneDescription as ps_s4_mlst_ktext)

       //else cast(_Text[1: Language = 'E' ].MilestoneDescription as ps_s4_mlst_ktext)

       //end

       end                                                             as MilestoneDescription,
       @EndUserText.label: 'Usage'
       @ObjectModel.text.element: ['UsageCodeName']
       UsageCode,
       @Semantics.text: true
       case
       when _UsageText._UsageCodeText[1:Language = $session.system_language].UsageCodeName is null
       then ''
       else _UsageText._UsageCodeText[1:Language = $session.system_language].UsageCodeName
       end                                                             as UsageCodeName,
       @DefaultAggregation: #MAX
       cast(LastChangeDate as ps_s4_updat)                             as LastChangeDate,
       ScheduledBasicDate,
       ScheduledForecastedDate,
       case
       when FixedBasicDate is null
       then '00000000'
       when FixedBasicDate = ''
       then '00000000'
       else FixedBasicDate
       end                                                             as FixedBasicDate,
       ForecastedFixedDate,
       case
       when ActualEndDate is null
       then '00000000'
       when ActualEndDate = ''
       then '00000000'
       else ActualEndDate
       end                                                             as ActualEndDate,
       CreatedByUser,
       cast(CreationDate as erdat)                                     as CreationDate,
       cast(LastChangedByUser as ps_s4_aenam)                          as LastChangedByUser,
       @EndUserText.label: 'Days Due'
       @DefaultAggregation: #MIN
       case
          when ActualEndDate = '00000000'
           and ScheduledBasicDate >  $session.system_date
              then DATS_DAYS_BETWEEN( cast($session.system_date as sydatum),
                                      ScheduledBasicDate
                                    )
          else 0
       end                                                             as DueDays,
       @EndUserText.label:'Days Overdue'
       @DefaultAggregation: #MAX
       case
          when ActualEndDate = '00000000'
           and ScheduledBasicDate <  $session.system_date
              then DATS_DAYS_BETWEEN( ScheduledBasicDate,
                                      cast($session.system_date as sydatum)
                                    )
          else 0
        end                                                            as OverdueDays,
       case
         when CompletionRateInPercent = '000'
             then cast('' as ps_s4_cgpl_completion)
         else cast(ltrim(CompletionRateInPercent,'0') as ps_s4_cgpl_completion)
       end                                                             as CompletionRateInPercent,
       cast(ProjCostToBeInvoicedPercent as fproz )                     as ProjCostToBeInvoicedPercent,
       cast (IsDeleted as ps_s4_loevm)                                 as IsDeleted,
       MlstnIsRelevantForPrgrsAnlys,
       MlstnIsRelevantForDteInSlsDoc,
       MlstnIsRelevantForTrendAnlys,
       MlstnIsUsedforMlstnFunc,
       MlstnReleaseStopIsActive,
       DateIsOffsetToParentEndDate,
       MlstnDateOffsetPercent,
       @Semantics.unitOfMeasure: true
       MlstnDateOffsetDurationUnit,
       @Semantics.quantity.unitOfMeasure: 'MlstnDateOffsetDurationUnit'
       MlstnDateOffsetDuration,
       DateIsOffsetToParentLtstDates,
       WorkflowTask,

       _ProjectNetwork,
       _NetworkActivity,
       _WBSElement,
       _Project
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"C_NETWORKACTIVITYFORGRAPH",
"I_NETWORKACTIVITYBYINTERNALKEY",
"I_PROJECTDATA_2",
"I_PROJECTMILESTONEDATA",
"I_PROJECTMILESTONETEXT",
"I_PROJECTMILESTONEUSAGE",
"I_PROJECTNETWORKBASICDATA",
"I_PROJECTOBJECTSHORTTEXT",
"I_USAGECODETEXT",
"I_WBSELEMENTDATA_2"
],
"ASSOCIATED":
[
"C_NETWORKACTIVITYFORGRAPH",
"C_PROJECTFORNETWORKGRAPH",
"C_PROJECTNETWORKFORGRAPH",
"C_WBSELEMENTFORGRAPH",
"E_PROJECTMILESTONE"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/