@AbapCatalog.preserveKey: true
@AbapCatalog.sqlViewName: 'PCNGLACCT4BAL'
@VDM.private: true
@VDM.viewType: #COMPOSITE
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@ObjectModel.usageType.sizeCategory: #S
@ObjectModel.usageType.dataClass: #CUSTOMIZING
@ObjectModel.usageType.serviceQuality: #A
@ClientHandling.algorithm: #SESSION_VARIABLE
define view P_CN_CADEGLAccountForBalance
with parameters
P_FinancialStatementVariant : versn_011
/*
Fetch the GL account in FSV item
*/
as select from I_FinancialStatementItem as FinancialStatementItem
inner join I_FinancialStatementVersion as FinancialStatementVersion on FinancialStatementItem.FinancialStatementVariant = FinancialStatementVersion.FinancialStatementVariant
//Find the FSV leaf item with no account assign. Mark as "IsGLaccount"
left outer join P_CN_CADEFinStmntItemWithLeaf as FinancialStatementLeafItem on FinancialStatementItem.FinancialStatementVariant = FinancialStatementLeafItem.FinancialStatementVariant
and FinancialStatementItem.FinancialStatementItem = FinancialStatementLeafItem.FinancialStatementItem
and FinancialStatementLeafItem.FinancialStatementItem = FinancialStatementLeafItem.FinancialStatementLeafItem
and (FinancialStatementLeafItem.UpperBoundaryAccount is null
or FinancialStatementLeafItem.LowerBoundaryAccount is null)
{
key FinancialStatementItem.FinancialStatementVariant,
key FinancialStatementItem.FinancialStatementItem,
FinancialStatementItem.FinancialStatementItem as GLAccountWOPrefix,
right(concat('0000000000',FinancialStatementItem.FinancialStatementItem),10) as GLAccount,
case
when FinancialStatementLeafItem.FinancialStatementItem is not null then
cast('X' as abap.char(1))
end as IsGLAccount
}
where FinancialStatementItem.FinancialStatementVariant = :P_FinancialStatementVariant
and FinancialStatementItem.FinancialStatementItem != FinancialStatementVersion.FinancialStatementAssetsItem
and FinancialStatementItem.FinancialStatementItem != FinancialStatementVersion.FinancialStatementNetLossItem
and FinancialStatementItem.FinancialStatementItem != FinancialStatementVersion.FinancialStatementNotesItem
and FinancialStatementItem.FinancialStatementItem != FinancialStatementVersion.FinancialStatementOrphansItem
and FinancialStatementItem.FinancialStatementItem != FinancialStatementVersion.FinStatementLiabilitiesItem
and FinancialStatementItem.FinancialStatementItem != FinancialStatementVersion.FinStatementNetProfitItem
and FinancialStatementItem.FinancialStatementItem != FinancialStatementVersion.FinStatementProfitAndLossItem
and FinancialStatementItem.FinancialStatementItem != :P_FinancialStatementVariant
/*
Fetch the GL account in leaf items
*/
union select from I_GLAccountInChartOfAccounts as GLAccount
left outer join I_CN_CADEFinStatementLeafItem as leafItem on leafItem.FinancialStatementVariant = $parameters.P_FinancialStatementVariant
and leafItem.ChartOfAccounts = GLAccount.ChartOfAccounts
and GLAccount.GLAccount >= leafItem.LowerBoundaryAccount
and GLAccount.GLAccount <= leafItem.UpperBoundaryAccount
{
key FinancialStatementVariant,
key leafItem.FinancialStatementItem as FinancialStatementItem,
Ltrim(GLAccount,'0') as GLAccountWOPrefix,
GLAccount,
cast('X' as abap.char(1)) as IsGLAccount
}
where
leafItem.FinancialStatementVariant = :P_FinancialStatementVariant
and leafItem.FinancialStatementItem <> 'NA'