@AccessControl.authorizationCheck: #CHECK
@EndUserText.label : 'Customer 360 Fullfillment Issues'
@ObjectModel.representativeKey : 'SoldToParty'
@ObjectModel.usageType:{
serviceQuality: #D,
sizeCategory: #S,
dataClass: #MIXED
}
@Metadata.allowExtensions: true
@VDM.viewType: #CONSUMPTION
define view entity C_Customer360FulfillmentIssue
as select from I_SalesDocument as SalesDocument
--AT12.8.2019: no longer usage of "old" C_SalesOrderFulfillmentIssueQ for performance & consistency reasons
inner join I_SalesOrderFlfmtIssueBasic as Issue on SalesDocument.SalesDocument = Issue.SalesOrder
and SalesDocument.SalesOrganization = Issue.SalesOrganization
and SalesDocument.DistributionChannel = Issue.DistributionChannel
and SalesDocument.OrganizationDivision = Issue.OrganizationDivision
--AT16.4.2018 added further join criteria to enable filter push-down into both sides
and SalesDocument.RequestedDeliveryDate = Issue.RequestedDeliveryDate
and SalesDocument.SalesGroup = Issue.SalesGroup
and SalesDocument.SalesOffice = Issue.SalesOffice
and SalesDocument.SoldToParty = Issue.SoldToParty
//association [0..1] to C_Customer360_Issues as IssueCategory on $projection.IssueCategoryName = IssueCategory.IssueCategoryName
// association to parent C_CUSTOMER360 as _Cust360_Header on $projection.SoldToParty = _Cust360_Header.Customer
// association [0..*] to I_IssueText as _IssueText on $projection.Issue = _IssueText.Issue
// association [0..1] to I_Division as _OrganizationDivision on $projection.OrganizationDivision = _OrganizationDivision.Division
{
@ObjectModel.text.element: ['CustomerName']
@ObjectModel.foreignKey.association : '_SoldToParty'
key SalesDocument.SoldToParty as SoldToParty,
key SalesDocument.SalesDocument as SalesDocument,
@ObjectModel.text.element:['IssueName']
key Issue.Issue,
key Issue.DueDays as DueDays,
@UI.hidden: true
SalesDocument._SoldToParty.CustomerName as CustomerName,
@DefaultAggregation: #SUM
Issue.NmbrOfAllIssues,
@EndUserText.label : 'Issue Category'
concat (concat (concat (
cast (
case when Issue.NmbrOfIssuesInOrder = 1 then
Issue.IssueCategoryName else '' end as sstring ),
cast (
case when Issue.NmbrOfIssuesInDelivery = 1 then
Issue.IssueCategoryName else '' end as sstring )),
cast (
case when Issue.NmbrOfIssuesInInvoice = 1 then
Issue.IssueCategoryName else '' end as sstring )),
cast (
case when Issue.NmbrOfIssuesInSupply = 1 then
Issue.IssueCategoryName else '' end as sstring )) as IssueCategoryName,
//key
case dats_is_valid(SalesDocument.RequestedDeliveryDate)
when 1 then SalesDocument.RequestedDeliveryDate
end as RequestedDeliveryDate,
// @ObjectModel.foreignKey.association : '_IssueCategory'
//_IssueCategory.IssueCategory as IssueCategory,
@UI.hidden: true
Issue._Issue._Text[1:Language = $session.system_language].IssueName as IssueName,
@Semantics.amount.currencyCode : 'TransactionCurrency'
SalesDocument.TotalNetAmount as TotalNetAmount,
@UI.hidden: true
SalesDocument._TransactionCurrency._Text[1:Language = $session.system_language].CurrencyName as CurrencyName,
@ObjectModel.text.element: ['CurrencyName']
SalesDocument.TransactionCurrency,
@UI.hidden: true
@ObjectModel.text.element: ['SalesDocumentTypeName']
SalesDocument.SalesDocumentType,
@UI.hidden: true
SalesDocument._SalesDocumentType._Text[1:Language = $session.system_language].SalesDocumentTypeName as SalesDocumentTypeName,
@UI.hidden: true
@ObjectModel.text.element: ['SalesOrganizationName']
SalesDocument.SalesOrganization,
@UI.hidden: true
SalesDocument._SalesOrganization._Text[1:Language = $session.system_language].SalesOrganizationName as SalesOrganizationName,
@UI.hidden: true
@ObjectModel.text.element: ['DistributionChannelName']
SalesDocument.DistributionChannel,
@UI.hidden: true
SalesDocument._DistributionChannel._Text[1:Language = $session.system_language].DistributionChannelName as DistributionChannelName,
@UI.hidden: true
@ObjectModel.text.element: ['DivisionName']
SalesDocument.OrganizationDivision,
@UI.hidden: true
SalesDocument._OrganizationDivision._Text[1:Language = $session.system_language].DivisionName as DivisionName,
SalesDocument.SDDocumentCategory,
SalesDocument._SoldToParty
}
where
Issue.IsPotentialFutureIssue = '0'
//group by
// SalesDocument.SalesDocument,
// SalesDocument.TotalNetAmount,
// SalesDocument.TransactionCurrency,
// SalesDocument.RequestedDeliveryDate,
// SalesDocument.SoldToParty,
// Issue.DueDays,
// Issue.Issue,
// SalesDocument.SDDocumentCategory,
// // _IssueText.IssueName,
// SalesDocument.SalesDocumentType,
// SalesDocument.SalesOrganization,
// SalesDocument.DistributionChannel,
// SalesDocument.OrganizationDivision
// DistributionChannelName
// SalesDocument._Division;
/*+[internal] {
"BASEINFO":
{
"FROM ":
[
"I_CURRENCY",
"I_CURRENCYTEXT",
"I_CUSTOMER",
"I_DISTRIBUTIONCHANNEL",
"I_DISTRIBUTIONCHANNELTEXT",
"I_DIVISION",
"I_DIVISIONTEXT",
"I_ISSUE",
"I_ISSUETEXT",
"I_SALESDOCUMENT",
"I_SALESDOCUMENTTYPE",
"I_SALESDOCUMENTTYPETEXT",
"I_SALESORDERFLFMTISSUEBASIC",
"I_SALESORGANIZATION",
"I_SALESORGANIZATIONTEXT"
],
"ASSOCIATED":
[
"I_CUSTOMER"
],
"BASE":
[
"I_SALESDOCUMENT"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/
Depth:
1
2
3
4
5
All
Reload
C_Customer360FulfillmentIssue view_entity