C_GrantWorkflowApprovalEmail is a Consumption CDS View that provides data about "Grant Details for Workflow Approval Email" in SAP S/4HANA. It reads from 1 data source (I_WorkflowTask) and exposes 19 fields with key field WorkflowTaskInternalID. Part of development package PSM_S4CO_ODATA_GM_WF.
@AbapCatalog.sqlViewName: 'IGMWFAPPREMAIL'
@AbapCatalog.compiler.compareFilter: true@AbapCatalog.preserveKey: true@AccessControl.authorizationCheck: #CHECK@AccessControl.personalData.blocking: #NOT_REQUIRED@EndUserText.label: 'Grant Details for Workflow Approval Email'
@VDM.viewType : #CONSUMPTION@ClientHandling.algorithm: #SESSION_VARIABLE@ObjectModel.usageType : {
serviceQuality: #D,
sizeCategory: #L,
dataClass: #TRANSACTIONAL
}@ObjectModel.supportedCapabilities: [ #OUTPUT_EMAIL_DATA_PROVIDER ]@Metadata.ignorePropagatedAnnotations:truedefineview C_GrantWorkflowApprovalEmail
asselectfrom I_WorkflowTask as _Workflowtask
leftouter to many join I_WorkflowTaskApplObject as _WorkflowTaskApplObject on _WorkflowTaskApplObject.WorkflowTaskInternalID = _Workflowtask.WorkflowTaskInternalID
and _WorkflowTaskApplObject.WorkflowObjectRole = '01'
leftouter to one join I_GrantCoreTP as _Grant on _Grant.GrantID = _WorkflowTaskApplObject.TechnicalWrkflwObject
leftouter to one join I_GrantBusinessPartnerStdVH as _BusinessPartner on _Grant.GranteeMgmtSponsor = _BusinessPartner.BusinessPartner
leftouter to one join I_GrantType as _GrantType on _Grant.GrantType = _GrantType.GrantType
leftouter to one join I_GrantLifecycleStatusStdVH as _LifecycleStatus on _Grant.GrantLifecycleStatus = _LifecycleStatus.SystemStatus
leftouter to one join I_WorkflowTaskApplObject as _WorkflowTaskApplObDecision on _WorkflowTaskApplObDecision.WorkflowTaskInternalID = _Workflowtask.WorkflowTaskInternalID
and _WorkflowTaskApplObDecision.WorkflowObjectRole = '99'
leftouter to one join I_WorkflowTask as _WorkflowtaskDecision on _WorkflowtaskDecision.WorkflowTaskInternalID = _WorkflowTaskApplObDecision.TechnicalWrkflwObject
and _WorkflowtaskDecision.WorkflowTaskStatus = 'COMPLETED'
leftouter to one join I_User as _User on _User.UserID = _WorkflowtaskDecision.WorkflowTaskCurrentUser
leftouter to one join I_WorkflowTaskResult as _WorkflowTaskResult on _WorkflowTaskResult.WorkflowInternalID = _Workflowtask.WorkflowTaskInternalID
and ( _WorkflowTaskResult.WorkflowTaskResult = 'APPROVED' or _WorkflowTaskResult.WorkflowTaskResult = 'REJECTED' )
{
key _Workflowtask.WorkflowTaskInternalID,
cast(substring(_WorkflowTaskApplObject.TechnicalWrkflwObject, 1 , 20 ) as gm_grant_nbr ) as GrantID,
_Grant._Text.GrantDescription as GrantDescription,
_Grant.CompanyCode as CompanyCode,
@Semantics.currencyCode: true
_Grant.GrantCurrency,
@Semantics.amount.currencyCode: 'GrantCurrency'
_Grant.GrantTotalAmountInGrantCrcy as GrantTotalAmountInGrantCrcy,
_Grant.CostCenter as CostCenter,
@Semantics.businessDate.from: true
_Grant.ValidityStartDate as ValidityStartDate,
@Semantics.businessDate.to: true
_Grant.ValidityEndDate as ValidityEndDate,
_Grant.GrantValidityPeriod as GrantValidityPeriod,
_Grant.GrantLifecycleStatus,
_LifecycleStatus._SystemStatusText[1:Language = $session.system_language].SystemStatusName as SystemStatusName,
_Grant.GranteeMgmtSponsor,
_BusinessPartner.BusinessPartnerName as BusinessPartnerName,
_Grant.GrantType,
_GrantType._GrantTypeText[1:Language = $session.system_language].GrantTypeDescription as GrantTypeDescription,
case _Workflowtask._WorkflowTaskResult.WorkflowTaskResult
when 'requestApproved' then 'Approved'
when 'requestRejected' then 'Rejected'
else _Workflowtask._WorkflowTaskResult.WorkflowTaskResult endas WorkflowTaskResult,
// cast(tstmp_to_dats( _Workflowtask.WrkflwTskCreationUTCDateTime, 'UTC', $session.client, 'NULL' ) as sww_lsd ) as GrantWrkflwTskCreationUTCDate,
// cast(tstmp_to_tims( _Workflowtask.WrkflwTskCreationUTCDateTime, 'UTC', $session.client, 'NULL' ) as sww_lst ) as GrantWrkflwTskCreationUTCTime,
// cast(tstmp_to_dats( _Workflowtask.WrkflwTskCompletionUTCDateTime, 'UTC', $session.client, 'NULL' ) as sww_led ) as GrantWrkflwTaskEndUTCDate,
// cast(tstmp_to_tims( _Workflowtask.WrkflwTskCompletionUTCDateTime, 'UTC', $session.client, 'NULL' ) as sww_let ) as GrantWrkflwTaskEndUTCTime,
cast(_User.UserDescription as mm_oa_user_fullname ) as UserDescription,
_WorkflowTaskResult.WorkflowTaskResultComment as WorkflowTaskResultComment,
_WorkflowtaskDecision.WorkflowTaskCurrentUser as WorkflowTaskCurrentUser
}
where
_Workflowtask.WorkflowTaskType = 'F'