C_PurOrdWorkflowApprovalEmail

DDL: C_PURORDWORKFLOWAPPROVALEMAIL SQL: CMMPURPOWFLAPPR Type: view CONSUMPTION

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.

Data Sources (4)

SourceAliasJoin Type
I_WorkflowTask _Workflowtask from
I_WorkflowTaskApplObject _WorkflowTaskApplObject inner
P_PurchasingLastWorkflowStep _WorkitemData inner
I_WorkflowTask _WorkitemDet inner

Annotations (13)

NameValueLevelField
AbapCatalog.sqlViewName CMMPURPOWFLAPPR view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #NOT_REQUIRED view
EndUserText.label Purchase Order Details for Workflow Approval Email view
VDM.viewType #CONSUMPTION view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.supportedCapabilities #OUTPUT_EMAIL_DATA_PROVIDER view
Metadata.ignorePropagatedAnnotations true view

Fields (17)

KeyFieldSource TableSource FieldDescription
KEY WorkflowTaskInternalID I_WorkflowTask WorkflowTaskInternalID
PurchaseOrder
PurchaseOrderType _PurchaseOrder PurchaseOrderType
PurchasingDocumentTypeName
DocumentCurrency _PurchaseOrder DocumentCurrency
PurchaseOrderNetAmount
PurOrdWrkflwTskCreationUTCDate
PurOrdWrkflwTskCreationUTCTime
PurOrdWrkflwTaskEndUTCDate
PurOrdWrkflwTaskEndUTCTime
Supplier _PurchaseOrder Supplier
CreatedByUserName
SupplierName _Supplier SupplierName
POHeaderTextPlainLongText _PurchaseOrderPlainLongText PlainLongText
POHeaderNotePlainLongText _PurchaseOrderNoteLongText PlainLongText
WorkflowTaskResultReasonText
WorkflowTaskResultComment _WorkflowTaskResultComment WorkflowTaskResultComment
@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:true

define view C_PurOrdWorkflowApprovalEmail
  as select from           I_WorkflowTask               as _Workflowtask

    inner join             I_WorkflowTaskApplObject     as _WorkflowTaskApplObject     on  _WorkflowTaskApplObject.WorkflowTaskInternalID        = _Workflowtask.WorkflowTaskInternalID
                                                                                       and _WorkflowTaskApplObject.WorkflowObjectRole            = '01'
                                                                                       and _WorkflowTaskApplObject.SAPObjectNodeRepresentation   = 'PurchaseOrder'
                                                                                       and _WorkflowTaskApplObject.TechnicalWrkflwObjectCategory = 'CL'

    left outer to one join I_PurchaseOrderAPI01         as _PurchaseOrder              on _PurchaseOrder.PurchaseOrder = _WorkflowTaskApplObject.TechnicalWrkflwObject

    left outer to one join I_PurchasingDocumentType     as _PurDocType                 on  _PurDocType.PurchasingDocumentType     = _PurchaseOrder.PurchaseOrderType
                                                                                       and _PurDocType.PurchasingDocumentCategory = 'F'

    left outer to one join I_PurchaseOrderNetAmount     as _PurchaseOrderNetAmount     on _PurchaseOrderNetAmount.PurchaseOrder = _PurchaseOrder.PurchaseOrder

    left outer to one join I_User                       as _User                       on _User.UserID = _PurchaseOrder.CreatedByUser
    left outer to one join I_Supplier                   as _Supplier                   on _Supplier.Supplier = _PurchaseOrder.Supplier
    left outer to one join R_PurchaseOrderPlainLongText as _PurchaseOrderPlainLongText on  _PurchaseOrderPlainLongText.PurchaseOrder  = _PurchaseOrder.PurchaseOrder
                                                                                       and _PurchaseOrderPlainLongText.Language       = _PurchaseOrder.Language
                                                                                       and _PurchaseOrderPlainLongText.TextObjectType = 'F01'

    left outer to one join R_PurchaseOrderPlainLongText as _PurchaseOrderNoteLongText  on  _PurchaseOrderNoteLongText.PurchaseOrder  = _PurchaseOrder.PurchaseOrder
                                                                                       and _PurchaseOrderNoteLongText.Language       = _PurchaseOrder.Language
                                                                                       and _PurchaseOrderNoteLongText.TextObjectType = 'F02'
    inner join             P_PurchasingLastWorkflowStep as _WorkitemData               on _WorkitemData.TopLevelWorkflowTask = _Workflowtask.TopLevelWorkflowTask
    inner join             I_WorkflowTask               as _WorkitemDet                on  _WorkitemDet.WrkflwTskCompletionUTCDateTime = _WorkitemData.MaxWrkflwTskCompDateTime
                                                                                       and _WorkitemDet.TopLevelWorkflowTask           = _WorkitemData.TopLevelWorkflowTask
                                                                                       and (
                                                                                          _WorkitemDet.WorkflowTaskType                = 'W'
                                                                                          or _WorkitemDet.WorkflowTaskType             = 'B'
                                                                                        )
    left outer to one join I_User                       as _ApproverUser               on _ApproverUser.UserID = _WorkitemDet.WorkflowTaskCurrentUser
    left outer to one join I_WorkflowTaskResultComment  as _WorkflowTaskResultComment  on _WorkflowTaskResultComment.WorkflowTaskInternalID = _WorkitemDet.WorkflowTaskInternalID
    
   // left outer 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' then case _Workflowtask._WorkflowTaskResult.WorkflowTaskResult
                    when 'requestApproved' then 'Approved'
                    when 'requestRejected' then 'Rejected'
                    else _Workflowtask._WorkflowTaskResult.WorkflowTaskResult end
      when 'B' then 'Automatically Approved'
      else _Workflowtask._WorkflowTaskResult.WorkflowTaskResult end                                                   as 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'
      else cast(_ApproverUser.UserDescription as mm_oa_user_fullname )   end                                          as ApprovedByUserFullName,

      _WorkflowTaskResultComment.WorkflowTaskResultComment                                                            as WorkflowTaskResultComment
}
where
  _Workflowtask.WorkflowTaskType = 'F'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_PURCHASEORDERAPI01",
"I_PURCHASEORDERNETAMOUNT",
"I_PURCHASINGDOCUMENTTYPE",
"I_PURCHASINGDOCUMENTTYPETEXT",
"I_SUPPLIER",
"I_USER",
"I_WORKFLOWTASK",
"I_WORKFLOWTASKAPPLOBJECT",
"I_WORKFLOWTASKRESULT",
"I_WORKFLOWTASKRESULTCOMMENT",
"I_WORKFLOWTASKRESULTREASON",
"I_WORKFLOWTASKRESULTREASONTEXT",
"P_PURCHASINGLASTWORKFLOWSTEP",
"R_PURCHASEORDERPLAINLONGTEXT"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/