@AbapCatalog.sqlViewName: 'IEHSLOCVH'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'EHS Location Value Help'
@VDM.viewType: #COMPOSITE
@ObjectModel.dataCategory:#VALUE_HELP
@ObjectModel.representativeKey: 'EHSLocationUUID'
@AccessControl.privilegedAssociations: ['_EHSLocationTypeText', '_EHSLocationStatusText']
// Client handling by session
@ClientHandling.algorithm: #SESSION_VARIABLE
@Metadata.ignorePropagatedAnnotations: true
// used for BOBF Master Data Object
@ObjectModel.usageType:{ serviceQuality: #C, // < 15 msec
sizeCategory: #M, // < 100.000
dataClass: #MASTER }
define view I_EHSLocationValueHelp
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
association [0..*] to I_CurrentEHSLocationNameText as _EHSLocationName on $projection.EHSLocationUUID = _EHSLocationName.EHSLocationUUID
association [0..*] to I_EHSLocationTypeText as _EHSLocationTypeText on $projection.EHSLocationType = _EHSLocationTypeText.EHSLocationType
association [0..*] to I_EHSLocationStatusText as _EHSLocationStatusText on $projection.EHSLocationStatus = _EHSLocationStatusText.EHSLocationStatus
// association [0..1] to I_EHSLocationImageURL as _EHSLocationImageURL on $projection.EHSLocationUUID = _EHSLocationImageURL.EHSLocationUUID
{
@UI.hidden: true
@ObjectModel.text.association: '_EHSLocationName'
key I_EHSLocation.EHSLocationUUID,
@ObjectModel.text.association: '_EHSLocationTypeText'
cast ( EHSLocationType as ehfnd_loc_type_code_nc preserving type ) as EHSLocationType,
@ObjectModel.text.association: '_EHSLocationStatusText'
cast ( EHSLocationStatus as ehfnd_loc_status_nc preserving type ) as EHSLocationStatus,
@ObjectModel: {
readOnly: true,
virtualElement: true,
virtualElementCalculatedBy: 'ABAP:CL_EHFND_LOCATION_IMAGE_EXIT'
}
@EndUserText.label: 'Location Image URL'
cast('' as abap.char( 1024 ) ) as EHSLocationImageURL,
// DCL related fields
@Consumption.hidden: true
EHSLocationAuthorizationGroup,
@Consumption.hidden: true
Plant,
@Consumption.hidden: true
CostCenter,
@Consumption.hidden: true
ControllingArea,
@Consumption.hidden: true
CompanyCode,
@Consumption.hidden: true
BusinessArea,
_EHSLocationName,
_EHSLocationTypeText,
_EHSLocationStatusText,
_EHSLocationAuthGroup,
_Plant,
// _CostCenter,
_ControllingArea,
_CompanyCode,
_BusinessArea
}
where
I_EHSLocation.RevisionStartDate <= $session.system_date
and I_EHSLocation.RevisionEndDate >= $session.system_date // consider current location revisions only
and(
EHSLocationStatus = '02'
or EHSLocationStatus = '03'
) // consider only active and inactive locations
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_EHSLOCATION",
"I_EHSLOCATIONHIERARCHYNODE",
"I_EHSLOCATIONHIERARCHYREVISION"
],
"ASSOCIATED":
[
"I_BUSINESSAREA",
"I_COMPANYCODE",
"I_CONTROLLINGAREA",
"I_CURRENTEHSLOCATIONNAMETEXT",
"I_EHSLOCATIONAUTHZNGROUP",
"I_EHSLOCATIONSTATUSTEXT",
"I_EHSLOCATIONTYPETEXT",
"I_PLANT"
],
"BASE":
[
"I_EHSLOCATION"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/