Monday 24 June 2024

Next time "Just Ask": Simplifying Data Exploration - Configuration using a standard ABAP CDS View

Introduction


Just Ask is a feature in SAP Analytics Cloud which is powered by Generative AI and allows users to ask questions in natural language and receive visualizations and insights based on the data available in SAP Analytics Cloud.

This feature uses machine learning and natural language processing to understand and interpret user questions and provide relevant data visualizations and insights. This allows users to easily access and interact with data without needing to have expertise in data analysis or querying languages.

Availability and Roadmap


Just Ask -initial release is available from QRC Q1 2024 in all SAP Analytics Cloud (SAC) tenants hosted on Cloud Foundry (AWS), Google Cloud Platform, and Microsoft Azure. It is not available for tenants hosted on Neo or AliCloud environments.

Currently, Just Ask works with data from acquired models and Live SAP Datasphere models and supports English language.

Just Ask vs Search to Insight - Is it just rebranding?


Some frequently asked questions that I have observed. The 'Just Ask' feature resembles the 'Search to Insight' feature, what sets them apart? Is it merely a rebranding of the same feature?

Short Answer - No, they are not same.

Detailed Answer - Even though Search to Insight and Just Ask address the same audience and process natural language queries to present data in graphs/charts the difference lies in the core NLQ technology used in Just Ask. Just Ask leverages AI models to provide more relevant results. Another big difference that I see is in the control and refinement options that Just Ask provides to the admins which is not there in Search to Insight. Details below:

Some features that set Just Ask apart from Search to Insight and are not available in the latter:

  • Central place to define models to be enabled as searchable - this reduces ambiguity (say models with same name) and also if the models are not fully ready or partially released or may not have refine data.
  • Define synonyms and rules to refine results - example if the typed question by user includes "by year" or say "current month" then admin can define a rule to restrict data to the "current year", "current month" etc. depending on the model in question and business requirements.
  • Create questions (search queries) presented as recommendations to end users
  • Based on AI models (LLM) and use embeddings

In Search to Insight by default all the models were included, no option in Search to Insight to configure/refine models/result by leveraging synonyms/rules/questions.

Enabling Just Ask


SAP Analytics Cloud tenant admin can enable the feature from the below path and can be easily accessed from the top toolbar icon

Next time "Just Ask": Simplifying Data Exploration - Configuration using a standard ABAP CDS View
Figure1

◉ System--> Administration--> Default Appearance
◉ Under Home Screen Tile - Set Conversational Analytics to ON
◉ Under Conversational Analytics section - Switch default mode from Search to Insight to Just Ask

Next time "Just Ask": Simplifying Data Exploration - Configuration using a standard ABAP CDS View
Figure 2

Consuming S/4HANA ABAP CDS View in SAP Analytics Cloud


Now to understand how to configure a model for Just Ask, I have used a standard ABAP CDS View to create a model in SAC and enable it for Just Ask.

The standard ABAP CDS View I am using is Material Stock for Key Date (C_MaterialStockByKeyDate).

Structure of SAC model on top of ABAP CDS View:

Next time "Just Ask": Simplifying Data Exploration - Configuration using a standard ABAP CDS View
Figure 3

Data in the model

Next time "Just Ask": Simplifying Data Exploration - Configuration using a standard ABAP CDS View
Figure 4

Note: Please refer SAP help on SAP Analytics Cloud on how to import ABAP CDS views from S/4HANA to SAP Analytics Cloud or many great blogs already written on this topic.

Launching Just Ask


Click the Idea /Bulb button from the toolbar (refer Figure1 above).

Customizing Just Ask:

On the Just Ask screen admins can add free text using "edit description" to maintain description about Just Ask or general information for the end users.

Example - I have maintained to share what models have been indexed or available. Another example - One can maintain models from a particular project or business area which are available for Just Ask.

Next time "Just Ask": Simplifying Data Exploration - Configuration using a standard ABAP CDS View
Figure 5

Configuring Model for Just Ask

Just Ask screen when the model is not indexed.

Next time "Just Ask": Simplifying Data Exploration - Configuration using a standard ABAP CDS View
Figure 6

There are two options available:

Option 1--> Add the model directly to the current session OR

Option 2--> Index the model using Manage Models option (top right) to make it available for the users

Note: In above screenshot - Material Stock is not indexed yet and that is why it is not in the list of indexed models.

Option 1 --> Add Model directly to Just Ask for the current session - The model added, will not be available after the end of current session.

Next time "Just Ask": Simplifying Data Exploration - Configuration using a standard ABAP CDS View
Figure 7

After adding the model

Next time "Just Ask": Simplifying Data Exploration - Configuration using a standard ABAP CDS View
Figure 8

Immediately, Just Ask will suggest the dimensions and measure available in the model. Example - Asking a question on Stock by Plant and Base Unit of Measure generates below chart.

Next time "Just Ask": Simplifying Data Exploration - Configuration using a standard ABAP CDS View
Figure 9

Option 2 - Indexing the model

Follow steps as shown to index the model

Next time "Just Ask": Simplifying Data Exploration - Configuration using a standard ABAP CDS View
Figure 10

After the model is indexed

Next time "Just Ask": Simplifying Data Exploration - Configuration using a standard ABAP CDS View
Figure 11

Defining Synonyms

After defining synonyms for the fields.

Next time "Just Ask": Simplifying Data Exploration - Configuration using a standard ABAP CDS View
Figure 12

Note - Admins should align model selection and synonym/rule definition with key users, as they are more familiar with the terms commonly used.

Synonyms for the values in the Plant field.

Next time "Just Ask": Simplifying Data Exploration - Configuration using a standard ABAP CDS View
Figure 13

Defining Rules: Simply put rules are like logic which gets executed when certain conditions are met.

Example - If the prompt has Stock Quantity then show results with Plant , Base UOM and Stock for 01.01.2024 to 11.06.2024 and for only US Plant.

Next time "Just Ask": Simplifying Data Exploration - Configuration using a standard ABAP CDS View
Figure 14

Output after testing the Rule:

Next time "Just Ask": Simplifying Data Exploration - Configuration using a standard ABAP CDS View
Figure 15

Next time "Just Ask": Simplifying Data Exploration - Configuration using a standard ABAP CDS View
Figure 16

Note: It is always recommended to test the rule and make adjustments to get desired output before publishing it.

Sample Questions:

Just Ask also provides a great feature to create "Sample Questions" for a model. This feature allows admins to create sample questions (queries), helping users explore available data and fields easily. It's a quick start to get users comfortable with the data in the model and boost adoption. This is another way to customize Just Ask for the end users.

Creating Sample Questions:

Next time "Just Ask": Simplifying Data Exploration - Configuration using a standard ABAP CDS View
Figure 17

Sample Questions created for the model:

Next time "Just Ask": Simplifying Data Exploration - Configuration using a standard ABAP CDS View
Figure 18

Result and the list of Suggestions and other Sample Questions:

Next time "Just Ask": Simplifying Data Exploration - Configuration using a standard ABAP CDS View
Figure 19

Indexed Model related setting:

An indexed model can be disabled as searchable for Just Ask. Some examples when this option can be used:

  • Model is indexed however, configuration (synonyms /rules etc.) is still work in progress OR
  • Model is no longer required OR
  • Is not fully ready yet

Next time "Just Ask": Simplifying Data Exploration - Configuration using a standard ABAP CDS View
Figure 20

Just Ask in Action

Now as the model is now indexed and configured by defining synonyms and rules, let's see Just Ask in action. The Material Stock model is now available under indexed models.

Case 1: Here Inventory and Production Facility both are synonyms and as per the rule defined results are filtered out to show only US Plant and between January 2024 to June 2024

Next time "Just Ask": Simplifying Data Exploration - Configuration using a standard ABAP CDS View
Figure 21

Case 2: For this case rule was disabled. In this case Quantity, Location, US are all Synonyms defined in the model configuration, where Quantity --> Stock Quantity, Location--> Storage Location and US --> Plant 1 US

Next time "Just Ask": Simplifying Data Exploration - Configuration using a standard ABAP CDS View
Figure 22

Case 3: Searching by synonyms defined for the data values. Here synonym "Cake" was created for Materials filtered in the query generated.

Next time "Just Ask": Simplifying Data Exploration - Configuration using a standard ABAP CDS View
Figure 23

Conclusion

In conclusion, Just Ask offers advanced NLQ technology and greater control for administrators compared to Search to Insight. These features reduce ambiguity and improve relevance while providing more customization and flexibility in presenting data to end users, making Just Ask a more powerful tool for natural language query processing.

Friday 21 June 2024

How to replicate your Fiori Inbox in Microsoft Teams

Using Looply you can replicate your Fiori Inbox in Teams, and it’s fast and easy.

Putting outstanding workitems in the face of those users who are not logged into SAP Work Zone / Fiori LaunchPad / SAPGUI can accelerate processes and lead to a host of other benefits.

We can build the solution in 4 steps.

[1] Consider the trigger points.


You have options. You might run a background job periodically to update Teams. This is easy to set up, but resource-intensive if you decide to run it every few minutes instead of, say, twice per day.

Wednesday 19 June 2024

Setting up an ABAP Environment on SAP BTP

Overview


We will set up the ABAP Environment on SAP BTP by using the Cloud Foundry runtime environment.

1. Add a Service Plan

Go to your Subaccount.
Add an new Service Plan and search for "ABAP environment".
Select all 3 options for the available plans.

Monday 17 June 2024

Develop an application utilizing the RAP Web API with SAP Build Apps framework in S4Hana OnPremise

In this blog it will be shown how SAP Restful Application Programming Model can be used and consumed in SAP Build App to create an APP.

Technology used:


1. SAP RAP
2. SAP Build Apps
3. SAP BTP
 

Development Steps:


1.  Create RAP Model objects in Managed scenario.

◉ Database Table
◉ Interface View
◉ Transactional View
◉ Consumption View
◉ Transactional Behavior Definition
◉ Consumption Behavior Definition
◉ Service Definition
◉ Service Binding

Friday 14 June 2024

Upload and modify OpenXML documents via RAP App in SAP BTP ABAP Environment

Introduction


In this blog post, I would like to share some insights for generating OpenXML documents by use of the RESTful Application Programming Model with Cloud-released development objects. With this app, you will be able to upload .docx templates and fill them with information from you CDS view (could be used for generating invoices, business documents and so on...).

Prerequisite


  • SAP BTP ABAP environment or an S/4 system to your disposal.  
  • Eclipse IDE installed on your local machine with the ABAP Development Tools.

Wednesday 12 June 2024

Introducing new type of Data Access Control "Operator and Value" for SAP Datasphere

Row-level security in SAP Datasphere is implemented via Data Access Controls (DACs) to allow a more granular assignment of authorisations and access to data on dedicated views within a Space.

In general DACs are objects which can be created in SAP Datasphere as objects in their own right which control access to data for each user within a Space. Hence, an integral part of a DAC is a list of values a user is allowed to see for a dimension (e.g. 'Sales Units') a user is allowed to see. This list can be maintained  in a local table, a view or even a table function. Each value a user is allowed to see must be represented by one record in this list of authorised values.

Monday 10 June 2024

CDS based Analytical oData for Fiori

During my developments I found that analytical oData services (or maybe to be more precise "analytical entitysets" within oData services) are needed quite often but it's not very well documented what options can be used to create them. In most of the official literature you will find oData generated on top of "analytical query" but this option is not supported in Restful ABAP programming model and makes some stuff (like adding additional entitysets in the same service) difficult.

As a first thing let's explain "analytical oData" on a very simple example and probably most common scenario: you have some kind of document item which has for example Supplier, Company Code, Fiscal Year, Amount with Currency code and Quantity with Unit. And you perhaps need to get the "sums" of amounts and quantities on different levels

Friday 7 June 2024

Extract blob data (PDF) from CAPM using python library of Document information extraction service

Introduction:


Document Information Extraction helps you to process large amounts of business documents that have content in headers and tables. You can use the extracted information, for example, to automatically process payables, invoices, or payment notes while making sure that invoices and payables match. After you upload a document file to the service, it returns the extraction results from header fields and line items. 

Use case:


1. Extract the documents (invoice detail) from an application where it is maintained as an attachment, and it is stored as a blob object in HANA database tables. 
2. Before the data is imported into a HANA database, transform the information that was retrieved from the blob object into a format that can be utilized for further analysis. 

Wednesday 5 June 2024

SAP Fiori tools May 2024 release adds closer integration with ABAP Development Tools

SAP Fiori tools May 2024 release adds closer integration with ABAP Development Tools 


With the 2405 client release of ABAP Development Tools (ADT), combined with the latest SAP Fiori tools release, users can now have a more integrated experience when working between ADT at the backend and SAP Fiori tools for front-end development. No longer does the developer need to manually switch between the tooling environments and remember which system and entity they wish to use. Instead, with one button click in ADT, users can seamlessly switch from ABAP to SAP Fiori development. 

As mentioned in our SAP Fiori tools March update, SAP Fiori tools now enables users to launch the Application Generator directly from ADT and skip having to select a data source and entity in the generator if they already have the SAP system and entity chosen in ADT. With the 2405 client release of ADT, the development work has been completed and the feature is available to our cloud customers.