I_REControllingObject
Real Estate Accounting Object
I_REControllingObject is a Composite CDS View (Dimension) that provides data about "Real Estate Accounting Object" in SAP S/4HANA. It reads from 3 data sources (I_CostCenter, I_InternalOrder, I_WBSElementBasicData) and exposes 36 fields with key field REAccountingObject. It has 4 associations to related views. Part of development package VDM_RE_RA.
Data Sources (3)
| Source | Alias | Join Type |
|---|---|---|
| I_CostCenter | _CostCenter | from |
| I_InternalOrder | _InternalOrder | union_all |
| I_WBSElementBasicData | _WBSElement | union_all |
Associations (4)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [1..1] | I_REObjectTypeText | _REObjectTypeText | _REObjectTypeText.RealEstateObjectType = 'KS' and _REObjectTypeText.Language = $session.system_language |
| [0..1] | I_InternalOrder | _InternalOrder | $projection.REAccountingObject = _InternalOrder.ControllingObject |
| [0..1] | I_WBSElementBasicData | _WBSElement | $projection.REAccountingObject = _WBSElement.WBSElementObject |
| [0..1] | I_CostCenter | _CostCenter | $projection.REAccountingObject = _CostCenter.ObjectInternalID |
Annotations (16)
| Name | Value | Level | Field |
|---|---|---|---|
| EndUserText.label | Real Estate Accounting Object | view | |
| Analytics.dataCategory | #DIMENSION | view | |
| Analytics.dataExtraction.enabled | true | view | |
| VDM.viewType | #COMPOSITE | view | |
| AccessControl.personalData.blocking | #BLOCKED_DATA_EXCLUDED | view | |
| AbapCatalog.sqlViewName | IRECTRLGGOBJECT | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| ObjectModel.representativeKey | REAccountingObject | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.preserveKey | true | view | |
| Analytics.internalName | #LOCAL | view | |
| ObjectModel.usageType.dataClass | #MASTER | view | |
| ObjectModel.usageType.serviceQuality | #D | view | |
| ObjectModel.usageType.sizeCategory | #XL | view | |
| Metadata.allowExtensions | true | view |
Fields (36)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | REAccountingObject | I_CostCenter | ObjectInternalID | |
| REAccountingObjectType | ||||
| CostCenterasrecaidentasREIdentification | ||||
| CompanyCode | I_CostCenter | CompanyCode | ||
| REObjectText | ||||
| CostCenter | I_CostCenter | CostCenter | ||
| InternalOrder | I_InternalOrder | InternalOrder | ||
| WBSElementExternalID | I_WBSElementBasicData | WBSElementExternalID | ||
| ControllingArea | I_CostCenter | ControllingArea | ||
| OrderType | ||||
| ProfitCenter | I_CostCenter | ProfitCenter | ||
| ControllingObjectasREAccountingObject | ||||
| REAccountingObjectType | ||||
| REIdentification | ||||
| REIdentificationKey | ||||
| CompanyCode | I_InternalOrder | CompanyCode | ||
| REObjectText | ||||
| CostCenter | I_CostCenter | CostCenter | ||
| InternalOrder | I_InternalOrder | InternalOrder | ||
| WBSElementExternalID | I_WBSElementBasicData | WBSElementExternalID | ||
| ControllingArea | I_InternalOrder | ControllingArea | ||
| OrderType | I_InternalOrder | OrderType | ||
| ProfitCenter | I_InternalOrder | ProfitCenter | ||
| WBSElementObjectasREAccountingObject | ||||
| REAccountingObjectType | ||||
| REIdentification | ||||
| REIdentificationKey | ||||
| CompanyCode | I_WBSElementBasicData | CompanyCode | ||
| REObjectText | ||||
| CostCenter | I_CostCenter | CostCenter | ||
| InternalOrder | I_InternalOrder | InternalOrder | ||
| WBSElementExternalID | I_WBSElementBasicData | WBSElementExternalID | ||
| ControllingArea | I_WBSElementBasicData | ControllingArea | ||
| OrderType | ||||
| ProfitCenter | I_WBSElementBasicData | ProfitCenter | ||
| RealEstateObjectTypeName | _REObjectTypeText | RealEstateObjectTypeName |
@EndUserText.label: 'Real Estate Accounting Object'
@Analytics: { dataCategory: #DIMENSION, dataExtraction.enabled: true }
@VDM.viewType: #COMPOSITE
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@AbapCatalog.sqlViewName: 'IRECTRLGGOBJECT'
@AccessControl.authorizationCheck: #CHECK
@ObjectModel.representativeKey: 'REAccountingObject'
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.compiler.compareFilter:true
@AbapCatalog.preserveKey:true
@Analytics.internalName:#LOCAL
@ObjectModel.usageType: {
dataClass: #MASTER,
serviceQuality: #D,
sizeCategory: #XL
}
@Metadata.allowExtensions: true
//@Metadata.ignorePropagatedAnnotations: true
//@Search.searchable: true
define view I_REControllingObject
as select from I_CostCenter as _CostCenter
association [1..1] to I_REObjectTypeText as _REObjectTypeText on _REObjectTypeText.RealEstateObjectType = 'KS'
and _REObjectTypeText.Language = $session.system_language
// following associations will never provide values, but needed for search capability reasons
association [0..1] to I_InternalOrder as _InternalOrder on $projection.REAccountingObject = _InternalOrder.ControllingObject
association [0..1] to I_WBSElementBasicData as _WBSElement on $projection.REAccountingObject = _WBSElement.WBSElementObject
{
@ObjectModel.text.element: ['REIdentification']
key _CostCenter.ObjectInternalID as REAccountingObject,
cast('KS' as recaobjtype preserving type ) as REAccountingObjectType,
cast( concat(concat(concat_with_space(_REObjectTypeText.REObjectTypePrefix,
_CostCenter.ControllingArea ,1 ),'/'),
_CostCenter.CostCenter ) as recaident ) as REIdentification,
cast(concat(concat(_CostCenter.ControllingArea,'/'),
_CostCenter.CostCenter ) as recaidentkey ) as REIdentificationKey,
_CostCenter.CompanyCode as CompanyCode,
cast( _CostCenter._Text[1: Language = $session.system_language ].CostCenterName as recaxdescription ) as REObjectText,
_CostCenter.CostCenter as CostCenter,
_InternalOrder.InternalOrder as InternalOrder,
_WBSElement.WBSElementExternalID as WBSElementExternalID,
_CostCenter.ControllingArea as ControllingArea,
cast(' ' as aufart preserving type ) as OrderType,
_CostCenter.ProfitCenter as ProfitCenter,
_REObjectTypeText.RealEstateObjectTypeName
}
where
_CostCenter.ObjectInternalID <> ''
and ValidityStartDate <= $session.system_date
and ValidityEndDate >= $session.system_date
union all select from I_InternalOrder as _InternalOrder
association [1..1] to I_REObjectTypeText as _REObjectTypeText on _REObjectTypeText.RealEstateObjectType = 'OR'
and _REObjectTypeText.Language = $session.system_language
// following associations will never provide values, but needed for search capability reasons
association [0..1] to I_CostCenter as _CostCenter on $projection.REAccountingObject = _CostCenter.ObjectInternalID
association [0..1] to I_WBSElementBasicData as _WBSElement on $projection.REAccountingObject = _WBSElement.WBSElementObject
{
@ObjectModel.text.element: ['REIdentification']
key _InternalOrder.ControllingObject as REAccountingObject,
cast('OR' as recaobjtype preserving type ) as REAccountingObjectType,
cast( concat_with_space(_REObjectTypeText.REObjectTypePrefix,_InternalOrder.InternalOrder, 1) as recaident ) as REIdentification,
cast(_InternalOrder.InternalOrder as recaidentkey ) as REIdentificationKey,
_InternalOrder.CompanyCode as CompanyCode,
cast( _InternalOrder.InternalOrderDescription as recaxdescription ) as REObjectText,
_CostCenter.CostCenter as CostCenter,
_InternalOrder.InternalOrder as InternalOrder,
_WBSElement.WBSElementExternalID as WBSElementExternalID,
_InternalOrder.ControllingArea as ControllingArea,
_InternalOrder.OrderType as OrderType,
_InternalOrder.ProfitCenter as ProfitCenter,
_REObjectTypeText.RealEstateObjectTypeName
}
union all select from I_WBSElementBasicData as _WBSElement
association [1..1] to I_REObjectTypeText as _REObjectTypeText on _REObjectTypeText.RealEstateObjectType = 'PR'
and _REObjectTypeText.Language = $session.system_language
// following associations will never provide values, but needed for search capability reasons
association [0..1] to I_InternalOrder as _InternalOrder on $projection.REAccountingObject = _InternalOrder.ControllingObject
association [0..1] to I_CostCenter as _CostCenter on $projection.REAccountingObject = _CostCenter.ObjectInternalID
{
@ObjectModel.text.element: ['REIdentification']
key _WBSElement.WBSElementObject as REAccountingObject,
cast('PR' as recaobjtype preserving type ) as REAccountingObjectType,
cast( concat_with_space(_REObjectTypeText.REObjectTypePrefix,_WBSElement.WBSElementExternalID, 1) as recaident ) as REIdentification,
cast(_WBSElement.WBSElementExternalID as recaidentkey ) as REIdentificationKey,
_WBSElement.CompanyCode as CompanyCode,
cast( _WBSElement.WBSDescription as recaxdescription ) as REObjectText,
_CostCenter.CostCenter as CostCenter,
_InternalOrder.InternalOrder as InternalOrder,
_WBSElement.WBSElementExternalID as WBSElementExternalID,
_WBSElement.ControllingArea as ControllingArea,
cast(' ' as aufart preserving type ) as OrderType,
_WBSElement.ProfitCenter as ProfitCenter,
_REObjectTypeText.RealEstateObjectTypeName
}
//// Old logic
// as select distinct @ObjectModel.text.element: ['REIdentification']
// key _REStatusObject.REStatusObject as REAccountingObject,
// SUBSTRING( _REStatusObject.REStatusObject, 1, 2) as REAccountingObjectType,
// cast(
// concat(concat(concat_with_space(_REObjectTypeText.REObjectTypePrefix,
// SUBSTRING( _REStatusObject.REStatusObject, 3, 4),1 ),
// '/'),
// SUBSTRING( _REStatusObject.REStatusObject, 7, 10))
// as recaident ) as REIdentification,
// cast(
// concat(concat(
// SUBSTRING( _REStatusObject.REStatusObject, 3, 4),
// '/'),
// SUBSTRING( _REStatusObject.REStatusObject, 7, 10))
// as recaidentkey ) as REIdentificationKey,
// _CostCenter.CompanyCode as CompanyCode,
// // @Search.defaultSearchElement : true
// // @EndUserText.label: 'Object Name'
// _CostCenter._Text[1: Language = $session.system_language ].CostCenterName as REObjectText,
// _CostCenter.CostCenter as CostCenter,
// cast(' ' as fins_int_aufnr preserving type ) as InternalOrder,
//// ' ' as WBSElement,
// cast(' ' as ps_posid_edit preserving type ) as WBSElementExternalID,
// _CostCenter.ControllingArea as ControllingArea,
// cast(' ' as aufart preserving type ) as OrderType,
// _CostCenter.ProfitCenter as ProfitCenter
//from I_REStatusObject as _REStatusObject
// inner join I_CostCenter as _CostCenter on _REStatusObject.REStatusObject = _CostCenter.ObjectInternalID
// inner join I_REObjectTypeText as _REObjectTypeText on _REObjectTypeText.RealEstateObjectType = SUBSTRING(
// _REStatusObject.REStatusObject, 1, 2
// )
// and _REObjectTypeText.Language = $session.system_language
//union
//
//select distinct @ObjectModel.text.element: ['REIdentification']
// key _REStatusObject.REStatusObject as REAccountingObject,
// SUBSTRING( _REStatusObject.REStatusObject, 1, 2) as REAccountingObjectType,
// cast(concat_with_space(_REObjectTypeText.REObjectTypePrefix,
// _InternalOrder.InternalOrder, 1)
// as recaident ) as REIdentification,
// cast(_InternalOrder.InternalOrder
// as recaidentkey ) as REIdentificationKey,
// _InternalOrder.CompanyCode as CompanyCode,
// // @Search.defaultSearchElement : true
// // @EndUserText.label: 'Object Name'
// _InternalOrder.InternalOrderDescription as REObjectText,
// ' ' as CostCenter,
// _InternalOrder.InternalOrder as InternalOrder,
//// ' ' as WBSElement,
// cast(' ' as ps_posid_edit preserving type ) as WBSElementExternalID,
// _InternalOrder.ControllingArea as ControllingArea,
// _InternalOrder.OrderType as OrderType,
// _InternalOrder.ProfitCenter as ProfitCenter
//from I_REStatusObject as _REStatusObject
//inner join I_InternalOrder as _InternalOrder on _REStatusObject.REStatusObject = _InternalOrder.ControllingObject
// inner join I_REObjectTypeText as _REObjectTypeText on _REObjectTypeText.RealEstateObjectType = SUBSTRING(
// _REStatusObject.REStatusObject, 1, 2
// )
// and _REObjectTypeText.Language = $session.system_language
//union
//
//select distinct @ObjectModel.text.element: ['REIdentification']
// key _REStatusObject.REStatusObject as REAccountingObject,
// SUBSTRING( _REStatusObject.REStatusObject, 1, 2) as REAccountingObjectType,
// cast(concat_with_space(_REObjectTypeText.REObjectTypePrefix,
// _WBSElement.WBSElementExternalID, 1)
// as recaident ) as REIdentification,
// cast(_WBSElement.WBSElementExternalID
// as recaidentkey ) as REIdentificationKey,
// _WBSElement.CompanyCode as CompanyCode,
// // @Search.defaultSearchElement : true
// // @EndUserText.label: 'Object Name'
// _WBSElement.WBSDescription as REObjectText,
// ' ' as CostCenter,
// ' ' as InternalOrder,
//// _WBSElement.WBSElement as WBSElement, // Has a preserving type clause
// _WBSElement.WBSElementExternalID as WBSElementExternalID,
// _WBSElement.ControllingArea as ControllingArea,
// cast(' ' as aufart preserving type ) as OrderType,
// _WBSElement.ProfitCenter as ProfitCenter
//from I_REStatusObject as _REStatusObject
//inner join I_WBSElementBasicData as _WBSElement on _REStatusObject.REStatusObject = _WBSElement.WBSElementObject
// inner join I_REObjectTypeText as _REObjectTypeText on _REObjectTypeText.RealEstateObjectType = SUBSTRING(
// _REStatusObject.REStatusObject, 1, 2
// )
// and _REObjectTypeText.Language = $session.system_language
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