I_EHSTASKINSTANCE

CDS View

EHS Task Instance

I_EHSTASKINSTANCE is a CDS View in S/4HANA. EHS Task Instance. 3 CDS views read from this table.

CDS Views using this table (3)

ViewTypeJoinVDMDescription
C_EHSTaskInstance view from CONSUMPTION Consumption view for EHS Task Instance Dialog
I_EHSTaskDueDate view from COMPOSITE EHS Task Due Date
P_EHSTaskInstanceDueDate view from COMPOSITE
@AbapCatalog.sqlViewName: 'IEHSTASKINST'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey:true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #REQUIRED
@ClientHandling: {
  algorithm: #SESSION_VARIABLE
}
@EndUserText.label: 'EHS Task Instance'
// used for BOBF Master Data Object


// Begin Correction 21.12.2023 3415149

// ignore Data Aging

//@DataAging.noAgingRestriction:true

// End Correction 21.12.2023 3415149


@ObjectModel.usageType:{ serviceQuality: #D,
                         sizeCategory:  #XL,
                         dataClass: #MIXED }
@VDM.viewType: #COMPOSITE
define view I_EHSTaskInstance
  as select from I_EHSTaskPlannedInstance                 as  PlannedInstance
    left outer to one join P_EHSWorkflowHeader            as  WorkflowTask
                                                          on  PlannedInstance.WorkflowTaskInternalID    = WorkflowTask.WorkflowTaskInternalID
  association [0..1] to I_WorkflowTaskPriority            as  _TaskPriority
                                                          on  $projection.EHSTaskPriority               = _TaskPriority.WorkflowTaskPriority
  association [0..1] to I_WorkflowTaskStatus              as  _TaskStatus
                                                          on  $projection.WorkflowTaskStatus            = _TaskStatus.WorkflowTaskStatus
  association [0..*] to I_EHSTask                         as  _AllEHSTasks
                                                          on  $projection.WorkflowTaskInternalID        = _AllEHSTasks.TopLevelWorkflowTask
  association [0..*] to I_EHSTaskRelatedObject            as  _RelatedObjects
                                                          on  $projection.WorkflowTaskInternalID        = _RelatedObjects.WorkflowTaskInternalID
  association [0..*] to I_EHSTaskInstanceStep             as  _EHSTaskInstanceSteps
                                                          on  $projection.WorkflowTaskInternalID        = _EHSTaskInstanceSteps.WorkflowTaskInternalID
  association [1..1] to I_EHSTaskPlannedInstance          as  _PlannedInstance
                                                          on  $projection.EHSPlannedTaskUUID            = _PlannedInstance.EHSPlannedTaskUUID
  association [0..*] to I_OTRText                         as _OTRText on _OTRText.Language = $session.system_language
{
      @ObjectModel.text.element: 'WorkflowTaskName'
  key PlannedInstance.WorkflowTaskInternalID,

      PlannedInstance.EHSPlannedTaskUUID,
      PlannedInstance.EHSPlannedTaskID,

//    WORKFLOW INFORMATION

      WorkflowTask.WorkflowTaskStatus,
      WorkflowTask.WorkflowTaskDefinition,

      @ObjectModel.readOnly: true
      cast( case
        when WorkflowTask.WorkflowTaskStatus is null
        then 'X'
        else ''
      end
      as abap_boolean preserving type ) as EHSTaskHasNoWorkflow,   // workflow not found


//    HOST OBJECT

      _EHSTaskDefinition.EHSTaskHostObjectAdapterClass,
      _EHSTaskDefinition._EHSTaskAdapterClass.EHSSemanticObject,
      _EHSTaskDefinition.EHSTaskHostObjectInstance,
      _EHSTaskDefinition.EHSTaskHostObjectInstanceUUID,

//    TASK DEFINITION

      _EHSTaskDefinition.EHSTaskHostObjectAdapterClass as EHSTaskAdapterClass,
      _EHSTaskDefinition.EHSTaskWorkflowEvent as EHSTaskDefinitionType,
      @ObjectModel.foreignKey.association: '_EHSTaskDefinition'
      PlannedInstance.EHSTaskDefinitionUUID,
      _EHSTaskDefinition.EHSLocationUUID,
      PlannedInstance.EHSTaskAssignedBP,
      PlannedInstance.EHSTaskApprovingBP,

      PlannedInstance.EHSTaskAssignedLocRole,
      PlannedInstance.EHSTaskApproverLocRole,

      cast( case
        when WorkflowTask.WorkflowTaskPriority is not null
        then WorkflowTask.WorkflowTaskPriority
        else _EHSTaskDefinition.EHSTaskPriority
      end
      as sww_prio preserving type ) as EHSTaskPriority,   // if workflow not found - take Priority from the Task Definition instead


//    USERS

      PlannedInstance._EHSTaskOwnerUser.UserID as EHSTaskOwnerUser,
      PlannedInstance._EHSTaskInstceProcsrUser.UserID as EHSTaskInstanceProcessorUser,
      PlannedInstance._EHSTaskAssigneeUser.UserID as EHSTaskInstanceAssignedUser,

//    DATES

      PlannedInstance.EHSTaskTimeZone,
      PlannedInstance.EHSTaskStartDate,
      PlannedInstance.EHSTaskDueDate,
      PlannedInstance.EHSTaskInstceCompletionDate,
      WorkflowTask.WrkflwTskCompletionUTCDateTime,

//    TASK STATUS

      case WorkflowTask.WorkflowTaskStatus
        when 'ERROR' then cast( '01' as ehfnd_task_sorting_status_nc)
        when 'COMPLETED' then cast( '05' as ehfnd_task_sorting_status_nc)
        when 'CANCELLED' then cast( '06' as ehfnd_task_sorting_status_nc)
        when 'STARTED' then
          case
            when PlannedInstance.EHSTaskDueDate < tstmp_to_dats(tstmp_current_utctimestamp(), PlannedInstance.EHSTaskTimeZone, $session.client, 'INITIAL') then cast( '02' as ehfnd_task_sorting_status_nc)
            when PlannedInstance.EHSTaskDueDate >= tstmp_to_dats(tstmp_current_utctimestamp(), PlannedInstance.EHSTaskTimeZone, $session.client, 'INITIAL') then cast( '03' as ehfnd_task_sorting_status_nc)
            else cast( '00' as ehfnd_task_sorting_status_nc)
          end
        else cast( '00' as ehfnd_task_sorting_status_nc)
      end as EHSTaskStatus,

//    INSTANCE NAME - take the text in login language, if not available use the text in the header table

      @Semantics.text: true
      cast( case
        when WorkflowTask.WorkflowTaskName is not null
        then WorkflowTask.WorkflowTaskName
        else PlannedInstance._EHSTaskDefinition.EHSTaskTitle
      end
      as sww_witext preserving type ) as WorkflowTaskName,

      // ASSOCIATIONS

      _TaskPriority,
      _TaskStatus,
      _EHSTaskDefinition._EHSTaskDefinitionType,
      PlannedInstance._EHSTaskDefinition,
      _AllEHSTasks,
      _EHSTaskInstanceSteps,
      _RelatedObjects,
      _EHSTaskDefinition._EHSTaskAdapterClass,
      _PlannedInstance,

      // Associations for Authorization Check of Host BO

      _EHSTaskDefinition._IncidentAuthorizationFields,
      _EHSTaskDefinition._EHSCtrlImplmtnAuthznFields,
      _EHSTaskDefinition._EHSRskAssessmentAuthznFields,
      _EHSTaskDefinition._EHSCmplncScenAuthznFields,
      _EHSTaskDefinition._CmplncRqmtAuthznFields,
      _EHSTaskDefinition._IncidentTaskRefAccRestricted.IncidentHasAccessRestriction


} where PlannedInstance.WorkflowTaskInternalID is not initial