I_EHSTASKINSTANCE
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)
| View | Type | Join | VDM | Description |
|---|---|---|---|---|
| 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