C_Customer360_Issues

DDL: C_CUSTOMER360_ISSUES SQL: CCUST360ISSUES Type: view CONSUMPTION

Customer 360 Issues

C_Customer360_Issues is a Consumption CDS View that provides data about "Customer 360 Issues" in SAP S/4HANA. It reads from 2 data sources (I_SalesOrderFlfmtIssueBasic, I_SalesDocument) and exposes 15 fields with key fields SalesDocument, DueDays. It has 1 association to related views.

Data Sources (2)

SourceAliasJoin Type
I_SalesOrderFlfmtIssueBasic Issue inner
I_SalesDocument SalesDocument from

Associations (1)

CardinalityTargetAliasCondition
[0..*] C_SalesDocumentItemWl _SalesDocumentItemWl $projection.SalesDocument = _SalesDocumentItemWl.SalesDocument

Annotations (13)

NameValueLevelField
AbapCatalog.sqlViewName CCUST360ISSUES view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view
EndUserText.label Customer 360 Issues view
VDM.viewType #CONSUMPTION view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #S view
UI.headerInfo.typeName Fulfillment Issue view
UI.headerInfo.typeNamePlural Fulfillment Issues view
Search.searchable true view

Fields (15)

KeyFieldSource TableSource FieldDescription
KEY SalesDocument
KEY DueDays Next Action in Days
NmbrOfAllIssues Total No of Issues
SoldToParty I_SalesDocument SoldToParty
PurchaseOrderByCustomer I_SalesDocument PurchaseOrderByCustomer
TotalNetAmount I_SalesDocument TotalNetAmount
TransactionCurrency I_SalesDocument TransactionCurrency
RequestedDeliveryDate I_SalesDocument RequestedDeliveryDate
SalesDocumentType I_SalesDocument SalesDocumentType
SalesOrganization I_SalesDocument SalesOrganization
DistributionChannel I_SalesDocument DistributionChannel
OrganizationDivision I_SalesDocument OrganizationDivision
SDDocumentCategory SDDocumentCategory
_TransactionCurrency _TransactionCurrency
_SalesDocumentItemWl _SalesDocumentItemWl
@AbapCatalog.sqlViewName: 'CCUST360ISSUES'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@EndUserText.label: 'Customer 360 Issues'
@VDM.viewType: #CONSUMPTION
@ClientHandling.algorithm: #SESSION_VARIABLE 

@ObjectModel.usageType.dataClass: #MIXED 
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #S

@UI.headerInfo: {
      typeName:         'Fulfillment Issue',
      typeNamePlural:   'Fulfillment Issues'
     }
     

@ObjectModel.semanticKey:  [ 'SalesDocument' ]
@Search.searchable: true
@UI.presentationVariant:{
    sortOrder: [
        { by: 'DueDays', direction: #ASC },
        { by: 'SalesDocument', direction: #DESC } ],
    requestAtLeast: ['SDDocumentCategory']
}
 
define view C_Customer360_Issues

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
                                                                                        --and SalesDocument.PurchaseOrderByCustomer = Issue.PurchaseOrderByCustomer --AT11.08.2020 VBKD-BSTKD no longer provided by issues (no true hdr attribute & too expensive)
                                                                                        
  association [0..*] to C_SalesDocumentItemWl     as _SalesDocumentItemWl     on  $projection.SalesDocument = _SalesDocumentItemWl.SalesDocument
  
  {
  @Search.defaultSearchElement: true
  @Search.fuzzinessThreshold: 0.9
  @Search.ranking: #HIGH
  @UI.lineItem:[{position:20, importance:#HIGH}]
  key cast(SalesDocument.SalesDocument as vbeln_va preserving type) as SalesDocument,

  @EndUserText.label: 'Issue Category'
  @UI.lineItem:[{position:30, importance:#HIGH}]
  key concat (concat (concat (
  cast (
  case when NmbrOfIssuesInOrder = 1 then 
  Issue.IssueCategoryName   else '' end as sstring ),
  cast (
  case when NmbrOfIssuesInDelivery = 1 then 
  Issue.IssueCategoryName   else '' end as sstring )),
  cast(
  case when NmbrOfIssuesInInvoice = 1 then 
  Issue.IssueCategoryName   else '' end as sstring )),
  cast(
  case when NmbrOfIssuesInSupply = 1 then 
  Issue.IssueCategoryName    else '' end as sstring ))
     as IssueCategoryName,
  
  @EndUserText.label: 'Next Action in Days'
  @UI.lineItem:[{position:10, importance:#HIGH, criticality: 'DueDateCriticality'}]
  key min(Issue.DueDays) as DueDays,
  
  //min(DueDateStatus) as DueDateStatus,


  @UI.hidden: true
    min(  case when DueDays < 0 
             then cast('1' as valid_to_criticality )
             else
                case when DueDays = 0 
                then cast('2' as valid_to_criticality )
                else cast('3' as valid_to_criticality ) 
                end
          end ) 
    as DueDateCriticality,
  
  
  @EndUserText.label: 'Total No of Issues'
  @UI.lineItem:[{position:40, importance:#HIGH}]
  count(*) as NmbrOfAllIssues,
  
  @UI.hidden : true
  SalesDocument.SoldToParty,
  
  @UI.lineItem:[{position:50, importance:#LOW}]
  @Search.defaultSearchElement: true
  @Search.fuzzinessThreshold: 0.8
  SalesDocument.PurchaseOrderByCustomer,
  
  @DefaultAggregation: #NONE
  @Semantics.amount.currencyCode: 'TransactionCurrency'
  @UI.lineItem:[{position:60, importance:#LOW}]
  SalesDocument.TotalNetAmount,
   
  //@Semantics.currencyCode: true

  SalesDocument.TransactionCurrency,
   
  @UI.lineItem:[{position:80, importance:#MEDIUM}]
  SalesDocument.RequestedDeliveryDate,
  
  @UI.hidden : true
  SalesDocument.SalesDocumentType, 
  
  @UI.hidden : true
  SalesDocument.SalesOrganization, 
  
  @UI.hidden : true
  SalesDocument.DistributionChannel,  
  
  @UI.hidden : true
  SalesDocument.OrganizationDivision,
  
  @UI.hidden: true
  SDDocumentCategory,
   
  _TransactionCurrency,
  @Search.defaultSearchElement: true
  _SalesDocumentItemWl
} 
where IsPotentialFutureIssue = '0'
group by   SalesDocument.SalesDocument, SalesDocument.SoldToParty, SalesDocument.PurchaseOrderByCustomer, SalesDocument.TotalNetAmount, 
           SalesDocument.TransactionCurrency, SalesDocument.RequestedDeliveryDate, SalesDocument.SDDocumentCategory,
           Issue.NmbrOfIssuesInOrder, Issue.NmbrOfIssuesInDelivery, Issue.NmbrOfIssuesInInvoice, Issue.NmbrOfIssuesInSupply, 
           Issue.IssueCategoryName, 
           SalesDocument.SalesDocumentType, SalesDocument.SalesOrganization, SalesDocument.DistributionChannel, SalesDocument.OrganizationDivision ;                                                      
                                                        

  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 /*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_SALESDOCUMENT",
"I_SALESORDERFLFMTISSUEBASIC"
],
"ASSOCIATED":
[
"C_SALESDOCUMENTITEMWL",
"I_CURRENCY"
],
"BASE":
[
"I_SALESDOCUMENT"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/