I_PPM_MyTask

DDL: I_PPM_MYTASK SQL: IPPMMYTSK Type: view COMPOSITE

My Tasks

I_PPM_MyTask is a Composite CDS View that provides data about "My Tasks" in SAP S/4HANA. It reads from 7 data sources and exposes 35 fields with key field TaskUUID. It has 5 associations to related views.

Data Sources (7)

SourceAliasJoin Type
I_EPPMGlobalSetting _GlobalSetting left_outer
P_PPM_DisBusinessPartnerForObj BusinessPartnerForObject from
I_PPM_ProjectSummaryTask ProjectSummaryTask inner
I_PPM_Text ProjectTextUserLang left_outer
I_PPM_Task Task inner
I_PPM_Text TaskTextUserLang left_outer
I_PPM_User User inner

Associations (5)

CardinalityTargetAliasCondition
[1..1] I_PPM_TaskReadyToStart _ReadyToStart _ReadyToStart.TaskUUID = Task.TaskUUID
[1..1] I_Indicator _ReadyToStartText $projection.IsTaskReadyToStart = _ReadyToStartText.IndicatorValue
[1..1] I_PPM_TaskText _ProjectText _ProjectText.TaskUUID = ProjectSummaryTask.ProjectSummaryTaskUUID
[1..1] I_PPM_TaskText _TaskText _TaskText.TaskUUID = Task.TaskUUID
[0..1] I_UnitOfMeasure _RemainingWorkUnit _RemainingWorkUnit.UnitOfMeasure = $projection.RemainingWorkExtQuantityUnit

Annotations (13)

NameValueLevelField
EndUserText.label My Tasks view
VDM.viewType #COMPOSITE view
AbapCatalog.sqlViewName IPPMMYTSK view
AccessControl.authorizationCheck #PRIVILEGED_ONLY view
AccessControl.personalData.blocking #NOT_REQUIRED view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.serviceQuality #X view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.representativeKey TaskUUID view
UI.headerInfo.typeName Project Task view
UI.headerInfo.typeNamePlural Project Tasks view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view

Fields (35)

KeyFieldSource TableSource FieldDescription
KEY TaskUUID I_PPM_Task TaskUUID
ExternalId I_PPM_Task ExternalId
ProjectUUID I_PPM_ProjectSummaryTask ProjectUUID
ProjectSummaryTaskUUID I_PPM_ProjectSummaryTask ProjectSummaryTaskUUID
TaskProcessingStatus I_PPM_Task TaskProcessingStatus
CreatedByUser I_PPM_Task CreatedByUser
LastChangedByUser I_PPM_Task LastChangedByUser
MasterLanguage I_PPM_ProjectSummaryTask MasterLanguage
Project I_PPM_ProjectSummaryTask Project
ProjectName _ProjectText ObjectName
TaskName _TaskText ObjectName
ProjectNameUserLanguage I_PPM_Text ObjectName
ProjectNameMasterLanguage I_PPM_ProjectSummaryTask ProjectName
TaskNameUserLanguage I_PPM_Text ObjectName
TaskNameMasterLanguage I_PPM_Task TaskName
LatestFinishDateTime I_PPM_Task LatestFinishDate
LatestStartDateTime I_PPM_Task LatestStartDate
RemainingWorkExtQuantityUnit I_PPM_Task RemainingWorkExtQuantityUnit
IsTaskReadyToStart _ReadyToStart IsTaskReadyToStart
ActualStartDateTime I_PPM_Task ActualStartDate
CriticalityCode _Severity CriticalityCode
Severity _Severity Severity
PriorityCode
EPPMSettingsDefaultValue I_EPPMGlobalSetting EPPMSettingsDefaultValue
_CreatedByUser I_PPM_Task _CreatedByUser
_LastChangedByUser I_PPM_Task _LastChangedByUser
_PriorityText
_ProcessingStatus I_PPM_Task _ProcessingStatus
_Severity I_PPM_Task _Severity
_SeverityText
_ReadyToStart _ReadyToStart
_ReadyToStartText _ReadyToStartText
_RemainingWorkUnit _RemainingWorkUnit
UnitOfMeasure _RemainingWorkUnit UnitOfMeasure
_Text _RemainingWorkUnit _Text
@EndUserText.label: 'My Tasks'
@VDM.viewType: #COMPOSITE
@AbapCatalog.sqlViewName: 'IPPMMYTSK'
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY
@AccessControl.personalData.blocking: #NOT_REQUIRED
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType.serviceQuality: #X
@ObjectModel.usageType.sizeCategory:  #XL
@ObjectModel.usageType.dataClass:  #MIXED
@ObjectModel.representativeKey: 'TaskUUID'

@UI.headerInfo:{
  typeName:       'Project Task',
  typeNamePlural: 'Project Tasks'
}
@VDM.lifecycle.contract.type:  #SAP_INTERNAL_API

define view I_PPM_MyTask

  as select from P_PPM_DisBusinessPartnerForObj as BusinessPartnerForObject
    inner join            I_PPM_Task                     as Task                  on Task.TaskUUID = BusinessPartnerForObject.ReferencedObjectUUID
    inner join            I_PPM_ProjectSummaryTask       as ProjectSummaryTask    on ProjectSummaryTask.ProjectUUID = Task.ProjectUUID
    inner join            I_PPM_User                     as User                  on User.UserID = $session.user
    left outer join       I_PPM_Text                     as ProjectTextUserLang   on (
         ProjectTextUserLang.LanguageCode                                                                                    = $session.system_language
       )
                                                                                  and(
                                                                                    ProjectTextUserLang.ReferencedObjectUUID = ProjectSummaryTask.ProjectSummaryTaskUUID
                                                                                  )
//    left outer join       I_PPM_Text                     as ProjectTextMasterLang on (

//       ProjectTextMasterLang.LanguageCode                                                                                      = ProjectSummaryTask.MasterLanguage

//     )

//                                                                                  and(

//                                                                                    ProjectTextMasterLang.ReferencedObjectUUID = ProjectSummaryTask.ProjectSummaryTaskUUID

//                                                                                  )

    left outer join       I_PPM_Text                     as TaskTextUserLang      on (
            TaskTextUserLang.LanguageCode                                                                                 = $session.system_language
          )
                                                                                  and(
                                                                                    TaskTextUserLang.ReferencedObjectUUID = Task.TaskUUID
                                                                                  )
    left outer join I_EPPMGlobalSetting as _GlobalSetting on _GlobalSetting.EPPMUsageArea = '0007' and _GlobalSetting.EPPMGlobalSettingsCode = '0053'
//    left outer join       I_PPM_Text                     as _TaskTextMasterLang   on (

//         _TaskTextMasterLang.LanguageCode                                                                                    = ProjectSummaryTask.MasterLanguage

//       )

//                                                                                  and(

//                                                                                    _TaskTextMasterLang.ReferencedObjectUUID = Task.TaskUUID

//                                                                                  )


  association [1..1] to I_PPM_TaskReadyToStart as _ReadyToStart      on _ReadyToStart.TaskUUID = Task.TaskUUID
  association [1..1] to I_Indicator            as _ReadyToStartText  on $projection.IsTaskReadyToStart = _ReadyToStartText.IndicatorValue
  association [1..1] to I_PPM_TaskText         as _ProjectText       on _ProjectText.TaskUUID = ProjectSummaryTask.ProjectSummaryTaskUUID
  association [1..1] to I_PPM_TaskText         as _TaskText          on _TaskText.TaskUUID = Task.TaskUUID
  association [0..1] to I_UnitOfMeasure        as _RemainingWorkUnit on _RemainingWorkUnit.UnitOfMeasure = $projection.RemainingWorkExtQuantityUnit
{
  key Task.TaskUUID                                                                             as TaskUUID,
      Task.ExternalId                                                                           as ExternalId,
      ProjectSummaryTask.ProjectUUID                                                            as ProjectUUID,
      ProjectSummaryTask.ProjectSummaryTaskUUID                                                 as ProjectSummaryTaskUUID,
      Task.TaskProcessingStatus                                                                 as TaskProcessingStatus,
      Task.CreatedByUser                                                                        as CreatedByUser,
      Task.LastChangedByUser                                                                    as LastChangedByUser,
      ProjectSummaryTask.MasterLanguage                                                         as MasterLanguage,
      ProjectSummaryTask.Project                                                                as Project,
      _ProjectText.ObjectName                                                                   as ProjectName,
      _TaskText.ObjectName                                                                      as TaskName,
      ProjectTextUserLang.ObjectName                                                            as ProjectNameUserLanguage,
      ProjectSummaryTask.ProjectName                                                            as ProjectNameMasterLanguage,
      TaskTextUserLang.ObjectName                                                               as TaskNameUserLanguage,
      Task.TaskName                                                                             as TaskNameMasterLanguage,

      Task.LatestFinishDate                 as LatestFinishDateTime,  // this is wrong in C_PPM_MyTask!


      Task.LatestStartDate                  as LatestStartDateTime,   // this is wrong in C_PPM_MyTask!


      @DefaultAggregation: #NONE
      @Semantics.quantity.unitOfMeasure: 'RemainingWorkExtQuantityUnit'
// no cast accroding to DB-Tools, gicers ATC error, so hope the best

//      cast(

        unit_conversion(
          quantity => Task.RemainingWorkQuantityInSeconds,
          source_unit => cast('S' as abap.unit( 3 ) ),
          target_unit => Task.RemainingWorkExtQuantityUnit,
          error_handling => 'KEEP_UNCONVERTED' )                                                as RemainingWorkQuantity,
//       as abap.quan( 16, 2 ) )                                                                                                        as RemainingWorkQuantity,

      @Semantics.unitOfMeasure: true
      Task.RemainingWorkExtQuantityUnit,
      _ReadyToStart.IsTaskReadyToStart                                                          as IsTaskReadyToStart,
      Task.ActualStartDate                                                                      as ActualStartDateTime,
      _Severity.CriticalityCode,
      _Severity.Severity,
      Task._Priority.PriorityCode,
      _GlobalSetting.EPPMSettingsDefaultValue,
      Task._CreatedByUser,
      Task._LastChangedByUser,
      Task._Priority._Text                                                                      as _PriorityText,
      Task._ProcessingStatus,
      Task._Severity,
      Task._Severity._SeverityText                                                              as _SeverityText,
      _ReadyToStart,
      _ReadyToStartText,
      _RemainingWorkUnit,
      _RemainingWorkUnit.UnitOfMeasure,
      _RemainingWorkUnit._Text
}
where
        BusinessPartnerForObject.BusinessPartnerUUID = User.BusinessPartnerUUID
  and(
        Task.ObjectType                              =  'TPO'
    or  Task.ObjectType                              =  'TTO'
  )
  and(
        Task.EarliestStartDateTime                   >= 0
    and Task.EarliestFinishDateTime                  >= 0
  )
  and   Task.ProjectVersionNumber                    =  ' '
  and   Task.IsProjectMilestone                      <> 'X'
  and   Task.TaskParentProcessingStatus <> '21' // note_3328626

  and   Task.TaskParentProcessingStatus <> '41' // note_3385440