P_PurchaseRequisitionWorkItem is a Composite CDS View that provides data about "Private View for Purchase Requistion Workitem" in SAP S/4HANA. It reads from 1 data source (I_WorkflowTask) and exposes 7 fields with key field WorkflowTaskInternalID. It has 1 association to related views. Part of development package VDM_MM_PUR_PR.
_WorkflowTaskApplObject.WorkflowTaskInternalID = $projection.WorkflowTaskInternalID association[1..1] to P_PURREQWRKITM_RECEPIENT as _recepient on _recepient.WorkflowTaskInternalID = $projection.WorkflowTaskInternalID and _recepient.WorkflowTaskRecipient = $session.user
@AbapCatalog.sqlViewName: 'PPURREQWI'
@AbapCatalog.compiler.compareFilter: true@AbapCatalog.preserveKey: true@AccessControl.authorizationCheck: #NOT_REQUIRED@VDM.viewType: #COMPOSITE@ObjectModel.usageType.serviceQuality: #D@ObjectModel.usageType.sizeCategory: #L@ObjectModel.usageType.dataClass: #MIXED@VDM.private: true//@EndUserText.label: 'View for Purchase Requistion Workitem'
defineview P_PurchaseRequisitionWorkItem asselectfrom I_WorkflowTask
association [1..1] to I_WorkflowTaskApplObject as _WorkflowTaskApplObject
on _WorkflowTaskApplObject.WorkflowTaskInternalID = $projection.WorkflowTaskInternalID
association[1..1] to P_PURREQWRKITM_RECEPIENT as _recepient
on _recepient.WorkflowTaskInternalID = $projection.WorkflowTaskInternalID
and _recepient.WorkflowTaskRecipient = $session.user
{
key WorkflowTaskInternalID,
case _WorkflowTaskApplObject.SAPBusinessObjectNodeKey1
when ''
thencast(substring(_WorkflowTaskApplObject.TechnicalWrkflwObject, 1 , 10) as banfn)
elsecast(_WorkflowTaskApplObject.SAPBusinessObjectNodeKey1 as banfn)
endas PurchaseRequisition,
case _WorkflowTaskApplObject.SAPBusinessObjectNodeKey2
when ''
thencast(substring(_WorkflowTaskApplObject.TechnicalWrkflwObject, 11 , 15) as bnfpo)
elsecast(_WorkflowTaskApplObject.SAPBusinessObjectNodeKey2 as bnfpo)
endas PurchaseRequisitionItem,
case _WorkflowTaskApplObject.TechnicalWrkflwObjectType
when 'BUS2105001'
thencast('X' as boolean)
when 'CL_MM_PUR_WF_OBJECT_PR'
thencast('X' as boolean)
when 'CL_MM_PUR_WF_OBJECT_CPR'
thencast('X' as boolean)
elsecast(' ' as boolean)
endas PurReqnHdrWrkflwApprovalIsActv,
case _WorkflowTaskApplObject.TechnicalWrkflwObjectType
when 'BUS2009001'
thencast('X' as boolean)
when 'CL_MM_PUR_WF_OBJECT_PR_ITEM'
thencast('X' as boolean)
when 'CL_MM_PUR_WF_OBJECT_CPR_ITM'
thencast('X' as boolean)
elsecast('' as boolean)
endas PurReqnItmWrkflwApprvlIsActv,
_WorkflowTaskApplObject.TechnicalWrkflwObjectType as TechnicalWrkflwObjectType,
_WorkflowTaskApplObject.TechnicalWrkflwObject as TechnicalWrkflwObject,
// case// //Assigned User (within the same team)
// when _TaskRecipient[1:WorkflowTaskRecipient = $session.user
// and WorkflowTaskSubstitutedUser = '' ].WorkflowTaskRecipient <> ''
// then _TaskRecipient[1:WorkflowTaskRecipient = $session.user
// and WorkflowTaskSubstitutedUser = '' ].WorkflowTaskRecipient
//
// //Substitute user (from different team)
// when _TaskRecipient[1:WorkflowTaskRecipient = $session.user
// and WorkflowTaskSubstitutedUser <> '' ].WorkflowTaskRecipient <> ''
// then _TaskRecipient[1:WorkflowTaskRecipient = $session.user
// and WorkflowTaskSubstitutedUser <> '' ].WorkflowTaskRecipient
//
// //Normal Scenario
// else _TaskRecipient[1:WorkflowTaskRecipient = $session.user
// and WorkflowTaskSubstitutedUser = '' ].WorkflowTaskRecipient
//
// endas WorkflowTaskRecipient,
_recepient.WorkflowTaskRecipient as WorkflowTaskRecipient,
WorkflowTaskType,
WorkflowTaskStatus,
_TaskRecipient
}
where ( _WorkflowTaskApplObject.TechnicalWrkflwObjectType = 'BUS2009001'or
_WorkflowTaskApplObject.TechnicalWrkflwObjectType = 'BUS2105001' or
_WorkflowTaskApplObject.TechnicalWrkflwObjectType = 'CL_MM_PUR_WF_OBJECT_CPR'or
_WorkflowTaskApplObject.TechnicalWrkflwObjectType = 'CL_MM_PUR_WF_OBJECT_CPR_ITM' or
_WorkflowTaskApplObject.TechnicalWrkflwObjectType = 'CL_MM_PUR_WF_OBJECT_PR'or
_WorkflowTaskApplObject.TechnicalWrkflwObjectType = 'CL_MM_PUR_WF_OBJECT_PR_ITEM' ) and
WorkflowTaskType = 'W' and
_WorkflowTaskApplObject.WorkflowObjectRole = '01' and
( WorkflowTaskStatus = 'READY' or WorkflowTaskStatus = 'SELECTED' )