Skip to Content

Hot Topics

  • RISE with SAP
  • Events
  • Event Presentations (on demand)
  • Webinars
  • Expert Insights
  • Member Success Stories
  • Regions
    • Americas
    • APAC
    • EMEA
  • Industries
    • Aerospace and Defense
    • Agribusiness
    • Automotive
    • Building and Construction
    • Chemicals
    • Consumer Products
    • Cross Industry
    • Education
    • Fashion and Apparel
    • Financial Services
    • Food and Beverage
    • Healthcare
    • Hospitality
    • Industrial Manufacturing
    • Media and Entertainment
    • Metals and Mining
    • Mill Products
    • Oil Gas and Energy
    • Passenger Travel and Leisure
    • Professional Services
    • Public Sector
    • Retail and eCommerce
    • Technology
    • Telecommunications
    • Transportation and Logistics
    • Utilities
    • Wholesale Distribution
  • Expert Network
  • Vendor Directory
  • Events
  • Research Reports
  • Magazine
  • Webinars
  • Podcasts
  • Log In
  • Become an Insider

All Topics

  • SAP Analytics and AI
    • All SAP Analytics and AI
    • SAP AI
    • SAP Analytics
    • SAP Analytics Cloud
    • SAP BI Tools
    • SAP BusinessObjects
    • SAP Business Intelligence
    • SAP Data Science
    • SAP Lumira
    • SAP Machine Learning
    • SAP Predictive Analytics
  • SAP Application Development and Integration
    • All SAP Application Development and Integration
    • SAP ABAP
    • SAP ABAP Development Tools
    • SAP ABAP Test Cockpit
    • SAP API Management
    • SAP BAPI
    • SAP Basis
    • SAP BRF
    • SAP Business Application Studio
    • SAP CMS
    • SAP Design Studio
    • SAP Development Tools
    • SAP DevOps
    • SAP EAI
    • SAP EDI
    • SAP Extension Suite
    • SAP Fiori
    • SAP Fiori Elements
    • SAP Integration Suite
    • SAP Low Code Application Development
    • SAP Low Code Automation
    • SAP Netweaver
    • SAP Release Management
    • SAP UI5
    • SAP Web Application Server
    • SAP Web IDE
  • SAP Business Process Management
    • All SAP Business Process Management
    • SAP BPO
    • SAP Process Analysis
    • SAP Process Automation
    • SAP Process Design
    • SAP Process Integration
    • SAP Process Intelligence
    • SAP Process Orchestration
  • SAP Center of Excellence
    • All SAP Center of Excellence
    • SAP Change Management
    • SAP CoE Framework
    • SAP CoE Leadership
    • SAP CoE Team Structure
    • SAP Learning Organization
  • SAP CIO
    • All SAP CIO
    • RISE with SAP
    • SAP Architecture
    • SAP Business Data Cloud
    • SAP Digital Transformation
    • SAP Executive Forum
    • SAP Sustainability
    • Technology Executive Forum
  • SAP Customer Experience
    • All SAP Customer Experience
    • SAP Commerce Cloud
    • SAP CRM
    • SAP CS
    • SAP Customer Data
    • SAP ecommerce
    • SAP Hybris
    • SAP Marketing Analytics
    • SAP Marketing Automation
    • SAP Marketing Cloud
    • SAP POS
    • SAP Qualtrics
    • SAP Sales Cloud
    • SAP Service Cloud
    • SAP Trade Promotion Management
    • SAP Warranty Management
  • SAP Data and Data Management
    • All SAP Data and Data Management
    • SAP BW
    • SAP BW/4HANA
    • SAP Crystal Reports
    • SAP Data Archiving
    • SAP Data Center
    • SAP Data Governance
    • SAP Data Integration
    • SAP Data Migration
    • SAP Data Quality
    • SAP Data Services
    • SAP Data Strategy
    • SAP Data Visualization
    • SAP Data Warehouse Cloud
    • SAP DMS
    • SAP Document Control
    • SAP EIM
    • SAP ETL
    • SAP ETL Tools
    • SAP HANA
    • SAP HANA Administration
    • SAP HANA Deployment Infrastructure
    • SAP HANA Studio
    • SAP Master Data
    • SAP Master Data Governance
    • SAP MDM
  • SAP Enterprise Architect
    • All SAP Enterprise Architect
    • SAP Enterprise Architecture Designer
    • SAP Enterprise Architecture Framework
    • SAP Enterprise Architecture Tools
    • SAP Platform Architecture
  • SAP Enterprise Asset Management
    • All SAP Enterprise Asset Management
    • SAP Asset Analytics
    • SAP Asset Tracking
    • SAP EAM
    • SAP Field Service
    • SAP GIS
    • SAP Maintenance Management
    • SAP Mobile Asset Management
  • SAP ERP
    • All SAP ERP
    • SAP Business Suite
    • SAP COE
    • SAP Configuration
    • SAP ECC 6.0
    • SAP ECC Migration
    • SAP Migration Strategy
    • SAP PMO
    • SAP Project Management
    • SAP S/4HANA
    • SAP S/4HANA Implementation
    • SAP T Code
  • SAP Finance
    • All SAP Finance
    • SAP Accounting
    • SAP AR AP
    • SAP Asset Accounting
    • SAP Billing Systems
    • SAP BPC
    • SAP BRIM
    • SAP Cash Management
    • SAP Central Finance
    • SAP Controlling
    • SAP COPA
    • SAP Cost Center Accounting
    • SAP Currency Risk
    • SAP e-invoicing
    • SAP FICO
    • SAP Finance Automation
    • SAP Advanced Financial Closing
    • SAP Financial Consolidation
    • SAP Financial Planning
    • SAP FX Risk
    • SAP General Ledger
    • SAP Global Tax Management
    • SAP Hyperion
    • SAP Order to Cash
    • SAP Payment Processing
    • SAP Profitability Analysis
    • SAP Rebate Management
    • SAP S/4HANA Finance
    • SAP SWIFT Compliance
    • SAP Treasury Management
    • SAP Universal Journal
  • SAP Governance Risk and Compliance
    • All SAP Governance Risk and Compliance
    • SAP Access Control
    • SAP Audit Management
    • SAP Fraud Management
    • SAP GRC
    • SAP Process Control
    • SAP Regulatory Compliance
    • SAP Risk Analysis
    • SAP Risk Management
    • SAP SOX Compliance
  • SAP Human Capital Management
    • All SAP Human Capital Management
    • SAP Applicant Tracking
    • SAP Benefits Administration
    • SAP Fieldglass
    • SAP HRIS
    • SAP Payroll
    • SAP SuccessFactors
    • SAP Talent Management
    • SAP Time and Attendance
    • SAP Workforce Planning
  • SAP Intelligent Technologies
    • All SAP Intelligent Technologies
    • SAP Blockchain
    • SAP Internet of Things
    • SAP Leonardo
    • SAP Robotics
    • SAP RPA
    • SAP Simulation
    • SAP Smart Sensing
  • SAP Platform and Technology
    • All SAP Platform and Technology
    • SAP Business Technology Platform
    • SAP Cloud
    • SAP Cloud Connector
    • SAP Cloud Integration Platform
    • SAP Cloud Migration
    • SAP Cloud Platform
    • SAP Cloud Providers
    • SAP Cloud Strategy
    • SAP Digital Signature
    • SAP Container Platform
    • SAP HANA Enterprise Cloud
    • SAP Digital Asset Management
    • SAP Smart Forms
    • SAP HEC
    • SAP Digital Integration Hub
    • SAP Hyperscalers
    • SAP Infrastructure
    • SAP Messaging
  • SAP Quality and Testing
    • All SAP Quality and Testing
    • SAP Code Inspector
    • SAP Performance Testing
    • SAP QA
    • SAP Quality Management
    • SAP Software Testing
    • SAP Testing & Automation Tools
  • SAP Security
    • All SAP Security
    • SAP CyberSecurity
    • SAP Data Security
    • SAP Disaster Recovery
    • SAP Enterprise Threat Detection
    • SAP Identity Management
    • SAP Vulnerability Analysis
  • SAP Spend Management
    • All SAP Spend Management
    • SAP Ariba Supplier Network
    • SAP Concur
    • SAP Contract Management
    • SAP Procure to Pay
    • SAP Procurement
    • SAP Spend Analysis
    • SAP SRM
  • SAP Supply Chain Management
    • All SAP Supply Chain Management
    • SAP APO
    • SAP Asset Management
    • SAP Business Network
    • SAP Digital Manufacturing Cloud
    • SAP Digital Twin
    • SAP EWM
    • SAP IBP
    • SAP Inventory Management
    • SAP Label Printing
    • SAP Logistics
    • SAP Manufacturing
    • SAP Manufacturing Automation
    • SAP MES
    • SAP MII
    • SAP MM
    • SAP MRO
    • SAP MRP
    • SAP Order Management
    • SAP Plant Maintenance
    • SAP PLM
    • SAP Production Planning
    • SAP S&OP
    • SAP SD
    • SAP SPM
    • SAP Supply Chain Planning
    • SAP Track and Trace
    • SAP Transportation Management
  • SAP System Administration
    • All SAP System Administration
    • SAP High Availability
    • SAP Administration
    • SAP Systems Administration
    • SAP Application Maintenance
    • SAP Basis Administration
    • SAP IT Automation
    • SAP Operating Systems
    • SAP Provisioning
    • SAP Service Continuity
    • SAP Solution Manager
    • SAP Workloads
Topics

Topics

Close Hot Topics
  • RISE with SAP
  • Events
  • Event Presentations (on demand)
  • Webinars
  • Expert Insights
  • Member Success Stories
All Topics
  • SAP Analytics and AI
    • All SAP Analytics and AI
    • SAP AI
    • SAP Analytics
    • SAP Analytics Cloud
    • SAP BI Tools
    • SAP BusinessObjects
    • SAP Business Intelligence
    • SAP Data Science
    • SAP Lumira
    • SAP Machine Learning
    • SAP Predictive Analytics
  • SAP Application Development and Integration
    • All SAP Application Development and Integration
    • SAP ABAP
    • SAP ABAP Development Tools
    • SAP ABAP Test Cockpit
    • SAP API Management
    • SAP BAPI
    • SAP Basis
    • SAP BRF
    • SAP Business Application Studio
    • SAP CMS
    • SAP Design Studio
    • SAP Development Tools
    • SAP DevOps
    • SAP EAI
    • SAP EDI
    • SAP Extension Suite
    • SAP Fiori
    • SAP Fiori Elements
    • SAP Integration Suite
    • SAP Low Code Application Development
    • SAP Low Code Automation
    • SAP Netweaver
    • SAP Release Management
    • SAP UI5
    • SAP Web Application Server
    • SAP Web IDE
  • SAP Business Process Management
    • All SAP Business Process Management
    • SAP BPO
    • SAP Process Analysis
    • SAP Process Automation
    • SAP Process Design
    • SAP Process Integration
    • SAP Process Intelligence
    • SAP Process Orchestration
  • SAP Center of Excellence
    • All SAP Center of Excellence
    • SAP Change Management
    • SAP CoE Framework
    • SAP CoE Leadership
    • SAP CoE Team Structure
    • SAP Learning Organization
  • SAP CIO
    • All SAP CIO
    • RISE with SAP
    • SAP Architecture
    • SAP Business Data Cloud
    • SAP Digital Transformation
    • SAP Executive Forum
    • SAP Sustainability
    • Technology Executive Forum
  • SAP Customer Experience
    • All SAP Customer Experience
    • SAP Commerce Cloud
    • SAP CRM
    • SAP CS
    • SAP Customer Data
    • SAP ecommerce
    • SAP Hybris
    • SAP Marketing Analytics
    • SAP Marketing Automation
    • SAP Marketing Cloud
    • SAP POS
    • SAP Qualtrics
    • SAP Sales Cloud
    • SAP Service Cloud
    • SAP Trade Promotion Management
    • SAP Warranty Management
  • SAP Data and Data Management
    • All SAP Data and Data Management
    • SAP BW
    • SAP BW/4HANA
    • SAP Crystal Reports
    • SAP Data Archiving
    • SAP Data Center
    • SAP Data Governance
    • SAP Data Integration
    • SAP Data Migration
    • SAP Data Quality
    • SAP Data Services
    • SAP Data Strategy
    • SAP Data Visualization
    • SAP Data Warehouse Cloud
    • SAP DMS
    • SAP Document Control
    • SAP EIM
    • SAP ETL
    • SAP ETL Tools
    • SAP HANA
    • SAP HANA Administration
    • SAP HANA Deployment Infrastructure
    • SAP HANA Studio
    • SAP Master Data
    • SAP Master Data Governance
    • SAP MDM
  • SAP Enterprise Architect
    • All SAP Enterprise Architect
    • SAP Enterprise Architecture Designer
    • SAP Enterprise Architecture Framework
    • SAP Enterprise Architecture Tools
    • SAP Platform Architecture
  • SAP Enterprise Asset Management
    • All SAP Enterprise Asset Management
    • SAP Asset Analytics
    • SAP Asset Tracking
    • SAP EAM
    • SAP Field Service
    • SAP GIS
    • SAP Maintenance Management
    • SAP Mobile Asset Management
  • SAP ERP
    • All SAP ERP
    • SAP Business Suite
    • SAP COE
    • SAP Configuration
    • SAP ECC 6.0
    • SAP ECC Migration
    • SAP Migration Strategy
    • SAP PMO
    • SAP Project Management
    • SAP S/4HANA
    • SAP S/4HANA Implementation
    • SAP T Code
  • SAP Finance
    • All SAP Finance
    • SAP Accounting
    • SAP AR AP
    • SAP Asset Accounting
    • SAP Billing Systems
    • SAP BPC
    • SAP BRIM
    • SAP Cash Management
    • SAP Central Finance
    • SAP Controlling
    • SAP COPA
    • SAP Cost Center Accounting
    • SAP Currency Risk
    • SAP e-invoicing
    • SAP FICO
    • SAP Finance Automation
    • SAP Advanced Financial Closing
    • SAP Financial Consolidation
    • SAP Financial Planning
    • SAP FX Risk
    • SAP General Ledger
    • SAP Global Tax Management
    • SAP Hyperion
    • SAP Order to Cash
    • SAP Payment Processing
    • SAP Profitability Analysis
    • SAP Rebate Management
    • SAP S/4HANA Finance
    • SAP SWIFT Compliance
    • SAP Treasury Management
    • SAP Universal Journal
  • SAP Governance Risk and Compliance
    • All SAP Governance Risk and Compliance
    • SAP Access Control
    • SAP Audit Management
    • SAP Fraud Management
    • SAP GRC
    • SAP Process Control
    • SAP Regulatory Compliance
    • SAP Risk Analysis
    • SAP Risk Management
    • SAP SOX Compliance
  • SAP Human Capital Management
    • All SAP Human Capital Management
    • SAP Applicant Tracking
    • SAP Benefits Administration
    • SAP Fieldglass
    • SAP HRIS
    • SAP Payroll
    • SAP SuccessFactors
    • SAP Talent Management
    • SAP Time and Attendance
    • SAP Workforce Planning
  • SAP Intelligent Technologies
    • All SAP Intelligent Technologies
    • SAP Blockchain
    • SAP Internet of Things
    • SAP Leonardo
    • SAP Robotics
    • SAP RPA
    • SAP Simulation
    • SAP Smart Sensing
  • SAP Platform and Technology
    • All SAP Platform and Technology
    • SAP Business Technology Platform
    • SAP Cloud
    • SAP Cloud Connector
    • SAP Cloud Integration Platform
    • SAP Cloud Migration
    • SAP Cloud Platform
    • SAP Cloud Providers
    • SAP Cloud Strategy
    • SAP Digital Signature
    • SAP Container Platform
    • SAP HANA Enterprise Cloud
    • SAP Digital Asset Management
    • SAP Smart Forms
    • SAP HEC
    • SAP Digital Integration Hub
    • SAP Hyperscalers
    • SAP Infrastructure
    • SAP Messaging
  • SAP Quality and Testing
    • All SAP Quality and Testing
    • SAP Code Inspector
    • SAP Performance Testing
    • SAP QA
    • SAP Quality Management
    • SAP Software Testing
    • SAP Testing & Automation Tools
  • SAP Security
    • All SAP Security
    • SAP CyberSecurity
    • SAP Data Security
    • SAP Disaster Recovery
    • SAP Enterprise Threat Detection
    • SAP Identity Management
    • SAP Vulnerability Analysis
  • SAP Spend Management
    • All SAP Spend Management
    • SAP Ariba Supplier Network
    • SAP Concur
    • SAP Contract Management
    • SAP Procure to Pay
    • SAP Procurement
    • SAP Spend Analysis
    • SAP SRM
  • SAP Supply Chain Management
    • All SAP Supply Chain Management
    • SAP APO
    • SAP Asset Management
    • SAP Business Network
    • SAP Digital Manufacturing Cloud
    • SAP Digital Twin
    • SAP EWM
    • SAP IBP
    • SAP Inventory Management
    • SAP Label Printing
    • SAP Logistics
    • SAP Manufacturing
    • SAP Manufacturing Automation
    • SAP MES
    • SAP MII
    • SAP MM
    • SAP MRO
    • SAP MRP
    • SAP Order Management
    • SAP Plant Maintenance
    • SAP PLM
    • SAP Production Planning
    • SAP S&OP
    • SAP SD
    • SAP SPM
    • SAP Supply Chain Planning
    • SAP Track and Trace
    • SAP Transportation Management
  • SAP System Administration
    • All SAP System Administration
    • SAP High Availability
    • SAP Administration
    • SAP Systems Administration
    • SAP Application Maintenance
    • SAP Basis Administration
    • SAP IT Automation
    • SAP Operating Systems
    • SAP Provisioning
    • SAP Service Continuity
    • SAP Solution Manager
    • SAP Workloads
Regions

Regions

Close
  • Americas
  • APAC
  • EMEA
Industries

Industries

Close
  • Cross Industry
  • Aerospace and Defense
  • Agribusiness
  • Automotive
  • Building and Construction
  • Chemicals
  • Consumer Products
  • Education
  • Fashion and Apparel
  • Financial Services
  • Food and Beverage
  • Healthcare
  • Hospitality
  • Industrial Manufacturing
  • Media and Entertainment
  • Metals and Mining
  • Mill Products
  • Oil Gas and Energy
  • Passenger Travel and Leisure
  • Professional Services
  • Public Sector
  • Retail and eCommerce
  • Technology
  • Telecommunications
  • Transportation and Logistics
  • Utilities
  • Wholesale Distribution
  • Expert Network
  • Vendor Directory
  • Events
  • Research Reports
  • Magazine
  • Webinars
  • Podcasts
  • Log In
  • Become an Insider
Use native SAP HANA modelling techniques and enhancements to provide end users with a user-friendly, real-time variable selection process across massive amounts of data.

Key Concept

Achieving consistent and relevant user prompt selections across multiple BI front-end tools has been a key area for many BI implementations. Value help and the cascading filtering of a list of values have often been a limitation and complex area in SAP BW, particularly when large volumes of master data are present. A combination of native SAP HANA and SAP BW modelling can optimize and improve the SAP BW F4 value helpacross the SAP BW environment. A key area for many SAP BW and BI implementations centers on the user’s ability to drill down through various hierarchies—for example, time, product, or location—to output specific reporting information in a timely, usable, consistent manner. Traditionally, this process can be done via a prompt selection screen before the report run time to filter the report result set, or after the report run time, via numerous in-report filtering mechanisms such as drilling down through hierarchies. Complex, flexible data structures, coupled with ever-growing data volumes, produce master data structures in the hundreds of million records, hindering users’ ability to achieve efficient filtering of prompts. Traditionally, F4 variable input help returns a long list of unwanted values to the user. For example, if a specific vendor is entered via a variable and the next variable, such as product, is selected, you would retrieve a long list of unwanted products that is not specific to the vendor selected in the previous input. In SAP BW, the introduction of RSR_VARIABLE_F4_RESTIRCT_BAdI helped to restrict the input help values from BW 7.01, but when filtering across large master data objects, this mechanism’s performance becomes suboptimal. Using the performance of SAP HANA calculation views, this now provides a user-friendly way to cascade filter SAP BW variables. Using key features of SAP HANA, SAP BW, and ABAP, I show how to create an alternative mechanism—cascading prompts—to quickly and easily drill and filter through many hierarchies consistently across various front-end tools, significantly enhancing the end-user experience. Cascading prompts provide a consistent, usable, performance-based approach to drill-down functionality across most SAP BI front-end tools. With the advantage of using external SAP HANA views, an extensible, fast, stable master data view can be used for simple to very complex filtering scenarios. One of the major advantages of cascading prompts is that the implementation can be phased into existing environments over time by creating new variables and changing relevant BEx queries over time. Users have given me some very positive feedback regarding having a consistent filtering mechanisms to obtain information quickly and correctly.  

An Overview of Cascading Prompts

  To understand what a cascading prompt is, you can take the following definition into context. A cascading prompt is a prompt to filter values in another prompt. For example, a report contains the columns Product and Product Status. You create prompts for these columns, and you specify that the Product prompt is a cascading prompt that uses Product Status as the source. In an SAP BW context, this step can be done via the variable selection screen. The main concept of cascading prompts is to deliver a filter mechanism to business users that is consistent across all front-end tools. It needs to be intuitive, specific in nature, and easy for end users to understand what needs to be selected—and how—to get to their analysis quickly and accurately. You often hear reporting users say, “Well, I have filtered by a specific vendor, but I see products that this vendor doesn’t actually sell to us showing up in the list of values to select from.” In your SAP BW/BI landscape you may also hear users mention that they filter the report output in different ways in each tool—for example, in Web Intelligence via input controls, or via relational hierarchies in SAP BusinessObjects Analysis for Microsoft Office. By using BEx Queries (shown in the following examples), users can now select a specific set of variable values in the prompt screen that interact and filter each other’s selections. With the specific filtered list of values, the cascading prompts can also be applied to very large data sets, such as products, in a quick and responsive manner with similar functionality and look and feel across all SAP BI reporting toolsets. This is also a consistent, easy-to-use filter mechanism across various BI front-end tools, all via the Prompts screen.  

Web Intelligence

  The functionality works in a similar way across multiple BI tools, via a Prompts screen and variable selection. Figure 1 shows a filtered list of values of categories, by site and department for Web Intelligence.
Figure 1 Cascading prompts via a Web Intelligence Prompts screen In the Prompts screen, I selected a site (N010) and a department (062) and then selected Category for further filtering. The category list of values presented has been filtered specific to my prior selection. Without the cascading prompt limit, I would have been shown a full list of all categories across the entire system. Prior to the implementation of cascading prompts the F4 value help would display an error message that the system had reached the maximum value to display a list. This keeps the prompts selection precise and relevant to the end user.

SAP BusinessObjects Analysis for Microsoft Office

The cascading prompt functionality is also the same in SAP BusinessObjects Analysis for Microsoft Office (Figure 2), all via a Prompts screen. In this example I have entered a site (N010), a Department (062), and a Category, Apple iPad accessories. I now select a product class for further filtering, and I am presented with a list of relevant classes rather than a full list, which would be in the 10,000s. This is all returned in a sub-second, across a product hierarchy of more than 100,000,000 records.
Figure 2 SAP Business Objects Analysis for Office variable selection

SAP Lumira Designer

  Cascading prompts also work in SAP Lumira Designer in a similar way via the Prompts screen. In Figure 3 you can see a shorter list of all the departments of a particular site, not the unfiltered list of departments across the whole company.
Figure 3 SAP Lumira Designer prompt selection How is this achieved outside standard SAP BW BEx Query and how can you implement it? Before going into the details for doing this step, I first need to add a disclaimer. It’s important to note that data sources for reports are used via BEx Queries and Business Intelligence Consumer Services (BICS) connections, offering all the features of the online analytical processing (OLAP) engine, including security, authorizations, and BEx calculation logic. This feature offers a comprehensive and consistent method for users to drill down and filter the reports’ result sets across various SAP BI front-end tools. Cascading prompts are, for all intents and purposes, an extension of the standard BAdI enhancement RSR_VARIABLE_F4_RESTRICT_BAdI. Extending this BAdI to apply the filtering logic would often be enough for basic filtering, although the BAdI logic would all be computed in the OLAP engine. With specific use cases, such as filtering products, vendors, or master data with huge data volumes, SAP HANA can be used to do the heavy lifting, filtering, and passing of the result sets back to be displayed to the end user in very quick response times. Figure 4 shows a diagram of all the major components and how the cascading filtering logic is computed from user input, through the various components of BI, SAP BW, and SAP HANA.
Figure 4 Design architecture and step-by-step implementation numbering Figure 4 includes the prompt screens displayed via the different reporting tools, as well as the BEx variables and queries. It highlights the BAdI RSR_VARIABLE_F4_RESTRICT_BAdI for each InfoObject required to be filtered and the InfoObjects that are available in SAP BW to be exported as SAP HANA views. The SAP HANA calculation view logic to join specific InfoObjects can be used to create an extensible master data view that can be used across multiple BAdI calls. Finally, the calculation view is transposed as an ABAP view in SAP BW to return a filtered list back to the BAdI call. SAP BW OLAP faces challenges with master data volumes—for example, plant material, which can easily hit 100 million records. However, SAP HANA calculation views can filter through those volumes of records, giving the user sub-second responses.  

Benefits of Cascading Prompts

  Here is a list of some major benefits of using cascading prompts as a filter mechanism in your BI architecture:
  • The ability to filter large volumes of F4 value help list values in sub-second timings
  • The ability to provide a consistent filtering mechanism across multiple BI tools
  • A reduction in the amount of data that is sent to the front end for in-report filtering, often slowing down the initial refresh of reports
  • Flexible, extensible methods to add complex business logic in filtering rather than computing in the front end
  • Consistency of reporting output, offering data that is capable of online analysis and scheduling functionality
  • A filtering mechanism that is held in one place for easier maintenance and support
  • Reduced amounts of BEx variables created by super users
  • A centralized view that can be used in other areas of reporting
So, the next question is, how can you implement a similar approach in your current SAP BW or SAP BW/4HANA system? In the next section, I provide you with step-by-step implementation details that answer this question.  

Step-by-Step Implementation

  This step-by step guide focuses on one main scenario of filtering product-level information. It is designed to be used as a rough guide to start leveraging cascading prompts. The master data setup in data warehouses is very specific to each organization; hence, the following steps can be used for guidance and amended to your specific environment. In the following guide, I have tried to use as much of the more commonly used SAP BW content areas across various systems as possible. Because the BAdI logic can be filtered based on specific variable technical names, you can implement the logic shown in this section in line with your current BEx queries.  The following guideline is broken up into four main steps to enable cascading prompts:
  1. Create an extensible master data SAP HANA calculation view, joining Material Sales and Plant Material.
  2. Import a master data SAP HANA calculation view as a consumable ABAP view in SAP BW.
  3. Create a BEx Query and customer exit variables for users to provide their input.
  4. Create an RSR_VARIABLE_F4_RESTRICT_BAdI to define the logic for cascading filtering and outputting a filtered list of values to the user.
Each of the following steps is highlighted in the diagram in Figure 4.

Step 1. Create an SAP HANA Master Data Calculation View

This implementation is specific to the SAP BW on SAP HANA and SAP BW/4HANA environments as a prerequisite, ensuring that the most recent SAP BW and ABAP perspectives have been installed. As mentioned previously, you need to create a calculation view that is extensible and can be used to filter by numerous dimensions focusing on product information. The calculation view does the heavy lifting and filtering on large master data tables. In addition, you need to create a view joining 0MAT_PLANT and 0MAT_SALES, both of which are widely used objects across numerous BI systems. The join conditions are specific to this use case, but can be amended to match your system, assuming you have BI content installed.

Create Z_PRODUCT_BAdI

Launch SAP HANA studio and select the SAP HANA modeler. In the screen that opens (Figure 5), create a new standard graphical calculation view. In this example, I call it Z_PRODUCT_BADI. Select the Data Category as DIMENSION (highlighted in red). Click the Finish button, which takes you to Figure 6.
Figure 5 Create a Z_PRODUCT_BADI SAP HANA calculation view

Create a Join

In the next few steps I create a join between two master data tables in SAP BW and select a number of attributes of the master data objects that are used as filters in the user prompts. For example, this master data object could be the site, vendor, or brand of a particular product. In Figure 6, I create a new join. In the example I have used Plant Material and Material Sales, two widely used standard objects in the SAP system that are shown in further steps. Select the join and drag and drop it onto the canvas.
Figure 6 Drag and drop a new join to the canvas

Add 0MAT-PLANT and 0MAT_SALES to the Join

Select Join_1 to go to Figure 7. Click Join_1 and select the highlighted add objects icon.
Figure 7 Add an object to the join I am creating a join between two SAP BW master data objects—0MAT_PLANT and 0MAT_SALES. 0MAT_PLANT holds attributes that are specific to the material plant and 0MAT_SALES holds attributes of products that have been sold. Joining the two tables gives a complete central and local master data view of the product. In the calculation view in SAP HANA you use the technical P master data tables of the required InfoObjects.  After you select the add objects icon, you have to search for and add the two P tables of the relevant InfoObjects as shown in Figure 8.  Press Enter after you select the first table and search again for the next table. You have to search one at a time and then press Enter, which takes you to Figure 9. Only the sales table is displayed in Figure 8. Figure 8 Search for BI0/PMAT_SALES and PMAT_PLANT Click the OK button in Figure 9. Figure 9 Click the OK button

Define the Join Condition

This outcome differs from system to system depending on how each master data object has been set up, although the following join conditions can be used as a template. After you click the OK button to add the two tables shown in Figure 10, you need to create a new join condition. This condition should be an inner join type.
Figure 10 Inner join of PMAT_SALES and PMAT_PLANT After you select the PMAT_SALES join, the properties of the join are displayed on the screen shown in Figure 11. Ensure the join type is inner join. Figure 11 Join type To reduce the number of joins and improve the performance of the calculation view improvements, I have enhanced the SAP standard PMAT_PLANT InfoObject to include the sales organization and distribution channel as attributes. This is a consistent way to join PMAT_SALES and PMAT_PLANT.

Use the following join conditions between PMAT_SALES and PMAT_PLANT (Figure 12).

Figure 12 Complete the join conditions

0MAT_PLANT object in BW has been enhanced to include SALESORG and DISTR_CHNL as attributes, as follows:

  • OBJVERS and OBJVERS
  • SALESORG and SALESORG
  • MAT_SALES and MAT_PLANT
  • DISTR_CHNL and DISTR_CHNL
To create the joins above, drag and drop the required dimensions from MAT_SALES to MAT_PLANT in the join Details screen, as shown in Figure 13.
Figure 13
Join dimensions by dragging and dropping

Create a Join

After you’ve selected the join conditions in Figure 12 and joined the dimensions, the join should look like the one shown in Figure 13. If you require further join conditions specific to your use case, this is where you can extend them.

Output Columns to Be Used for User Filtering

After you create the join you can select any objects by which you want to filter the master data view—for example, the number of products sold in a specific site or by a specific vendor. To do this step right-click the column and select Propagate to Semantics as shown in Figure 14. Your screen will then include the final output of dimensions and measures of the calculation view.
Figure 14
14 Select the Propagate to Semantics option

Add the MAT_SALES Join to Semantics

Adding the dimensions from the previous step adds the required dimensions to use for filtering in the following steps. Your calculation view should now look similar to Figure 15. As mentioned above, all the included dimensions can now be used to filter your master data view in the following steps. You can add further dimensions as you require them.
Figure 15 Final calculation view model giving a view of dimensions that can be filtered in further steps

Save and Activate the View

To complete this step, select the Semantics button and save and activate your view by selecting the save and activate icon in Figure 16.

Figure 16 Save and activate the view

Test Run View

Right-click the Semantics button and select the data preview icon highlighted in yellow in Figure 16. In Figure 17, you can see all the departments that have products assigned to company brand 01. You can use this data to simulate how the prompt filters work in subsequent steps. Figure 17 Preview the data

You now need a way to consume the calculation view in SAP BW when a BEx Query is accessed and filters are passed down to SAP HANA. For this step, you need to create an ABAP view based on the SAP HANA calculation view. After you create this view, you can then incorporate it into various elements in SAP BW, specifically via a BAdI call.

Step 2. Import a Master Data SAP HANA Calculation View as a Consumable ABAP View in SAP BW

Now that the SAP HANA calculation view is created to join both Plant Material and Material Sales, you need to have a method for integrating it within any logic you create in SAP BW and BEx. This step is done by consuming the calculation view as an ABAP view, which will be completed in the next steps. The ABAP view can then be used in any BAdI or customer exit code you write. In the case of cascading prompts you make calls to send filter criteria to the calculation view and pass the result set back to the SAP BW ABAP engine, using the extremely fast filtering of the SAP HANA level.

Open an ABAP Perspective and Log on to a Connected SAP BW System

First, make sure that the ABAP perspective is installed. In SAP HANA studio, you need to open the ABAP perspective. To open the ABAP perspective, follow menu path Window > Open Perspective > Other… (Figure 18). This path takes you to Figure 19. Figure 18 Open the perspective and select Other.. Click the ABAP option and click the OK button (not shown). Figure 19 Select the ABAP perspective An ABAP button now appears in your ribbon. Click this button (Figure 20) and you see the screen shown in Figure 21. Figure 20 ABAP perspective in the ribbon Log in to your SAP BW system and select your default package, in this case, ZBW. Then select Dictionary > Views > New Dictionary View.   Figure 21 Select the New Dictionary View option to consume the SAP HANA calculation view built in the previous steps

Create a New ABAP View

After you select the New Dictionary View option in Figure 21, the system opens the screen in Figure 22 in which you can create a new view. In this case, the view is named Z_PRODUCT_F4.

Figure 22 Z_PRODUCT_F4 ABAP view to connect to an external SAP HANA calculation view Figure 23), in this case Z_PRODUCT_BADI - ZH. Figure 23 Browse for SAP HANA view Z_PRODUCT_BADI

Confirm the Attributes

After you click the Next button in Figure 23 (not shown), the system displays the details for the dimensions that are available in the semantics of the calculation view (Figure 24).

Figure 24 ABAP view attributes Click the check icon and then the activate icon (Figure 25).
Figure 25 Check and activate the view

Confirm the View in the SAP BW GUI

Now, when you log on to the SAP BW instance, the view is available to be consumed in SAP BW via the SAP GUI. In Figure 26 you can see all the ABAP Dictionary views that can be consumed in your connected SAP BW instance. The view created in the previous steps is highlighted in red. Figure 26 ABAP Dictionary views available to be consumed in SAP BW Figure 27), select the view you created earlier, in this case Z_PRODUCT_F4. Click the green checkmark icon highlighted in red, which takes you to Figure 28. Figure 27 Z_PRODUCT_F4 Data Browser Click the execute icon in Figure 28. Figure 28 Filter the input and select the view

Filter the Master Data View

After you click the execute icon in Figure 28, the system opens a screen like the one in Figure 29 in which you can now run some filters on the view to emulate the list of values that will be returned as a result of your prompts created in the next steps. The example in Figure 28 could be a use case for a user to select a specific brand and site. After the user selects a brand and site, the system returns a filtered list of products specific to the selection. For this example, I want to view all the DELONGHI brand products sold by one store. This view provides a filtered list of products that can then be consumed in the cascading product prompt for a user to filter further. In Figure 28 type in your specific filters and click the execute icon. This action displays a list of filtered values shown in Figure 29. Figure 29 Filtered output based on input criteria As you can see in Figure 29, the calculation view is up and running—and it can now be used to filter and return specific data sets. The next step is to link the variables that the user enters in the Prompts screen (any columns selected in the calculation view in Figure 24 can be used). This step is done using BEx Query variables. To complete this step, you need to make prompts available to the user to enter so that the system can capture the selection and cascading filter logic. All reporting is done via BEx Queries using BICS. The next section outlines a typical scenario for creating a BEx Query and new variables.  

Step 3. Create a BEx Query and Customer Exit Variables for Users to Provide Their Input

  As the main semantic layer between the front-end reporting tools and the BAdI logic held in SAP BW, the BEx Query is an essential part of the model. Variables and InfoObjects are used as the main call to the BAdI to capture a user’s response and send the specific filter criteria to the SAP HANA view to send back the filtered the list of values. You need to create a simple BEx Query to be used as an output for other reporting tools, but also predominately to show the construct of how the BEx Query communicates with the cascading prompt functionality. The example used here is specific to the implementation and is used to highlight how the functionality works to filter product master data. You can incorporate the functionality into your environment by following these steps and making amendments to specific InfoObjects used in your environment:
  • In this example, you create two new variables and include a number of existing SAP system content variables
  • Select the time variant (for example, Mtd/Ytd)
  • Select the company brand
  • Select the site
  • Select the preferred vendor (e.g., the vendor held on the master data of the product)
  • Select the product
  • Create a new BEx Query on a base InfoProvider that contains the objects on which you need to filter

Create a BEx Query

In the example shown in Figure 30, I called the Vendor Product Selection Query (Y_ZVHCORP01_Q00003_VENDOR). This query is based on the specific composite provider of the environment. You can create the BEx Query on any relevant InfoProvider in your environment, ensuring all InfoObjects you would like to filter by are available.
Figure 30 Create a new BEx Query

Create New Variables

It’s up to you to choose which InfoObjects should be included in the cascading prompt. In this example, I use the following:
  • Time
  • Company brand
  • Site
  • Vendor (preferred/master data)
  • Product
  • Two variables that need to be created from the InfoObjects Vendor and Product technically named 0MAT_PLANT_0VENDOR and ZPRODUCT
Ensure the settings for creating the two new variables (from the 0MAT_PLANT_0VENDOR and ZPRODUCT InfoObjects) are shown in Figures 31 and 32. In Figure 31 ensure the general settings of the prompt are selected for Processing by Manual Input/Default Value to ensure users can enter values into the prompt. The trigger mechanism to call the ABAP view is handled by the BAdI that is created later.
Figure 31 Ensure processing via manual input is selected Next click the Details tab, which takes you to Figure 32. Figure 32 Ensure the variable is ready for input When you are creating the variables that you require for cascading, ensure that they are ready for input by checking the Variable Is Ready for Input check box. By default, this is left blank so be sure that you select it when creating your variables. Now save the variable. Then, in the BEx Query filter, ensure that the two new variables are included. In Figure 33 you can see the variables selected in the example scenario. Figure 33 BEx Query filter results – Characteristic relationship displaying variables After you save the variables and the query, click the Filter button (boxed in red in Figure 33). The result set (shown in Figure 34) includes several measures that are relevant for the analysis. For example, sales, quantity, comparisons, and some InfoObjects are set as free characteristics, which the user can select after the report has been refreshed to enrich the report analysis display. Figure 34 BEx Query rows/columns

Save the BEx Query

The final steps for creating the new query are to check and save your query. To do this go to the Query tab and click the Save option (Figure 35). The BEx Query is complete. Figure 35 Save the query As shown in Figure 36, when you run the query, by default, you can see that when a specific product is selected, an unfiltered list of all the products company-wide is selected that shows more than the maximum result set that is allowed. I added prompt selections, then selected Product by clicking the icon next to it. Figure 36 Select the product I have added prompts for one site and one vendor, which should have a small number of products from which to select in Figure 37. Instead, Figure 37 shows the whole list of products, many of which are not relevant to my analysis. Figure 37 The unfiltered product list of help values shows all products for the entire data set In the next section, I create the ABAP logic to capture the user’s input to each variable and return a specific filter list of values.

Step 4. Create an RSR_VARIABLE_F4_RESTRICT_BAdI to Define the Logic for Cascading Filtering

At this point, the base underlying SAP HANA view is set up and returning results to filter on specific inputs. Also, the BEx Query has been created as the main communication to capture the user’s filter input requirements. The last step is to develop a codebase to link the two with the logic to filter each variable in the prompt screen based on the user’s input, and return a filtered list of values back to the prompt screen. For example, you want to filter a product’s list of values based only on the products sold at a specific site rather than an unfiltered list of all products. In the example, the focus is on the product list of values being filtered by several inputs. This is a significant use case that uses the SAP HANA optimized view to quickly return a filtered list of products based on a very large result set. For smaller master data objects, the calculation view can be computed on the InfoObjects themselves rather than by using the new SAP HANA view.

Ensure RSR_VARIABLE_F4_RESTRICT_BAdI Is Set Up

To set up the construct of the BAdI RSR_VARIABLE_F4_RESTRICT_BAdI, refer to the documentation here: In this case, name the enhancement implementation ZVAR_F4_RESTRICT. This holds multiple classes to filter specific InfoObjects.

For this scenario on high-volume filtering, I created a single class for each InfoObject (e.g., product, brand, and vendor) although for small volumes of InfoObject data, this could be used in one implementation class based on the InfoObject filters, rather than using the SAP HANA view.

Once the enhancement implementation ZVAR_F4_RESTRICT has been created, create a new class implementation and call it ZVAR_F4_RESTRICT_PRODUCT by clicking the Change button (Figure 38) or pressing Enter.

Figure 38 Create a new BAdI implementation

That takes you to Figure 39. Click the Enh. Implementation Elements tab and then click the create icon.

Figure 39 Select the new implementation

This action displays the screen in Figure 40 in which you can enter the technical name and text of your implementation class. I have called the class ZCL_F4_RESTRICT_PRODUCT as part of the BAdI implementation created previously (refer back to the instructions before Figure 38).

Figure 40 Create a new BAdI implementation and implementation class

Once created, the implementation has two areas that you need to define: the implementing class and the filter value. The filter value essentially triggers the BAdI to be called. The implementing class is the restriction logic based on the flat, node, or hierarchy values.

Click the continue icon (the green checkmark) in Figure 40 to create your implementation class. Figure 41 appears.

Figure 41 Filter value based on an InfoObject

Expand the class you just created. In the Flt. Val. (filter value) tab highlighted in Figure 41, select the InfoObject on which the variable is based. In this case, the BAdI is triggered once you select the variable created in the previous steps. In this case, I used the ZPRODUCT InfoObject (Figure 41) highlighted in orange.

To enter the InfoObject select the Flt. Val. tab highlighted in the red box in Figure 41 and type in the name of the InfoObject. Press Enter.

This is a custom product InfoObject that is specific to the implementation, but it can be extended to any InfoObject required. In a standard case, for example, this could be InfoObject 0MAT_PLANT or ZPRODUCT in our specific example. Figure 42 shows the InfoObject and variable in the BEx query, created in previous steps.

ZPRODUCT highlighted in blue is the InfoObject, which is a copy of 0MAT_PLANT.  When a user runs a report based on the BEx query and selects the product prompt, this will now trigger the BAdI.

Figure 42 displays that ZPRODUCT is part of the BEx query created earlier, which now triggers the code to be created in the following steps below based on Figure 41.

Figure 42 Trigger InfoObject ZPRODUCT in the BEx Query

Implementation Class

In this example, I use a restriction based on the flat structure, although this could also be extended out to hierarchy and node restrictions. The following logic is based on the specific InfoObjects in your system and can be extended or amended to fit specific requirements. When creating the new implementation class, implement the following pseudo logic:
  1. Obtain the list of selected InfoObject(s) values in the Prompts screen.
  2. Check the criteria and only process the F4 value help filtering logic if certain criteria are matched—for example, only display active sites based on an active/inactive flag
  3. Filter the SAP HANA master data view based on the selection of filled-in prompts
  4. Return the final list of values to the selected prompts
You should still be on the same screen shown in Figure 41., which is shown in Figure 43 to highlight the class. Double-click the Implementing Class link highlighted in red and then double-click the GET_RESTRICTION_FLAT method as shown in Figure 44. Figure 43 Double-click Implementing Class Figure 44 Double-click the flat restriction method Double-clicking the flat restriction method displays Figure 45. This displays a blank method that you can now customize. Because I selected the RESTRICTION_FLAT method, the system filters on a flat structure of master data. If node or hierarchy characteristics are required, then you can use the _NODE or _HIER methods provided by SAP. The code in Figures 46 to 50 has been optimized for the specific environment. However, anyone with ABAP experience can amend this code for specific use cases and specific systems. You can use this code as a base template and modify it as needed for the InfoObjects and variables specific to your environment. Figure 45 A blank method, to be modified and the below code to be amended and added based on specific environment objects You place the code in Figure 46 into Figure 45. The code in Figure 46 includes all the data declarations to be used in method. This includes declaring a table of each InfoObject to hold the user’s entered F4 Help values. METHOD if_rsr_variable_f4_restrict~get_restriction_flat. DATA: lt_comp_sel   TYPE TABLE OF rsrange, lt_stor_sel   TYPE TABLE OF rsrange, lt_dept_sel   TYPE TABLE OF rsrange, lt_vend_sel   TYPE TABLE OF rsrange, lt_vpre_sel   TYPE TABLE OF rsrange, lt_site_sel   TYPE TABLE OF rsrange, ls_selection  TYPE rsrange, lt_product    TYPE TABLE OF /bic/oizvenart, lv_product    TYPE /bic/oizvenart, l_s_range     LIKE LINE OF c_t_range, prev_flag     TYPE CHAR1, avend_flag    TYPE CHAR1, lv_prefix     TYPE string VALUE 'SAPBWMESSAGE', lv_suffix     TYPE n LENGTH 3, loc_var_range LIKE LINE OF i_t_var_range.
Figure 46 Data declarations
For each variable, you want to read and use the user’s selection to filter the result needed to declare a table of type ranges and to capture the user’s input from the variables. A copy of the product InfoObject is used to populate the filtered list that, in turn, is used to populate the F4 Help screen. There are some specific flag objects to be used?for example, product active/inactive?that determine what SAP HANA view should be used to filter based on the actual (transactional) or preferred (master data) vendor. Any variable required to be used as a filter input should be declared here. Several loops are required to capture all the entries a user has selected for each variable. The code shown in Figure 47 loops through each of those variables and captures the input. In this example, you can see all objects captured from the prompts, including Store, Site, Department, Vendor (held on transaction), and Preferred Vendor (held on master data). The code directs the system to read the user’s input from the prompt screen for each InfoObject. The selection is appended and stored to be used later as filter selections for the view. LOOP AT i_t_var_range INTO loc_var_range WHERE iobjnm CP '*ZPHSTORE'. ls_selection-sign   = loc_var_range-sign. ls_selection-option = loc_var_range-opt. ls_selection-low    = loc_var_range-low. ls_selection-high   = loc_var_range-high. APPEND ls_selection TO lt_stor_sel. ENDLOOP. LOOP AT i_t_var_range INTO loc_var_range WHERE iobjnm = '0PLANT'. ls_selection-sign   = loc_var_range-sign. ls_selection-option = loc_var_range-opt. ls_selection-low    = loc_var_range-low. ls_selection-high   = loc_var_range-high. APPEND ls_selection TO lt_site_sel. ENDLOOP. LOOP AT i_t_var_range INTO loc_var_range WHERE iobjnm = '0VENDOR' OR iobjnm = 'ZBATCH__0VENDOR'. ls_selection-sign   = loc_var_range-sign. ls_selection-option = loc_var_range-opt. ls_selection-low    = loc_var_range-low. ls_selection-high   = loc_var_range-high. prev_flag           = ' '. avend_flag          = 'X'. APPEND ls_selection TO lt_vend_sel. ENDLOOP. LOOP AT i_t_var_range INTO loc_var_range WHERE iobjnm = '0MAT_PLANT__0VENDOR'. ls_selection-sign   = loc_var_range-sign. ls_selection-option = loc_var_range-opt. ls_selection-low    = loc_var_range-low. ls_selection-high   = loc_var_range-high. prev_flag           = 'X'. avend_flag          = ' '. APPEND ls_selection TO lt_vpre_sel. ENDLOOP. LOOP AT i_t_var_range INTO loc_var_range WHERE iobjnm CP '*ZCOMPBRND' OR iobjnm EQ 'ZCURCOBRD'. ls_selection-sign   = loc_var_range-sign. ls_selection-option = loc_var_range-opt. ls_selection-low    = loc_var_range-low. ls_selection-high   = loc_var_range-high. APPEND ls_selection TO lt_comp_sel. ENDLOOP. LOOP AT i_t_var_range INTO loc_var_range WHERE ( iobjnm CP '*ZDEPT' OR iobjnm EQ 'ZCURDEPT' OR iobjnm CP '*ZDERDEPT' ) AND vnam <> 'ZCUOM_DEPT2'. ls_selection-sign   = loc_var_range-sign. ls_selection-option = loc_var_range-opt. ls_selection-low    = loc_var_range-low. ls_selection-high   = loc_var_range-high. APPEND ls_selection TO lt_dept_sel. ENDLOOP. ENDIF.
Figure 47 Read users' input, append it, and store it
You can further add more code to the logic to include or exclude specific variables names, if needed. As you can see, in this example I excluded specific variables for specific use cases, for example, 'ZCUOM_DEPT2'. This makes the code implementation flexible to start developing in existing environments where existing variables are already in use. All the user’s inputs in the variables screen have now been captured. For a product list, even filtering, for example, by department can result in hundreds of thousands of products. Figure 48 shows the logic for filtering by product site, vendor department, or a combination of all the variables that are needed to be populated to return the list of values. * Only process when the selection is relatively small. IF lt_vend_sel IS NOT INITIAL OR lt_vpre_sel IS NOT INITIAL OR ( lt_dept_sel   IS NOT INITIAL AND lt_comp_sel IS NOT INITIAL AND lt_site_sel IS NOT INITIAL ).
Figure 48 Filter only if certain criteria are met
Specific to the use case in this article, the code in Figure 49 is for when an actual vendor flag is used to determine which SAP HANA view to use to filter and populate the list of values between the vendor held on the transaction (actual) and a vendor held on the master data. That comes from the view you created earlier. An avend flag is a true/false flag to indicate if a vendor is the actual vendor on the transaction or a preferred vendor held on the master data. IF avend_flag = 'X'. SELECT DISTINCT ZCOMPBRND ZPOSINS ZDEPT ZPRODUCT FROM ZADIM02_HV4B INTO TABLE lt_product WHERE ZCOMPBRND    IN lt_comp_sel AND ZPHSTORE     IN lt_stor_sel AND PLANT        IN lt_site_sel AND ZDEPT        IN lt_dept_sel AND ZCATEGORY    IN lt_cate_sel AND ZGROUP       IN lt_grou_sel AND ZCLASS       IN lt_clas_sel AND ZBRAND       IN lt_brnd_sel AND VENDOR       IN lt_vend_sel AND ZPREF_VENDOR IN lt_vpre_sel.
Figure 49 Use the avend flag to decide which view to use to filter

Call to the SAP HANA Calculation View to Filter the F4 Help List of Values

When the actual vendor selected is blank, then you can use the SAP HANA view you created in the first steps. Filter the view based on the inputs captured by the user variables at the start of the class (Figure 50). This method sends filters to the SAP HANA calculation view—Z_PRODUCT_F4 created in steps 1 and 2. The filters are based on the user input captured in Figure 49. The result is then processed to populate the F4 Help values of the product variable. The list of filtered products is then captured in lt_product for further processing to output the F4 list of products. ELSEIF avend_flag = ' '. SELECT DISTINCT ZPRODUCT FROM Z_PRODUCT_F4 INTO TABLE lt_product WHERE ZCOMPBRND  IN lt_comp_sel AND ZPHSTORE   IN lt_stor_sel AND PLANT          IN lt_site_sel AND ZDEPT          IN lt_dept_sel AND ZCATEGORY      IN lt_cate_sel AND ZGROUP         IN lt_grou_sel AND ZCLASS         IN lt_clas_sel AND ZBRAND         IN lt_brnd_sel AND VENDOR         IN lt_vpre_sel. ENDIF. IF lt_product IS NOT INITIAL. *Start inserting F4 list. l_s_range-iobjnm = i_iobjnm. l_s_range-sign   = 'I'. l_s_range-option = 'EQ'. CLEAR l_s_range-high. LOOP AT lt_product INTO lv_product. l_s_range-low = lv_product. APPEND l_s_range TO c_t_range. ENDLOOP. ELSE. l_s_range-iobjnm = i_iobjnm. l_s_range-sign   = 'I'. l_s_range-option = 'EQ'. lv_suffix  = 7. CONCATENATE lv_prefix lv_suffix INTO l_s_range-low. APPEND l_s_range TO c_t_range. ENDIF. ELSE. * Insert dummy product for message display. l_s_range-iobjnm = i_iobjnm. l_s_range-sign   = 'I'. l_s_range-option = 'EQ'. lv_suffix  = 1. WHILE lv_suffix < 7. CONCATENATE lv_prefix lv_suffix INTO l_s_range-low. APPEND l_s_range TO c_t_range. lv_suffix = lv_suffix + 1. ENDWHILE. ENDIF. ENDMETHOD.
Figure 50 Method to send filters to the SAP HANA calculation view
Now when I run Query Y_ZVHCORP01_Q00003_VENDOR, instead of prompting me with all products provided as F4 help values, the system instantly provides me with a specific list of products sold by vendor 604531 (Apple) to the site A022 (Figure 51). This makes the prompt selection much more relevant and user friendly. The view is filtered by Company Brand 01, Store 01020, Site A022, and Vendor 604531. When you select the product variable, you can now see a filtered list of specific products that have been sold from the selection made in the prompt screen. Previously, in Figure 37, this would display every product and exceed the maximum number allowed for F4 Help values. Figure 51 Final Prompts selection screen

Conclusions

The example provided is just for one specific variable, but this can easily be extended to any variable across your environment. The example provides the key foundation on which you can build. More complexity, business scenarios, and usability enhancements can be added into the logic. For example, you can include or exclude values based on the active or inactive status of master data and the most recently changed dates, or if stock is available for a product. The master data calculation view is also extensible. You can report on it, for example, by showing local pricing at the site level versus centrally held prices.

Matt Vasey

Matt Vasey is an SAP BI Lead Consultant for Enterprise Wide [https://www.enterprisewide.com/] with experience across multiple industry areas. He is a BI architect and implementation specialist, involved in all parts of the project life cycle. Matt has an in-depth understanding of SAP BW, SAP HANA, and SAP BI, particularly in Design Studio and Web Intelligence. Matt has played a critical role in a number of global SAP BW on SAP HANA implementation projects, maximizing the optimal integration between SAP BW, SAP HANA, and SAP BI.

You may contact the author at Mattmvasey@gmail.com.
Cascading Prompts: The Next Generation of F4 Value Help Filtering
Back to Content

Share this Article


Key Topics Discussed

  • SAP BW
  • SAP BW
  • Articles
  • Premium

Cascading Prompts: The Next Generation of F4 Value Help Filtering

Reading time: 28 mins

Use native SAP HANA modelling techniques and enhancements to provide end users with a user-friendly, real-time variable selection process across massive amounts of data. Key Concept Achieving consistent and relevant user prompt selections across multiple BI front-end tools has been a key area for many BI implementations. Value help and the cascading filtering of a…

Membership Required

You must be a member to access this content.

View Membership Levels

Explore related questions

what is this?
Already a member? Log in here

More Resources

See All Related Content
    • SAP BW
    • Premium

    Cascading Prompts: The Next Generation of F4 Value Help Filtering

    Reading time: 28 mins

    • SAP BW
    • Premium

    Use Cases for Embedded SAP BW in Your SAP Transactional System

    Reading time: 11 mins

  • Unlocking SAP Data for Microsoft Fabric: Bridging the Gap for Finance Teams
    • SAP S/4HANA

    Unlocking SAP Data for Microsoft Fabric: Bridging the Gap for Data Teams

    Reading time: 3 mins

    • SAP BW
    • Premium

    An Overview of Simplified Modeling with SAP BW on SAP HANA (Part 1)

    Reading time: 9 mins

Featured Insiders

  • Ingo Hilgefort

    Senior Director at SAP

  • Heiko Hecht

    COO, IBIS America Inc.

  • Eran Kriegshauser

    SAP DevOps Architect & Client Director, Basis Technologies

Become a Member

Unlimited access to thousands of resources for SAP-specific expertise that can only be found here.

Sign Up

Become a Partner

Access exclusive SAP insights, expert marketing strategies, and high-value services including research reports, webinars, and buyers' guides, all designed to boost your campaign ROI by up to 50% within the SAP ecosystem.

Sign Up

Upcoming Events

  1. Mastering SAP Connect – Gold Coast 2025

     

    June 05 - 06, 2025

     

    Gold Coast, QLD

     

    Australia

     
    Learn More
    View Event

Sign Up for the SAPInsider Weekly

Always have access to the latest insights with articles, Q&As, whitepapers, webinars, and podcasts. Gain the inside edge. The SAPinsider Weekly helps you stay SAP savvy. Access exclusive bonus materials, discounts, and more.

Get the Newsletter
SAPinsider

SAPinsider is the largest and fastest-growing SAP membership group worldwide, with more than 1.2 million members across 205 countries. It provides SAP professionals with invaluable information, strategic guidance, and road-tested advice, through events, magazine articles, blogs, podcasts, interactive Q&As, benchmark reports and webinars. SAPinsider is committed to delivering the latest and most useful content to help SAP users maximize their investment and leading the global discussion on optimizing technology.

Company

  • About SAPinsider
  • Experts
  • Careers
  • SAPinsider Leadership Team
  • Contact Us

Contribute

  • Meet our Experts
  • Join the Expert Network
  • SAPinsider Survey Hub

Work With Us

  • Partner with us
  • Research Sponsorship
  • 2025 Research Agenda
  • Event Sponsorship

Sign Up for the SAPInsider Weekly

Always have access to the latest insights with articles, Q&As, whitepapers, webinars, podcasts, exclusive bonus materials, discounts and more.

Get the Newsletter
Wellesley Information Services | PO Box 982 Hampstead, NH 03841 |

Copyright © 2025 Wellesley Information Services. All rights reserved.

Privacy Policy | Terms of Use

Your request has been successfully sent

This website uses cookies. If you continue to use the site you consent to our use of cookies in accordance with our Cookie Policy.ACCEPT Read More

Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
SAVE & ACCEPT