C_EHSRisksForIdentifyRisks
Consumption view for the existing and newly identified Risks
C_EHSRisksForIdentifyRisks is a Consumption CDS View that provides data about "Consumption view for the existing and newly identified Risks" in SAP S/4HANA. It reads from 1 data source (C_EHSRisk) and exposes 41 fields with key field EHSRiskUUID. It has 18 associations to related views.
Data Sources (1)
| Source | Alias | Join Type |
|---|---|---|
| C_EHSRisk | C_EHSRisk | from |
Associations (18)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..*] | I_EHSMethodOfUseText | _MethodOfUseText | $projection.MethodOfUse = _MethodOfUseText.MethodOfUse |
| [1..1] | I_Hazard | _Hazard | $projection.Hazard = _Hazard.Hazard |
| [0..*] | I_HazardText | _HazardText | $projection.Hazard = _HazardText.Hazard |
| [0..*] | I_EHSOperationalStatusText | _OperationalStatusText | $projection.OperationalStatus = _OperationalStatusText.OperationalStatus |
| [0..*] | I_EHSRiskLevelText | _EHSRiskLevelText | $projection.EHSRiskLevel = _EHSRiskLevelText.EHSRiskLevel |
| [0..*] | I_EHSRiskStatusText | _EHSRiskStatusText | $projection.EHSRiskStatus = _EHSRiskStatusText.EHSRiskStatus |
| [0..1] | P_EHSControlsCount | _EHSControlsCount | $projection.EHSRiskRevisionUUID = _EHSControlsCount.EHSRiskRevisionUUID |
| [0..*] | C_AdhocEHSCtrlForIdentifyRisks | _AdhocEHSControls | $projection.EHSRiskRevisionUUID = _AdhocEHSControls.EHSRiskRevisionUUID |
| [0..*] | C_StdEHSCtrlForIdentifyRisks | _StandardEHSControls | $projection.EHSRiskRevisionUUID = _StandardEHSControls.EHSRiskRevisionUUID |
| [0..*] | I_CurrentEHSLocationNameText | _EHSLocationName | $projection.EHSLocationUUID = _EHSLocationName.EHSLocationUUID |
| [0..*] | I_HazardImpact | _HazardImpact | $projection.Hazard = _HazardImpact.Hazard |
| [0..*] | I_HazardControl | _HazardControl | $projection.Hazard = _HazardControl.Hazard |
| [1..1] | C_EHSRiskWithAssessmentProfile | _EHSRiskWithAssessmentProfile | $projection.EHSRiskUUID = _EHSRiskWithAssessmentProfile.EHSRiskUUID |
| [0..*] | I_ChemicalNameText | _ChemicalNameText | $projection.ChemicalUUID = _ChemicalNameText.ChemicalUUID and _ChemicalNameText.RevisionEndDate >= $session.system_date |
| [0..*] | I_AirborneAgentNameText | _AirborneAgentNameText | $projection.AirborneAgentUUID = _AirborneAgentNameText.AirborneAgentUUID and _AirborneAgentNameText.RevisionEndDate >= $session.system_date |
| [0..*] | I_PhysicalAgentNameText | _PhysicalAgentNameText | $projection.PhysicalAgentUUID = _PhysicalAgentNameText.PhysicalAgentUUID |
| [0..1] | I_EHSJobAtLocation | _EHSJobAtLocation | $projection.EHSLocationUUID = _EHSJobAtLocation.EHSLocationUUID and $projection.EHSJobUUID = _EHSJobAtLocation.EHSJobUUID |
| [0..1] | I_EHSJobStepForJobAtLocation | _EHSJobStepForJobAtLocation | $projection.EHSJobAtLocationUUID = _EHSJobStepForJobAtLocation.EHSJobAtLocationUUID and $projection.EHSJobStep = _EHSJobStepForJobAtLocation.EHSJobStep |
Annotations (12)
| Name | Value | Level | Field |
|---|---|---|---|
| EndUserText.label | Consumption view for the existing and newly identified Risks | view | |
| VDM.viewType | #CONSUMPTION | view | |
| ObjectModel.updateEnabled | false | view | |
| ObjectModel.createEnabled | false | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| ObjectModel.representativeKey | EHSRiskUUID | view | |
| AbapCatalog.sqlViewName | CEHSRSKFORIDRSK | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.sizeCategory | #XL | view | |
| ObjectModel.usageType.dataClass | #MIXED | view |
Fields (41)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | EHSRiskUUID | EHSRiskUUID | ||
| EHSRiskRevisionUUID | EHSRiskRevisionUUID | |||
| EHSRiskUUIDHex | EHSRiskUUIDHex | |||
| EHSLocationUUID | EHSLocationUUID | |||
| _EHSLocation | _EHSLocation | |||
| _EHSLocationName | _EHSLocationName | |||
| EHSJobUUID | EHSJobUUID | |||
| _EHSJob | _EHSJob | |||
| EHSJobStep | EHSJobStep | |||
| EHSJobAtLocationUUID | _EHSJobAtLocation | EHSJobAtLocationUUID | ||
| _EHSJobStepForJobAtLocation | _EHSJobStepForJobAtLocation | |||
| Hazard | Hazard | |||
| _Hazard | _Hazard | |||
| _HazardText | _HazardText | |||
| EHSAgentUUID | EHSAgentUUID | |||
| ChemicalUUID | ChemicalUUID | |||
| _ChemicalNameText | _ChemicalNameText | |||
| AirborneAgentUUID | AirborneAgentUUID | |||
| _AirborneAgentNameText | _AirborneAgentNameText | |||
| PhysicalAgentUUID | PhysicalAgentUUID | |||
| _PhysicalAgentNameText | _PhysicalAgentNameText | |||
| OperationalStatus | ||||
| _OperationalStatusText | _OperationalStatusText | |||
| MethodOfUse | MethodOfUse | |||
| _MethodOfUseText | _MethodOfUseText | |||
| EHSRiskLevel | EHSRiskLevel | |||
| _EHSRiskLevelText | _EHSRiskLevelText | |||
| EHSRiskStatus | EHSRiskStatus | |||
| _EHSRiskStatusText | _EHSRiskStatusText | |||
| NumberOfEHSControls | _EHSControlsCount | NumberOfEHSControls | ||
| EHSRiskImageURL | ||||
| EHSRiskLevelCriticality | _EHSRiskLevel | EHSRiskLevelCriticality | ||
| EHSRiskCommentUUID | EHSRiskCommentUUID | |||
| _EHSRiskCommentText | _EHSRiskCommentText | |||
| _HazardControl | _HazardControl | |||
| _AdhocEHSControls | _AdhocEHSControls | |||
| _StandardEHSControls | _StandardEHSControls | |||
| _HazardImpact | _HazardImpact | |||
| _EHSRiskImpact | _EHSRiskImpact | |||
| EHSRiskAssessmentType | C_EHSRisk | EHSRiskAssessmentType | ||
| _EHSRiskWithAssessmentProfile | _EHSRiskWithAssessmentProfile |
@EndUserText.label: 'Consumption view for the existing and newly identified Risks'
@VDM.viewType: #CONSUMPTION
@ObjectModel.updateEnabled: false
@ObjectModel.createEnabled: false
@AccessControl.authorizationCheck: #CHECK
@AccessControl.privilegedAssociations: ['_EHSRiskCommentText']
@ObjectModel.representativeKey: 'EHSRiskUUID'
@AbapCatalog.sqlViewName: 'CEHSRSKFORIDRSK'
@AbapCatalog.compiler.compareFilter: true
// Client handling by session
@ClientHandling.algorithm: #SESSION_VARIABLE
// used for BOBF Master Data Object
@ObjectModel.usageType:{ serviceQuality: #C, // < 15 msec
sizeCategory: #XL, // < 100.000.000
dataClass: #MIXED }
@Consumption.dbHints: ['USE_HEX_PLAN']
define view C_EHSRisksForIdentifyRisks
as select from C_EHSRisk
association [0..*] to I_EHSMethodOfUseText as _MethodOfUseText on $projection.MethodOfUse = _MethodOfUseText.MethodOfUse
association [1..1] to I_Hazard as _Hazard on $projection.Hazard = _Hazard.Hazard
association [0..*] to I_HazardText as _HazardText on $projection.Hazard = _HazardText.Hazard
association [0..*] to I_EHSOperationalStatusText as _OperationalStatusText on $projection.OperationalStatus = _OperationalStatusText.OperationalStatus
association [0..*] to I_EHSRiskLevelText as _EHSRiskLevelText on $projection.EHSRiskLevel = _EHSRiskLevelText.EHSRiskLevel
association [0..*] to I_EHSRiskStatusText as _EHSRiskStatusText on $projection.EHSRiskStatus = _EHSRiskStatusText.EHSRiskStatus
association [0..1] to P_EHSControlsCount as _EHSControlsCount on $projection.EHSRiskRevisionUUID = _EHSControlsCount.EHSRiskRevisionUUID
association [0..*] to C_AdhocEHSCtrlForIdentifyRisks as _AdhocEHSControls on $projection.EHSRiskRevisionUUID = _AdhocEHSControls.EHSRiskRevisionUUID
association [0..*] to C_StdEHSCtrlForIdentifyRisks as _StandardEHSControls on $projection.EHSRiskRevisionUUID = _StandardEHSControls.EHSRiskRevisionUUID
association [0..*] to I_CurrentEHSLocationNameText as _EHSLocationName on $projection.EHSLocationUUID = _EHSLocationName.EHSLocationUUID
association [0..*] to I_HazardImpact as _HazardImpact on $projection.Hazard = _HazardImpact.Hazard
association [0..*] to I_HazardControl as _HazardControl on $projection.Hazard = _HazardControl.Hazard
association [1..1] to C_EHSRiskWithAssessmentProfile as _EHSRiskWithAssessmentProfile on $projection.EHSRiskUUID = _EHSRiskWithAssessmentProfile.EHSRiskUUID
association [0..*] to I_ChemicalNameText as _ChemicalNameText on $projection.ChemicalUUID = _ChemicalNameText.ChemicalUUID
and _ChemicalNameText.RevisionEndDate >= $session.system_date
association [0..*] to I_AirborneAgentNameText as _AirborneAgentNameText on $projection.AirborneAgentUUID = _AirborneAgentNameText.AirborneAgentUUID
and _AirborneAgentNameText.RevisionEndDate >= $session.system_date
association [0..*] to I_PhysicalAgentNameText as _PhysicalAgentNameText on $projection.PhysicalAgentUUID = _PhysicalAgentNameText.PhysicalAgentUUID
association [0..1] to I_EHSJobAtLocation as _EHSJobAtLocation on $projection.EHSLocationUUID = _EHSJobAtLocation.EHSLocationUUID and
$projection.EHSJobUUID = _EHSJobAtLocation.EHSJobUUID
association [0..1] to I_EHSJobStepForJobAtLocation as _EHSJobStepForJobAtLocation on $projection.EHSJobAtLocationUUID = _EHSJobStepForJobAtLocation.EHSJobAtLocationUUID and
$projection.EHSJobStep = _EHSJobStepForJobAtLocation.EHSJobStep
{
key EHSRiskUUID,
EHSRiskRevisionUUID,
EHSRiskUUIDHex,
@ObjectModel.text.association: '_EHSLocationName'
EHSLocationUUID,
_EHSLocation,
_EHSLocationName,
EHSJobUUID,
_EHSJob,
EHSJobStep,
_EHSJobAtLocation.EHSJobAtLocationUUID as EHSJobAtLocationUUID,
_EHSJobStepForJobAtLocation,
@ObjectModel.text.association: '_HazardText'
Hazard,
_Hazard,
_HazardText,
EHSAgentUUID,
// due to performance reasons, it is beneficial to provide distinct agent names. The union view I_EHSAgentNameText can lead to a bad performance
@ObjectModel.text.association: '_ChemicalNameText'
ChemicalUUID,
_ChemicalNameText,
@ObjectModel.text.association: '_AirborneAgentNameText'
AirborneAgentUUID,
_AirborneAgentNameText,
@ObjectModel.text.association: '_PhysicalAgentNameText'
PhysicalAgentUUID,
_PhysicalAgentNameText,
@ObjectModel.text.association: '_OperationalStatusText'
cast ( OperationalStatus as ehhss_opstatus_code_nc preserving type ) as OperationalStatus,
_OperationalStatusText,
@ObjectModel.text.association: '_MethodOfUseText'
MethodOfUse,
_MethodOfUseText,
@ObjectModel.text.association: '_EHSRiskLevelText'
EHSRiskLevel,
_EHSRiskLevelText,
@ObjectModel.text.association: '_EHSRiskStatusText'
EHSRiskStatus,
_EHSRiskStatusText,
_EHSControlsCount.NumberOfEHSControls,
// to decrease the HANA footprint on performance, the algorithm to determine the picture path was moved into a SADL exit,
// before this was a distinct AMDP view
@ObjectModel: {
readOnly: true,
virtualElement: true,
virtualElementCalculatedBy: 'ABAP:CL_EHHSS_RISK_IMG_EXIT'
}
cast( '' as text1024 ) as EHSRiskImageURL,
_EHSRiskLevel.EHSRiskLevelCriticality as EHSRiskLevelCriticality,
EHSRiskCommentUUID,
_EHSRiskCommentText,
_HazardControl,
_AdhocEHSControls,
_StandardEHSControls,
_HazardImpact,
_EHSRiskImpact,
// these fields are needed for the authorization checks.
// they are exposed here with the try to reduce the number of the generated joins: ref. internal message 1670391530/2016
C_EHSRisk.EHSRiskAssessmentType,
// C_EHSRisk.EHSLocationAuthorizationGroup,
// C_EHSRisk.Plant,
// C_EHSRisk.CostCenter,
// C_EHSRisk.CompanyCode,
// C_EHSRisk.BusinessArea
_EHSRiskWithAssessmentProfile
}
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA