P_PPM_TaskReadyToStart is a Composite CDS View in SAP S/4HANA. It reads from 2 data sources (P_PPM_SuccessorTskReadyToStart, I_PPM_Task) and exposes 2 fields with key field TaskUUID.
@VDM.viewType: #COMPOSITE@VDM.private: true@AbapCatalog.sqlViewName: 'PPPMTSKRDYTOST'
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY@ClientHandling.algorithm: #SESSION_VARIABLE@ObjectModel.usageType.serviceQuality: #X@ObjectModel.usageType.sizeCategory: #L@ObjectModel.usageType.dataClass: #MIXED@ObjectModel.representativeKey: 'TaskUUID'
/* Specification: 1 record is returned for every task */defineview P_PPM_TaskReadyToStart asselectfrom I_PPM_Task as Task
// A task is ready to start if it has no predecessor
leftouterjoin P_PPM_SuccessorTskReadyToStart as SuccessorReadyToWork
on Task.TaskUUID = SuccessorReadyToWork.SuccessorTaskUUID
/* Orwhen defined as successor in relationships, the relation shows that all its predecessors are in states
that enable the start of the successor *//* leftouterjoin P_PPM_TaskNotReadyToStart as SuccessorNotReadyToWork
on Task.TaskUUID = SuccessorNotReadyToWork.SuccessorTaskUUID */
{
key Task.TaskUUID,
Task.ExternalId as Task,
cast ( case// Task has no predeccessors which blocks its start
//when SuccessorNotReadyToWork.SuccessorTaskUUID isnullthenwhen SuccessorReadyToWork.IsTaskReadyToStart = 'X' thencase// check status 'released'
when Task.TaskProcessingStatus = '10' or Task.TaskProcessingStatus = '11' then
'X'
// check status 'blocked'
/* when Task.TaskProcessingStatus = '20' or Task.TaskProcessingStatus = '21' then
' ' */else
' '
endwhen SuccessorReadyToWork.SuccessorTaskUUID isnotnulland SuccessorReadyToWork.IsTaskReadyToStart = ' ' then
' '
when Task.TaskProcessingStatus = '10' or Task.TaskProcessingStatus = '11' then
'X'
else// Task has at least 1 predecessor not ready to start
' '
endas xfeld preserving type ) as IsTaskReadyToStart
}