I_UtilsTechObjLocationAddr

DDL: I_UTILSTECHOBJLOCATIONADDR SQL: IETECHOBJLOCADDR Type: view COMPOSITE

Technical Object Location Address

I_UtilsTechObjLocationAddr is a Composite CDS View (Dimension) that provides data about "Technical Object Location Address" in SAP S/4HANA. It reads from 1 data source (I_FunctionalLocation) and exposes 30 fields with key field FunctionalLocation. It has 4 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_FunctionalLocation I_FunctionalLocation from

Associations (4)

CardinalityTargetAliasCondition
[0..1] I_Plant _Plant $projection.maintenanceplant = _Plant.Plant
[0..1] I_Plant _PlanningPlant $projection.MaintenancePlanningPlant = _PlanningPlant.Plant
[0..*] I_FunctionalLocationText _FunctionalLocationText _FunctionalLocationText.FunctionalLocation = $projection.FunctionalLocation
[0..1] I_PostalCity _PostalCity $projection.CityNumber = _PostalCity.CityNumber and $projection.country = _PostalCity.Country

Annotations (14)

NameValueLevelField
EndUserText.label Technical Object Location Address view
Analytics.dataCategory #DIMENSION view
VDM.viewType #COMPOSITE view
AccessControl.authorizationCheck #MANDATORY view
ObjectModel.representativeKey FunctionalLocation view
AbapCatalog.sqlViewName IETECHOBJLOCADDR view
ObjectModel.usageType.serviceQuality C view
ObjectModel.usageType.sizeCategory XL view
ObjectModel.usageType.dataClass MIXED view
ClientHandling.algorithm #SESSION_VARIABLE view
Metadata.ignorePropagatedAnnotations true view
AbapCatalog.compiler.compareFilter true view
Metadata.allowExtensions true view
ObjectModel.modelingPattern #ANALYTICAL_DIMENSION view

Fields (30)

KeyFieldSource TableSource FieldDescription
KEY FunctionalLocation I_FunctionalLocation FunctionalLocation
MaintObjectLocAcctAssgmtNmbr I_FunctionalLocation MaintObjectLocAcctAssgmtNmbr
MaintenancePlanningPlant I_FunctionalLocation MaintenancePlanningPlant
AuthorizationGroup I_FunctionalLocation AuthorizationGroup
MaintenancePlannerGroup I_FunctionalLocation MaintenancePlannerGroup
MaintenancePlant
AddressID
MaintenanceObjectLocation
AssetLocation
ControllingArea
CostCenter
CityNumber
Country
Region
CountyCode
_FunctionalLocationText _FunctionalLocationText
_Address
_Address2
_Country
_CountyCode
_Region
_CostCenter
_ControllingArea
_Location
_Plant _Plant
_MaintenancePlanningPlant _MaintenancePlanningPlant
_PlanningPlant _PlanningPlant
_LocationAccountAssignment _LocationAccountAssignment
_MaintenancePlannerGroup _MaintenancePlannerGroup
_PostalCity _PostalCity
@EndUserText.label: 'Technical Object Location Address'
@Analytics.dataCategory: #DIMENSION //or #CUBE or #FACT

@VDM.viewType: #COMPOSITE
@AccessControl.authorizationCheck: #MANDATORY
@ObjectModel.representativeKey: 'FunctionalLocation'
@AbapCatalog.sqlViewName: 'IETECHOBJLOCADDR'
@ObjectModel.usageType.serviceQuality: 'C'
@ObjectModel.usageType.sizeCategory: 'XL'
@ObjectModel.usageType.dataClass: 'MIXED'
@ClientHandling.algorithm: #SESSION_VARIABLE
@Metadata.ignorePropagatedAnnotations:true
@ObjectModel.supportedCapabilities: [#SQL_DATA_SOURCE, #ANALYTICAL_DIMENSION, #ANALYTICAL_PROVIDER, #CDS_MODELING_ASSOCIATION_TARGET, #CDS_MODELING_DATA_SOURCE ]
@AbapCatalog.compiler.compareFilter:true
//@AbapCatalog.preserveKey: true

@Metadata.allowExtensions: true
//Privileged associations specified

@AccessControl.privilegedAssociations:  [ '_Address', '_LocationAccountAssignment', '_Location', '_Address2' ]
@ObjectModel.modelingPattern: #ANALYTICAL_DIMENSION

define view I_UtilsTechObjLocationAddr
  as select from I_FunctionalLocation
  //  association [0..1] to I_Address                as _Address1               on  $projection.addressid = _Address1.AddressID

  association [0..1] to I_Plant                  as _Plant                  on  $projection.maintenanceplant = _Plant.Plant
  association [0..1] to I_Plant                  as _PlanningPlant          on  $projection.MaintenancePlanningPlant = _PlanningPlant.Plant
  association [0..*] to I_FunctionalLocationText as _FunctionalLocationText on  _FunctionalLocationText.FunctionalLocation = $projection.FunctionalLocation
  association [0..1] to I_PostalCity             as _PostalCity             on  $projection.CityNumber = _PostalCity.CityNumber
                                                                            and $projection.country    = _PostalCity.Country
{
  key I_FunctionalLocation.FunctionalLocation,
      @ObjectModel.foreignKey.association: '_LocationAccountAssignment'
      I_FunctionalLocation.MaintObjectLocAcctAssgmtNmbr,
      @ObjectModel.foreignKey.association: '_MaintenancePlanningPlant'
      I_FunctionalLocation.MaintenancePlanningPlant,
      I_FunctionalLocation.AuthorizationGroup,
      @ObjectModel.foreignKey.association: '_MaintenancePlannerGroup'
      I_FunctionalLocation.MaintenancePlannerGroup,
      @ObjectModel.foreignKey.association: '_Plant'
      I_FunctionalLocation._LocationAccountAssignment[1: MaintObjectLocAcctAssgmtNmbr = MaintObjectLocAcctAssgmtNmbr].MaintenancePlant,
      @ObjectModel.foreignKey.association: '_Address'
      I_FunctionalLocation._LocationAccountAssignment[1: MaintObjectLocAcctAssgmtNmbr = MaintObjectLocAcctAssgmtNmbr].AddressID,
      I_FunctionalLocation._LocationAccountAssignment[1: MaintObjectLocAcctAssgmtNmbr = MaintObjectLocAcctAssgmtNmbr].MaintenanceObjectLocation,
      @ObjectModel.foreignKey.association: '_Location'
      I_FunctionalLocation._LocationAccountAssignment[1: MaintObjectLocAcctAssgmtNmbr = MaintObjectLocAcctAssgmtNmbr].AssetLocation,
      @ObjectModel.foreignKey.association: '_ControllingArea'
      I_FunctionalLocation._LocationAccountAssignment[1: MaintObjectLocAcctAssgmtNmbr = MaintObjectLocAcctAssgmtNmbr].ControllingArea,
      @ObjectModel.foreignKey.association: '_CostCenter'
      I_FunctionalLocation._LocationAccountAssignment[1: MaintObjectLocAcctAssgmtNmbr = MaintObjectLocAcctAssgmtNmbr].CostCenter,
      @ObjectModel.foreignKey.association: '_PostalCity'
      cast( I_FunctionalLocation._LocationAccountAssignment[1: MaintObjectLocAcctAssgmtNmbr = MaintObjectLocAcctAssgmtNmbr]._Address2.CityNumber as ad_citynum preserving type ) as CityNumber,
      @ObjectModel.foreignKey.association: '_Country'
      I_FunctionalLocation._LocationAccountAssignment[1: MaintObjectLocAcctAssgmtNmbr = MaintObjectLocAcctAssgmtNmbr]._Address2.Country,
      //      @ObjectModel.foreignKey.association: '_CountyCode'

      //      I_FunctionalLocation._LocationAccountAssignment[1: MaintObjectLocAcctAssgmtNmbr = MaintObjectLocAcctAssgmtNmbr]._Address.CountyCode,

      @ObjectModel.foreignKey.association: '_Region'
      I_FunctionalLocation._LocationAccountAssignment[1: MaintObjectLocAcctAssgmtNmbr = MaintObjectLocAcctAssgmtNmbr]._Address2.Region,
      @ObjectModel.foreignKey.association: '_CountyCode'
      I_FunctionalLocation._LocationAccountAssignment[1: MaintObjectLocAcctAssgmtNmbr = MaintObjectLocAcctAssgmtNmbr]._Address2.SecondaryRegion                                  as CountyCode,

      _FunctionalLocationText,
      @API.element.releaseState: #DEPRECATED
      @API.element.successor: '_Address2'
      I_FunctionalLocation._LocationAccountAssignment[1: MaintObjectLocAcctAssgmtNmbr = MaintObjectLocAcctAssgmtNmbr]._Address,
      I_FunctionalLocation._LocationAccountAssignment[1: MaintObjectLocAcctAssgmtNmbr = MaintObjectLocAcctAssgmtNmbr]._Address2,
      I_FunctionalLocation._LocationAccountAssignment[1: MaintObjectLocAcctAssgmtNmbr = MaintObjectLocAcctAssgmtNmbr]._Address2._Country,
      //      I_FunctionalLocation._LocationAccountAssignment[1: MaintObjectLocAcctAssgmtNmbr = MaintObjectLocAcctAssgmtNmbr]._Address._CountyCode,

      I_FunctionalLocation._LocationAccountAssignment[1: MaintObjectLocAcctAssgmtNmbr = MaintObjectLocAcctAssgmtNmbr]._Address2._SecondaryRegion                                 as _CountyCode,
      I_FunctionalLocation._LocationAccountAssignment[1: MaintObjectLocAcctAssgmtNmbr = MaintObjectLocAcctAssgmtNmbr]._Address2._Region,
      I_FunctionalLocation._LocationAccountAssignment[1: MaintObjectLocAcctAssgmtNmbr = MaintObjectLocAcctAssgmtNmbr]._CostCenter,
      I_FunctionalLocation._LocationAccountAssignment[1: MaintObjectLocAcctAssgmtNmbr = MaintObjectLocAcctAssgmtNmbr]._ControllingArea,
      I_FunctionalLocation._LocationAccountAssignment[1: MaintObjectLocAcctAssgmtNmbr = MaintObjectLocAcctAssgmtNmbr]._Location,
      _Plant,
      _MaintenancePlanningPlant,
      _PlanningPlant,
      _LocationAccountAssignment,
      _MaintenancePlannerGroup,
      _PostalCity

}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_ADDRESSDEFAULTREPRESENTATION",
"I_FUNCTIONALLOCATION",
"I_LOCATIONACCOUNTASSIGNMENT"
],
"ASSOCIATED":
[
"I_ADDRESS",
"I_ADDRESSDEFAULTREPRESENTATION",
"I_CONTROLLINGAREA",
"I_COSTCENTER",
"I_COUNTRY",
"I_FUNCTIONALLOCATIONTEXT",
"I_LOCATION",
"I_LOCATIONACCOUNTASSIGNMENT",
"I_MAINTENANCEPLANNERGROUP",
"I_MAINTENANCEPLANPLANT",
"I_PLANT",
"I_POSTALCITY",
"I_REGION",
"I_SECONDARYREGION"
],
"BASE":
[
"I_ADDRESSDEFAULTREPRESENTATION",
"I_FUNCTIONALLOCATION",
"I_LOCATIONACCOUNTASSIGNMENT"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/