cancel
Showing results for 
Search instead for 
Did you mean: 

"Status of Data" in Query (on top Composite Provider containing Calculation View)

betting_jan
Explorer
0 Kudos

Hello everbyody,

my company has the following scenario:

1. Graphical Calcuation View (Join of two ADSO-Tables)

2. Consumption of CV in Composite Provider

3. Query on top of CP

Issue:

When executing the query we get the execution time of the query displayed in "Status of Data". The requirement of the users is although the update date of the ADSOs.

As I understand the "Status of Data" is based on the 0INFOPROV infoobject of the infoprovider of the query. I tried to manipulate respectively to actively input a constant value (ADSO-Name) for this infoobject within my Calculation View. But the Composite Provider doesn't allow me to use the 0INFOPROV infoobject as it is reserved.

Is there any way to get the updated time of an ADSO into the "Status of Data" of my query?

An additional infoobject including the updated time was already implemented, but not regarded as feasible standard solution. Also it is not possible (for several reasons) to just include the ADSOs in the Composite Provider.

Thank you very much in advance!

Jan Betting

Accepted Solutions (1)

Accepted Solutions (1)

dominik_graus
Product and Topic Expert
Product and Topic Expert

Hi Jan,

Which SAP BW or SAP BW/4HANA release are you using?

Is there a specific reason why you are not joining the ADSOs in the CompositeProvider?

The calculation view is a kind of black box for the CompositeProvider. If the CompositeProvider knew about its part providers, it could display the "Status of Data" properly.

Regards,
Dominik

betting_jan
Explorer
0 Kudos

Hello Dominik,

thanks for your message.

Currently we are on BWon but we will move to BW4 pretty soon.

As my question is pretty generic, the reasons for choosing a Calculation View are often correlated with complex business logic which cannot implemented within a Composite Provider. I know that with BW4 the Composite Provider will be able to do more, but I don't think it will fulfill all our requirements.

My basic idea is to manipulate the query logic to manually hand over a InfoProvider name before the "Status of Data" is identified. Maybe by a kind of mapping table.

Kind regards,
Jan

dominik_graus
Product and Topic Expert
Product and Topic Expert

Hi Jan,

Manipulating 0INFOPROV is not possible.

With calculation views in CompositeProviders, several OLAP features such as OLAP cache and data topicality ("letzte Datenaktualisierung") are impacted since calculation views are a black box for the Analytic Manager (as mentioned before). You may solve the issue around data topicality, e.g., as suggested by Ferdl Tulu in his comment below. But OLAP cache would still not be supported.

Potentially, you could leverage SAP Note 2602920 (see links below). Like this, you should be able to benefit from the OLAP cache and get information on data topicality in the query at the same time. Note that you have to update a timestamp in table RSDINFOPROVDATA whenever one of the involved ADSOs got new data. Note the remarks on potential drawbacks of this workaround and limited support as outlined in the SAP Notes.

SAP Note 2602920 - OLAP cache utilization for CalcViews
SAP Note 3055721 - Report setting OLAP cache timestamps for DataSources (using notes 2602920 and 301...

Not only for the reasons mentioned in the SAP Notes, I'd recommend using CompositeProvider functionality as much as possible and only use calculation views as part providers if really necessary. You may, for example, run into issues if ADSO data stored in the internal format is used in calculation views. By default, the CompositeProvider expects that the data provided by calculation views is stored in the external format. Internal and external format is different for currencies, for example, due to decimal shift for currencies with less or more than 2 decimal places, such as KWD or JPY.

This is just an example for potential issues. You should always consider the pros and cons of different approaches to data modeling with regards to performance, functionality, and support.

Regards,
Dominik

betting_jan
Explorer
0 Kudos

Hello Dominik,

thanks a lot for your comprehensive answer.

With the help of your mentioned notes, I was able to develop a solution working for my company.

However, it needs to be stated that only ODS und ODP infoprovider can be added into RSDINFOPROVDATA (without 2H prefix). Consequently I had to change my data modeling by adding an Open ODS View between Calculation View and Composite Provider.

Also I wrote an ABAP report that will be run at the end of the daily overnight loads. In that ABAP report I loop over a Open ODS -> Source-ADSO mapping table and create respective timestamps by cl_rsd_dta=>set_data_timestmp_simple.

But of course I agree with you, it's best to implement the logic directly in the Composite Provider whenever possible.

Kind regards,

Jan

Answers (2)

Answers (2)

ferdtulu
Explorer

BEx is outdated. It might help, if you modify this template "0ANALYSIS_PATTERN" via WAD, you can map an alternative Merkmal there instead of standard "Status of Data". LG

betting_jan
Explorer
0 Kudos

Hello Ferda, thanks your reply. I agree with you, changing the query template would also have been a possible approach. But as I have very little knowledge about query templates and the assignment of templates to certains queries, I rather concentrated on a generic backend approach.

appel_solar_dk
Active Participant
0 Kudos

Hi

I never trusted the status of data. The problem is that for a composite provider with more than one source (and most have) it will be the oldest status that is shown. Often that will be some budget data loaded 6 month ago or even a part provider with historical data. I.e. the field was never useful.

I find the use of HANA views a lot better design than joining directly in Composite provider, it gives so much more freedom later so stick to that. In the view you could join to relevant status tables (like RSDDSTATDTP) for latest data load.

Regards

Kristian