C_Customer360_Issues
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)
| Source | Alias | Join Type |
|---|---|---|
| I_SalesOrderFlfmtIssueBasic | Issue | inner |
| I_SalesDocument | SalesDocument | from |
Associations (1)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..*] | C_SalesDocumentItemWl | _SalesDocumentItemWl | $projection.SalesDocument = _SalesDocumentItemWl.SalesDocument |
Annotations (13)
| Name | Value | Level | Field |
|---|---|---|---|
| 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)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| 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 ;
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA