I_CurEHSLocationInclRoot
Current revision of EHS Locations
I_CurEHSLocationInclRoot is a Composite CDS View that provides data about "Current revision of EHS Locations" in SAP S/4HANA. It reads from 6 data sources and exposes 33 fields with key fields EHSLocationUUID, RevisionEndDate. It has 5 associations to related views.
Data Sources (6)
| Source | Alias | Join Type |
|---|---|---|
| I_EHSLocation | I_EHSLocation | from |
| I_EHSLocationHierarchyNode | I_EHSLocationHierarchyNode | inner |
| I_EHSLocationHierarchyRevision | I_EHSLocationHierarchyRevision | inner |
| I_SAPClient | I_SAPClient | union |
| I_MyEHSLocation | MyEHSLocation | left_outer |
| I_MyEHSLocation | MyEHSLocation | left_outer |
Associations (5)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [1..1] | I_LocationDescFallbackLang | _LocTextDesc | $projection.EHSLocationUUID = _LocTextDesc.EHSLocationUUID |
| [1..1] | I_EHSLocationTypeText | _EHSLocationTypeText | $projection.EHSLocationType = _EHSLocationTypeText.EHSLocationType and _EHSLocationTypeText.Language = $session.system_language |
| [0..1] | I_CurEHSLocationInclRoot | _ParentLocation | $projection.EHSParentLocationUUID = _ParentLocation.EHSLocationUUID |
| [0..1] | I_EHSLocAllClassifiersText | _EHSLocAllClassifiersText | $projection.EHSLocationUUID = _EHSLocAllClassifiersText.EHSLocationUUID |
| [0..1] | I_OTRText | _OTRLocationsText | _OTRLocationsText.OnlnTxtRpstryConceptID = '4544824ECF3DF419E10000000A428B9F' and _OTRLocationsText.Language = $session.system_language |
Annotations (11)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | ICUREHSLOCINCLR | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.preserveKey | true | view | |
| AccessControl.authorizationCheck | #PRIVILEGED_ONLY | view | |
| EndUserText.label | Current revision of EHS Locations | view | |
| ObjectModel.dataCategory | #HIERARCHY | view | |
| VDM.viewType | #COMPOSITE | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.sizeCategory | #M | view | |
| ObjectModel.usageType.dataClass | #MASTER | view |
Fields (33)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | EHSLocationUUID | I_EHSLocation | EHSLocationUUID | |
| RevisionEndDate | I_EHSLocation | RevisionEndDate | ||
| RevisionStartDate | I_EHSLocation | RevisionStartDate | ||
| EHSLocationName | ||||
| EHSLocationType | EHSLocationType | |||
| EHSLocationStatus | EHSLocationStatus | |||
| EHSParentLocationUUID | I_EHSLocationHierarchyNode | EHSParentLocationUUID | ||
| Plant | Plant | |||
| EHSLocationID | I_EHSLocation | EHSLocationID | ||
| EHSLocationUUIDendasMyEHSLocationUUID | ||||
| EHSLocationTypeText | _EHSLocationTypeText | EHSLocationTypeText | ||
| _EHSLocationTypeText | _EHSLocationTypeText | |||
| _ParentLocation | _ParentLocation | |||
| EHSLocClassifiersText | _EHSLocAllClassifiersText | EHSLocClassifiersText | ||
| EHSLocationAuthorizationGroup | ||||
| CostCenter | CostCenter | |||
| CompanyCode | CompanyCode | |||
| KEY | RevisionEndDate | |||
| RevisionStartDate | ||||
| EHSLocationName | ||||
| EHSLocationType | ||||
| EHSLocationStatus | ||||
| EHSParentLocationUUID | ||||
| Plant | ||||
| EHSLocationID | ||||
| EHSLocationTypeText | ||||
| _EHSLocationTypeText | _EHSLocationTypeText | |||
| _ParentLocation | _ParentLocation | |||
| EHSLocClassifiersText | ||||
| EHSLocationAuthorizationGroup | ||||
| CostCenter | ||||
| CompanyCode | ||||
| BusinessArea |
@AbapCatalog.sqlViewName: 'ICUREHSLOCINCLR'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY
@EndUserText.label: 'Current revision of EHS Locations'
@ObjectModel.dataCategory: #HIERARCHY
@VDM.viewType: #COMPOSITE
// Client handling by session
@ClientHandling.algorithm: #SESSION_VARIABLE
// used for BOBF Master Data Object
@ObjectModel.usageType:{ serviceQuality: #C, // < 15 msec
sizeCategory: #M, // < 100.000
dataClass: #MASTER}
/*+[hideWarning] { "IDS" : [ "DOUBLE_JOIN" ] }*/
define view I_CurEHSLocationInclRoot
as select from I_EHSLocation
// get the current revision of the location structure
inner join I_EHSLocationHierarchyRevision on I_EHSLocationHierarchyRevision.RevisionStartDate <= $session.system_date
and I_EHSLocationHierarchyRevision.RevisionEndDate >= $session.system_date
inner join I_EHSLocationHierarchyNode on I_EHSLocationHierarchyNode.EHSLocationUUID = I_EHSLocation.EHSLocationUUID
and I_EHSLocationHierarchyNode.EHSLocHierarchyRevisionUUID = I_EHSLocationHierarchyRevision.EHSLocHierarchyRevisionUUID
left outer join I_MyEHSLocation as MyEHSLocation on I_EHSLocation.EHSLocationUUID = MyEHSLocation.EHSLocationUUID
association [1..1] to I_LocationDescFallbackLang as _LocTextDesc on $projection.EHSLocationUUID = _LocTextDesc.EHSLocationUUID
association [1..1] to I_EHSLocationTypeText as _EHSLocationTypeText on $projection.EHSLocationType = _EHSLocationTypeText.EHSLocationType
and _EHSLocationTypeText.Language = $session.system_language
association [0..1] to I_CurEHSLocationInclRoot as _ParentLocation on $projection.EHSParentLocationUUID = _ParentLocation.EHSLocationUUID
association [0..1] to I_EHSLocAllClassifiersText as _EHSLocAllClassifiersText on $projection.EHSLocationUUID = _EHSLocAllClassifiersText.EHSLocationUUID
{
key I_EHSLocation.EHSLocationUUID,
I_EHSLocation.RevisionEndDate,
I_EHSLocation.RevisionStartDate,
_LocTextDesc._LocationNameText.EHSLocationName as EHSLocationName,
EHSLocationType,
EHSLocationStatus,
I_EHSLocationHierarchyNode.EHSParentLocationUUID,
Plant,
I_EHSLocation.EHSLocationID,
case
when MyEHSLocation.EHSLocationUUID is null
then cast( hextobin( 'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE' ) as ehfnd_location_uuid_ref preserving type)
else MyEHSLocation.EHSLocationUUID end as MyEHSLocationUUID,
_EHSLocationTypeText.EHSLocationTypeText,
_EHSLocationTypeText,
_ParentLocation,
@Semantics.text: true
_EHSLocAllClassifiersText.EHSLocClassifiersText,
// fields for authorization check
cast( EHSLocationAuthorizationGroup as ehfnd_loc_auth_group_nc preserving type ) as EHSLocationAuthorizationGroup,
CostCenter,
CompanyCode,
BusinessArea
}
where
I_EHSLocation.RevisionStartDate <= $session.system_date
and I_EHSLocation.RevisionEndDate >= $session.system_date // consider current location revisions only
union select from I_SAPClient // this generates a dummy topmost location
left outer join I_MyEHSLocation as MyEHSLocation on MyEHSLocation.EHSLocationUUID <> hextobin(
'00000000000000000000000000000000'
)
association [0..1] to I_OTRText as _OTRLocationsText on _OTRLocationsText.OnlnTxtRpstryConceptID = '4544824ECF3DF419E10000000A428B9F'
and _OTRLocationsText.Language = $session.system_language
association [1..1] to I_EHSLocationTypeText as _EHSLocationTypeText on $projection.EHSLocationType = _EHSLocationTypeText.EHSLocationType
and _EHSLocationTypeText.Language = $session.system_language
association [0..1] to I_CurEHSLocationInclRoot as _ParentLocation on $projection.EHSParentLocationUUID = _ParentLocation.EHSLocationUUID
{
key cast( hextobin( '00000000000000000000000000000000' ) as ehfnd_location_uuid_ref preserving type ) as EHSLocationUUID,
key cast( '99991231' as ehfnd_revision_split_date ) as RevisionEndDate,
cast( '00000000' as ehfnd_revision_end_date ) as RevisionStartDate,
cast( _OTRLocationsText.Text as ehfnd_loc_name ) as EHSLocationName,
'root' as EHSLocationType,
'-1' as EHSLocationStatus,
cast( hextobin( 'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' ) as ehfnd_loc_rev_key preserving type ) as EHSParentLocationUUID,
'' as Plant,
'' as EHSLocationID,
case
when MyEHSLocation.EHSLocationUUID is null
then cast( hextobin( '00000000000000000000000000000000' ) as ehfnd_location_uuid_ref preserving type )
else cast( hextobin( 'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE' ) as ehfnd_location_uuid_ref preserving type) end as MyEHSLocationUUID,
'' as EHSLocationTypeText,
_EHSLocationTypeText,
_ParentLocation,
'' as EHSLocClassifiersText,
// fields for authorization check
'' as EHSLocationAuthorizationGroup,
'' as CostCenter,
'' as CompanyCode,
'' as BusinessArea
}
where
sapclient = $session.client
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_EHSLOCALLCLASSIFIERSTEXT",
"I_EHSLOCATION",
"I_EHSLOCATIONHIERARCHYNODE",
"I_EHSLOCATIONHIERARCHYREVISION",
"I_EHSLOCATIONREVISIONNAMET",
"I_EHSLOCATIONTYPETEXT",
"I_LOCATIONDESCFALLBACKLANG",
"I_MYEHSLOCATION",
"I_OTRTEXT",
"I_SAPCLIENT"
],
"ASSOCIATED":
[
"I_EHSLOCALLCLASSIFIERSTEXT",
"I_EHSLOCATIONTYPETEXT",
"I_LOCATIONDESCFALLBACKLANG"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/
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