C_Cust360FulfillmentIssueCnt

DDL: C_CUST360FULFILLMENTISSUECNT Type: view_entity CONSUMPTION

Customer 360 Count of Fulfillment Issues

C_Cust360FulfillmentIssueCnt is a Consumption CDS View that provides data about "Customer 360 Count of Fulfillment Issues" in SAP S/4HANA. It reads from 2 data sources (I_SalesOrderFlfmtIssueBasic, I_SalesDocument) and exposes 11 fields with key fields SoldToParty, Issue. It has 1 association to related views.

Data Sources (2)

SourceAliasJoin Type
I_SalesOrderFlfmtIssueBasic Issue inner
I_SalesDocument SalesDocument from

Associations (1)

CardinalityTargetAliasCondition
[0..*] I_IssueText _IssueText $projection.Issue = _IssueText.Issue

Annotations (8)

NameValueLevelField
AccessControl.authorizationCheck #MANDATORY view
EndUserText.label Customer 360 Count of Fulfillment Issues view
ObjectModel.representativeKey SoldToParty view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #S view
ObjectModel.usageType.dataClass #MIXED view
Metadata.allowExtensions true view
VDM.viewType #CONSUMPTION view

Fields (11)

KeyFieldSource TableSource FieldDescription
KEY SoldToParty I_SalesDocument SoldToParty
KEY Issue I_SalesOrderFlfmtIssueBasic Issue
CustomerName
IssueCount
SalesDocumentType I_SalesDocument SalesDocumentType
SalesOrganization I_SalesDocument SalesOrganization
DistributionChannel I_SalesDocument DistributionChannel
OrganizationDivision I_SalesDocument OrganizationDivision
_SoldToParty I_SalesDocument _SoldToParty
_Issue I_SalesOrderFlfmtIssueBasic _Issue
_IssueText _IssueText
@AccessControl.authorizationCheck: #MANDATORY
@EndUserText.label: 'Customer 360 Count of Fulfillment Issues'
@ObjectModel.representativeKey: 'SoldToParty'
@ObjectModel.usageType:{
    serviceQuality: #D,
    sizeCategory: #S,
    dataClass: #MIXED
}
@Metadata.allowExtensions: true
@VDM.viewType: #CONSUMPTION

define view entity C_Cust360FulfillmentIssueCnt
  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        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
{

      @ObjectModel.text.element: ['CustomerName']
      @ObjectModel.foreignKey.association: '_SoldToParty'
  key SalesDocument.SoldToParty                                         as SoldToParty,
  key Issue.Issue,

      @UI.hidden: true
      SalesDocument._SoldToParty.CustomerName                           as CustomerName,

      //  SalesDocument.SalesDocument as SalesDocument,

      //   @DefaultAggregation:#COUNT_DISTINCT

      //   @Aggregation.referenceElement: ['SalesDocument.SalesDocument']

      //      @DefaultAggregation:#SUM

      @Aggregation.default: #SUM
      cast( count( distinct SalesDocument.SalesDocument) as abap.int4 ) as IssueCount,


      //added beacuse of DCL

      SalesDocument.SalesDocumentType,
      SalesDocument.SalesOrganization,
      SalesDocument.DistributionChannel,
      SalesDocument.OrganizationDivision,

      //associations

      SalesDocument._SoldToParty,
      Issue._Issue,

      _IssueText

}
where
  Issue.IsPotentialFutureIssue = '0'
group by
  Issue.Issue,
  SalesDocument.SoldToParty,
  SalesDocument.SalesDocumentType,
  SalesDocument.SalesOrganization,
  SalesDocument.DistributionChannel,
  SalesDocument.OrganizationDivision,
  SalesDocument._SoldToParty.CustomerName;
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_CUSTOMER",
"I_SALESDOCUMENT",
"I_SALESORDERFLFMTISSUEBASIC"
],
"ASSOCIATED":
[
"I_CUSTOMER",
"I_ISSUE",
"I_ISSUETEXT"
],
"BASE":
[
"I_SALESDOCUMENT",
"I_SALESORDERFLFMTISSUEBASIC"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/