@AbapCatalog.sqlViewName: 'PPURORDCOMMIT'
@AbapCatalog.compiler.compareFilter: true
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.usageType.dataClass: #MIXED
@VDM.private: true
@VDM.viewType: #COMPOSITE
define view P_PurchaseOrderCommitment
as select from I_GLAccountLineItem
inner join I_PurchaseOrder as PurchaseOrder on I_GLAccountLineItem.PurchasingDocument = PurchaseOrder.PurchaseOrder
association[0..1] to I_PredictionLedger as _PredictionLedger on $projection.Ledger = _PredictionLedger.PredictionLedger
-- :* association to the Account Assignment child node
// association [1..1] to I_PurOrdAccountAssignment as _PurOrdAcctAssignment on _PurOrdAcctAssignment.PurchaseOrder = $projection.PurchasingDocument
// and _PurOrdAcctAssignment.PurchaseOrderItem = $projection.PurchasingDocumentItem
// and _PurOrdAcctAssignment.AccountAssignmentNumber = $projection.AccountAssignmentNumber
{
key PurchasingDocument,
key PurchasingDocumentItem,
key AccountAssignmentNumber,
key SourceReferenceDocSubitem,
key GLAccount,
key ControllingArea,
key FunctionalArea,
key I_GLAccountLineItem.CompanyCode,
key I_GLAccountLineItem.FiscalYearPeriod,
key CashLedgerAccount,
key Fund,
key GrantID,
key BudgetPeriod,
key PubSecBudgetAccount,
key PubSecBudgetAccountCoCode,
key PubSecBudgetIsRelevant,
key PubSecBudgetCnsmpnType,
key CostCenter,
key ProfitCenter,
key Segment,
key WBSElementInternalID,
key WBSElement,
key AccountAssignmentType,
key AccountAssignment,
key SponsoredProgram,
key SponsoredClass,
Ledger,
IsCommitment,
// ------------------AGGREGATIONS----------------------
// aggregation of amounts in transaction currency is commited amount
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'TransactionCurrency'
sum (
AmountInTransactionCurrency
) as AmountInTransactionCurrency,
//// aggregation of positive amounts (created by PO) in transaction currency is planned amount
// @DefaultAggregation: #SUM
// @Semantics.amount.currencyCode: 'TransactionCurrency'
// sum (
// case
// when ( AmountInTransactionCurrency < 0 ) // ignore negative amounts
// then
// 0
// else
// AmountInTransactionCurrency end
// ) as PlannedAmountInTransactnCrncy,
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
sum (
AmountInCompanyCodeCurrency
) as AmountInCompanyCodeCurrency,
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'GlobalCurrency'
sum (
AmountInGlobalCurrency
) as AmountInGlobalCurrency,
//------------------------------------------------------
// @Semantics: { unitOfMeasure: true }
// BaseUnit,
// @Semantics: { quantity.unitOfMeasure: 'BaseUnit' }
// _PurOrdAcctAssignment.Quantity as PlannedQuantity,
@Semantics.currencyCode: true
TransactionCurrency,
@Semantics.currencyCode: true
CompanyCodeCurrency,
@Semantics.currencyCode: true
GlobalCurrency,
_FunctionalArea
}
where
SourceReferenceDocumentType = 'PORD'
and IsCommitment = 'X'
and _PredictionLedger.LedgerIsRelevantForAvailyCtrl = 'X'
group by
PurchasingDocument,
PurchasingDocumentItem,
AccountAssignmentNumber,
SourceReferenceDocSubitem,
IsCommitment,
GLAccount,
ControllingArea,
FunctionalArea,
TransactionCurrency,
CompanyCodeCurrency,
GlobalCurrency,
ControllingObjectCurrency,
SourceLedger,
I_GLAccountLineItem.CompanyCode,
I_GLAccountLineItem.FiscalYearPeriod,
FiscalYear,
Ledger,
CashLedgerAccount,
Fund,
GrantID,
BudgetPeriod,
PubSecBudgetAccount,
PubSecBudgetAccountCoCode,
PubSecBudgetIsRelevant,
PubSecBudgetCnsmpnType,
CostCenter,
ProfitCenter,
Segment,
WBSElementInternalID,
WBSElement,
AccountAssignmentType,
AccountAssignment,
SponsoredProgram,
SponsoredClass
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_GLACCOUNTLINEITEM",
"I_PREDICTIONLEDGER",
"I_PURCHASEORDER"
],
"ASSOCIATED":
[
"I_FUNCTIONALAREA",
"I_PREDICTIONLEDGER"
],
"BASE":
[
"I_GLACCOUNTLINEITEM"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/