I_EHSLocationRevision

DDL: I_EHSLOCATIONREVISION SQL: ILOCREV Type: view BASIC Package: EHFND_BO_LOC_IMPL

EHS Location Revision

I_EHSLocationRevision is a Basic CDS View (Dimension) that provides data about "EHS Location Revision" in SAP S/4HANA. It reads from 1 data source (I_EHSLocationRevisionBasic) and exposes 48 fields with key fields EHSLocationUUID, RevisionEndDate. It has 20 associations to related views. Part of development package EHFND_BO_LOC_IMPL.

Data Sources (1)

SourceAliasJoin Type
I_EHSLocationRevisionBasic rev from

Associations (20)

CardinalityTargetAliasCondition
[0..1] I_User _CreatedByUser $projection.CreatedByUser = _CreatedByUser.UserID
[0..1] I_User _LastChangedByUser $projection.LastChangedByUser = _LastChangedByUser.UserID
[0..1] I_EHSLocationType _EHSLocationType $projection.EHSLocationType = _EHSLocationType.EHSLocationType
[0..1] I_EHSLocationStatus _EHSLocationStatus $projection.EHSLocationStatus = _EHSLocationStatus.EHSLocationStatus
[0..1] I_Plant _Plant $projection.Plant = _Plant.Plant
[0..1] I_CompanyCode _CompanyCode $projection.CompanyCode = _CompanyCode.CompanyCode
[0..1] I_BusinessArea _BusinessArea $projection.BusinessArea = _BusinessArea.BusinessArea
[0..1] I_OrgUnit _OrganizationalUnit $projection.OrganizationalUnit = _OrganizationalUnit.OrganizationalUnit
[0..1] I_StorageLocation _StorageLocation $projection.StorageLocation = _StorageLocation.StorageLocation and $projection.Plant = _StorageLocation.Plant
[0..1] I_ControllingArea _ControllingArea $projection.ControllingArea = _ControllingArea.ControllingArea
[0..*] I_CostCenter _CostCenter $projection.CostCenter = _CostCenter.CostCenter and $projection.ControllingArea = _CostCenter.ControllingArea
[0..1] I_EHSLocationAuthznGroup _EHSLocationAuthGroup $projection.EHSLocationAuthorizationGroup = _EHSLocationAuthGroup.EHSLocationAuthorizationGroup
[0..1] I_Country _Country $projection.Country = _Country.Country
[0..1] I_Region _Region $projection.Region = _Region.Region and $projection.Country = _Region.Country
[0..1] I_Equipment _Equipment $projection.Equipment = _Equipment.Equipment
[0..1] I_FunctionalLocation _FunctionalLocation $projection.FunctionalLocation = _FunctionalLocation.FunctionalLocation
[0..*] I_EHSLocationRevisionNameT _EHSLocationRevisionName $projection.EHSLocationUUID = _EHSLocationRevisionName.EHSLocationUUID and $projection.RevisionEndDate = _EHSLocationRevisionName.RevisionEndDate
[0..*] I_EHSLocationStorageLocation _EHSLocationStorageLocation $projection.EHSLocationRevisionUUID = _EHSLocationStorageLocation.EHSLocationRevisionUUID
[0..*] I_EHSLocationBuilding _EHSLocationBuilding $projection.EHSLocationRevisionUUID = _EHSLocationBuilding.EHSLocationRevisionUUID
[0..*] I_EHSLocRespTechnicianCombined _EHSLocRespTechnician $projection.EHSLocationRevisionUUID = _EHSLocRespTechnician.EHSLocationRevisionUUID

Annotations (16)

NameValueLevelField
EndUserText.label EHS Location Revision view
Analytics.dataCategory #DIMENSION view
Analytics.dataExtraction.enabled true view
VDM.viewType #BASIC view
ObjectModel.representativeKey EHSLocationUUID view
AccessControl.authorizationCheck #MANDATORY view
AbapCatalog.sqlViewName ILOCREV view
AbapCatalog.compiler.compareFilter true view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.serviceQuality #A view
ObjectModel.usageType.sizeCategory #M view
ObjectModel.usageType.dataClass #MASTER view
Metadata.allowExtensions true view
ObjectModel.modelingPattern #NONE view
Metadata.ignorePropagatedAnnotations true view
ObjectModel.sapObjectNodeType.name EHSLocationRevision view

Fields (48)

KeyFieldSource TableSource FieldDescription
KEY EHSLocationUUID EHSLocationUUID
KEY RevisionEndDate RevisionEndDate
RevisionStartDate RevisionStartDate
EHSLocationRevisionUUID EHSLocationRevisionUUID
CreationDateTime CreationDateTime
CreatedByUser CreatedByUser
_CreatedByUser _CreatedByUser
LastChangeDateTime LastChangeDateTime
LastChangedByUser LastChangedByUser
_LastChangedByUser _LastChangedByUser
Latitude Latitude
Longitude Longitude
EHSLocationType EHSLocationType
_EHSLocationType _EHSLocationType
EHSLocationStatus EHSLocationStatus
_EHSLocationStatus _EHSLocationStatus
Plant Plant
_Plant _Plant
CompanyCode CompanyCode
_CompanyCode _CompanyCode
BusinessArea BusinessArea
_BusinessArea _BusinessArea
ControllingArea ControllingArea
_ControllingArea _ControllingArea
CostCenter CostCenter
OrganizationalUnit
_OrganizationalUnit _OrganizationalUnit
StorageLocation StorageLocation
_StorageLocation _StorageLocation
EHSLocationAuthorizationGroup
_EHSLocationAuthGroup _EHSLocationAuthGroup
Country Country
_Country _Country
Region Region
_Region _Region
CityName CityName
StreetName StreetName
PostalCode PostalCode
EHSLocationPhone EHSLocationPhone
Equipment Equipment
_Equipment _Equipment
FunctionalLocation EHSFunctionalLocation
_FunctionalLocation _FunctionalLocation
_EHSLocationRevisionName _EHSLocationRevisionName
_EHSLocationStorageLocation _EHSLocationStorageLocation
_EHSLocationBuilding _EHSLocationBuilding
_EHSLocRespTechnician _EHSLocRespTechnician
_CostCenter _CostCenter
@EndUserText.label: 'EHS Location Revision'
@Analytics: { dataCategory:#DIMENSION , dataExtraction.enabled:true }
@VDM.viewType: #BASIC
@ObjectModel.representativeKey: 'EHSLocationUUID'
@AccessControl.authorizationCheck: #MANDATORY

@AbapCatalog.sqlViewName: 'ILOCREV'
@AbapCatalog.compiler.compareFilter: true

// Client handling by session

@ClientHandling.algorithm: #SESSION_VARIABLE

// used for BOBF Master Data Object

@ObjectModel.usageType:{ serviceQuality: #A,        
                         sizeCategory:  #M,         // < 100.000

                         dataClass: #MASTER }
@Metadata.allowExtensions:true

@AccessControl.privilegedAssociations: ['_CreatedByUser', '_OrganizationalUnit', '_LastChangedByUser']
@ObjectModel.supportedCapabilities: [ #EXTRACTION_DATA_SOURCE, #ANALYTICAL_DIMENSION, #CDS_MODELING_ASSOCIATION_TARGET ]
@ObjectModel.modelingPattern: #NONE
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.sapObjectNodeType.name: 'EHSLocationRevision'
define view I_EHSLocationRevision
  as select from I_EHSLocationRevisionBasic as rev

  association [0..1] to I_User                         as _CreatedByUser              on  $projection.CreatedByUser = _CreatedByUser.UserID
  association [0..1] to I_User                         as _LastChangedByUser          on  $projection.LastChangedByUser = _LastChangedByUser.UserID
  association [0..1] to I_EHSLocationType              as _EHSLocationType            on  $projection.EHSLocationType = _EHSLocationType.EHSLocationType
  association [0..1] to I_EHSLocationStatus            as _EHSLocationStatus          on  $projection.EHSLocationStatus = _EHSLocationStatus.EHSLocationStatus
  association [0..1] to I_Plant                        as _Plant                      on  $projection.Plant = _Plant.Plant
  association [0..1] to I_CompanyCode                  as _CompanyCode                on  $projection.CompanyCode = _CompanyCode.CompanyCode
  association [0..1] to I_BusinessArea                 as _BusinessArea               on  $projection.BusinessArea = _BusinessArea.BusinessArea
  association [0..1] to I_OrgUnit                      as _OrganizationalUnit         on  $projection.OrganizationalUnit = _OrganizationalUnit.OrganizationalUnit
  association [0..1] to I_StorageLocation              as _StorageLocation            on  $projection.StorageLocation = _StorageLocation.StorageLocation
                                                                                      and $projection.Plant           = _StorageLocation.Plant
  association [0..1] to I_ControllingArea              as _ControllingArea            on  $projection.ControllingArea = _ControllingArea.ControllingArea
  association [0..*] to I_CostCenter                   as _CostCenter                 on  $projection.CostCenter      = _CostCenter.CostCenter
                                                                                      and $projection.ControllingArea = _CostCenter.ControllingArea
  association [0..1] to I_EHSLocationAuthznGroup       as _EHSLocationAuthGroup       on  $projection.EHSLocationAuthorizationGroup = _EHSLocationAuthGroup.EHSLocationAuthorizationGroup
  association [0..1] to I_Country                      as _Country                    on  $projection.Country = _Country.Country
  association [0..1] to I_Region                       as _Region                     on  $projection.Region  = _Region.Region
                                                                                      and $projection.Country = _Region.Country
  association [0..1] to I_Equipment                    as _Equipment                  on  $projection.Equipment = _Equipment.Equipment
  association [0..1] to I_FunctionalLocation           as _FunctionalLocation         on  $projection.FunctionalLocation = _FunctionalLocation.FunctionalLocation
  association [0..*] to I_EHSLocationRevisionNameT     as _EHSLocationRevisionName    on  $projection.EHSLocationUUID = _EHSLocationRevisionName.EHSLocationUUID
                                                                                      and $projection.RevisionEndDate = _EHSLocationRevisionName.RevisionEndDate

  association [0..*] to I_EHSLocationStorageLocation   as _EHSLocationStorageLocation on  $projection.EHSLocationRevisionUUID = _EHSLocationStorageLocation.EHSLocationRevisionUUID
  association [0..*] to I_EHSLocationBuilding          as _EHSLocationBuilding        on  $projection.EHSLocationRevisionUUID = _EHSLocationBuilding.EHSLocationRevisionUUID
  association [0..*] to I_EHSLocRespTechnicianCombined as _EHSLocRespTechnician       on  $projection.EHSLocationRevisionUUID = _EHSLocRespTechnician.EHSLocationRevisionUUID


{
       @ObjectModel.text.association: '_EHSLocationRevisionName'
  key  EHSLocationUUID,
       // The end date in view P_EHSLocRevisionValidty is actually the start date of the next revision. Thus we still have to subtract

       // one day from that date in order to determine the correct end date (unfortunately this is not posible to do in P_EHSLocRevisionValidty

       // because in that view we have to use SQL min aggregation for this field as well).

       // If there is no next revision, i.e. there is no end date, we use 99991231 as end date.

       @Semantics.businessDate.to
  key  RevisionEndDate,

       @Semantics.businessDate.from
       RevisionStartDate,

       EHSLocationRevisionUUID,

       @Semantics.systemDateTime.createdAt
       CreationDateTime,
       @Semantics.user.createdBy
       CreatedByUser,
       _CreatedByUser,
       @Semantics.systemDateTime.lastChangedAt
       LastChangeDateTime,
       @Semantics.user.lastChangedBy
       LastChangedByUser,
       _LastChangedByUser,
       Latitude,
       Longitude,
       @ObjectModel.foreignKey.association: '_EHSLocationType'
       EHSLocationType,
       _EHSLocationType,
       @ObjectModel.foreignKey.association: '_EHSLocationStatus'
       EHSLocationStatus,
       _EHSLocationStatus,
       @ObjectModel.foreignKey.association: '_Plant'
       Plant,
       _Plant,
       //--[ GENERATED:012:29JlHNUf7jY4oS0yl5vKTW

       @Consumption.valueHelpDefinition: [
         { entity:  { name:    'I_CompanyCodeStdVH',
                      element: 'CompanyCode' }
         }]
       // ]--GENERATED

       @ObjectModel.foreignKey.association: '_CompanyCode'
       CompanyCode,
       _CompanyCode,
       //--[ GENERATED:012:29JlHNUf7jY4oS0yl5vKTW

       @Consumption.valueHelpDefinition: [
         { entity:  { name:    'I_BusinessAreaStdVH',
                      element: 'BusinessArea' }
         }]
       // ]--GENERATED

       @ObjectModel.foreignKey.association: '_BusinessArea'
       BusinessArea,
       _BusinessArea,
       @ObjectModel.foreignKey.association: '_ControllingArea'
       ControllingArea,
       _ControllingArea,
       //--[ GENERATED:012:29JlHNUf7jY4oS0yl5vKTW

       @Consumption.valueHelpDefinition: [
         { entity:  { name:    'I_CostCenterStdVH',
                      element: 'CostCenter' },
           additionalBinding: [{ localElement: 'ControllingArea',
                                 element: 'ControllingArea' }]
         }]
       // ]--GENERATED

       @ObjectModel.foreignKey.association: null
       CostCenter,
       //       _CostCenter,

       @ObjectModel.foreignKey.association: '_OrganizationalUnit'
       cast( OrganizationalUnit as ehfnd_org_unit_id preserving type )               as OrganizationalUnit,
       _OrganizationalUnit,
       @ObjectModel.foreignKey.association: '_StorageLocation'
       StorageLocation,
       _StorageLocation,
       @ObjectModel.foreignKey.association: '_EHSLocationAuthGroup'
       cast( EHSLocationAuthorizationGroup as ehfnd_loc_auth_group preserving type ) as EHSLocationAuthorizationGroup,
       _EHSLocationAuthGroup,
       @ObjectModel.foreignKey.association: '_Country'
       Country,
       _Country,
       @ObjectModel.foreignKey.association: '_Region'
       Region,
       _Region,
       CityName,

       StreetName,

       PostalCode,
       EHSLocationPhone,

       //--[ GENERATED:012:29JlHNUf7jY4oS0yl5vKTW

       @Consumption.valueHelpDefinition: [
         { entity:  { name:    'I_EquipmentStdVH',
                      element: 'Equipment' }
         }]
       // ]--GENERATED

       @ObjectModel.foreignKey.association: '_Equipment'
       Equipment,
       _Equipment,
       //--[ GENERATED:012:29JlHNUf7jY4oS0yl5vKTW

       @Consumption.valueHelpDefinition: [
         { entity:  { name:    'I_FunctionalLocationStdVH',
                      element: 'FunctionalLocation' }
         }]
       // ]--GENERATED

       @ObjectModel.foreignKey.association: '_FunctionalLocation'
       EHSFunctionalLocation                                                         as FunctionalLocation,
       @ObjectModel.association.boundFields.dataMatchesSourceAndTargetTypes: true
       _FunctionalLocation,

       _EHSLocationRevisionName,
       _EHSLocationStorageLocation,
       _EHSLocationBuilding,
       _EHSLocRespTechnician,
       _CostCenter
}