@AbapCatalog.sqlViewName: 'PFIPLANLITSTGL'
//@EndUserText.label: 'Plan Line Item with Semantic Tag for GLAcc'
@VDM.viewType: #COMPOSITE
@AccessControl.authorizationCheck: #CHECK
//@ObjectModel.representativeKey: 'LedgerGLLineItem'
@AbapCatalog.preserveKey:true
@VDM.private:true
@ClientHandling.algorithm: #SESSION_VARIABLE
define view P_PlanLineItemSemTagGLAcc
as select from I_FinancialPlanningEntryItem
inner join I_SemTagGLAccount on I_SemTagGLAccount.GLAccount = I_FinancialPlanningEntryItem.GLAccount
and I_SemTagGLAccount.ChartOfAccounts = I_FinancialPlanningEntryItem.ChartOfAccounts
association [0..1] to I_SemanticTag as _SemanticTag on $projection.SemanticTag = _SemanticTag.SemanticTag
association [0..*] to I_GLAccountHierarchy as _Hierarchy on $projection.GLAccountHierarchy = _Hierarchy.GLAccountHierarchy
{
key FinancialPlanningReqTransSqnc,
key FinancialPlanningDataPacket,
key FinancialPlanningEntryItem,
///////////////////////////////////////////////////////////////////////
// I_SemTagGLAccount
///////////////////////////////////////////////////////////////////////
@ObjectModel.foreignKey.association: '_Hierarchy'
key I_SemTagGLAccount.GLAccountHierarchy,
@ObjectModel.foreignKey.association: '_SemanticTag'
key I_SemTagGLAccount.SemanticTag,
@Semantics.businessDate.from: true
key I_SemTagGLAccount.ValidityStartDate,
@Semantics.businessDate.to: true
key I_SemTagGLAccount.ValidityEndDate,
@ObjectModel.foreignKey.association: '_ControllingArea'
ControllingArea,
@ObjectModel.foreignKey.association: '_CompanyCode'
CompanyCode,
@ObjectModel.foreignKey.association: '_Ledger'
Ledger,
@ObjectModel.foreignKey.association: '_GLAccountInChartOfAccounts'
I_FinancialPlanningEntryItem.GLAccount,
@ObjectModel.foreignKey.association: '_ChartOfAccounts'
I_FinancialPlanningEntryItem.ChartOfAccounts,
@ObjectModel.foreignKey.association: '_FiscalYear'
FiscalYear,
@ObjectModel.foreignKey.association: '_LedgerFiscalYearForVariant'
LedgerFiscalYear,
////////////////////////////////////////////////////////////////////////////////////
// G/L additional account assignments
////////////////////////////////////////////////////////////////////////////////////
@ObjectModel.foreignKey.association: '_BusinessArea'
BusinessArea,
@ObjectModel.foreignKey.association: '_ProfitCenter'
ProfitCenter,
@ObjectModel.foreignKey.association: '_CostCenter'
CostCenter,
@ObjectModel.foreignKey.association: '_Project'
Project,
@ObjectModel.foreignKey.association: '_ProjectBasicData'
ProjectInternalID,
@ObjectModel.foreignKey.association: '_PartnerProjectBasicData'
PartnerProjectInternalID,
@ObjectModel.foreignKey.association: '_WBSElement'
WBSElement,
// @ObjectModel.foreignKey.association: '_WBSElementByInternalKey'
@ObjectModel.foreignKey.association: '_WBSElementBasicData'
WBSElementInternalID,
@ObjectModel.foreignKey.association: '_PartnerWBSElementBasicData'
PartnerWBSElementInternalID,
@ObjectModel.foreignKey.association: '_FunctionalArea'
FunctionalArea,
@ObjectModel.foreignKey.association: '_Segment'
Segment,
@ObjectModel.foreignKey.association: '_CostCtrActivityType'
CostCtrActivityType,
@ObjectModel.foreignKey.association: '_CostAnalysisResource'
CostAnalysisResource,
@ObjectModel.foreignKey.association: '_WorkPackage'
WorkPackage,
@ObjectModel.foreignKey.association: '_WorkPackageWorkItem'
WorkItem,
BillableControl,
IsLotSizeIndependent,
@ObjectModel.foreignKey.association: '_PartnerCompanyCode'
PartnerCompanyCode,
@ObjectModel.foreignKey.association: '_OriginCostCtrActivityType'
OriginCostCtrActivityType,
@ObjectModel.foreignKey.association: '_PartnerBusinessArea'
PartnerBusinessArea,
@ObjectModel.foreignKey.association: '_PartnerSegment'
PartnerSegment,
@ObjectModel.foreignKey.association: '_PartnerProfitCenter'
PartnerProfitCenter,
@ObjectModel.foreignKey.association: '_PartnerCostCenter'
PartnerCostCenter,
@ObjectModel.foreignKey.association: '_PartnerProject'
@API.element.releaseState: #DEPRECATED
@API.element.successor: 'PartnerProjectInternalID'
@VDM.lifecycle.status: #DEPRECATED
@VDM.lifecycle.successor: 'PartnerProjectInternalID'
PartnerProject,
@ObjectModel.foreignKey.association: '_PartnerWBSElement'
PartnerWBSElement,
@ObjectModel.foreignKey.association: '_PartnerFunctionalArea'
PartnerFunctionalArea,
@ObjectModel.foreignKey.association: '_PartnerCostCtrActivityType'
PartnerCostCtrActivityType,
@ObjectModel.foreignKey.association: '_Order'
OrderID,
@API.element.releaseState: #DEPRECATED
@API.element.successor: 'PartnerOrder_2'
@VDM.lifecycle.status: #DEPRECATED
@VDM.lifecycle.successor: 'PartnerOrder_2'
@ObjectModel.foreignKey.association: '_PartnerOrder'
PartnerOrder,
@Analytics.internalName: #LOCAL
@ObjectModel.foreignKey.association: '_PartnerOrder_2'
PartnerOrder_2,
@ObjectModel.foreignKey.association: '_PartnerCompany'
PartnerCompany,
////////////////////////////////////////////////////////////////////////////////////
// .INCLUDE ACDOC_SI_00 Universal Journal Entry: Transaction
////////////////////////////////////////////////////////////////////////////////////
ReferenceDocumentType,
ReferenceDocumentContext,
ReferenceDocument,
/////////////////////////////////////////////////////////////////////////////////////
// Value Fields
/////////////////////////////////////////////////////////////////////////////////////
@ObjectModel.foreignKey.association: '_TransactionCurrency'
@Semantics.currencyCode:true
TransactionCurrency,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
AmountInTransactionCurrency,
@ObjectModel.foreignKey.association: '_CompanyCodeCurrency'
@Semantics.currencyCode:true
CompanyCodeCurrency,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
AmountInCompanyCodeCurrency,
@ObjectModel.foreignKey.association: '_GlobalCurrency'
@Semantics.currencyCode:true
GlobalCurrency,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
AmountInGlobalCurrency,
@ObjectModel.foreignKey.association: '_FreeDefinedCurrency1'
@Semantics.currencyCode:true
FreeDefinedCurrency1,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency1'} }
AmountInFreeDefinedCurrency1,
@ObjectModel.foreignKey.association: '_FreeDefinedCurrency2'
@Semantics.currencyCode:true
FreeDefinedCurrency2,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency2'} }
AmountInFreeDefinedCurrency2,
@ObjectModel.foreignKey.association: '_FreeDefinedCurrency3'
@Semantics.currencyCode:true
FreeDefinedCurrency3,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency3'} }
AmountInFreeDefinedCurrency3,
@ObjectModel.foreignKey.association: '_FreeDefinedCurrency4'
@Semantics.currencyCode:true
FreeDefinedCurrency4,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency4'} }
AmountInFreeDefinedCurrency4,
@ObjectModel.foreignKey.association: '_FreeDefinedCurrency5'
@Semantics.currencyCode:true
FreeDefinedCurrency5,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency5'} }
AmountInFreeDefinedCurrency5,
@ObjectModel.foreignKey.association: '_FreeDefinedCurrency6'
@Semantics.currencyCode:true
FreeDefinedCurrency6,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency6'} }
AmountInFreeDefinedCurrency6,
@ObjectModel.foreignKey.association: '_FreeDefinedCurrency7'
@Semantics.currencyCode:true
FreeDefinedCurrency7,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency7'} }
AmountInFreeDefinedCurrency7,
@ObjectModel.foreignKey.association: '_FreeDefinedCurrency8'
@Semantics.currencyCode:true
FreeDefinedCurrency8,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FreeDefinedCurrency8'} }
AmountInFreeDefinedCurrency8,
@ObjectModel.foreignKey.association: '_ControllingObjectCurrency'
@Semantics.currencyCode:true
ControllingObjectCurrency,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'ControllingObjectCurrency'} }
AmountInObjectCurrency,
@ObjectModel.foreignKey.association: '_FunctionalCurrency'
@Semantics.currencyCode:true
FunctionalCurrency,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'FunctionalCurrency'} }
AmountInFunctionalCurrency,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
FixedAmountInGlobalCrcy,
//@ObjectModel.foreignKey.association: '_BaseUnit'
//@Semantics.unitOfMeasure:true
//runit as BaseUnit,
@ObjectModel.foreignKey.association: '_CostSourceUnit'
@Semantics.unitOfMeasure:true
CostSourceUnit,
@DefaultAggregation: #SUM
@Semantics: { quantity : {unitOfMeasure: 'CostSourceUnit'} }
ValuationQuantity,
/////////////////////////////////////////////////////////////////////////////
// Mandatory fields for G/L
////////////////////////////////////////////////////////////////////////////
@ObjectModel.foreignKey.association: '_FiscalPeriodForVariant'
FiscalPeriod,
FiscalYearPeriod,
FiscalYearVariant,
PostingDate,
@ObjectModel.foreignKey.association: '_SubLedgerAccLineItemType'
SubLedgerAcctLineItemType,
////////////////////////////////////////////////////////////////////////////
// .INCLUDE ACDOC_SI_GEN Fields for several subledgers
///////////////////////////////////////////////////////////////////////////
@ObjectModel.foreignKey.association: '_SalesOrder'
SalesOrder,
@ObjectModel.foreignKey.association: '_SalesOrderItem'
SalesOrderItem,
@ObjectModel.foreignKey.association: '_SalesDocument'
SalesDocument,
@ObjectModel.foreignKey.association: '_SalesDocumentItem'
SalesDocumentItem,
@ObjectModel.foreignKey.association: '_Plant'
Plant,
@ObjectModel.foreignKey.association: '_Material'
Material,
@ObjectModel.foreignKey.association: '_Customer'
Customer,
////////////////////////////////////////////////////////////////////////////
// .INCLUDE ACDOC_SI_CO Unified Journal Entry: CO fields
///////////////////////////////////////////////////////////////////////////
@ObjectModel.foreignKey.association: '_PlanningCategory'
PlanningCategory,
AccountAssignmentType,
@ObjectModel.foreignKey.association: '_ControllingDebitCreditCode'
ControllingDebitCreditCode,
@ObjectModel.foreignKey.association: '_Employment'
PersonnelNumber,
//////////////////////////////////
IsStatisticalOrder,
IsStatisticalCostCenter,
IsStatisticalSalesDocument,
WBSIsStatisticalWBSElement,
//////////////////////////////////////////////////////////////////////
// .INCLUDE ACDOC_SI_COPA Unified Journal Entry: CO-PA fields
//////////////////////////////////////////////////////////////////////
@ObjectModel.foreignKey.association: '_BillingDocumentType'
BillingDocumentType,
@ObjectModel.foreignKey.association: '_SalesOrganization'
SalesOrganization,
@ObjectModel.foreignKey.association: '_DistributionChannel'
DistributionChannel,
@ObjectModel.foreignKey.association: '_Division'
Division,
@ObjectModel.foreignKey.association: '_Division'
OrganizationDivision,
@ObjectModel.foreignKey.association: '_SoldMaterial'
SoldMaterial,
@ObjectModel.foreignKey.association: '_SoldProduct'
SoldProduct,
@ObjectModel.foreignKey.association: '_MaterialGroup'
MaterialGroup,
@ObjectModel.foreignKey.association: '_ProductGroup'
ProductGroup,
@ObjectModel.foreignKey.association: '_CustomerGroup'
CustomerGroup,
@ObjectModel.foreignKey.association: '_CustomerSupplierCountry'
CustomerSupplierCountry,
CustomerSupplierIndustry,
@ObjectModel.foreignKey.association: '_SalesDistrict'
SalesDistrict,
@ObjectModel.foreignKey.association: '_BillToParty'
BillToParty,
@ObjectModel.foreignKey.association: '_ShipToParty'
ShipToParty,
CustomerSupplierCorporateGroup,
AssetClass,
///////////////////////////////////////////////////////////////////////
// Associations
///////////////////////////////////////////////////////////////////////
_Ledger,
_CompanyCode,
_FiscalYear,
@VDM.lifecycle.status: #DEPRECATED
@VDM.lifecycle.successor: '_LedgerFiscalYearForVariant'
_LedgerFiscalYear,
_LedgerFiscalYearForVariant,
@VDM.lifecycle.status: #DEPRECATED
@VDM.lifecycle.successor: '_FiscalPeriodForVariant'
_FiscalPeriod,
_FiscalPeriodForVariant,
_SubLedgerAccLineItemType,
_FiscalYearVariant,
_CalendarDate,
_FiscalCalendarDate,
_ControllingArea,
_GLAccountInCompanyCode,
I_FinancialPlanningEntryItem._GLAccountInChartOfAccounts,
_TransactionCurrency,
_CompanyCodeCurrency,
_GlobalCurrency,
_FreeDefinedCurrency1,
_FreeDefinedCurrency2,
_FreeDefinedCurrency3,
_FreeDefinedCurrency4,
_FreeDefinedCurrency5,
_FreeDefinedCurrency6,
_FreeDefinedCurrency7,
_FreeDefinedCurrency8,
_ControllingObjectCurrency,
_FunctionalCurrency,
//_BaseUnit,
_CostSourceUnit,
_Segment,
_ProfitCenter,
_CurrentProfitCenter,
_CostCenter,
_CurrentCostCenter,
_BusinessArea,
I_FinancialPlanningEntryItem._FunctionalArea,
_WBSElement,
_WBSElementByInternalKey,
_WBSElementBasicData,
_PartnerWBSElementBasicData,
_Project,
_ProjectBasicData,
_PartnerProjectBasicData,
_CostCtrActivityType,
_CostAnalysisResource,
_WorkPackageWorkItem,
_WorkPackage,
_InternalOrder,
_Order,
_SalesOrder,
_SalesOrderItem,
_SalesDocument,
_SalesDocumentItem,
_PartnerCompany,
_PartnerCompanyCode,
_OriginCostCtrActivityType,
_PartnerSegment,
_PartnerProfitCenter,
_PartnerCostCenter,
_PartnerBusinessArea,
_PartnerFunctionalArea,
_PartnerWBSElement,
_PartnerProject,
_PartnerCostCtrActivityType,
@API.element.releaseState: #DEPRECATED
@API.element.successor: '_PartnerOrder_2'
@VDM.lifecycle.status: #DEPRECATED
@VDM.lifecycle.successor: '_PartnerOrder_2'
_PartnerOrder,
_PartnerOrder_2,
I_FinancialPlanningEntryItem._ChartOfAccounts,
_ControllingDebitCreditCode,
_Employment,
_Customer,
_CustomerGroup,
_Material,
_MaterialGroup,
_ProductGroup,
_Plant,
_BillingDocumentType,
_SalesOrganization,
_DistributionChannel,
_Division,
_SoldMaterial,
_SoldProduct,
_CustomerSupplierCountry,
_SalesDistrict,
_BillToParty,
_ShipToParty,
_PlanningCategory,
_SemanticTag,
_Hierarchy,
GLAccountAuthorizationGroup,
CustomerBasicAuthorizationGrp,
OrderType,
SalesOrderType,
AssetDepreciationArea,
MasterFixedAsset,
FixedAsset,
AssetAcctTransClassfctn
}
where
(
I_FinancialPlanningEntryItem.FunctionalArea = ''
and I_SemTagGLAccount.FunctionalAreaIsUsed = 'X'
) // Only line items without functional area permitted
or I_SemTagGLAccount.SemanticTag = 'NTINC_ALAC'
or I_SemTagGLAccount.FunctionalAreaIsUsed = ''
or I_SemTagGLAccount.FunctionalAreaIsUsed is null
or(
I_FinancialPlanningEntryItem._GLAccountInChartOfAccounts.GLAccountType = 'X'
) // Balance Sheet Account
or(
I_FinancialPlanningEntryItem._GLAccountInChartOfAccounts.GLAccountType = 'C'
) // Cash Account