I_EHSCmplncAnlysLocTypeTaskC

DDL: I_EHSCMPLNCANLYSLOCTYPETASKC SQL: IEHSCALTTC Type: view COMPOSITE Package: EHENV_CNS_EMISSION_INVENTORY

Compl Analysis Cube of Tasks by Loc type

I_EHSCmplncAnlysLocTypeTaskC is a Composite CDS View (Cube) that provides data about "Compl Analysis Cube of Tasks by Loc type" in SAP S/4HANA. It reads from 3 data sources (I_LocationDescFallbackLang, I_OTRText, I_EHSTaskCalendar) and exposes 25 fields with key fields WorkflowTaskInternalID, EHSTaskDefinitionUUID, EHSTaskDueDate. It has 1 association to related views. Part of development package EHENV_CNS_EMISSION_INVENTORY.

Data Sources (3)

SourceAliasJoin Type
I_LocationDescFallbackLang _LocTextDesc left_outer
I_OTRText _OTRText left_outer
I_EHSTaskCalendar EHSTaskCalendar from

Associations (1)

CardinalityTargetAliasCondition
[0..*] I_EHSLocation _EHSLocation $projection.EHSLocationUUID = _EHSLocation.EHSLocationUUID and _EHSLocation.RevisionStartDate <= $session.system_date and _EHSLocation.RevisionEndDate >= $session.system_date

Annotations (14)

NameValueLevelField
AbapCatalog.sqlViewName IEHSCALTTC view
AbapCatalog.compiler.compareFilter true view
ClientHandling.algorithm #SESSION_VARIABLE view
AccessControl.authorizationCheck #MANDATORY view
AccessControl.personalData.blocking #NOT_REQUIRED view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MIXED view
EndUserText.label Compl Analysis Cube of Tasks by Loc type view
Analytics.dataCategory #CUBE view
Analytics.dataExtraction.enabled true view
Analytics.internalName #LOCAL view
VDM.viewType #COMPOSITE view
Metadata.allowExtensions true view

Fields (25)

KeyFieldSource TableSource FieldDescription
KEY WorkflowTaskInternalID WorkflowTaskInternalID
KEY EHSTaskDefinitionUUID EHSTaskDefinitionUUID
KEY EHSTaskDueDate EHSTaskDueDate
EHSTaskHostObjectInstance EHSTaskHostObjectInstance
EHSTaskHostObjectInstanceUUID I_EHSTaskCalendar EHSTaskHostObjectInstanceUUID
EHSTaskStatusValueForSorting EHSTaskStatus
EHSLocationUUID I_EHSTaskCalendar EHSLocationUUID
EHSLocationUUIDHex
EHSTaskHostSemanticObject _EHSTaskAdapterClass EHSSemanticObject
EHSNumberOfTasks
EHSLocationType _EHSLocation EHSLocationType
_EHSLocationType _EHSLocation _EHSLocationType
Textasehfnd_loc_nameasEHSLocationName
char250endasCmplRqVersName
EHSTaskHostObjectAdapterClass I_EHSTaskCalendar EHSTaskHostObjectAdapterClass
EHSTaskOwnerBP I_EHSTaskCalendar EHSTaskOwnerBP
_CmplncRqmtAuthznFields _CmplncRqmtAuthznFields
_EHSCmplncScenAuthznFields _EHSCmplncScenAuthznFields
_EHSCtrlImplmtnAuthznFields _EHSCtrlImplmtnAuthznFields
_EHSRskAssessmentAuthznFields _EHSRskAssessmentAuthznFields
_EHSTaskAdapterClass _EHSTaskAdapterClass
_EHSTaskOwnerUser _EHSTaskOwnerUser
_IncidentAuthorizationFields _IncidentAuthorizationFields
IncidentHasAccessRestriction IncidentHasAccessRestriction
_EHSLocation _EHSLocation
@AbapCatalog.sqlViewName: 'IEHSCALTTC'
@AbapCatalog.compiler.compareFilter: true
@ClientHandling.algorithm: #SESSION_VARIABLE

@AccessControl:
{
  authorizationCheck: #MANDATORY,
  // blocking of personal data not required (user data can not be blocked and no BP info from user exposed)

  personalData.blocking: #NOT_REQUIRED
}

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

                         sizeCategory:  #XL,         // < 10.000.000

                         dataClass: #MIXED }
@EndUserText.label: 'Compl Analysis Cube of Tasks by Loc type'

@Analytics: { dataCategory:#CUBE , dataExtraction.enabled:true , internalName:#LOCAL }
@VDM.viewType: #COMPOSITE
@Metadata.allowExtensions:true

@Consumption.dbHints: [ 'USE_HEX_PLAN' ]

define view I_EHSCmplncAnlysLocTypeTaskC
  as select from           I_EHSTaskCalendar          as EHSTaskCalendar
  
  left outer join        I_OTRText                  as _OTRText       on  _OTRText.Language               = $session.system_language
                                                                        and _OTRText.OnlnTxtRpstryConceptID = '005056B252761ED3908E2F1A948BC0A9'

  left outer join        I_LocationDescFallbackLang as _LocTextDesc   on EHSTaskCalendar.EHSLocationUUID = _LocTextDesc.EHSLocationUUID

  left outer to one join I_EHSCmplncRqmtIdHex       as _CmplRqUUIDHEX on EHSTaskCalendar.EHSTaskHostObjectInstanceUUID = _CmplRqUUIDHEX.CmplRqUUID

  association [0..*] to I_EHSLocation as _EHSLocation on  $projection.EHSLocationUUID    = _EHSLocation.EHSLocationUUID
                                                      and _EHSLocation.RevisionStartDate <= $session.system_date
                                                      and _EHSLocation.RevisionEndDate   >= $session.system_date
{
  key        WorkflowTaskInternalID,
  key        EHSTaskDefinitionUUID,
  key        EHSTaskDueDate,

             EHSTaskHostObjectInstance,
             EHSTaskCalendar.EHSTaskHostObjectInstanceUUID,

             EHSTaskStatus                             as EHSTaskStatusValueForSorting,


             EHSTaskCalendar.EHSLocationUUID,
             bintohex(EHSTaskCalendar.EHSLocationUUID) as EHSLocationUUIDHex,
             _EHSTaskAdapterClass.EHSSemanticObject    as EHSTaskHostSemanticObject,

             @DefaultAggregation: #SUM
             cast( 1 as ehfnd_integer )                as EHSNumberOfTasks,

             // EHS Location Type

             @ObjectModel.foreignKey.association: '_EHSLocationType'
             _EHSLocation.EHSLocationType,
             _EHSLocation._EHSLocationType,

             @Semantics.text: true
             @ObjectModel.readOnly: true
             cast(
               coalesce(
                 _LocTextDesc._LocationNameText.EHSLocationName,
                 _OTRText.Text
               ) as ehfnd_loc_name
             )                                         as EHSLocationName,

             @Semantics.text: true
             @ObjectModel.readOnly: true
             case
             //Shorten to 60 chars for better visibility on the chart

              when _CmplRqUUIDHEX.OutputLengthValue >= 60 then concat( substring(_CmplRqUUIDHEX.CmplRqVersName, 1, 60), '...' )
              else cast(_CmplRqUUIDHEX.CmplRqVersName as abap.char(250))
             end                                       as CmplRqVersName,


             // Fields for authorization check

             EHSTaskCalendar.EHSTaskHostObjectAdapterClass,
             EHSTaskCalendar.EHSTaskOwnerBP,
             _CmplncRqmtAuthznFields,
             _EHSCmplncScenAuthznFields,
             _EHSCtrlImplmtnAuthznFields,
             _EHSRskAssessmentAuthznFields,
             _EHSTaskAdapterClass,
             _EHSTaskOwnerUser,
             _IncidentAuthorizationFields,
             IncidentHasAccessRestriction,
             _EHSLocation
}
where
  // cancelled tasks should be excluded for the analysis

      EHSTaskStatus                          <> '06'
  // Semantic object is needed to prevent the case of exctraction of inconsistent tasks with no semantic object

  and _EHSTaskAdapterClass.EHSSemanticObject =  'EHSComplianceRequirement'