@AbapCatalog.entityBuffer.definitionAllowed: false
@Metadata.ignorePropagatedAnnotations: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@VDM.viewType: #COMPOSITE
@VDM.private:true
define view entity P_FinStatisticalKeyFigureItem1
as select from I_FinStatisticalKeyFigItemBsc
inner join I_FiscalCalYearPeriodForLedger
on I_FiscalCalYearPeriodForLedger.CompanyCode = I_FinStatisticalKeyFigItemBsc.CompanyCode
and ( ( I_FinStatisticalKeyFigItemBsc.StatisticalKeyFigureCategory = '1' and
I_FinStatisticalKeyFigItemBsc.ValidityStartDate > I_FiscalCalYearPeriodForLedger.FiscalPeriodEndDate )
or ( I_FinStatisticalKeyFigItemBsc.StatisticalKeyFigureCategory = '2' and
I_FinStatisticalKeyFigItemBsc.ValidityStartDate >= I_FiscalCalYearPeriodForLedger.FiscalPeriodStartDate and
I_FinStatisticalKeyFigItemBsc.ValidityStartDate <= I_FiscalCalYearPeriodForLedger.FiscalPeriodEndDate )
)
inner join I_StatisticalKeyFigure // read only statistical keyfigure transactional data which correspond to actual master data setting
on I_FinStatisticalKeyFigItemBsc.StatisticalKeyFigure = I_StatisticalKeyFigure.StatisticalKeyFigure
and I_FinStatisticalKeyFigItemBsc.ControllingArea = I_StatisticalKeyFigure.ControllingArea
and I_FinStatisticalKeyFigItemBsc.StatisticalKeyFigureCategory = I_StatisticalKeyFigure.StstcKeyFigCategory
and I_FinStatisticalKeyFigItemBsc.StatisticalKeyFigQtyUnit = I_StatisticalKeyFigure.StstcKeyFigQuantityUnit
////////////////////////////////////////////////////////////////////////////////
// the first union subtree is for the normal case with filled Company Code
// Here we derive the FiscalYearVariant from Ledger/CompanyCode
////////////////////////////////////////////////////////////////////////////////
association [0..1] to I_WBSElementBasicData as _WBSElementBasicData on $projection.ps_psp_pnr = _WBSElementBasicData.WBSElementInternalID
{
I_FiscalCalYearPeriodForLedger.Ledger as rldnr,
I_FinStatisticalKeyFigItemBsc.CompanyCode as rbukrs,
I_FiscalCalYearPeriodForLedger.FiscalYearPeriod as FISCYEARPER,
I_FinStatisticalKeyFigItemBsc.StatisticalKeyFigure as stagr,
I_FinStatisticalKeyFigItemBsc.StatisticalKeyFigureItem as recid,
I_FiscalCalYearPeriodForLedger.FiscalYear as RYEAR,
I_FiscalCalYearPeriodForLedger.FiscalPeriod as poper,
I_FiscalCalYearPeriodForLedger.FiscalYearVariant as periv,
I_FiscalCalYearPeriodForLedger.IsSpecialPeriod,
I_FinStatisticalKeyFigItemBsc.ValidityStartDate as date_from,
I_FinStatisticalKeyFigItemBsc.StatisticalKeyFigureCategory as grtyp,
I_FinStatisticalKeyFigItemBsc.StatisticalKeyFigQtyUnit as runit,
@Aggregation.default: #SUM
@Semantics: { quantity : {unitOfMeasure: 'runit'} } I_FinStatisticalKeyFigItemBsc.StatisticalKeyFigureQuantity as msl,
I_FinStatisticalKeyFigItemBsc.GLRecordType as rrcty,
I_FinStatisticalKeyFigItemBsc.PlanningCategory as category,
I_FinStatisticalKeyFigItemBsc.CostCenter as rcntr,
I_FinStatisticalKeyFigItemBsc.ProfitCenter as prctr,
I_FinStatisticalKeyFigItemBsc.FunctionalArea as rfarea,
I_FinStatisticalKeyFigItemBsc.BusinessArea as rbusa,
I_FinStatisticalKeyFigItemBsc.ControllingArea as kokrs,
I_FinStatisticalKeyFigItemBsc.Segment as segment,
I_FinStatisticalKeyFigItemBsc.ControllingBusTransacType as vorgn,
I_FinStatisticalKeyFigItemBsc.AccountAssignmentType as accasty,
I_FinStatisticalKeyFigItemBsc.LogicalSystem as logsys,
I_FinStatisticalKeyFigItemBsc.ControllingObject as objnr,
I_FinStatisticalKeyFigItemBsc.ControllingKeySubNumber as hrkft,
//I_FinStatisticalKeyFigItemBsc.paobjnr,
I_FinStatisticalKeyFigItemBsc.ControllingObjectClass as scope,
I_FinStatisticalKeyFigItemBsc.OrderID as aufnr,
I_FinStatisticalKeyFigItemBsc.OrderCategory as autyp,
I_FinStatisticalKeyFigItemBsc.WBSElementInternalID as ps_psp_pnr,
// WBSElement from table (time of posting) without DOMA-Exit and NOT from masterdata via WBSElementInternalID 3.4.24
I_FinStatisticalKeyFigItemBsc.WBSElement as ps_posid,
// I_FinStatisticalKeyFigItemBsc._WBSElementBasicData.WBSElement as ps_posid,
cast( I_FinStatisticalKeyFigItemBsc._WBSElementBasicData.WBSElementExternalID as fis_wbsext_no_conv preserving type ) as WBSElementExternalID,
I_FinStatisticalKeyFigItemBsc.ProjectInternalID as ps_prj_pnr,
// Project from table (time of posting) without DOMA-Exit and NOT from masterdata via ProjectInternalID 3.4.24
I_FinStatisticalKeyFigItemBsc.Project as ps_pspid,
// I_FinStatisticalKeyFigItemBsc._ProjectBasicData.Project as ps_pspid,
cast( ' ' as nplnr preserving type ) as nplnr, // not used in cloud
cast( ' ' as fis_npvrg_no_conv preserving type ) as nplnr_vorgn, // not used in cloud
cast( ' ' as co_prznr preserving type ) as prznr, // not used in cloud
I_FinStatisticalKeyFigItemBsc.CostObject as kstrg,
I_FinStatisticalKeyFigItemBsc.Fund as rfund,
I_FinStatisticalKeyFigItemBsc.GrantID as rgrant_nbr,
I_FinStatisticalKeyFigItemBsc.BudgetPeriod as rbudget_pd,
//I_FinStatisticalKeyFigItemBsc.vbeln,
//I_FinStatisticalKeyFigItemBsc.posnr,
I_FinStatisticalKeyFigItemBsc.SalesDocument as kdauf,
I_FinStatisticalKeyFigItemBsc.SalesDocumentItem as kdpos,
I_FinStatisticalKeyFigItemBsc.CostCtrActivityType as lstar,
I_FinStatisticalKeyFigItemBsc.ServiceDocumentType as service_doc_type,
I_FinStatisticalKeyFigItemBsc.ServiceDocument as service_doc_id,
I_FinStatisticalKeyFigItemBsc.ServiceDocumentItem as service_doc_item_id
}
////////////////////////////////////////////////////////////////////////////////
// the second union subtree is for the special case with initial Company Code
// Here we derive the FiscalYearVariant from ControllingArea
// (in the first release we only want to allow filled CompanyCode; but for
// later version with COPA planning it could be possible)
////////////////////////////////////////////////////////////////////////////////
union all
select from I_FinStatisticalKeyFigItemBsc
inner join ( I_FiscalYearPeriod inner join I_ControllingArea on I_FiscalYearPeriod.FiscalYearVariant = I_ControllingArea.FiscalYearVariant )
on I_FinStatisticalKeyFigItemBsc.CompanyCode = ' '
and I_FinStatisticalKeyFigItemBsc.ControllingArea = I_ControllingArea.ControllingArea
and ( ( I_FinStatisticalKeyFigItemBsc.StatisticalKeyFigureCategory = '1' and
I_FinStatisticalKeyFigItemBsc.ValidityStartDate > I_FiscalYearPeriod.FiscalPeriodEndDate )
or ( I_FinStatisticalKeyFigItemBsc.StatisticalKeyFigureCategory = '2' and
I_FinStatisticalKeyFigItemBsc.ValidityStartDate >= I_FiscalYearPeriod.FiscalPeriodStartDate and
I_FinStatisticalKeyFigItemBsc.ValidityStartDate <= I_FiscalYearPeriod.FiscalPeriodEndDate )
)
inner join I_Ledger on I_Ledger.IsLeadingLedger = 'X'
association [0..1] to I_WBSElementBasicData as _WBSElementBasicData on $projection.ps_psp_pnr = _WBSElementBasicData.WBSElementInternalID
{
I_Ledger.Ledger as rldnr,
I_FinStatisticalKeyFigItemBsc.CompanyCode as rbukrs,
I_FiscalYearPeriod.FiscalYearPeriod as FISCYEARPER,
I_FinStatisticalKeyFigItemBsc.StatisticalKeyFigure as stagr,
I_FinStatisticalKeyFigItemBsc.StatisticalKeyFigureItem as recid,
I_FiscalYearPeriod.FiscalYear as RYEAR,
I_FiscalYearPeriod.FiscalPeriod as poper,
I_FiscalYearPeriod.FiscalYearVariant as periv,
I_FiscalYearPeriod.IsSpecialPeriod,
I_FinStatisticalKeyFigItemBsc.ValidityStartDate as date_from,
I_FinStatisticalKeyFigItemBsc.StatisticalKeyFigureCategory as grtyp,
I_FinStatisticalKeyFigItemBsc.StatisticalKeyFigQtyUnit as runit,
I_FinStatisticalKeyFigItemBsc.StatisticalKeyFigureQuantity as msl,
I_FinStatisticalKeyFigItemBsc.GLRecordType as rrcty,
I_FinStatisticalKeyFigItemBsc.PlanningCategory as category,
I_FinStatisticalKeyFigItemBsc.CostCenter as rcntr,
I_FinStatisticalKeyFigItemBsc.ProfitCenter as prctr,
I_FinStatisticalKeyFigItemBsc.FunctionalArea as rfarea,
I_FinStatisticalKeyFigItemBsc.BusinessArea as rbusa,
I_FinStatisticalKeyFigItemBsc.ControllingArea as kokrs,
I_FinStatisticalKeyFigItemBsc.Segment as segment,
I_FinStatisticalKeyFigItemBsc.ControllingBusTransacType as vorgn,
I_FinStatisticalKeyFigItemBsc.AccountAssignmentType as accasty,
I_FinStatisticalKeyFigItemBsc.LogicalSystem as logsys,
I_FinStatisticalKeyFigItemBsc.ControllingObject as objnr,
I_FinStatisticalKeyFigItemBsc.ControllingKeySubNumber as hrkft,
//I_FinStatisticalKeyFigItemBsc.paobjnr,
I_FinStatisticalKeyFigItemBsc.ControllingObjectClass as scope,
I_FinStatisticalKeyFigItemBsc.OrderID as aufnr,
I_FinStatisticalKeyFigItemBsc.OrderCategory as autyp,
I_FinStatisticalKeyFigItemBsc.WBSElementInternalID as ps_psp_pnr,
// WBSElement from table (time of posting) without DOMA-Exit and NOT from masterdata via WBSElementInternalID 3.4.24
I_FinStatisticalKeyFigItemBsc.WBSElement as ps_posid,
// I_FinStatisticalKeyFigItemBsc._WBSElementBasicData.WBSElement as ps_posid,
cast( I_FinStatisticalKeyFigItemBsc._WBSElementBasicData.WBSElementExternalID as fis_wbsext_no_conv preserving type ) as WBSElementExternalID,
I_FinStatisticalKeyFigItemBsc.ProjectInternalID as ps_prj_pnr,
// Project from table (time of posting) without DOMA-Exit and NOT from masterdata via ProjectInternalID 3.4.24
I_FinStatisticalKeyFigItemBsc.Project as ps_pspid,
// I_FinStatisticalKeyFigItemBsc._ProjectBasicData.Project as ps_pspid,
cast( ' ' as nplnr preserving type ) as nplnr, // not used in cloud
cast( ' ' as fis_npvrg_no_conv preserving type ) as nplnr_vorgn, // not used in cloud
cast( ' ' as co_prznr preserving type ) as prznr, // not used in cloud
I_FinStatisticalKeyFigItemBsc.CostObject as kstrg,
I_FinStatisticalKeyFigItemBsc.Fund as rfund,
I_FinStatisticalKeyFigItemBsc.GrantID as rgrant_nbr,
I_FinStatisticalKeyFigItemBsc.BudgetPeriod as rbudget_pd,
//I_FinStatisticalKeyFigItemBsc.vbeln,
//I_FinStatisticalKeyFigItemBsc.posnr,
I_FinStatisticalKeyFigItemBsc.SalesDocument as kdauf,
I_FinStatisticalKeyFigItemBsc.SalesDocumentItem as kdpos,
I_FinStatisticalKeyFigItemBsc.CostCtrActivityType as lstar,
I_FinStatisticalKeyFigItemBsc.ServiceDocumentType as service_doc_type,
I_FinStatisticalKeyFigItemBsc.ServiceDocument as service_doc_id,
I_FinStatisticalKeyFigItemBsc.ServiceDocumentItem as service_doc_item_id
}