C_EHSCombinedTaskDefAndInstce

DDL: C_EHSCOMBINEDTASKDEFANDINSTCE SQL: CEHSCOMBTASK Type: view CONSUMPTION Package: EHFND_CNS_TASK_MANAGEMENT

Task Instances and Future Definitions

C_EHSCombinedTaskDefAndInstce is a Consumption CDS View that provides data about "Task Instances and Future Definitions" in SAP S/4HANA. It reads from 2 data sources (I_EHSCombinedTaskDefAndInstce, I_EHSTaskDefinitionDraft) and exposes 166 fields with key fields EHSTaskDefinitionUUID, WorkflowTaskInternalID, EHSPlannedTaskUUID, WorkflowTaskInternalID, EHSPlannedTaskUUID. It has 20 associations to related views. Part of development package EHFND_CNS_TASK_MANAGEMENT.

Data Sources (2)

SourceAliasJoin Type
I_EHSCombinedTaskDefAndInstce I_EHSCombinedTaskDefAndInstce from
I_EHSTaskDefinitionDraft I_EHSTaskDefinitionDraft union_all

Associations (20)

CardinalityTargetAliasCondition
[0..*] I_EHSTaskDefinitionTypeText _EHSTaskDefinitionTypeText $projection.EHSTaskDefinitionType = _EHSTaskDefinitionTypeText.EHSTaskDefinitionType
[0..*] I_EHSTaskRecurrenceTypeText _EHSTaskRecurrenceTypeText $projection.EHSTaskRecurrenceType = _EHSTaskRecurrenceTypeText.EHSTaskRecurrenceType
[0..1] I_BusinessUserBasic _EHSTaskOwnerUser $projection.EHSTaskOwnerBP = _EHSTaskOwnerUser.BusinessPartner
[0..1] I_BusinessUserBasic _EHSTaskInstanceProcessorUser $projection.EHSTaskInstanceProcessorBP = _EHSTaskInstanceProcessorUser.BusinessPartner
[0..1] I_BusinessUserBasic _BusinessPartner $projection.EHSTaskUser = _BusinessPartner.UserID
[0..1] I_BusinessUserBasic _EHSTaskAssigneeUser $projection.EHSTaskAssignedBP = _EHSTaskAssigneeUser.BusinessPartner
[0..1] I_BusinessUserBasic _EHSTaskApprovingUser $projection.EHSTaskApprovingBP = _EHSTaskApprovingUser.BusinessPartner
[1..1] C_EHSTaskDefinitionType _EHSTaskDefinitionType $projection.EHSTaskHostObjectAdapterClass = _EHSTaskDefinitionType.EHSTaskAdapterClass and $projection.EHSTaskDefinitionType = _EHSTaskDefinitionType.EHSTaskDefinitionType
[1..*] I_TernaryLogicalStateText _TernaryLogicalStateText $projection.EHSTaskIsRecurrent = _TernaryLogicalStateText.TernaryLogicalState
[1..1] I_EHSTaskSortingStatus _EHSTaskSortingStatus $projection.EHSTaskStatusValueForSorting = _EHSTaskSortingStatus.EHSTaskStatusValueForSorting
[0..*] I_EHSLocationPersonRespRoleT _EHSTaskAssigneeRoleT $projection.EHSTaskAssignedLocRole = _EHSTaskAssigneeRoleT.EHSLocationPersonRespRole
[0..*] I_EHSLocationPersonRespRoleT _EHSTaskApproverRoleT $projection.EHSTaskApproverLocRole = _EHSTaskApproverRoleT.EHSLocationPersonRespRole
[0..1] I_EHSTaskDefinitionDraft _DraftAdministrativeData $projection.EHSTaskDefinitionUUID = _DraftAdministrativeData.EHSTaskDefinitionActiveUUID
[0..1] I_EHSLocationRoot _EHSLocationRoot $projection.EHSLocationUUID = _EHSLocationRoot.EHSLocationUUID
[0..1] I_EHSTskDefSourceDocumentTP _EHSTskDefSourceDocument $projection.EHSTaskDefinitionUUID = _EHSTskDefSourceDocument.EHSTaskDefinitionUUID
[0..1] I_OTRText _OTRTextDraft _OTRTextDraft.OnlnTxtRpstryConceptID = '42010AEF4D3E1FE0A7D30EB39FF78588' and _OTRTextDraft.Language = $session.system_language
[0..1] I_OTRText _OTRTextLocked _OTRTextLocked.OnlnTxtRpstryConceptID = '42010AEF4D3E1FE0A7D3703780D52588' and _OTRTextLocked.Language = $session.system_language
[0..1] I_OTRText _OTRTextUnsavedChanges _OTRTextUnsavedChanges.OnlnTxtRpstryConceptID = '42010AEF4D3E1FE0A7D32B4966220588' and _OTRTextUnsavedChanges.Language = $session.system_language
[1..1] I_EHSTaskDefinition _EHSTaskDefinition $projection.EHSTaskDefinitionUUID = _EHSTaskDefinition.EHSTaskDefinitionUUID
[0..1] I_EHSTskDefSourceDocDraft _EHSTskDefSourceDocDraft $projection.EHSTaskDefinitionUUID = _EHSTskDefSourceDocDraft.EHSTaskDefinitionUUID

Annotations (13)

NameValueLevelField
AbapCatalog.sqlViewName CEHSCOMBTASK view
VDM.viewType #CONSUMPTION view
AbapCatalog.compiler.compareFilter true view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MIXED view
AccessControl.authorizationCheck #MANDATORY view
AccessControl.personalData.blocking #NOT_REQUIRED view
EndUserText.label Task Instances and Future Definitions view
Consumption.semanticObject EHSTask view
ObjectModel.representativeKey WorkflowTaskInternalID view
Metadata.allowExtensions true view

Fields (166)

KeyFieldSource TableSource FieldDescription
KEY EHSTaskDefinitionUUID EHSTaskDefinitionUUID
KEY WorkflowTaskInternalID WorkflowTaskInternalID
KEY EHSPlannedTaskUUID EHSPlannedTaskUUID
EHSTaskHostObjectInstanceUUID EHSTaskHostObjectInstanceUUID
EHSTaskHostObjectInstance EHSTaskHostObjectInstance
EHSTaskHostObjectAdapterClass EHSTaskHostObjectAdapterClass
EHSTaskHostSemanticObject EHSTaskHostSemanticObject
EHSTaskTitle EHSTaskTitle
EHSPlannedTaskID
EHSTaskDefinitionType EHSTaskDefinitionType
EHSTaskStatusName
EHSTaskPriority EHSTaskPriority Priority
EHSTaskPriorityName _EHSTaskPriority EHSTaskPriorityName
EHSTaskStatusCriticality _EHSTaskSortingStatus EHSTaskStatusCriticality
EHSTaskDueDate EHSTaskDueDate
EHSTaskRecurrenceType EHSTaskRecurrenceType Recurrence
EHSTaskUser EHSTaskUser
EHSTaskUserName _BusinessPartner PersonFullName
EHSTaskOwnerUser EHSTaskOwnerUser
EHSTaskOwnerBP EHSTaskOwnerBP
EHSTaskOwnerUserName
EHSTaskInstanceProcessorBP EHSTaskInstanceProcessorBP
EHSTaskInstanceProcessorUser _EHSTaskInstanceProcessorUser UserID
EHSTaskInstanceProcessorName
EHSTaskAssignedBP EHSTaskAssignedBP
EHSTaskAssignedUserName
EHSTaskAssignedLocRole EHSTaskAssignedLocRole
EHSTaskAssignedLocRoleName
EHSTaskApprovingBP EHSTaskApprovingBP
EHSTaskApprovingUserName
EHSTaskApproverLocRole EHSTaskApproverLocRole
EHSTaskApproverLocRoleName
HasActiveEntity
EHSTaskStartDate EHSTaskStartDate
EHSTaskInstceCompletionDate EHSTaskInstceCompletionDate
EHSTaskStatusValueForSorting I_EHSCombinedTaskDefAndInstce EHSTaskStatusValueForSorting
EHSLocationUUID EHSLocationUUID
EHSLocationName
EHSLocationID _EHSLocationRoot EHSLocationID
EHSLocationIDAndName
EHSTaskTimeZone EHSTaskTimeZone
WrkflwTskCompletionUTCDateTime WrkflwTskCompletionUTCDateTime
EHSTaskDateForSorting EHSTaskDateForSorting
WorkflowTaskStatus WorkflowTaskStatus
EHSTaskHasWorkflow EHSTaskHasWorkflow
EHSTaskDefinitionStatus EHSTaskDefinitionStatus
EHSTaskDefinitionIsPaused EHSTaskDefinitionIsPaused
EHSTaskDefinitionManageAction _EHSTaskDefinitionType EHSTaskDefinitionManageAction
EHSTaskInstanceDisplayAction _EHSTaskDefinitionType EHSTaskInstanceDisplayAction
DraftEntityLastChangeDateTime _DraftAdministrativeData DraftEntityLastChangeDateTime
DraftIsLastChangedByMe _DraftAdministrativeData DraftIsLastChangedByMe
LastChangedByUserDescription _DraftAdministrativeData LastChangedByUserDescription
DraftIsProcessedByMe _DraftAdministrativeData DraftIsProcessedByMe
InProcessByUser _DraftAdministrativeData InProcessByUser
InProcessByUserDescription _DraftAdministrativeData InProcessByUserDescription
DraftUUID _DraftAdministrativeData EHSTaskDefinitionUUID
TextelseendasEditingStatusText
EHSAttachmentServiceFileID _EHSTskDefSourceDocument EHSAttachmentServiceFileID
EHSTskDefSrceDocPageNumber _EHSTskDefSourceDocument EHSTskDefSrceDocPageNumber
EHSTskDefSrceDocTxtFragmentId _EHSTskDefSourceDocument EHSTskDefSrceDocTxtFragmentId
EHSAttachmentServiceObjectType _EHSTskDefSourceDocument EHSAttachmentServiceObjectType
EHSAttachmentServiceObjectKey _EHSTskDefSourceDocument EHSAttachmentServiceObjectKey
_EHSTaskDefinitionTypeText _EHSTaskDefinitionTypeText
_EHSTaskRecurrenceTypeText _EHSTaskRecurrenceTypeText
_TernaryLogicalStateText _TernaryLogicalStateText
_EHSTaskOwnerUser _EHSTaskOwnerUser
_EHSTaskInstanceProcessorUser _EHSTaskInstanceProcessorUser
_BusinessPartner _BusinessPartner
_EHSTaskAssigneeUser _EHSTaskAssigneeUser
_EHSTaskApprovingUser _EHSTaskApprovingUser
_EHSTaskSortingStatus _EHSTaskSortingStatus
_EHSTaskAssigneeRoleT _EHSTaskAssigneeRoleT
_EHSTaskApproverRoleT _EHSTaskApproverRoleT
_EHSTaskAdapterClass _EHSTaskAdapterClass
_IncidentAuthorizationFields _IncidentAuthorizationFields
_EHSCtrlImplmtnAuthznFields _EHSCtrlImplmtnAuthznFields
_EHSRskAssessmentAuthznFields _EHSRskAssessmentAuthznFields
_EHSRskAssmt2RskCtrlAuthznFld _EHSRskAssmt2RskCtrlAuthznFld
_EHSCmplncScenAuthznFields _EHSCmplncScenAuthznFields
_CmplncRqmtAuthznFields _CmplncRqmtAuthznFields
_EHSTaskPriority _EHSTaskPriority
_EHSTaskDefinition _EHSTaskDefinition
system_languagekeyEHSTaskDefinitionUUID
KEY WorkflowTaskInternalID
KEY EHSPlannedTaskUUID
EHSTaskHostObjectInstanceUUID EHSTaskHostObjectInstanceUUID
EHSTaskHostObjectInstance EHSTaskHostObjectInstance
EHSTaskHostObjectAdapterClass EHSTaskHostObjectAdapterClass
EHSTaskHostSemanticObject EHSTaskHostSemanticObject
EHSTaskTitle EHSTaskTitle
EHSPlannedTaskID
EHSTaskDefinitionType EHSTaskWorkflowEvent
EHSTaskStatusName
EHSTaskPriority EHSTaskPriority Priority
EHSTaskPriorityName _EHSTaskPriority EHSTaskPriorityName
EHSTaskStatusCriticality 0
EHSTaskDueDate EHSTaskDueDate
EHSTaskRecurrenceType EHSTaskRecurrenceType Recurrence
EHSTaskUser EHSTaskUser
EHSTaskUserName _BusinessPartner PersonFullName
EHSTaskOwnerUser EHSTaskOwnerUser
EHSTaskOwnerBP I_EHSTaskDefinitionDraft EHSTaskOwnerUser
EHSTaskOwnerUserName
EHSTaskInstanceProcessorBP
EHSTaskInstanceProcessorUser
EHSTaskInstanceProcessorName
EHSTaskAssignedBP I_EHSTaskDefinitionDraft EHSTaskAssignedUser
EHSTaskAssignedUserName
EHSTaskAssignedLocRole EHSTaskAssignedLocRole
EHSTaskAssignedLocRoleName
EHSTaskApprovingBP EHSTaskApprovingUser
EHSTaskApprovingUserName
EHSTaskApproverLocRole EHSTaskApproverLocRole
EHSTaskApproverLocRoleName
HasActiveEntity HasActiveEntity
EHSTaskStartDate EHSTaskStartDate
EHSTaskInstceCompletionDate
EHSTaskStatusValueForSorting
EHSLocationUUID EHSLocationUUID
EHSLocationName
EHSLocationID _EHSLocationRoot EHSLocationID
EHSLocationIDAndName
EHSTaskTimeZone
WrkflwTskCompletionUTCDateTime 0000000
EHSTaskDateForSorting
WorkflowTaskStatus
EHSTaskHasWorkflow
EHSTaskDefinitionStatus
EHSTaskDefinitionIsPaused EHSTaskDefinitionIsPaused
EHSTaskDefinitionManageAction _EHSTaskDefinitionType EHSTaskDefinitionManageAction
EHSTaskInstanceDisplayAction _EHSTaskDefinitionType EHSTaskInstanceDisplayAction
DraftEntityLastChangeDateTime DraftEntityLastChangeDateTime
DraftIsLastChangedByMe DraftIsLastChangedByMe
LastChangedByUserDescription LastChangedByUserDescription
DraftIsProcessedByMe DraftIsProcessedByMe
InProcessByUser InProcessByUser
InProcessByUserDescription InProcessByUserDescription
DraftUUID EHSTaskDefinitionActiveUUID
IsDraftEntity
EditingStatusText
EHSAttachmentServiceFileID _EHSTskDefSourceDocDraft EHSAttachmentServiceFileID
EHSTskDefSrceDocPageNumber _EHSTskDefSourceDocDraft EHSTskDefSrceDocPageNumber
EHSTskDefSrceDocTxtFragmentId _EHSTskDefSourceDocDraft EHSTskDefSrceDocTxtFragmentId
EHSAttachmentServiceObjectType _EHSTskDefSourceDocDraft EHSAttachmentServiceObjectType
EHSAttachmentServiceObjectKey _EHSTskDefSourceDocDraft EHSAttachmentServiceObjectKey
_EHSTaskDefinitionTypeText _EHSTaskDefinitionTypeText
_EHSTaskRecurrenceTypeText _EHSTaskRecurrenceTypeText
_TernaryLogicalStateText _TernaryLogicalStateText
_EHSTaskOwnerUser _EHSTaskOwnerUser
_EHSTaskInstanceProcessorUser _EHSTaskInstanceProcessorUser
_BusinessPartner _BusinessPartner
_EHSTaskAssigneeUser _EHSTaskAssigneeUser
_EHSTaskApprovingUser _EHSTaskApprovingUser
_EHSTaskSortingStatus _EHSTaskSortingStatus
_EHSTaskAssigneeRoleT _EHSTaskAssigneeRoleT
_EHSTaskApproverRoleT _EHSTaskApproverRoleT
_EHSTaskAdapterClass _EHSTaskAdapterClass
_IncidentAuthorizationFields _IncidentAuthorizationFields
_EHSCtrlImplmtnAuthznFields _EHSCtrlImplmtnAuthznFields
_EHSRskAssessmentAuthznFields _EHSRskAssessmentAuthznFields
_EHSRskAssmt2RskCtrlAuthznFld _EHSRskAssmt2RskCtrlAuthznFld
_EHSCmplncScenAuthznFields _EHSCmplncScenAuthznFields
_CmplncRqmtAuthznFields _CmplncRqmtAuthznFields
_EHSTaskPriority _EHSTaskPriority
_EHSTaskDefinition _EHSTaskDefinition
IncidentHasAccessRestriction IncidentHasAccessRestriction
@AbapCatalog.sqlViewName: 'CEHSCOMBTASK'
@VDM.viewType: #CONSUMPTION
@AbapCatalog.compiler.compareFilter: true

@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType:{ serviceQuality: #D,        // < 100 msec

                         sizeCategory:  #XL,         // < 10.000.000

                         dataClass: #MIXED }
@AccessControl: {
  authorizationCheck: #MANDATORY
}

// #NOT_REQUIRED as a start

@AccessControl.personalData.blocking: #NOT_REQUIRED

@EndUserText.label: 'Task Instances and Future Definitions'

@Consumption.semanticObject: 'EHSTask'
@ObjectModel.representativeKey: 'WorkflowTaskInternalID'
@ObjectModel.semanticKey: [ 'EHSPlannedTaskID' ]
@Metadata.allowExtensions: true
define view C_EHSCombinedTaskDefAndInstce
  as select from I_EHSCombinedTaskDefAndInstce
  association [0..*] to I_EHSTaskDefinitionTypeText  as _EHSTaskDefinitionTypeText    on  $projection.EHSTaskDefinitionType = _EHSTaskDefinitionTypeText.EHSTaskDefinitionType
  association [0..*] to I_EHSTaskRecurrenceTypeText  as _EHSTaskRecurrenceTypeText    on  $projection.EHSTaskRecurrenceType = _EHSTaskRecurrenceTypeText.EHSTaskRecurrenceType
  association [0..1] to I_BusinessUserBasic          as _EHSTaskOwnerUser             on  $projection.EHSTaskOwnerBP = _EHSTaskOwnerUser.BusinessPartner
  association [0..1] to I_BusinessUserBasic          as _EHSTaskInstanceProcessorUser on  $projection.EHSTaskInstanceProcessorBP = _EHSTaskInstanceProcessorUser.BusinessPartner
  association [0..1] to I_BusinessUserBasic          as _BusinessPartner              on  $projection.EHSTaskUser = _BusinessPartner.UserID
  association [0..1] to I_BusinessUserBasic          as _EHSTaskAssigneeUser          on  $projection.EHSTaskAssignedBP = _EHSTaskAssigneeUser.BusinessPartner
  association [0..1] to I_BusinessUserBasic          as _EHSTaskApprovingUser         on  $projection.EHSTaskApprovingBP = _EHSTaskApprovingUser.BusinessPartner
  association [1..1] to C_EHSTaskDefinitionType      as _EHSTaskDefinitionType        on  $projection.EHSTaskHostObjectAdapterClass = _EHSTaskDefinitionType.EHSTaskAdapterClass
                                                                                      and $projection.EHSTaskDefinitionType         = _EHSTaskDefinitionType.EHSTaskDefinitionType
  association [1..*] to I_TernaryLogicalStateText    as _TernaryLogicalStateText      on  $projection.EHSTaskIsRecurrent = _TernaryLogicalStateText.TernaryLogicalState
  association [1..1] to I_EHSTaskSortingStatus       as _EHSTaskSortingStatus         on  $projection.EHSTaskStatusValueForSorting = _EHSTaskSortingStatus.EHSTaskStatusValueForSorting
  association [0..*] to I_EHSLocationPersonRespRoleT as _EHSTaskAssigneeRoleT         on  $projection.EHSTaskAssignedLocRole = _EHSTaskAssigneeRoleT.EHSLocationPersonRespRole
  association [0..*] to I_EHSLocationPersonRespRoleT as _EHSTaskApproverRoleT         on  $projection.EHSTaskApproverLocRole = _EHSTaskApproverRoleT.EHSLocationPersonRespRole

  association [0..1] to I_EHSTaskDefinitionDraft     as _DraftAdministrativeData      on  $projection.EHSTaskDefinitionUUID = _DraftAdministrativeData.EHSTaskDefinitionActiveUUID

  association [0..1] to I_EHSLocationRoot            as _EHSLocationRoot              on  $projection.EHSLocationUUID = _EHSLocationRoot.EHSLocationUUID
  association [0..1] to I_EHSTskDefSourceDocumentTP  as _EHSTskDefSourceDocument      on  $projection.EHSTaskDefinitionUUID = _EHSTskDefSourceDocument.EHSTaskDefinitionUUID
  
  association [0..1] to I_OTRText                    as _OTRTextDraft                 on _OTRTextDraft.OnlnTxtRpstryConceptID = '42010AEF4D3E1FE0A7D30EB39FF78588' and 
                                                                                         _OTRTextDraft.Language               = $session.system_language
  association [0..1] to I_OTRText                    as _OTRTextLocked                on _OTRTextLocked.OnlnTxtRpstryConceptID = '42010AEF4D3E1FE0A7D3703780D52588' and 
                                                                                         _OTRTextLocked.Language               = $session.system_language
  association [0..1] to I_OTRText                    as _OTRTextUnsavedChanges        on _OTRTextUnsavedChanges.OnlnTxtRpstryConceptID = '42010AEF4D3E1FE0A7D32B4966220588' and  
                                                                                         _OTRTextUnsavedChanges.Language               = $session.system_language
{

  key EHSTaskDefinitionUUID,
  key WorkflowTaskInternalID,
  key EHSPlannedTaskUUID,

      EHSTaskHostObjectInstanceUUID,
      EHSTaskHostObjectInstance,
      EHSTaskHostObjectAdapterClass,
      EHSTaskHostSemanticObject,
      @ObjectModel.filter.enabled: true
      @ObjectModel.sort.enabled: true
      EHSTaskTitle,

      @ObjectModel.filter.enabled: true
      @ObjectModel.sort.enabled: true
      cast(EHSPlannedTaskID as ehfnd_task_planned_id)                                                        as EHSPlannedTaskID,

      @ObjectModel.text.association: '_EHSTaskDefinitionTypeText'
      @ObjectModel.filter.enabled: true
      @ObjectModel.sort.enabled: true
      EHSTaskDefinitionType,

      @ObjectModel:{ readOnly: true, virtualElement, virtualElementCalculatedBy: 'ABAP:CL_EHFND_TASK_STATUS_EXIT' }
      @ObjectModel.filter.transformedBy: 'ABAP:CL_EHFND_TASK_STATUS_EXIT'
      @ObjectModel.sort.transformedBy: 'ABAP:CL_EHFND_TASK_STATUS_EXIT'
      @ObjectModel.filter.enabled: true
      @ObjectModel.sort.enabled: false
      @Semantics.text:true
      cast ( '' as ehfnd_task_status_descr )                                                                 as EHSTaskStatusName,

      @ObjectModel.foreignKey.association: '_EHSTaskPriority'
      @EndUserText.label: 'Priority'
      EHSTaskPriority,
      _EHSTaskPriority.EHSTaskPriorityName,

      _EHSTaskSortingStatus.EHSTaskStatusCriticality,

      EHSTaskDueDate,

      @ObjectModel.text.association: '_EHSTaskRecurrenceTypeText'
      @EndUserText.label: 'Recurrence'
      @Consumption.filter.hidden: true
      @ObjectModel.filter.enabled: true
      @ObjectModel.sort.enabled: false
      EHSTaskRecurrenceType,

      @Consumption.filter.hidden: true
      @ObjectModel.filter.enabled: true
      @ObjectModel.readOnly: true
      case
          when EHSTaskRecurrenceType = '001'
            then cast( '' as ehfnd_task_def_is_recurrent preserving type )
            else cast( 'X' as ehfnd_task_def_is_recurrent preserving type )
        end                                                                                                  as EHSTaskIsRecurrent,

      @ObjectModel.foreignKey.association: '_BusinessPartner'
      EHSTaskUser,
      _BusinessPartner.PersonFullName                                                                        as EHSTaskUserName,

      EHSTaskOwnerUser,
      @ObjectModel.foreignKey.association: '_EHSTaskOwnerUser'
      EHSTaskOwnerBP,
      @Semantics.text: true
      cast( _EHSTaskOwnerUser.PersonFullName as ehfnd_task_plan_owner_name preserving type )                 as EHSTaskOwnerUserName,

      @ObjectModel.foreignKey.association: '_EHSTaskInstanceProcessorUser'
      EHSTaskInstanceProcessorBP,
      _EHSTaskInstanceProcessorUser.UserID                                                                   as EHSTaskInstanceProcessorUser,
      cast( _EHSTaskInstanceProcessorUser.PersonFullName as ehfnd_task_plan_curr_proc_name preserving type ) as EHSTaskInstanceProcessorName,

      @ObjectModel.foreignKey.association: '_EHSTaskAssigneeUser'
      EHSTaskAssignedBP,
      @Semantics.text: true
      cast( _EHSTaskAssigneeUser.PersonFullName as ehfnd_task_plan_assignee_name preserving type )           as EHSTaskAssignedUserName,
      EHSTaskAssignedLocRole,
      _EHSTaskAssigneeRoleT[ 1: Language = $session.system_language ].EHSLocationPersonRespRoleName          as EHSTaskAssignedLocRoleName,

      @ObjectModel.foreignKey.association: '_EHSTaskApprovingUser'
      EHSTaskApprovingBP,
      @Semantics.text: true
      cast( _EHSTaskApprovingUser.PersonFullName as ehfnd_task_plan_approver_name preserving type )          as EHSTaskApprovingUserName,
      EHSTaskApproverLocRole,
      _EHSTaskApproverRoleT[ 1: Language = $session.system_language ].EHSLocationPersonRespRoleName          as EHSTaskApproverLocRoleName,

      'X'                                                                                                    as HasActiveEntity,

      @ObjectModel.filter.enabled: true
      @ObjectModel.sort.enabled: true
      EHSTaskStartDate,

      @ObjectModel.filter.enabled: true
      @ObjectModel.sort.enabled: true
      EHSTaskInstceCompletionDate,

      @Consumption.valueHelpDefinition: [{
        entity: {
          name: 'C_EHSTaskStatusValueHelp',
          element: 'EHSTaskStatusValueForSorting'
        }
      }]
      @ObjectModel.text.element: ['EHSTaskStatusName']
      I_EHSCombinedTaskDefAndInstce.EHSTaskStatusValueForSorting                                             as EHSTaskStatusValueForSorting,

      @Consumption.valueHelpDefinition:
      [{ entity: {
            name: 'C_EHSLocationValueHelp',
            element: 'EHSLocationUUID' } }]
      @ObjectModel.text.element: ['EHSLocationIDAndName']
      EHSLocationUUID,

      _EHSLocationRoot._EHSLocNameFallbackLanguage.EHSLocationName                                           as EHSLocationName,
      _EHSLocationRoot.EHSLocationID                                                                         as EHSLocationID,

      @ObjectModel: {
               readOnly: true,
               virtualElement: true,
               virtualElementCalculatedBy: 'ABAP:CL_EHFND_TASK_LOCATION_EXIT',
               sort.transformedBy: 'ABAP:CL_EHFND_TASK_LOCATION_EXIT',
               filter.transformedBy: 'ABAP:CL_EHFND_TASK_LOCATION_EXIT'
      }
      @Semantics.text: true
      cast('' as text132)                                                                                    as EHSLocationIDAndName,

      EHSTaskTimeZone,

      WrkflwTskCompletionUTCDateTime,
      EHSTaskDateForSorting,
      WorkflowTaskStatus,
      EHSTaskHasWorkflow,
      EHSTaskDefinitionStatus,
      EHSTaskDefinitionIsPaused,

      _EHSTaskDefinitionType.EHSTaskDefinitionManageAction,
      _EHSTaskDefinitionType.EHSTaskInstanceDisplayAction,

      // Draft Administrative Data

      _DraftAdministrativeData.DraftEntityLastChangeDateTime,
      _DraftAdministrativeData.DraftIsLastChangedByMe,
      _DraftAdministrativeData.LastChangedByUserDescription,
      _DraftAdministrativeData.DraftIsProcessedByMe,
      _DraftAdministrativeData.InProcessByUser,
      _DraftAdministrativeData.InProcessByUserDescription,
      _DraftAdministrativeData.EHSTaskDefinitionUUID                                                         as DraftUUID,
      // _DraftAdministrativeData,


      @Semantics.booleanIndicator: true
      case
          when _DraftAdministrativeData.DraftEntityLastChangeDateTime is not null and EHSTaskHasWorkflow = '' // the only combination where we will show the Draft indicator

            then 'X'
            else ''
        end                                                                                                   as IsDraftEntity,
       
      case
          when _DraftAdministrativeData.DraftIsLastChangedByMe is not initial
             then _OTRTextDraft.Text                                                   // Draft

          when _DraftAdministrativeData.InProcessByUser is not initial
             then _OTRTextLocked.Text                                                  // Locked

          when _DraftAdministrativeData.DraftEntityLastChangeDateTime is not null and
               EHSTaskHasWorkflow = '' and
               _DraftAdministrativeData.DraftIsLastChangedByMe is initial
             then _OTRTextUnsavedChanges.Text                                          // Unsaved Changes     

            else ''
       end                                                                                                    as EditingStatusText,

      @UI.hidden: true
      _EHSTskDefSourceDocument.EHSAttachmentServiceFileID,

      _EHSTskDefSourceDocument.EHSTskDefSrceDocPageNumber,

      @UI.hidden: true
      _EHSTskDefSourceDocument.EHSTskDefSrceDocTxtFragmentId,
      
      @UI.hidden: true
      _EHSTskDefSourceDocument.EHSAttachmentServiceObjectType,
      
      @UI.hidden: true
      _EHSTskDefSourceDocument.EHSAttachmentServiceObjectKey,

      @Consumption.filter.hidden: true
      @ObjectModel.filter.enabled: false
      @ObjectModel.sort.enabled: false   
      _EHSTaskDefinitionTypeText,
      @Consumption.filter.hidden: true
      @ObjectModel.filter.enabled: false
      @ObjectModel.sort.enabled: false
      _EHSTaskRecurrenceTypeText,
      @Consumption.filter.hidden: true
      _TernaryLogicalStateText,
      @Consumption.filter.hidden: true
      _EHSTaskOwnerUser,
      @Consumption.filter.hidden: true
      _EHSTaskInstanceProcessorUser,
      _BusinessPartner,
      @Consumption.filter.hidden: true
      _EHSTaskAssigneeUser,
      @Consumption.filter.hidden: true
      _EHSTaskApprovingUser,
      @Consumption.filter.hidden: true
      _EHSTaskSortingStatus,
      @Consumption.filter.hidden: true
      _EHSTaskAssigneeRoleT,
      @Consumption.filter.hidden: true
      _EHSTaskApproverRoleT,


      // Associations for Authorization Check of Host BO

      _EHSTaskAdapterClass,
      _IncidentAuthorizationFields,
      _EHSCtrlImplmtnAuthznFields,
      _EHSRskAssessmentAuthznFields,
      _EHSRskAssmt2RskCtrlAuthznFld,
      _EHSCmplncScenAuthznFields,
      _CmplncRqmtAuthznFields,
      @Consumption.filter.hidden: true
      _EHSTaskPriority,
      _EHSTaskDefinition,
      IncidentHasAccessRestriction

}

// Add also pure draft definitions (which havent been saved at all)

// those draft record will be visible only be the user, who have created them

union all

select from I_EHSTaskDefinitionDraft

association [1..*] to I_TernaryLogicalStateText   as _TernaryLogicalStateText      on $projection.EHSTaskIsRecurrent = _TernaryLogicalStateText.TernaryLogicalState
association [0..*] to I_EHSTaskDefinitionTypeText as _EHSTaskDefinitionTypeText    on $projection.EHSTaskDefinitionType = _EHSTaskDefinitionTypeText.EHSTaskDefinitionType
association [0..*] to I_EHSTaskRecurrenceTypeText as _EHSTaskRecurrenceTypeText    on $projection.EHSTaskRecurrenceType = _EHSTaskRecurrenceTypeText.EHSTaskRecurrenceType
association [1..1] to I_EHSTaskSortingStatus      as _EHSTaskSortingStatus         on $projection.EHSTaskStatusValueForSorting = _EHSTaskSortingStatus.EHSTaskStatusValueForSorting
association [1..1] to I_EHSTaskDefinition         as _EHSTaskDefinition            on $projection.EHSTaskDefinitionUUID = _EHSTaskDefinition.EHSTaskDefinitionUUID
association [0..1] to I_BusinessUserBasic         as _EHSTaskOwnerUser             on $projection.EHSTaskOwnerBP = _EHSTaskOwnerUser.BusinessPartner
association [0..1] to I_BusinessUserBasic         as _EHSTaskAssigneeUser          on $projection.EHSTaskAssignedBP = _EHSTaskAssigneeUser.BusinessPartner
association [0..1] to I_BusinessUserBasic         as _EHSTaskApprovingUser         on $projection.EHSTaskApprovingBP = _EHSTaskApprovingUser.BusinessPartner
association [0..1] to I_BusinessUserBasic         as _EHSTaskInstanceProcessorUser on $projection.EHSTaskInstanceProcessorBP = _EHSTaskInstanceProcessorUser.BusinessPartner
association [0..1] to I_BusinessUserBasic         as _BusinessPartner              on $projection.EHSTaskUser = _BusinessPartner.UserID

association [0..1] to I_EHSLocationRoot           as _EHSLocationRoot              on $projection.EHSLocationUUID = _EHSLocationRoot.EHSLocationUUID
association [0..1] to I_EHSTskDefSourceDocDraft   as _EHSTskDefSourceDocDraft      on $projection.EHSTaskDefinitionUUID = _EHSTskDefSourceDocDraft.EHSTaskDefinitionUUID

association [0..1] to I_OTRText                   as _OTRTextDraft                 on _OTRTextDraft.OnlnTxtRpstryConceptID = '42010AEF4D3E1FE0A7D30EB39FF78588' and // Draft

                                                                                      _OTRTextDraft.Language = $session.system_language

{

  key EHSTaskDefinitionUUID,
  key '000000000000'                                                                                as WorkflowTaskInternalID,
  key hextobin('00000000000000000000000000000000')                                                  as EHSPlannedTaskUUID,

      EHSTaskHostObjectInstanceUUID,
      EHSTaskHostObjectInstance,
      EHSTaskHostObjectAdapterClass,
      EHSTaskHostSemanticObject,
      @ObjectModel.filter.enabled: true
      @ObjectModel.sort.enabled: true
      EHSTaskTitle,

      @ObjectModel.filter.enabled: true
      @ObjectModel.sort.enabled: true
      cast('' as ehfnd_task_planned_id)                                                             as EHSPlannedTaskID,

      @ObjectModel.text.association: '_EHSTaskDefinitionTypeText'
      @ObjectModel.filter.enabled: true
      @ObjectModel.sort.enabled: true
      EHSTaskWorkflowEvent                                                                          as EHSTaskDefinitionType,

      @ObjectModel:{ readOnly: true, virtualElement, virtualElementCalculatedBy: 'ABAP:CL_EHFND_TASK_STATUS_EXIT' }
      @ObjectModel.filter.transformedBy: 'ABAP:CL_EHFND_TASK_STATUS_EXIT'
      @ObjectModel.sort.transformedBy: 'ABAP:CL_EHFND_TASK_STATUS_EXIT'
      @ObjectModel.filter.enabled: true
      @ObjectModel.sort.enabled: false
      @Semantics.text:true
      cast ( '' as ehfnd_task_status_descr )                                                        as EHSTaskStatusName,

      @ObjectModel.foreignKey.association: '_EHSTaskPriority'
      @EndUserText.label: 'Priority'
      EHSTaskPriority,
      _EHSTaskPriority.EHSTaskPriorityName,

      0                                                                                             as EHSTaskStatusCriticality,

      EHSTaskDueDate,

      @ObjectModel.text.association: '_EHSTaskRecurrenceTypeText'
      @EndUserText.label: 'Recurrence'
      @Consumption.filter.hidden: true
      @ObjectModel.filter.enabled: true
      @ObjectModel.sort.enabled: false
      EHSTaskRecurrenceType,

      @Consumption.filter.hidden: true
      @ObjectModel.filter.enabled: true
      @ObjectModel.readOnly: true
      case
          when EHSTaskRecurrenceType = '001'
            then cast( '' as ehfnd_task_def_is_recurrent preserving type )
            else cast( 'X' as ehfnd_task_def_is_recurrent preserving type )
        end                                                                                         as EHSTaskIsRecurrent,

      @ObjectModel.foreignKey.association: '_BusinessPartner'
      EHSTaskUser,
      _BusinessPartner.PersonFullName                                                               as EHSTaskUserName,

      EHSTaskOwnerUser,
      @ObjectModel.foreignKey.association: '_EHSTaskOwnerUser'
      I_EHSTaskDefinitionDraft.EHSTaskOwnerUser                                                     as EHSTaskOwnerBP,
      @Semantics.text: true
      cast( _EHSTaskOwnerUser.PersonFullName as ehfnd_task_plan_owner_name preserving type )        as EHSTaskOwnerUserName,

      @ObjectModel.foreignKey.association: '_EHSTaskInstanceProcessorUser'
      '0000000000'                                                                                  as EHSTaskInstanceProcessorBP,
      '0000000000'                                                                                  as EHSTaskInstanceProcessorUser,
      cast( '' as ehfnd_task_plan_curr_proc_name )                                                  as EHSTaskInstanceProcessorName,

      @ObjectModel.foreignKey.association: '_EHSTaskAssigneeUser'
      I_EHSTaskDefinitionDraft.EHSTaskAssignedUser                                                  as EHSTaskAssignedBP,
      @Semantics.text: true
      cast( _EHSTaskAssignedUser.PersonFullName as ehfnd_task_plan_assignee_name preserving type )  as EHSTaskAssignedUserName,

      EHSTaskAssignedLocRole,
      _EHSTaskAssigneeRoleT[ 1: Language = $session.system_language ].EHSLocationPersonRespRoleName as EHSTaskAssignedLocRoleName,

      @ObjectModel.foreignKey.association: '_EHSTaskApprovingUser'
      EHSTaskApprovingUser                                                                          as EHSTaskApprovingBP,
      @Semantics.text: true
      cast( _EHSTaskApprovingUser.PersonFullName as ehfnd_task_plan_approver_name preserving type ) as EHSTaskApprovingUserName,
      EHSTaskApproverLocRole,
      _EHSTaskApproverRoleT[ 1: Language = $session.system_language ].EHSLocationPersonRespRoleName as EHSTaskApproverLocRoleName,

      HasActiveEntity,

      @ObjectModel.filter.enabled: true
      @ObjectModel.sort.enabled: true
      EHSTaskStartDate,

      @ObjectModel.filter.enabled: true
      @ObjectModel.sort.enabled: true
      '00000000'                                                                                    as EHSTaskInstceCompletionDate,

      @Consumption.valueHelpDefinition: [{
       entity: {
         name: 'C_EHSTaskStatusValueHelp',
         element: 'EHSTaskStatusValueForSorting'
       }
      }]
      @ObjectModel.text.element: ['EHSTaskStatusName']
      '00'                                                                                          as EHSTaskStatusValueForSorting, // so it can be shown first when sorting


      @Consumption.valueHelpDefinition:
      [{ entity: {
            name: 'C_EHSLocationValueHelp',
            element: 'EHSLocationUUID' } }]
      @ObjectModel.text.element: ['EHSLocationIDAndName']
      EHSLocationUUID,

      _EHSLocationRoot._EHSLocNameFallbackLanguage.EHSLocationName                                  as EHSLocationName,
      _EHSLocationRoot.EHSLocationID                                                                as EHSLocationID,

      @ObjectModel: {
               readOnly: true,
               virtualElement: true,
               virtualElementCalculatedBy: 'ABAP:CL_EHFND_TASK_LOCATION_EXIT',
               sort.transformedBy: 'ABAP:CL_EHFND_TASK_LOCATION_EXIT',
               filter.transformedBy: 'ABAP:CL_EHFND_TASK_LOCATION_EXIT'
      }
      @Semantics.text: true
      cast('' as text132)                                                                           as EHSLocationIDAndName,

      ''                                                                                            as EHSTaskTimeZone,

      0.0000000                                                                                     as WrkflwTskCompletionUTCDateTime,
      '00000000'                                                                                    as EHSTaskDateForSorting,
      ''                                                                                            as WorkflowTaskStatus,
      ''                                                                                            as EHSTaskHasWorkflow,
      '01'                                                                                          as EHSTaskDefinitionStatus,
      EHSTaskDefinitionIsPaused,

      _EHSTaskDefinitionType.EHSTaskDefinitionManageAction,
      _EHSTaskDefinitionType.EHSTaskInstanceDisplayAction,

      // Draft Administrative Data

      DraftEntityLastChangeDateTime,
      DraftIsLastChangedByMe,
      LastChangedByUserDescription,
      DraftIsProcessedByMe,
      InProcessByUser,
      InProcessByUserDescription,
      EHSTaskDefinitionActiveUUID                                                                   as DraftUUID,

      // _DraftAdministrativeData,


      cast('X' as boolean)                                                                          as IsDraftEntity,
      
      cast ( _OTRTextDraft.Text as ehhss_inc_task_draft_text )                                                                            as EditingStatusText,  // Draft


      @UI.hidden: true
      _EHSTskDefSourceDocDraft.EHSAttachmentServiceFileID,

      _EHSTskDefSourceDocDraft.EHSTskDefSrceDocPageNumber,

      @UI.hidden: true
      _EHSTskDefSourceDocDraft.EHSTskDefSrceDocTxtFragmentId,
      
      @UI.hidden: true
      _EHSTskDefSourceDocDraft.EHSAttachmentServiceObjectType,
      
      @UI.hidden: true
      _EHSTskDefSourceDocDraft.EHSAttachmentServiceObjectKey,

      @Consumption.filter.hidden: true
      @ObjectModel.filter.enabled: false
      @ObjectModel.sort.enabled: false
      _EHSTaskDefinitionTypeText,
      @Consumption.filter.hidden: true
      @ObjectModel.filter.enabled: false
      @ObjectModel.sort.enabled: false
      _EHSTaskRecurrenceTypeText,
      @Consumption.filter.hidden: true
      _TernaryLogicalStateText,
      @Consumption.filter.hidden: true
      _EHSTaskOwnerUser,
      @Consumption.filter.hidden: true
      _EHSTaskInstanceProcessorUser,
      _BusinessPartner,
      @Consumption.filter.hidden: true
      _EHSTaskAssigneeUser,
      @Consumption.filter.hidden: true
      _EHSTaskApprovingUser,
      @Consumption.filter.hidden: true
      _EHSTaskSortingStatus,
      @Consumption.filter.hidden: true
      _EHSTaskAssigneeRoleT,
      @Consumption.filter.hidden: true
      _EHSTaskApproverRoleT,


      // Associations for Authorization Check of Host BO

      _EHSTaskAdapterClass,
      _IncidentAuthorizationFields,
      _EHSCtrlImplmtnAuthznFields,
      _EHSRskAssessmentAuthznFields,
      _EHSRskAssmt2RskCtrlAuthznFld,
      _EHSCmplncScenAuthznFields,
      _CmplncRqmtAuthznFields,
      @Consumption.filter.hidden: true
      _EHSTaskPriority,
      _EHSTaskDefinition,
      IncidentHasAccessRestriction
}
where
      I_EHSTaskDefinitionDraft.CreatedByUser = $session.user
  and HasActiveEntity                        = ''