I_REControllingObject

DDL: I_RECONTROLLINGOBJECT SQL: IRECTRLGGOBJECT Type: view COMPOSITE

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.

Data Sources (3)

SourceAliasJoin Type
I_CostCenter _CostCenter from
I_InternalOrder _InternalOrder union_all
I_WBSElementBasicData _WBSElement union_all

Associations (4)

CardinalityTargetAliasCondition
[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)

NameValueLevelField
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)

KeyFieldSource TableSource FieldDescription
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