@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType.dataClass: #MIXED
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #XL
@EndUserText.label: 'Analytics - Sales Volume and Open Sales'
@Analytics.dataCategory: #CUBE
@VDM.viewType: #COMPOSITE
@AccessControl.authorizationCheck:#CHECK
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@Metadata.allowExtensions: true
@AbapCatalog.sqlViewName: 'ISDSLSANACUBE'
@AbapCatalog.compiler.compareFilter: true
@VDM.lifecycle.contract.type: #PUBLIC_LOCAL_API
@VDM.lifecycle.status: #DEPRECATED
@VDM.lifecycle.successor: 'I_SalesAnalyticsCube_1'
///////////////////////////////////////////////////
// IMPORTANT NOTE (23.2.2018) //
// //
//The usage of this cube/query is deprecated. //
// //
//Please use query C_SalesAnalyticsQry_1 //
// I_SalesAnalyticsCube_1 instead //
//which fully supports cds extensibility. //
//Extensibility now allows to handle the three //
//SDDocuments: Orders, Deliveries and Invoices. //
// //
//Background: it was not feasible to change the //
// old/existing extensibility //
// registration //
///////////////////////////////////////////////////
define view I_SalesAnalyticsCube
with parameters
P_ExchangeRateType : kurst,
P_DisplayCurrency : vdm_v_display_currency
as select from P_SalesAnalytics(P_ExchangeRateType:$parameters.P_ExchangeRateType, P_DisplayCurrency: $parameters.P_DisplayCurrency) as PSA
left outer to one join I_CalendarDate as Period on PSA.CalendarDate = Period.CalendarDate
association [0..1] to I_Currency as _DisplayCurrency on $projection.DisplayCurrency = _DisplayCurrency.Currency
association [0..1] to I_Customer as _Customer on $projection.Customer = _Customer.Customer
association [0..1] to I_ShippingPoint as _ShippingPoint on $projection.ShippingPoint = _ShippingPoint.ShippingPoint
association [0..1] to I_BillingDocumentType as _BillingDocumentType on $projection.BillingDocumentType = _BillingDocumentType.BillingDocumentType
association [0..1] to I_SDDocumentObject as _SDDocumentObject on $projection.SDDocumentObject = _SDDocumentObject.SDDocumentObject
//Extensibility
association [0..1] to E_SalesDocumentItemBasic as _Extension
on $projection.SalesDocument = _Extension.SalesDocument and $projection.SalesDocumentItem = _Extension.SalesDocumentItem
association [0..1] to E_DeliveryDocumentItem as _DelivDocItemExtension
on $projection.DeliveryDocument = _DelivDocItemExtension.DeliveryDocument and $projection.DeliveryDocumentItem = _DelivDocItemExtension.DeliveryDocumentItem
association [0..1] to E_BillingDocumentItem as _BillgDocItemExtension
on $projection.BillingDocument = _BillgDocItemExtension.BillingDocument and $projection.BillingDocumentItem = _BillgDocItemExtension.BillingDocumentItem
{
//key
key SalesDocument,
key SalesDocumentItem,
key ScheduleLine,
key BillingPlan,
key BillingPlanItem,
key DeliveryDocument,
key DeliveryDocumentItem,
key BillingDocument,
key BillingDocumentItem,
//Dimensions
//Customer
@ObjectModel.foreignKey.association: '_SoldToParty'
SoldToParty,
SoldToPartyName,
CustomerGroup,
@ObjectModel.foreignKey.association: '_Customer'
cast (SoldToParty as kunnr) as Customer,
// ----- Category -----
@ObjectModel.foreignKey.association: '_SDDocumentCategory'
SDDocumentCategory,
@ObjectModel.foreignKey.association: '_SDDocumentObject'
SDDocumentObject,
//Organization
@ObjectModel.foreignKey.association: '_SalesOrganization'
SalesOrganization,
@ObjectModel.foreignKey.association: '_DistributionChannel'
DistributionChannel,
@ObjectModel.foreignKey.association: '_Division'
Division,
//Team View
@ObjectModel.foreignKey.association: '_SalesOffice'
SalesOffice,
@ObjectModel.foreignKey.association: '_SalesGroup'
SalesGroup,
//Geographics
@ObjectModel.foreignKey.association: '_SalesDistrict'
SalesDistrict,
//Product
@ObjectModel.foreignKey.association: '_Material'
Material,
@ObjectModel.foreignKey.association: '_OriginallyRequestedMaterial'
OriginallyRequestedMaterial,
InternationalArticleNumber,
ProductHierarchyNode,
@ObjectModel.foreignKey.association: '_MaterialGroup'
MaterialGroup,
ProfitCenter,
//Time Period
@Semantics.calendar.year
cast(Period.CalendarYear as billing_document_date_year) as BillingDocumentDateYear,
@Semantics.calendar.yearQuarter
cast(Period.YearQuarter as billing_doc_date_year_quarter) as BillingDocDateYearQuarter,
@Semantics.calendar.yearMonth
cast(Period.YearMonth as billing_doc_date_year_month) as BillingDocDateYearMonth,
// Misc (for DCL, I_CalenderDate-join)
SalesDocumentType, -- DCL Check for SalesDocument
@ObjectModel.foreignKey.association: '_ShippingPoint'
ShippingPoint, -- DCL Check for Delivery
BillingDocumentType, -- DCL Check for Billing
PSA.CalendarDate, -- for joining I_calendarDate & CurrencyConversion
CreationDate,
cast( case when SDDocumentCategory = 'C'
then SalesDocument
--else ''
end as vdm_sales_order ) as SalesOrder,
//Measures
//Measures Sales Document Item
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'TransactionCurrency'
OpnSOForOrdReltdInvcsNetAmount,
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'DisplayCurrency'
OpnSOForOrdReltdInvcsNetAmtDC,
@DefaultAggregation: #SUM
@Semantics.quantity.unitOfMeasure: 'BaseUnit'
OpnSlsOrdsForOrdReltdInvcsQty,
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'TransactionCurrency'
OpnRetsForOrdReltdInvcsNetAmt ,
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'DisplayCurrency'
OpnRetsOrdReltdInvcsNetAmtInDC ,
@DefaultAggregation: #SUM
@Semantics.quantity.unitOfMeasure: 'BaseUnit'
OpnRetsForOrdReltdInvcsQty ,
//Measures Schedule Line
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'TransactionCurrency'
OpenSlsOrdersForDelivNetAmount,
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'DisplayCurrency'
OpnSlsOrdsForDelivAmtInDspCrcy,
@DefaultAggregation: #SUM
@Semantics.quantity.unitOfMeasure: 'BaseUnit'
OpnSlsOrdrsForDelivQuantity,
//Measures for Billing Plan Due Date
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'TransactionCurrency'
OpnSlsOrdsForInvcPlansNetAmt,
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'DisplayCurrency'
OpnSlsOrdsForInvcPlansNetAmtDC,
//Measures Delivery Document Item
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'TransactionCurrency'
OpnOutbDelivsForInvcNetAmt,
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'DisplayCurrency'
OpnOutbDelivsForInvcNetAmtInDC,
@DefaultAggregation: #SUM
@Semantics.quantity.unitOfMeasure: 'BaseUnit'
OpnOutbDelivsForInvcQty,
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'TransactionCurrency'
ShpdNotInvcdDelivsNetAmount, --AT 25.4.2018: new for CE1808
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'DisplayCurrency'
ShpdNotInvcdDelivsNetAmtInDC, --AT 25.4.2018: new for CE1808
@DefaultAggregation: #SUM
@Semantics.quantity.unitOfMeasure: 'BaseUnit'
ShpdNotInvcdDelivsQuantity, --AT 25.4.2018: new for CE1808
//Measures Billing Document Item
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'TransactionCurrency'
SalesVolumeNetAmount,
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'DisplayCurrency'
SlsVolumeNetAmtInDspCrcy,
@DefaultAggregation: #SUM
@Semantics.quantity.unitOfMeasure: 'BaseUnit'
SalesVolumeQuantity,
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'TransactionCurrency'
SalesProfitMarginNetAmount,
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'DisplayCurrency'
SlsProfitMargNetAmtInDspCrcy,
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'TransactionCurrency'
CustomerCreditMemoNetAmount,
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'DisplayCurrency'
CustCrdtMemoNetAmtInDspCrcy,
@DefaultAggregation: #SUM
@Semantics.quantity.unitOfMeasure: 'BaseUnit'
CustCreditMemoQuantity,
@Semantics.currencyCode: true
@ObjectModel.foreignKey.association: '_DisplayCurrency'
cast(:P_DisplayCurrency as vdm_v_display_currency) as DisplayCurrency,
@Semantics.currencyCode: true
@ObjectModel.foreignKey.association: '_TransactionCurrency'
TransactionCurrency,
@Semantics.currencyCode: true
@ObjectModel.foreignKey.association: '_StatisticsCurrency'
StatisticsCurrency,
@Semantics.unitOfMeasure: true
@ObjectModel.foreignKey.association: '_BaseUnit'
BaseUnit,
//Associations
_BillingDocumentType,
_SDDocumentObject,
_DisplayCurrency,
_StatisticsCurrency,
_TransactionCurrency,
_BaseUnit,
_DistributionChannel,
_Division,
_Material,
_MaterialGroup,
_OriginallyRequestedMaterial,
_SalesDistrict,
_SalesOffice,
_SalesGroup,
_SalesOrganization,
_SoldToParty,
_ShippingPoint,
_CustomerGroup,
_Customer,
_SDDocumentCategory
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_CALENDARDATE",
"P_SALESANALYTICS"
],
"ASSOCIATED":
[
"E_BILLINGDOCUMENTITEM",
"E_DELIVERYDOCUMENTITEM",
"E_SALESDOCUMENTITEMBASIC",
"I_BILLINGDOCUMENTTYPE",
"I_CURRENCY",
"I_CUSTOMER",
"I_CUSTOMERGROUP",
"I_DISTRIBUTIONCHANNEL",
"I_DIVISION",
"I_MATERIAL",
"I_MATERIALGROUP",
"I_SALESDISTRICT",
"I_SALESGROUP",
"I_SALESOFFICE",
"I_SALESORGANIZATION",
"I_SDDOCUMENTCATEGORY",
"I_SDDOCUMENTOBJECT",
"I_SHIPPINGPOINT",
"I_UNITOFMEASURE"
],
"BASE":
[
"P_SALESANALYTICS"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/