Purchase Order Details for Workflow Approval Email
C_PurOrdWorkflowApprovalEmail is a Consumption CDS View that provides data about "Purchase Order Details for Workflow Approval Email" in SAP S/4HANA. It reads from 4 data sources (I_WorkflowTask, I_WorkflowTaskApplObject, P_PurchasingLastWorkflowStep, I_WorkflowTask) and exposes 17 fields with key field WorkflowTaskInternalID.
@AbapCatalog.sqlViewName: 'CMMPURPOWFLAPPR'
@AbapCatalog.compiler.compareFilter: true@AbapCatalog.preserveKey: true@AccessControl.authorizationCheck: #CHECK@AccessControl.personalData.blocking: #NOT_REQUIRED@EndUserText.label: 'Purchase Order 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_PurOrdWorkflowApprovalEmail
asselectfrom I_WorkflowTask as _Workflowtask
innerjoin I_WorkflowTaskApplObject as _WorkflowTaskApplObject on _WorkflowTaskApplObject.WorkflowTaskInternalID = _Workflowtask.WorkflowTaskInternalID
and _WorkflowTaskApplObject.WorkflowObjectRole = '01'
and _WorkflowTaskApplObject.SAPObjectNodeRepresentation = 'PurchaseOrder'
and _WorkflowTaskApplObject.TechnicalWrkflwObjectCategory = 'CL'
leftouter to one join I_PurchaseOrderAPI01 as _PurchaseOrder on _PurchaseOrder.PurchaseOrder = _WorkflowTaskApplObject.TechnicalWrkflwObject
leftouter to one join I_PurchasingDocumentType as _PurDocType on _PurDocType.PurchasingDocumentType = _PurchaseOrder.PurchaseOrderType
and _PurDocType.PurchasingDocumentCategory = 'F'
leftouter to one join I_PurchaseOrderNetAmount as _PurchaseOrderNetAmount on _PurchaseOrderNetAmount.PurchaseOrder = _PurchaseOrder.PurchaseOrder
leftouter to one join I_User as _User on _User.UserID = _PurchaseOrder.CreatedByUser
leftouter to one join I_Supplier as _Supplier on _Supplier.Supplier = _PurchaseOrder.Supplier
leftouter to one join R_PurchaseOrderPlainLongText as _PurchaseOrderPlainLongText on _PurchaseOrderPlainLongText.PurchaseOrder = _PurchaseOrder.PurchaseOrder
and _PurchaseOrderPlainLongText.Language = _PurchaseOrder.Language
and _PurchaseOrderPlainLongText.TextObjectType = 'F01'
leftouter to one join R_PurchaseOrderPlainLongText as _PurchaseOrderNoteLongText on _PurchaseOrderNoteLongText.PurchaseOrder = _PurchaseOrder.PurchaseOrder
and _PurchaseOrderNoteLongText.Language = _PurchaseOrder.Language
and _PurchaseOrderNoteLongText.TextObjectType = 'F02'
innerjoin P_PurchasingLastWorkflowStep as _WorkitemData on _WorkitemData.TopLevelWorkflowTask = _Workflowtask.TopLevelWorkflowTask
innerjoin I_WorkflowTask as _WorkitemDet on _WorkitemDet.WrkflwTskCompletionUTCDateTime = _WorkitemData.MaxWrkflwTskCompDateTime
and _WorkitemDet.TopLevelWorkflowTask = _WorkitemData.TopLevelWorkflowTask
and (
_WorkitemDet.WorkflowTaskType = 'W'
or _WorkitemDet.WorkflowTaskType = 'B'
)
leftouter to one join I_User as _ApproverUser on _ApproverUser.UserID = _WorkitemDet.WorkflowTaskCurrentUser
leftouter to one join I_WorkflowTaskResultComment as _WorkflowTaskResultComment on _WorkflowTaskResultComment.WorkflowTaskInternalID = _WorkitemDet.WorkflowTaskInternalID
// leftouter to one join SWFC_00800238(wf_id : WorkflowTaskInternalID) as _WorkflowContainer on _WorkflowContainer.WorkflowId = _Workflowtask.WorkflowTaskInternalID
{
key _Workflowtask.WorkflowTaskInternalID,
cast(substring(_WorkflowTaskApplObject.TechnicalWrkflwObject, 1 , 10 ) as ebeln ) as PurchaseOrder,
_PurchaseOrder.PurchaseOrderType,
_PurDocType._Text[1:Language=$session.system_language].PurchasingDocumentTypeName,
@Semantics.currencyCode: true
_PurchaseOrder.DocumentCurrency,
@Semantics.amount.currencyCode: 'DocumentCurrency'
cast((_PurchaseOrderNetAmount.PurchaseOrderNetAmount) as mm_pur_order_tot_net_amount preserving type ) as PurchaseOrderNetAmount,
case _WorkitemDet.WorkflowTaskType
when 'W' thencase _Workflowtask._WorkflowTaskResult.WorkflowTaskResult
when 'requestApproved' then 'Approved'
when 'requestRejected' then 'Rejected'
else _Workflowtask._WorkflowTaskResult.WorkflowTaskResult endwhen 'B' then 'Automatically Approved'
else _Workflowtask._WorkflowTaskResult.WorkflowTaskResult endas WorkflowTaskResult,
cast(tstmp_to_dats( _Workflowtask.WrkflwTskCreationUTCDateTime, 'UTC', $session.client, 'NULL' ) as sww_lsd ) as PurOrdWrkflwTskCreationUTCDate,
cast(tstmp_to_tims( _Workflowtask.WrkflwTskCreationUTCDateTime, 'UTC', $session.client, 'NULL' ) as sww_lst ) as PurOrdWrkflwTskCreationUTCTime,
cast(tstmp_to_dats( _Workflowtask.WrkflwTskCompletionUTCDateTime, 'UTC', $session.client, 'NULL' ) as sww_led ) as PurOrdWrkflwTaskEndUTCDate,
cast(tstmp_to_tims( _Workflowtask.WrkflwTskCompletionUTCDateTime, 'UTC', $session.client, 'NULL' ) as sww_let ) as PurOrdWrkflwTaskEndUTCTime,
_PurchaseOrder.Supplier,
cast(_User.UserDescription as mm_oa_user_fullname ) as CreatedByUserName,
_Supplier.SupplierName,
_PurchaseOrderPlainLongText.PlainLongText as POHeaderTextPlainLongText,
_PurchaseOrderNoteLongText.PlainLongText as POHeaderNotePlainLongText,
_Workflowtask._WorkflowTaskResult._WorkflowTaskResultReason._WorkflowTaskResultReasonText[1:Language=$session.system_language].WorkflowTaskResultReasonText,
case _WorkitemDet.WorkflowTaskType
when 'B' then 'Automatically Approved'
elsecast(_ApproverUser.UserDescription as mm_oa_user_fullname ) endas ApprovedByUserFullName,
_WorkflowTaskResultComment.WorkflowTaskResultComment as WorkflowTaskResultComment
}
where
_Workflowtask.WorkflowTaskType = 'F'