I_MDGovChgReqMappgTopWrkflw

DDL: I_MDGOVCHGREQMAPPGTOPWRKFLW SQL: IMDGCRWFMAPPG Type: view BASIC

Mapping From Top Workitem to CR

I_MDGovChgReqMappgTopWrkflw is a Basic CDS View that provides data about "Mapping From Top Workitem to CR" in SAP S/4HANA. It reads from 2 data sources (usmd2400, I_WorkflowTask) and exposes 20 fields with key field WorkflowTaskInternalID. It has 2 associations to related views.

Data Sources (2)

SourceAliasJoin Type
usmd2400 _cr_top_wi from
I_WorkflowTask wi inner

Associations (2)

CardinalityTargetAliasCondition
[0..1] I_CalendarDate _ChgReqCreationDate $projection.MDGovChgReqWrkflwTskCrtnDte = _ChgReqCreationDate.CalendarDate
[0..1] I_CalendarDate _ChgReqReleaseDate $projection.MDGovChgReqWrkflwTskCompltnDte = _ChgReqReleaseDate.CalendarDate

Annotations (10)

NameValueLevelField
AbapCatalog.sqlViewName IMDGCRWFMAPPG view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #PRIVILEGED_ONLY view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #C view
VDM.viewType #BASIC view
EndUserText.label Mapping From Top Workitem to CR view

Fields (20)

KeyFieldSource TableSource FieldDescription
KEY WorkflowTaskInternalID I_WorkflowTask WorkflowTaskInternalID
WorkflowTaskDefinition I_WorkflowTask WorkflowTaskDefinition
TopLevelWorkflowTask I_WorkflowTask TopLevelWorkflowTask
ParentWorkflowTask I_WorkflowTask ParentWorkflowTask
TopLevelWorkflowTaskDefinition I_WorkflowTask TopLevelWorkflowTaskDefinition
WorkflowTaskType I_WorkflowTask WorkflowTaskType
WorkflowTaskStatus
clientNULLasMDGovChgReqWrkflwTskCrtnDte
numc4asMDGovChgReqWrkflwTskCrtnYear Work Item Created Year
numc4asMDGovWrkflwTskCompltnYear Work Item Completed Year
numc2asMDGovChgReqWrkflwTskCrtnMonth Work Item Created Month
clientNULLasMDGovChgReqWrkflwTskCrtnTme Work Item Creation Time
WrkflwTskCreationUTCDateTime I_WorkflowTask WrkflwTskCreationUTCDateTime
WrkflwTskCompletionUTCDateTime I_WorkflowTask WrkflwTskCompletionUTCDateTime
WorkflowTaskCurrentUser I_WorkflowTask WorkflowTaskCurrentUser
WorkflowTaskCreatedByUser I_WorkflowTask WorkflowTaskCreatedByUser
MDGovChangeRequest usmd2400 usmd_crequest
MDGovChgReqNmbrOfWrkflwTsks
_ChgReqCreationDate _ChgReqCreationDate
_ChgReqReleaseDate _ChgReqReleaseDate
@AbapCatalog.sqlViewName: 'IMDGCRWFMAPPG'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType: { sizeCategory: #XL, dataClass: #TRANSACTIONAL, serviceQuality: #C }
@VDM.viewType: #BASIC
@EndUserText.label: 'Mapping From Top Workitem to CR'
define view I_MDGovChgReqMappgTopWrkflw
  as select from usmd2400       as _cr_top_wi
    inner join   I_WorkflowTask as wi on  _cr_top_wi.top_wi_id = TopLevelWorkflowTask
                                      and wi.WorkflowTaskType  = 'W' //dialog task

  association [0..1] to I_CalendarDate as _ChgReqCreationDate   on $projection.MDGovChgReqWrkflwTskCrtnDte = _ChgReqCreationDate.CalendarDate
  association [0..1] to I_CalendarDate as _ChgReqReleaseDate    on $projection.MDGovChgReqWrkflwTskCompltnDte = _ChgReqReleaseDate.CalendarDate
{
  key wi.WorkflowTaskInternalID,
      wi.WorkflowTaskDefinition,
      wi.TopLevelWorkflowTask,
      wi.ParentWorkflowTask,
      wi.TopLevelWorkflowTaskDefinition,
      wi.WorkflowTaskType,
      cast (wi.WorkflowTaskStatus as mdg_ana_wrkflw_status ) as WorkflowTaskStatus,
      @Semantics.systemDate.createdAt: true
      @EndUserText: { label: 'Work Item Created On', quickInfo: 'Work Item Created On' }
      tstmp_to_dats( WrkflwTskCreationUTCDateTime,
                     abap_system_timezone( $session.client, 'NULL' ),
                     $session.client,
                     'NULL' )                                as MDGovChgReqWrkflwTskCrtnDte,

      @EndUserText: { label: 'Work Item Completed On', quickInfo: 'Work Item Completed On' }
      tstmp_to_dats( WrkflwTskCompletionUTCDateTime,
                     abap_system_timezone( $session.client, 'NULL' ),
                     $session.client,
                     'NULL' )                                as MDGovChgReqWrkflwTskCompltnDte,
      @EndUserText.label: 'Work Item Created Year'
      cast(substring( tstmp_to_dats( WrkflwTskCreationUTCDateTime,
                      abap_system_timezone( $session.client, 'NULL' ),
                      $session.client,
                      'NULL' ), 1, 4)  as abap.numc( 4 ) )   as MDGovChgReqWrkflwTskCrtnYear,
      @EndUserText.label: 'Work Item Completed Year'
      cast(substring( tstmp_to_dats( WrkflwTskCompletionUTCDateTime,
                      abap_system_timezone( $session.client, 'NULL' ),
                      $session.client,
                      'NULL' ), 1, 4) as abap.numc( 4 ) )    as MDGovWrkflwTskCompltnYear,
      @EndUserText.label: 'Work Item Completed Month'
      cast(substring( tstmp_to_dats( WrkflwTskCompletionUTCDateTime,
                abap_system_timezone( $session.client, 'NULL' ),
                $session.client,
      /*.Format of MDGovWrkflwTskCompltnMonth is YYYYMM.*/
            'NULL' ), 1, 6)  as vdm_yearmonth)               as MDGovWrkflwTskCompltnMonth,

      /*.Format of MDGovWrkflwTskCrtnMonth will be MM. As this is used already in OP 2020 app in this format*/
      @EndUserText.label: 'Work Item Created Month'
      cast( substring( tstmp_to_dats( WrkflwTskCreationUTCDateTime,
                abap_system_timezone( $session.client, 'NULL' ),
                $session.client,
            'NULL' ), 5, 2)  as abap.numc( 2 ) )             as MDGovChgReqWrkflwTskCrtnMonth,


      @EndUserText.label: 'Work Item Creation Time'
      tstmp_to_tims( WrkflwTskCreationUTCDateTime,
                abap_system_timezone( $session.client, 'NULL' ),
                $session.client,
            'NULL' )                                         as MDGovChgReqWrkflwTskCrtnTme,

      @EndUserText.label: 'Work Item Completion Time'
      tstmp_to_tims( WrkflwTskCompletionUTCDateTime,
                abap_system_timezone( $session.client, 'NULL' ),
                $session.client,
            'NULL' )                                         as MDGovChgReqWrkflwTskCompltnTme,

      wi.WrkflwTskCreationUTCDateTime,
      wi.WrkflwTskCompletionUTCDateTime,
      wi.WorkflowTaskCurrentUser,
      wi.WorkflowTaskCreatedByUser,
      _cr_top_wi.usmd_crequest                               as MDGovChangeRequest,

      cast (1 as abap.int4 )                                 as MDGovChgReqNmbrOfWrkflwTsks,
      case //:P_MDGovChgReqWrkflwScen when 'C'  then

        when  WrkflwTskCompletionUTCDateTime is not initial then
            division(tstmp_seconds_between(WrkflwTskCreationUTCDateTime, WrkflwTskCompletionUTCDateTime, 'INITIAL'), 3600 * 24, 1)
      else
          division(tstmp_seconds_between(WrkflwTskCreationUTCDateTime,tstmp_current_utctimestamp(), 'INITIAL'), 3600 * 24, 1)
      end                                                    as MDGovWrkflwTskAvgProcgDurn,

      case //:P_MDGovChgReqWrkflwScen when 'C'  then

      when  WrkflwTskCompletionUTCDateTime is not initial then
            division(tstmp_seconds_between(WrkflwTskCreationUTCDateTime, WrkflwTskCompletionUTCDateTime, 'INITIAL'), 3600, 1)
      else
          division(tstmp_seconds_between(WrkflwTskCreationUTCDateTime,tstmp_current_utctimestamp(), 'INITIAL'), 3600, 1)
      end                                                    as MDGovWrkflwTskAvgProcgHrs,

      case //:P_MDGovChgReqWrkflwScen when 'C'  then

      when  WrkflwTskCompletionUTCDateTime is not initial then
            division(tstmp_seconds_between(WrkflwTskCreationUTCDateTime, WrkflwTskCompletionUTCDateTime, 'INITIAL'), 60, 1)
      else
          division(tstmp_seconds_between(WrkflwTskCreationUTCDateTime,tstmp_current_utctimestamp(), 'INITIAL'), 60, 1)
      end                                                    as MDGovWrkflwTskAvgProcgMins,
      //Associations

      _ChgReqCreationDate,
      _ChgReqReleaseDate
}