2022 Oct 27 7:24 PM
Hello!
we tried to follow this guideline
The facets are displayed but as soon as we try to add the chart, the message
"The requested data was not found." appears
What is wrong with our definition for the chart display?
Thanks in advance!
Enno
the CDS View looks like this:
@AbapCatalog.sqlViewName: 'ZDOJOICONNECTR'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Read-Only E2E: Data Model Connection'
@UI.headerInfo.typeNamePlural:'Flugverbindungen'
@UI.headerInfo.typeName: 'Flugverbindung'
@UI.chart: [{
qualifier: 'Chart1',
title: 'Flight Prices of this Travel by Airline',
chartType: #BAR,
dimensions: [ '_booking.AirlineID'],
measures: [ '_booking.ConvertedFlightPrice'],
measureAttributes: [ {measure: '_booking.ConvertedFlightPrice', role: #AXIS_1}],
dimensionAttributes: [ {dimension: '_booking.AirlineID', role: #CATEGORY}],
description: 'Chart shows airline costs.'
}
]
define view ZDOJO_I_Connection_R
as select from /dmo/connection as Connection
association [0..*] to zdojo_total_flp as _booking on Connection.carrier_id = _booking.AirlineID
{
@UI.facet: [
// Header Facet (Object Page):
{ id: 'HeaderFacet',
purpose: #HEADER,
type: #FIELDGROUP_REFERENCE,
label: 'Object Page - Header Facet',
targetQualifier: 'Fieldgroup:HeaderItems', // Refers to lineItems with @UI.fieldGroup: [{qualifier: 'Fieldgroup:HeaderItems'}]
position: 10 },
// Facet 1
{ id: 'Facet1-ID',
purpose: #STANDARD,
type: #IDENTIFICATION_REFERENCE,
label: 'Facet 1 - Flugverbindung',
position: 10 },
// Facet 2
{ id: 'Facet2-ID',
type: #COLLECTION,
label: 'Facet 2 - Flughäfen',
position: 20 },
// Facet for Fieldgroup 1 - nested inside Facet 1
{ id: 'Fieldgroup1-ID',
type: #FIELDGROUP_REFERENCE,
label: 'Abflughafen',
parentId: 'Facet2-ID',
targetQualifier: 'Fieldgroup1',
position: 10 },
// Facet for Fieldgroup 2 - nested inside Facet 1
{ id: 'Fieldgroup2-ID',
type: #FIELDGROUP_REFERENCE,
label: 'Zielflughafen',
parentId: 'Facet2-ID',
targetQualifier: 'Fieldgroup2',
position: 20 },
<br> // CHART<br> { id: 'Chart1-ID',
purpose: #STANDARD,
type: #CHART_REFERENCE,
label: 'Chart',
position: 5,
targetQualifier: 'Chart1',
targetElement: '_booking' // wenn aktiv: Facet CHART wird gar nicht angezeigt
}
]
@UI.lineItem: [ { position: 10, label: 'Fluggesellschaft' } ]
@UI.selectionField: [ { position: 10 } ]
@UI: { identification:[ { position: 40, label: 'Airline' }],
fieldGroup: [ { qualifier: 'Fieldgroup:HeaderItems', position: 1 } ] }
key Connection.carrier_id as AirlineID,
@UI.lineItem: [ { position: 20, qualifier: 'Facet2' } ]
@UI.selectionField: [ { position: 20 } ]
@EndUserText.label: 'Flugnummer'
@UI: { identification:[ { position: 20, label: 'Flugnummer' } ] }
key Connection.connection_id as ConnectionID,
@UI.lineItem: [ { position: 30, label: 'Abflughafen' } ]
@UI: { identification:[ { position: 30, label: 'Abflughafen'} ],
fieldGroup: [{ qualifier: 'Fieldgroup1', position: 10 }] }
Connection.airport_from_id as DepartureAirport,
@UI.lineItem: [ { position: 40, label: 'Zielflughafen' } ]
@UI: { identification:[ { position: 10, label: 'Flughafen am Zielort'} ],
fieldGroup: [{ qualifier: 'Fieldgroup2', position: 10 }] }
Connection.airport_to_id as DestinationAirport,
@UI.lineItem: [ { position: 50, label: 'Abflugzeit' } ]
@UI: { identification:[ { position: 50, label: 'Abflugzeit (Ortszeit)' } ],
fieldGroup: [{ qualifier: 'Fieldgroup1', position: 20 }] }
Connection.departure_time as DepartureTime,
@UI.lineItem: [ { position: 60, label: 'Ankunftszeit' } ]
@UI: { identification:[ { position: 60, label: 'Ankunftszeit (Ortszeit)' } ],
fieldGroup: [{ qualifier: 'Fieldgroup2', position: 20 }] }
Connection.arrival_time as ArrivalTime,
//@UI.lineItem: [ { position: 70, label: 'Distanz' } ]
@Semantics.quantity.unitOfMeasure: 'DistanceUnit'
@UI: { identification:[ { position: 70, label: 'Distanz' } ] }
@Aggregation.default:#SUM
Connection.distance as Distance,
//@UI.lineItem: [ { position: 80, label: 'Distanzeinheit' } ]
@Semantics.unitOfMeasure: true
Connection.distance_unit as DistanceUnit,
_booking
}
The bookings view ( to have the aggregation annotation):
define view zdojo_total_flp
as select from /dmo/booking as Booking
{
carrier_id as AirlineID,
@Semantics.amount.currencyCode: 'TargetCurrency'
@Aggregation.default: #SUM
CURRENCY_CONVERSION(
amount => Booking.flight_price,
source_currency => Booking.currency_code,
target_currency => cast( 'EUR' as abap.cuky ),
exchange_rate_date => cast( '20200420' as abap.dats ),
error_handling => 'SET_TO_NULL' ) as ConvertedFlightPrice,
cast('EUR' as abap.cuky) as TargetCurrency,
// _Customer.CountryCode as CountryCode,
@Aggregation.referenceElement: ['BookingID']
@Aggregation.default: #COUNT_DISTINCT
cast( 1 as abap.int4 ) as DistinctBookings
}