P_MilestoneWithVersion

DDL: P_MILESTONEWITHVERSION SQL: PMILESTONEVERS Type: view COMPOSITE Package: ODATA_PROJECTMILESTONE

Private basic view for Milestone app

P_MilestoneWithVersion is a Composite CDS View that provides data about "Private basic view for Milestone app" in SAP S/4HANA. It reads from 2 data sources (I_Projectmilestone, I_ProjectmilestoneVersion) and exposes 65 fields with key fields ProjectMilestone, ProjectMilestoneInternalID, Version, ProjectMilestoneInternalID, Version. It has 1 association to related views. Part of development package ODATA_PROJECTMILESTONE.

Data Sources (2)

SourceAliasJoin Type
I_Projectmilestone ProjectMilestone union_all
I_ProjectmilestoneVersion ProjectMilestoneVersion from

Associations (1)

CardinalityTargetAliasCondition
[0..1] I_NetworkActivityVersion _NetworkActivity _NetworkActivity.ProjectNetworkInternalID = ProjectMilestoneVersion.ProjectNetworkInternalID and _NetworkActivity.NetworkActivityInternalID = ProjectMilestoneVersion.NetworkActivityInternalID and _NetworkActivity.Version = ProjectMilestoneVersion.Version

Annotations (5)

NameValueLevelField
AbapCatalog.sqlViewName PMILESTONEVERS view
AbapCatalog.compiler.compareFilter true view
VDM.viewType #COMPOSITE view
VDM.private true view
AccessControl.authorizationCheck #NOT_REQUIRED view

Fields (65)

KeyFieldSource TableSource FieldDescription
KEY ProjectMilestone ProjectMilestone
KEY ProjectMilestoneInternalID ProjectMilestoneInternalID
KEY Version Version
IsProjectVersionObject
ProjectNetworkInternalID ProjectNetworkInternalID
NetworkActivityInternalID NetworkActivityInternalID
UsageCode UsageCode
ScheduledBasicDate ScheduledBasicDate
FixedBasicDate FixedBasicDate
ActualEndDate ActualEndDate
IsDeleted IsDeleted
CompletionRateInPercent CompletionRateInPercent
ProjCostToBeInvoicedPercent ProjCostToBeInvoicedPercent
MlstnIsRelevantForPrgrsAnlys MlstnIsRelevantForPrgrsAnlys
MlstnIsRelevantForDteInSlsDoc MlstnIsRelevantForDteInSlsDoc
MlstnIsRelevantForTrendAnlys MlstnIsRelevantForTrendAnlys
MlstnIsUsedforMlstnFunc MlstnIsUsedforMlstnFunc
MlstnReleaseStopIsActive MlstnReleaseStopIsActive
LastChangeDate LastChangeDate
CreationDate CreationDate
CreatedByUser CreatedByUser
LastChangedByUser LastChangedByUser
DateIsOffsetToParentEndDate DateIsOffsetToParentEndDate
MlstnDateOffsetPercent MlstnDateOffsetPercent
MlstnDateOffsetDurationUnit MlstnDateOffsetDurationUnit
MlstnDateOffsetDuration MlstnDateOffsetDuration
DateIsOffsetToParentLtstDates DateIsOffsetToParentLtstDates
WorkflowTask WorkflowTask
DueDays
OverdueDays
AuthorizationGroup AuthorizationGroup
_Text _Text
_UsageText _UsageText
KEY ProjectMilestoneInternalID ProjectMilestoneInternalID
KEY Version
IsProjectVersionObject
ProjectNetworkInternalID ProjectNetworkInternalID
NetworkActivityInternalID NetworkActivityInternalID
UsageCode UsageCode
ScheduledBasicDate ScheduledBasicDate
FixedBasicDate FixedBasicDate
ActualEndDate ActualEndDate
IsDeleted IsDeleted
CompletionRateInPercent CompletionRateInPercent
ProjCostToBeInvoicedPercent ProjCostToBeInvoicedPercent
MlstnIsRelevantForPrgrsAnlys MlstnIsRelevantForPrgrsAnlys
MlstnIsRelevantForDteInSlsDoc MlstnIsRelevantForDteInSlsDoc
MlstnIsRelevantForTrendAnlys MlstnIsRelevantForTrendAnlys
MlstnIsUsedforMlstnFunc MlstnIsUsedforMlstnFunc
MlstnReleaseStopIsActive MlstnReleaseStopIsActive
LastChangeDate LastChangeDate
CreationDate CreationDate
CreatedByUser CreatedByUser
LastChangedByUser LastChangedByUser
DateIsOffsetToParentEndDate DateIsOffsetToParentEndDate
MlstnDateOffsetPercent MlstnDateOffsetPercent
MlstnDateOffsetDurationUnit MlstnDateOffsetDurationUnit
MlstnDateOffsetDuration MlstnDateOffsetDuration
DateIsOffsetToParentLtstDates DateIsOffsetToParentLtstDates
WorkflowTask WorkflowTask
ScheduledBasicDateelse0endasDueDays
AuthorizationGroup AuthorizationGroup
_Text _Text
_UsageText _UsageText
_MilestoneShortText _MilestoneShortText
@AbapCatalog.sqlViewName: 'PMILESTONEVERS'
@AbapCatalog.compiler.compareFilter: true
@VDM.viewType: #COMPOSITE
@VDM.private: true
@AccessControl.authorizationCheck: #NOT_REQUIRED

define view P_MilestoneWithVersion
  as select from I_ProjectmilestoneVersion as ProjectMilestoneVersion
  association [0..1] to I_NetworkActivityVersion as _NetworkActivity     on  _NetworkActivity.ProjectNetworkInternalID  = ProjectMilestoneVersion.ProjectNetworkInternalID
                                                                         and _NetworkActivity.NetworkActivityInternalID = ProjectMilestoneVersion.NetworkActivityInternalID
                                                                         and _NetworkActivity.Version                   = ProjectMilestoneVersion.Version


{

  key ProjectMilestone,

  key ProjectMilestoneInternalID,

  key Version,

      'X'               as IsProjectVersionObject,
      ProjectNetworkInternalID,
      // WBSElementInternalID,

      case
           when WBSElementInternalID = '00000000'
               then _NetworkActivity.WBSElementInternalID
           else WBSElementInternalID
       end              as WBSElementInternalID,
      NetworkActivityInternalID,
      UsageCode,
      ScheduledBasicDate,
      FixedBasicDate,
      ActualEndDate,
      IsDeleted,
      CompletionRateInPercent,
      ProjCostToBeInvoicedPercent,
      MlstnIsRelevantForPrgrsAnlys,
      MlstnIsRelevantForDteInSlsDoc,
      MlstnIsRelevantForTrendAnlys,
      MlstnIsUsedforMlstnFunc,
      MlstnReleaseStopIsActive,
      LastChangeDate,
      CreationDate,
      CreatedByUser,
      LastChangedByUser,
      ScheduledForecastedDate,
      ForecastedFixedDate,
      DateIsOffsetToParentEndDate,
      MlstnDateOffsetPercent,
      MlstnDateOffsetDurationUnit,
      MlstnDateOffsetDuration,
      DateIsOffsetToParentLtstDates,
      WorkflowTask,
      cast( 0 as int4 ) as DueDays,
      cast( 0 as int4 ) as OverdueDays,
      AuthorizationGroup,

      //-->Associations


      _Text,
      _UsageText,
      _MilestoneShortText

  //<--Associations

}

union all select from I_Projectmilestone as ProjectMilestone
association [0..1] to I_NetworkActivity as _NetworkActivity on  _NetworkActivity.ProjectNetworkInternalID  = ProjectMilestone.ProjectNetworkInternalID
                                                            and _NetworkActivity.NetworkActivityInternalID = ProjectMilestone.NetworkActivityInternalID




{

  key ProjectMilestone,

  key ProjectMilestoneInternalID,

  key ''                        as Version,

      ''                        as IsProjectVersionObject,
      ProjectNetworkInternalID,
      //  WBSElementInternalID,

      case
          when WBSElementInternalID = '00000000'
              then _NetworkActivity.WBSElementInternalID
          else WBSElementInternalID
      end                       as WBSElementInternalID,
      NetworkActivityInternalID as NetworkActivityInternalID,
      UsageCode,
      ScheduledBasicDate,
      FixedBasicDate,
      ActualEndDate,
      IsDeleted,
      CompletionRateInPercent,
      ProjCostToBeInvoicedPercent,
      MlstnIsRelevantForPrgrsAnlys,
      MlstnIsRelevantForDteInSlsDoc,
      MlstnIsRelevantForTrendAnlys,
      MlstnIsUsedforMlstnFunc,
      MlstnReleaseStopIsActive,
      LastChangeDate,
      CreationDate,
      CreatedByUser,
      LastChangedByUser,
      ScheduledForecastedDate,
      ForecastedFixedDate,
      DateIsOffsetToParentEndDate,
      MlstnDateOffsetPercent,
      MlstnDateOffsetDurationUnit,
      MlstnDateOffsetDuration,
      DateIsOffsetToParentLtstDates,
      WorkflowTask,
      case
          when ProjectMilestone.ActualEndDate = '00000000'
           and ProjectMilestone.ScheduledBasicDate >  $session.system_date
              then DATS_DAYS_BETWEEN( cast($session.system_date as sydatum),
                                      ProjectMilestone.ScheduledBasicDate
                                    )
          else 0
       end                      as DueDays,
      case
          when ProjectMilestone.ActualEndDate = '00000000'
           and ProjectMilestone.ScheduledBasicDate <  $session.system_date
              then DATS_DAYS_BETWEEN( ProjectMilestone.ScheduledBasicDate,
                                      cast($session.system_date as sydatum)
                                    )
          else 0
       end                      as OverdueDays,
      AuthorizationGroup,

      //-->Associations


      _Text,
      _UsageText,
      _MilestoneShortText

  //<--Associations

}