Enterprise Resource Planning Blogs by Members
Gain new perspectives and knowledge about enterprise resource planning in blog posts from community members. Share your own comments and ERP insights today!
cancel
Showing results for 
Search instead for 
Did you mean: 
yogen_patil
Explorer
29,917
Version: SAP S/4 HANA 1909

Introduction:

In SAP Embedded Analytics world ABAP Core Data Service Views also known as ABAP CDS Views. ABAP CDS Views are defined on top of existing database tables. Which can be further used in UI5 application for reporting purpose. When we deal with reports, then we need some selection parameters to restrict data in to get expected output. Which works as selection screen in UI5 application. Such functionality can be achieved with help ABAP CDS view.

Based on my experience & learning; I am drafting information in below article.

With continuation to previous article, lets see how to develop a report based on CDS view having Optional Input Parameter.

CDS views can be created with parameters & without parameters. If we create view with parameters, then it will become mandatory to provide input while executing a report.

Example –


Executing CDS via RSRT Tcode –


 

Question: Is it possible to develop a report based on CDS view having facility of optional input parameters?

Answer is yes, let see how we can achieve this by doing minor changes in CDS view.

CDS View –

We will add 2 annotations in CDS view to generate prompts while executing of report based on CDS view.

@Consumption.filter.mandatory: false
@Consumption.filter.selectionType: #SINGLE


Executing CDS View via RSRT Tcode –



Here, in above image we can see input parameter is optional here.

Sample Code -
define view ZCDS_C_WITH_PARAMETER 
//with parameters P_ANLAGE : abap.char( 10 )
as select from ZCDS_WITH_PARAMETER
{
@AnalyticsDetails.query.axis: #ROWS
@Consumption.filter.mandatory:false
@Consumption.filter.selectionType: #SINGLE
anlage as Installation,
@AnalyticsDetails.query.axis: #ROWS
bis as ValidTo,
@AnalyticsDetails.query.axis: #ROWS
ab as ValidFrom
} //where anlage = $parameters.P_ANLAGE

 

If we use annotation @Consumption.filter.mandatory: True then its mandatory to provide input in prompt.


More details related consumption annotation are available here.

Conclusion –

  • We can develop a report based on CDS view with optional input parameters.


 

 
10 Comments
former_member283567
Participant
Thank you very much Yogen, for your clear explanation with code example!
This was exactly what I was looking for.
yogen_patil
Explorer
0 Kudos
Welcome 🙂
acapone01
Discoverer
These seem to be optional "filters" not optional "parameters".  Is there a way to pass these consumption.filter values down to a lower view?

 

I need to create a cds view with optional parameters that, when selected, will be passed down to other views.  Is this possible?
luislara76
Explorer
Great Post Yogen.

 

I have a CDS that is exposed as Odata Service. I have a few parameters in that CDS that I want to make optional and range type. My client system is S/4 1909, but I can't get these new annotations to work. Do you have any example for a CDS exposed as Odata Service?

I will appreciate your help.

 

Best Regards:

 

Luis Lara.
0 Kudos
Hi patil,







I have a question please, I need to develop a CDS Views Consumption that has filled Parameters and Select option and checkbox just like in the picture below, is it possible please.

This CDS view musst be  consumed in a FIORI








Best Regards.

yogen_patil
Explorer
0 Kudos
Hi,

 

You can pass default values to variables. You can refer -

https://blogs.sap.com/2021/06/03/abap-cds-views-default-values-in-parameters/

 
0 Kudos
@yogen.patil

Still it is not working after adding Consumption.filter for parameter doc_no



 

Can you please suggest any additional changes ?

 
shijo_avvale
Newcomer
@Swati, Comment out the parameter declaration and the where clause.
yogen_patil
Explorer
0 Kudos
Hi Swati,

 

You are using parameter and consumption filter both. Please use any one of them.
0 Kudos
Hi Yogesh,

this is not working for me. I am looking a CDS view where input parameters are optional. I tried using but not working. can you give more details?
@AnalyticsDetails.query.axis: #ROWS
@Consumption.filter.mandatory:false
@Consumption.filter.selectionType: #SINGLE
Labels in this area