Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

RAP CDS-View ui.chart error "The requested data was not found."

EnnoWulff
Active Contributor
791

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

}
0 REPLIES 0