@AbapCatalog.sqlViewName: 'PGLACCTLINEITEME'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@VDM.private:true
@VDM.viewType: #COMPOSITE
@ClientHandling.algorithm: #SESSION_VARIABLE
define view P_GLAcctLineItemEnrcd
with parameters
P_CompanyCode : bukrs,
P_FiscalYear : gjahr
//normal line items
as select from I_GLAccountLineItem as lineitem
inner join I_Ledger as ledger on lineitem.Ledger = ledger.Ledger
association [1..1] to I_GLAccountInCompanyCode as _GLAccountInCompanyCode on $projection.CompanyCode = _GLAccountInCompanyCode.CompanyCode
and $projection.GLAccount = _GLAccountInCompanyCode.GLAccount
association [1..1] to I_AccountingDocument as _AccountingDocument on $projection.CompanyCode = _AccountingDocument.CompanyCode
and $projection.FiscalYear = _AccountingDocument.FiscalYear
and $projection.AccountingDocument = _AccountingDocument.AccountingDocument
{
key lineitem.CompanyCode,
key lineitem.FiscalYear,
key lineitem.AccountingDocument,
key lineitem.LedgerGLLineItem,
key lineitem.Ledger,
key lineitem.PostingDate, //ATC non-unique key
lineitem.FiscalPeriod,
lineitem.GLAccount,
_GLAccountInCompanyCode.AlternativeGLAccount,
lineitem.Supplier,
lineitem.Customer,
lineitem.SpecialGLCode,
lineitem.ProfitCenter,
lineitem.Segment,
lineitem.BusinessArea,
lineitem.AssignmentReference,
// lineitem.Ledger,
case when
lineitem.ClearingJournalEntryFiscalYear != '0000'
then
'1'
else
'2'
end as IsCleared, // '1': Cleared item, '2':Open item
lineitem.DebitCreditCode,
lineitem.SalesOrganization,
lineitem.DistributionChannel,
lineitem.OrganizationDivision,
lineitem.PartnerProfitCenter,
lineitem.FinancialAccountType,
lineitem.AccountingDocumentType,
lineitem.DocumentDate,
lineitem.AccountingDocCreatedByUser,
lineitem.DocumentItemText,
lineitem.ClearingDate,
lineitem.ClearingJournalEntry,
_AccountingDocument.AlternativeReferenceDocument,
_AccountingDocument.AccountingDocumentHeaderText,
@Semantics.currencyCode: true
lineitem.CompanyCodeCurrency,
@Semantics.currencyCode: true
lineitem.GlobalCurrency,
@Semantics.currencyCode: true
lineitem.FreeDefinedCurrency1,
@Semantics.currencyCode: true
lineitem.FreeDefinedCurrency2,
@Semantics.currencyCode: true
lineitem.FreeDefinedCurrency3,
@Semantics.currencyCode: true
lineitem.FreeDefinedCurrency4,
@Semantics.currencyCode: true
lineitem.FreeDefinedCurrency5,
@Semantics.currencyCode: true
lineitem.FreeDefinedCurrency6,
@Semantics.currencyCode: true
lineitem.FreeDefinedCurrency7,
@Semantics.currencyCode: true
lineitem.FreeDefinedCurrency8,
@Semantics.currencyCode: true
lineitem.TransactionCurrency,
@Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
lineitem.AmountInTransactionCurrency,
@Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
lineitem.DebitAmountInTransCrcy,
@Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
lineitem.CreditAmountInTransCrcy,
@Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
lineitem.AmountInCompanyCodeCurrency,
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
lineitem.AmountInGlobalCurrency,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency1'} }
lineitem.AmountInFreeDefinedCurrency1,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency2'} }
lineitem.AmountInFreeDefinedCurrency2,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency3'} }
lineitem.AmountInFreeDefinedCurrency3,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency4'} }
lineitem.AmountInFreeDefinedCurrency4,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency5'} }
lineitem.AmountInFreeDefinedCurrency5,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency6'} }
lineitem.AmountInFreeDefinedCurrency6,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency7'} }
lineitem.AmountInFreeDefinedCurrency7,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency8'} }
lineitem.AmountInFreeDefinedCurrency8,
@Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
lineitem.DebitAmountInCoCodeCrcy,
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
lineitem.DebitAmountInGlobalCrcy,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency1'} }
lineitem.DebitAmountInFreeDefinedCrcy1,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency2'} }
lineitem.DebitAmountInFreeDefinedCrcy2,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency3'} }
lineitem.DebitAmountInFreeDefinedCrcy3,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency4'} }
lineitem.DebitAmountInFreeDefinedCrcy4,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency5'} }
lineitem.DebitAmountInFreeDefinedCrcy5,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency6'} }
lineitem.DebitAmountInFreeDefinedCrcy6,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency7'} }
lineitem.DebitAmountInFreeDefinedCrcy7,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency8'} }
lineitem.DebitAmountInFreeDefinedCrcy8,
@Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
lineitem.CreditAmountInCoCodeCrcy,
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
lineitem.CreditAmountInGlobalCrcy,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency1'} }
lineitem.CreditAmountInFreeDefinedCrcy1,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency2'} }
lineitem.CreditAmountInFreeDefinedCrcy2,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency3'} }
lineitem.CreditAmountInFreeDefinedCrcy3,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency4'} }
lineitem.CreditAmountInFreeDefinedCrcy4,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency5'} }
lineitem.CreditAmountInFreeDefinedCrcy5,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency6'} }
lineitem.CreditAmountInFreeDefinedCrcy6,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency7'} }
lineitem.CreditAmountInFreeDefinedCrcy7,
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency8'} }
lineitem.CreditAmountInFreeDefinedCrcy8,
lineitem._Customer, //expose customer and supplier info from I_GLAccountLineItem for performance tuning
lineitem._Supplier
}
where ledger.IsLeadingLedger = 'X'
and lineitem.CompanyCode = $parameters.P_CompanyCode
and lineitem.FiscalYear = $parameters.P_FiscalYear
// and lineitem.FiscalPeriod > '000' retrieve period 000 data for carry forward line items
and lineitem.FiscalPeriod >= '000'
//union all
////carry forward line items
//select from I_GLAccountLineItem as lineitem
// inner join I_Ledger as ledger on lineitem.Ledger = ledger.Ledger
// inner join I_FiscalYearForCompanyCode as fiscalyear on fiscalyear.CompanyCode = $parameters.P_CompanyCode
// and fiscalyear.FiscalYear = $parameters.P_FiscalYear
// association [1..1] to I_GLAccountInCompanyCode as _GLAccountInCompanyCode on $projection.CompanyCode = _GLAccountInCompanyCode.CompanyCode
// and $projection.GLAccount = _GLAccountInCompanyCode.GLAccount
// association [1..1] to I_AccountingDocument as _AccountingDocument on $projection.CompanyCode = _AccountingDocument.CompanyCode
// and lineitem.FiscalYear = _AccountingDocument.FiscalYear
// and $projection.AccountingDocument = _AccountingDocument.AccountingDocument
//{
// key lineitem.CompanyCode,
// key $parameters.P_FiscalYear as FiscalYear,
// key lineitem.AccountingDocument,
// key lineitem.LedgerGLLineItem,
// key lineitem.Ledger,
// key lineitem.PostingDate, // ATC non-unique key
// '000' as FiscalPeriod,
// lineitem.GLAccount,
// _GLAccountInCompanyCode.AlternativeGLAccount,
// lineitem.Supplier,
// lineitem.Customer,
// lineitem.SpecialGLCode,
// lineitem.ProfitCenter,
// lineitem.Segment,
// lineitem.BusinessArea,
// lineitem.AssignmentReference,
//
//// lineitem.Ledger,
// case when
// lineitem.ClearingJournalEntryFiscalYear != '0000'
// then
// '1'
// else
// '2'
// end as IsCleared, // '1': Cleared item, '2':Open item
// lineitem.DebitCreditCode,
// lineitem.SalesOrganization,
// lineitem.DistributionChannel,
// lineitem.OrganizationDivision,
// lineitem.PartnerProfitCenter,
// lineitem.FinancialAccountType,
// lineitem.AccountingDocumentType,
// lineitem.DocumentDate,
// lineitem.AccountingDocCreatedByUser,
// lineitem.DocumentItemText,
// lineitem.ClearingDate,
// lineitem.ClearingJournalEntry,
// _AccountingDocument.AlternativeReferenceDocument,
// _AccountingDocument.AccountingDocumentHeaderText,
// @Semantics.currencyCode: true
// lineitem.CompanyCodeCurrency,
// @Semantics.currencyCode: true
// lineitem.GlobalCurrency,
// @Semantics.currencyCode: true
// lineitem.FreeDefinedCurrency1,
// @Semantics.currencyCode: true
// lineitem.FreeDefinedCurrency2,
// @Semantics.currencyCode: true
// lineitem.FreeDefinedCurrency3,
// @Semantics.currencyCode: true
// lineitem.FreeDefinedCurrency4,
// @Semantics.currencyCode: true
// lineitem.FreeDefinedCurrency5,
// @Semantics.currencyCode: true
// lineitem.FreeDefinedCurrency6,
// @Semantics.currencyCode: true
// lineitem.FreeDefinedCurrency7,
// @Semantics.currencyCode: true
// lineitem.FreeDefinedCurrency8,
// @Semantics.currencyCode: true
// lineitem.TransactionCurrency,
//
// @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
// lineitem.AmountInTransactionCurrency,
// @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
// lineitem.DebitAmountInTransCrcy,
// @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
// lineitem.CreditAmountInTransCrcy,
//
// @Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
// lineitem.AmountInCompanyCodeCurrency,
// @Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
// lineitem.AmountInGlobalCurrency,
// @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency1'} }
// lineitem.AmountInFreeDefinedCurrency1,
// @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency2'} }
// lineitem.AmountInFreeDefinedCurrency2,
// @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency3'} }
// lineitem.AmountInFreeDefinedCurrency3,
// @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency4'} }
// lineitem.AmountInFreeDefinedCurrency4,
// @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency5'} }
// lineitem.AmountInFreeDefinedCurrency5,
// @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency6'} }
// lineitem.AmountInFreeDefinedCurrency6,
// @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency7'} }
// lineitem.AmountInFreeDefinedCurrency7,
// @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency8'} }
// lineitem.AmountInFreeDefinedCurrency8,
//
// @Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
// lineitem.DebitAmountInCoCodeCrcy,
// @Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
// lineitem.DebitAmountInGlobalCrcy,
// @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency1'} }
// lineitem.DebitAmountInFreeDefinedCrcy1,
// @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency2'} }
// lineitem.DebitAmountInFreeDefinedCrcy2,
// @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency3'} }
// lineitem.DebitAmountInFreeDefinedCrcy3,
// @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency4'} }
// lineitem.DebitAmountInFreeDefinedCrcy4,
// @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency5'} }
// lineitem.DebitAmountInFreeDefinedCrcy5,
// @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency6'} }
// lineitem.DebitAmountInFreeDefinedCrcy6,
// @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency7'} }
// lineitem.DebitAmountInFreeDefinedCrcy7,
// @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency8'} }
// lineitem.DebitAmountInFreeDefinedCrcy8,
//
// @Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
// lineitem.CreditAmountInCoCodeCrcy,
// @Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
// lineitem.CreditAmountInGlobalCrcy,
// @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency1'} }
// lineitem.CreditAmountInFreeDefinedCrcy1,
// @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency2'} }
// lineitem.CreditAmountInFreeDefinedCrcy2,
// @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency3'} }
// lineitem.CreditAmountInFreeDefinedCrcy3,
// @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency4'} }
// lineitem.CreditAmountInFreeDefinedCrcy4,
// @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency5'} }
// lineitem.CreditAmountInFreeDefinedCrcy5,
// @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency6'} }
// lineitem.CreditAmountInFreeDefinedCrcy6,
// @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency7'} }
// lineitem.CreditAmountInFreeDefinedCrcy7,
// @Semantics: { amount : {currencyCode: 'FreeDefinedCurrency8'} }
// lineitem.CreditAmountInFreeDefinedCrcy8
//}
//where ledger.IsLeadingLedger = 'X'
// and lineitem.CompanyCode = $parameters.P_CompanyCode
// and lineitem.AccountingDocumentCategory = ''
// and fiscalyear.FiscalYearStartDate > lineitem.PostingDate
// and(
// fiscalyear.FiscalYearStartDate <= lineitem.ClearingDate
// or lineitem.ClearingDate = '00000000'
// or lineitem.ClearingAccountingDocument = 'ALE-extern'
// )