@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
}
Depth:
1
2
3
4
5
All
Reload
C_MilestoneGraphOverview view