C_PurContrApprovalEmail

DDL: C_PURCONTRAPPROVALEMAIL SQL: CPURCONTRAPREML Type: view CONSUMPTION

Purchase Contract Details for Workflow Approval Email

C_PurContrApprovalEmail is a Consumption CDS View that provides data about "Purchase Contract 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 CPURCONTRAPREML view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #NOT_REQUIRED view
EndUserText.label Purchase Contract 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
PurchaseContract
ActivePurchasingDocument _PurchaseContract ActivePurchasingDocument
PurchaseContractType _PurchaseContract PurchasingDocumentType
PurchasingDocumentTypeName
DocumentCurrency _PurchaseContract DocumentCurrency
PurContrWrkflwTskCrtnUTCDte
PurContrWrkflwTskCrtnUTCTme
PurContrWrkflwTaskEndUTCDate
PurContrWrkflwTaskEndUTCTime
PurContrWrkflwTskDuUTCDte
PurContrWrkflwTskDuUTCTme
WorkflowTaskResultReasonText
Supplier _PurchaseContract Supplier
SupplierName _Supplier SupplierName
CreatedByUserDescription _User UserDescription
ApprovedByUserFullName
@AbapCatalog.sqlViewName: 'CPURCONTRAPREML'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #NOT_REQUIRED
@EndUserText.label: 'Purchase Contract 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_PurContrApprovalEmail
  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   = 'PurchaseContract'
                                                                                and _WorkflowTaskApplObject.TechnicalWrkflwObjectCategory = 'CL'

   // left outer to one join  I_PurchaseContractAPI01  as _PurchaseContract       on _PurchaseContract.PurchaseContract = _WorkflowTaskApplObject.TechnicalWrkflwObject

    left outer to one join  R_PurchasingDocument     as _PurchaseContract       on _PurchaseContract.PurchasingDocument = _WorkflowTaskApplObject.TechnicalWrkflwObject
                                                                                and _PurchaseContract.PurchasingDocumentCategory = 'K'

    left outer to one join  I_PurchasingDocumentType as _PurDocType             on  _PurDocType.PurchasingDocumentType     = _PurchaseContract.PurchasingDocumentType
                                                                                and _PurDocType.PurchasingDocumentCategory = 'K'

    left outer to one join  I_User                   as _User                   on _User.UserID = _PurchaseContract.CreatedByUser
    left outer to one join  I_Supplier               as _Supplier               on _Supplier.Supplier = _PurchaseContract.Supplier

    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'                             //3464975

                                                                                      )
    left outer to one join  I_User                       as _ApproverUser       on _ApproverUser.UserID = _WorkitemDet.WorkflowTaskCurrentUser

{
  key _Workflowtask.WorkflowTaskInternalID,

      cast(substring(_WorkflowTaskApplObject.TechnicalWrkflwObject, 1 , 10 ) as ebeln )                             as PurchaseContract,

      _PurchaseContract.ActivePurchasingDocument as ActivePurchasingDocument,

      _PurchaseContract.PurchasingDocumentType as PurchaseContractType,

      _PurDocType._Text[1:Language=$session.system_language].PurchasingDocumentTypeName,

      @Semantics.currencyCode: true
      _PurchaseContract.DocumentCurrency,
      //@Semantics.amount.currencyCode: 'DocumentCurrency'

      //_PurchaseContract.PurchaseContractTargetAmount,


      case _Workflowtask._WorkflowTaskResult.WorkflowTaskResult
      when 'requestApproved' then 'Approved'
      when 'requestRejected' then 'Rejected'
      else _Workflowtask._WorkflowTaskResult.WorkflowTaskResult end                                                   as WorkflowTaskResult,
      cast(tstmp_to_dats( _Workflowtask.WrkflwTskCreationUTCDateTime, 'UTC', $session.client, 'NULL' ) as sww_lsd )   as PurContrWrkflwTskCrtnUTCDte,
      cast(tstmp_to_tims( _Workflowtask.WrkflwTskCreationUTCDateTime, 'UTC', $session.client, 'NULL' ) as sww_lst )   as PurContrWrkflwTskCrtnUTCTme,

      cast(tstmp_to_dats( _Workflowtask.WrkflwTskCompletionUTCDateTime, 'UTC', $session.client, 'NULL' ) as sww_led ) as PurContrWrkflwTaskEndUTCDate,
      cast(tstmp_to_tims( _Workflowtask.WrkflwTskCompletionUTCDateTime, 'UTC', $session.client, 'NULL' ) as sww_let ) as PurContrWrkflwTaskEndUTCTime,

      cast(tstmp_to_dats( _Workflowtask._TaskDueDate.WorkflowTaskDueUTCDateTime, 'UTC', $session.client, 'NULL' ) as sww_led )    as PurContrWrkflwTskDuUTCDte,
      cast(tstmp_to_tims( _Workflowtask._TaskDueDate.WorkflowTaskDueUTCDateTime, 'UTC', $session.client, 'NULL' ) as sww_let )    as PurContrWrkflwTskDuUTCTme,

      _Workflowtask._WorkflowTaskResult._WorkflowTaskResultReason._WorkflowTaskResultReasonText[1:Language=$session.system_language].WorkflowTaskResultReasonText,

      _PurchaseContract.Supplier,
      _Supplier.SupplierName,
      _User.UserDescription                                                                                           as CreatedByUserDescription,
      cast(_ApproverUser.UserDescription as mm_oa_user_fullname )                                                     as ApprovedByUserFullName

}
where
  _Workflowtask.WorkflowTaskType = 'F'