@AbapCatalog.sqlViewName: 'IREINTOBJSUBOBJV'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Real Estate Integ Object Sub Validity'
@ObjectModel.usageType.dataClass: #MASTER
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #L
//@ObjectModel.dataCategory: #VALUE_HELP
@VDM.viewType: #COMPOSITE
//@Search.searchable: true
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.preserveKey:true
define view I_REIntegObjectSubObjValidity
as select from I_REIntegrationObject as _REIntegObjLvl0
left outer to one join I_REIntegrationObject as _REIntegObjLvl1 on _REIntegObjLvl0.RealEstateExternalID = _REIntegObjLvl1.REParentIntegObjectExternalID
left outer to one join I_REIntegrationObject as _REIntegObjLvl2 on _REIntegObjLvl1.RealEstateExternalID = _REIntegObjLvl2.REParentIntegObjectExternalID
left outer to one join I_REIntegrationObject as _REIntegObjLvl3 on _REIntegObjLvl2.RealEstateExternalID = _REIntegObjLvl3.REParentIntegObjectExternalID
// association[1..1] to I_REIntegrationObject as _REIntegrationObjLvl0 on _REIntegObjLvl0.RealEstateExternalID = $projection.RealEstateExternalIDLvl0
// association[1..1] to I_REIntegrationObject as _REIntegrationObjLvl1 on _REIntegObjLvl1.RealEstateExternalID = $projection.RealEstateExternalIDLvl1
// association[1..1] to I_REIntegrationObject as _REIntegrationObjLvl2 on _REIntegObjLvl2.RealEstateExternalID = $projection.RealEstateExternalIDLvl2
// association[1..1] to I_REIntegrationObject as _REIntegrationObjLvl3 on _REIntegObjLvl3.RealEstateExternalID = $projection.RealEstateExternalIDLvl3
{
key _REIntegObjLvl0.InternalRealEstateNumber as InternalRealEstateNumberLvl0,
key _REIntegObjLvl1.InternalRealEstateNumber as InternalRealEstateNumberLvl1,
key case _REIntegObjLvl2.REIntegrationObjectType
when 'C4LA' then ' '
else _REIntegObjLvl2.InternalRealEstateNumber
end as InternalRealEstateNumberLvl2,
key case _REIntegObjLvl2.REIntegrationObjectType
when 'C4LA' then _REIntegObjLvl2.InternalRealEstateNumber
else _REIntegObjLvl3.InternalRealEstateNumber
end as InternalRealEstateNumberLvl3,
//Level 0
_REIntegObjLvl0.RealEstateExternalID as RealEstateExternalIDLvl0,
_REIntegObjLvl0.REIntegrationObjectNumber as REIntegrationObjectNumberLvl0,
_REIntegObjLvl0.REIntegrationObjectName as REIntegObjectSiteName,
_REIntegObjLvl0.ValidityStartDate as ValidityStartDateLvl0,
_REIntegObjLvl0.ValidityEndDate as ValidityEndDateLvl0,
@ObjectModel.foreignKey.association: '_UnitOfMeasureArea'
_REIntegObjLvl0.REAreaUnit as REAreaUnit,
//Level 1
_REIntegObjLvl1.RealEstateExternalID as RealEstateExternalIDLvl1,
_REIntegObjLvl1.REIntegrationObjectNumber as REIntegrationObjectNumberLvl1,
// case _REIntegObjLvl1.REIntegrationObjectType
// when 'C4BU' then _REIntegObjLvl1.REIntegrationObjectName
// else ' '
// end as REIntegObjectBuildingName,
// case _REIntegObjLvl1.REIntegrationObjectType
// when 'C4PR' then _REIntegObjLvl1.REIntegrationObjectName
// else ' '
// end as REIntegObjectLandName,
_REIntegObjLvl1.ValidityStartDate as ValidityStartDateLvl1,
_REIntegObjLvl1.ValidityEndDate as ValidityEndDateLvl1,
//Level 2
case _REIntegObjLvl2.REIntegrationObjectType
when 'C4LA' then ' '
else _REIntegObjLvl2.RealEstateExternalID
end as RealEstateExternalIDLvl2,
case _REIntegObjLvl2.REIntegrationObjectType
when 'C4LA' then ' '
else _REIntegObjLvl2.REIntegrationObjectNumber
end as REIntegrationObjectNumberLvl2,
// case _REIntegObjLvl2.REIntegrationObjectType
// when 'C4PR' then _REIntegObjLvl2.REIntegrationObjectName
// else ' '
// end as REIntegObjectFloorName,
case _REIntegObjLvl2.REIntegrationObjectType
when 'C4LA' then '00000000'
else _REIntegObjLvl2.ValidityStartDate
end as ValidityStartDateLvl2,
// _REIntegObjLvl2.ValidityStartDate as ValidityStartDateLvl2,
case _REIntegObjLvl2.REIntegrationObjectType
when 'C4LA' then '99991231'
else _REIntegObjLvl2.ValidityEndDate
end as ValidityEndDateLvl2,
// _REIntegObjLvl2.ValidityEndDate as ValidityEndDateLvl2,
//Level 3
case _REIntegObjLvl2.REIntegrationObjectType
when 'C4LA' then _REIntegObjLvl2.RealEstateExternalID
else _REIntegObjLvl3.RealEstateExternalID
end as RealEstateExternalIDLvl3,
case _REIntegObjLvl2.REIntegrationObjectType
when 'C4LA' then _REIntegObjLvl2.REIntegrationObjectNumber
else _REIntegObjLvl3.REIntegrationObjectNumber
end as REIntegrationObjectNumberLvl3,
case _REIntegObjLvl2.REIntegrationObjectType
when 'C4LA' then _REIntegObjLvl2.ValidityStartDate
else _REIntegObjLvl3.ValidityStartDate
end as ValidityStartDateLvl3,
// _REIntegObjLvl3.ValidityStartDate as ValidityStartDateLvl3,
case _REIntegObjLvl2.REIntegrationObjectType
when 'C4LA' then _REIntegObjLvl2.ValidityEndDate
else _REIntegObjLvl3.ValidityEndDate
end as ValidityEndDateLvl3,
// _REIntegObjLvl3.ValidityEndDate as ValidityEndDateLvl3,
_REIntegObjLvl3.REIntegrationObjectType,
_REIntegObjLvl0._UnitOfMeasureArea
// _REIntegObjLvl3.RESpaceGroupUsageType,
// _REIntegObjLvl3.RESpaceGrpProvisionType,
// _REIntegObjLvl3.REIntegObjSpaceGroupType,
// _REIntegObjLvl3.REIntegrationObjectName,
// _REIntegObjLvl3.REIntegObjectLongName,
// _REIntegObjLvl3.REParentIntegObjectType,
// _REIntegObjLvl3.REParentIntegObjectExternalID,
// _REIntegObjLvl3.Responsible,
// _REIntegObjLvl3.REAuthorizationGroup,
//
// _REIntegObjLvl3._REIntegObjectType,
// _REIntegObjLvl3._REParentIntegObjectType,
// _REIntegObjLvl3._REIntegObjSpaceGroupType,
// _REIntegObjLvl3._RESpaceGroupUsageType,
// _REIntegObjLvl3._RESpaceGrpProvisionType
// _REIntegrationObjLvl0,
// _REIntegrationObjLvl1,
// _REIntegrationObjLvl2,
// _REIntegrationObjLvl3
}
where
_REIntegObjLvl0.REIntegrationObjectType = 'C4SI'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_REINTEGRATIONOBJECT"
],
"ASSOCIATED":
[
"I_UNITOFMEASURE"
],
"BASE":
[
"I_REINTEGRATIONOBJECT"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/