@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType.dataClass: #MIXED
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #XL
@EndUserText.label: 'Sales Document Schedule Line Analytics'
@VDM.viewType: #COMPOSITE
@AccessControl.authorizationCheck:#CHECK
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@AbapCatalog.sqlViewName: 'ISDSCHEDLINENANA'
define view I_SlsDocSchedLineAnalytics
as select from I_SalesDocumentScheduleLine as SL
association [0..1] to I_Currency as _StatisticsCurrency on $projection.StatisticsCurrency = _StatisticsCurrency.Currency
{
// Key
@ObjectModel.foreignKey.association: '_SalesDocument'
key SalesDocument,
key SalesDocumentItem,
key ScheduleLine,
//Dimensions
//Organization
@ObjectModel.foreignKey.association: '_SalesOrganization'
_SalesDocument.SalesOrganization,
@ObjectModel.foreignKey.association: '_DistributionChannel'
_SalesDocument.DistributionChannel,
@ObjectModel.foreignKey.association: '_OrganizationDivision'
_SalesDocument.OrganizationDivision,
// ----- Category -----
@ObjectModel.foreignKey.association: '_SDDocumentCategory'
_SalesDocument.SDDocumentCategory,
_SalesDocument._SDDocumentCategory,
//Product
//Product --AT*2 17.2.2020 add Product
@ObjectModel.foreignKey.association: '_Material'
@VDM.lifecycle: { status: #DEPRECATED, successor: 'Product' }
_SalesDocumentItem.Material,
@ObjectModel.text.association: '_ProductText'
@Analytics.internalName: #LOCAL
@ObjectModel.foreignKey.association: '_Product'
_SalesDocumentItem.Product,
@ObjectModel.foreignKey.association: '_OriginallyRequestedMaterial'
_SalesDocumentItem.OriginallyRequestedMaterial,
_SalesDocumentItem.InternationalArticleNumber,
--@ObjectModel.foreignKey.association: '_PricingReferenceMaterial'
_SalesDocumentItem.Batch,
_SalesDocumentItem.ProductHierarchyNode,
@ObjectModel.foreignKey.association: '_MaterialGroup'
@VDM.lifecycle: { status: #DEPRECATED, successor: 'ProductGroup' }
_SalesDocumentItem.MaterialGroup,
@Analytics.internalName: #LOCAL
@ObjectModel.foreignKey.association: '_ProductGroup'
_SalesDocumentItem.ProductGroup,
@ObjectModel.foreignKey.association: '_AdditionalMaterialGroup1'
_SalesDocumentItem.AdditionalMaterialGroup1,
@ObjectModel.foreignKey.association: '_AdditionalMaterialGroup2'
_SalesDocumentItem.AdditionalMaterialGroup2,
@ObjectModel.foreignKey.association: '_AdditionalMaterialGroup3'
_SalesDocumentItem.AdditionalMaterialGroup3,
@ObjectModel.foreignKey.association: '_AdditionalMaterialGroup4'
_SalesDocumentItem.AdditionalMaterialGroup4,
@ObjectModel.foreignKey.association: '_AdditionalMaterialGroup5'
_SalesDocumentItem.AdditionalMaterialGroup5,
_SalesDocumentItem.ProfitCenter,
//Team View
@ObjectModel.foreignKey.association: '_SalesOffice'
_SalesDocument.SalesOffice,
@ObjectModel.foreignKey.association: '_SalesGroup'
_SalesDocument.SalesGroup,
//Customer
@ObjectModel.foreignKey.association: '_SoldToParty'
_SalesDocument.SoldToParty,
cast(_SalesDocument._SoldToParty.CustomerName as vdm_sold_to_name) as SoldToPartyName,
@ObjectModel.foreignKey.association: '_CustomerGroup'
_SalesDocument.CustomerGroup,
--AT 29.04.2019: AdditionalCustomerGroup1..5 added
@ObjectModel.foreignKey.association: '_AdditionalCustomerGroup1'
_SalesDocument.AdditionalCustomerGroup1,
_SalesDocument._AdditionalCustomerGroup1,
@ObjectModel.foreignKey.association: '_AdditionalCustomerGroup2'
_SalesDocument.AdditionalCustomerGroup2,
_SalesDocument._AdditionalCustomerGroup2,
@ObjectModel.foreignKey.association: '_AdditionalCustomerGroup3'
_SalesDocument.AdditionalCustomerGroup3,
_SalesDocument._AdditionalCustomerGroup3,
@ObjectModel.foreignKey.association: '_AdditionalCustomerGroup4'
_SalesDocument.AdditionalCustomerGroup4,
_SalesDocument._AdditionalCustomerGroup4,
@ObjectModel.foreignKey.association: '_AdditionalCustomerGroup5'
_SalesDocument.AdditionalCustomerGroup5,
_SalesDocument._AdditionalCustomerGroup5,
_SalesDocument._SoldToParty.CustomerClassification as SoldToPartyClassification,
//Geographics
@ObjectModel.foreignKey.association: '_SalesDistrict'
_SalesDocument.SalesDistrict,
// Misc Attributes (for DCL, I_CalenderDate-join)
_SalesDocument.SalesDocumentType, -- DCL Check SalesDocument
GoodsIssueDate, -- For Join with I_CalendarDate & CurrencyConversion
DeliveryDate, -- Fallback for GoodsIssueDate
_SalesDocumentItem.CreationDate,
//Measures
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'TransactionCurrency'
--cast( OpenDeliveryNetAmount as tdd_odn_amount ) as OpenSlsOrdersForDelivNetAmount,
cast( OpenDeliveryNetAmount as opn_ord_for_del_amt_itc ) as OpenSlsOrdersForDelivNetAmount,
@Semantics.currencyCode: true
@ObjectModel.foreignKey.association: '_TransactionCurrency'
TransactionCurrency,
@Semantics.currencyCode: true
@ObjectModel.foreignKey.association: '_StatisticsCurrency' --'_StatisticsCurrency'
_SalesDocument._SalesOrganization.SalesOrganizationCurrency as StatisticsCurrency,
--Note: take statistical currency from central tvko (versus document)
@DefaultAggregation: #SUM
@Semantics.quantity.unitOfMeasure: 'BaseUnit'
--cast( OpenConfdDelivQtyInBaseUnit as mc_oaume ) as OpnSlsOrdrsForDelivQuantity,
cast( OpenConfdDelivQtyInBaseUnit as opn_ord_for_del_qty ) as OpnSlsOrdrsForDelivQuantity,
@Semantics.unitOfMeasure: true
@ObjectModel.foreignKey.association: '_BaseUnit'
BaseUnit,
//Associations
_SalesDocument,
_SalesDocumentItem,
_SalesDocument._SalesOrganization,
_SalesDocument._CustomerGroup,
_BaseUnit,
_SalesDocumentItem._AdditionalMaterialGroup1,
_SalesDocumentItem._AdditionalMaterialGroup2,
_SalesDocumentItem._AdditionalMaterialGroup3,
_SalesDocumentItem._AdditionalMaterialGroup4,
_SalesDocumentItem._AdditionalMaterialGroup5,
_SalesDocument._OrganizationDivision,
_SalesDocument._DistributionChannel,
@VDM.lifecycle: { status: #DEPRECATED, successor: '_Product' }
_SalesDocumentItem._Material,
_SalesDocumentItem._Product,
_SalesDocumentItem._ProductText,
@VDM.lifecycle: { status: #DEPRECATED, successor: '_ProductGroup' }
_SalesDocumentItem._MaterialGroup,
_SalesDocumentItem._ProductGroup,
_SalesDocument._SalesOffice,
_SalesDocument._SalesGroup,
_SalesDocument._SalesDistrict,
_SalesDocument._SoldToParty,
_SalesDocument._SoldToParty._CustomerClassification,
@ObjectModel.foreignKey.association: '_ShippingPoint'
_SalesDocumentItem.ShippingPoint,
_SalesDocumentItem._ShippingPoint,
_StatisticsCurrency,
_TransactionCurrency,
_SalesDocumentItem._OriginallyRequestedMaterial
}
where
_SalesDocumentItem.StatisticalValueControl = '' and
_SalesDocumentItem.IsReturnsItem = '' and _SalesDocumentItem.ItemIsBillingRelevant != '' and
( _SalesDocumentItem.ItemIsBillingRelevant = 'A' or _SalesDocumentItem.ItemIsBillingRelevant = 'H' or
_SalesDocumentItem.ItemIsBillingRelevant = 'J' or _SalesDocumentItem.ItemIsBillingRelevant = 'K' or
_SalesDocumentItem.ItemIsBillingRelevant = 'M' or _SalesDocumentItem.ItemIsBillingRelevant = 'O' or
_SalesDocumentItem.ItemIsBillingRelevant = 'P' or _SalesDocumentItem.ItemIsBillingRelevant = 'Q' or
_SalesDocumentItem.ItemIsBillingRelevant = 'R' or _SalesDocumentItem.ItemIsBillingRelevant = 'T' or
_SalesDocumentItem.ItemIsBillingRelevant = 'U' or _SalesDocumentItem.ItemIsBillingRelevant = 'V' or
_SalesDocumentItem.ItemIsBillingRelevant = 'W' ) and
(_SalesDocumentItem.TotalDeliveryStatus = 'A' or _SalesDocumentItem.TotalDeliveryStatus = 'B') and
_SalesDocumentItem.SDDocumentRejectionStatus != 'C' and
OpenDeliveryNetAmount > 0
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_CUSTOMER",
"I_SALESDOCUMENT",
"I_SALESDOCUMENTITEM",
"I_SALESDOCUMENTSCHEDULELINE",
"I_SALESORGANIZATION"
],
"ASSOCIATED":
[
"I_ADDITIONALCUSTOMERGROUP1",
"I_ADDITIONALCUSTOMERGROUP2",
"I_ADDITIONALCUSTOMERGROUP3",
"I_ADDITIONALCUSTOMERGROUP4",
"I_ADDITIONALCUSTOMERGROUP5",
"I_ADDITIONALMATERIALGROUP1",
"I_ADDITIONALMATERIALGROUP2",
"I_ADDITIONALMATERIALGROUP3",
"I_ADDITIONALMATERIALGROUP4",
"I_ADDITIONALMATERIALGROUP5",
"I_CURRENCY",
"I_CUSTOMER",
"I_CUSTOMERCLASSIFICATION",
"I_CUSTOMERGROUP",
"I_DISTRIBUTIONCHANNEL",
"I_DIVISION",
"I_MATERIAL",
"I_MATERIALGROUP",
"I_PRODUCT",
"I_PRODUCTGROUP_2",
"I_PRODUCTTEXT",
"I_SALESDISTRICT",
"I_SALESDOCUMENT",
"I_SALESDOCUMENTITEM",
"I_SALESGROUP",
"I_SALESOFFICE",
"I_SALESORGANIZATION",
"I_SDDOCUMENTCATEGORY",
"I_SHIPPINGPOINT",
"I_UNITOFMEASURE"
],
"BASE":
[
"I_CUSTOMER",
"I_SALESDOCUMENT",
"I_SALESDOCUMENTITEM",
"I_SALESDOCUMENTSCHEDULELINE"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/