Saturday, 14 November 2026

ABAP Cloud certification hands-on: build the smallest RAP business object for C_ABAPD, step by step

Updated: 14 November 2026. Exam facts checked on SAP Learning that day.

Hero image for a C_ABAPD walkthrough: a five-layer RAP stack (database table, CDS view entity, behaviour definition with strict ( 2 ), behaviour pool, service definition and binding) beside the exam facts C_ABAPD, system-based, 3 hours and 67% to pass.

The smallest ABAP RESTful Application Programming Model (RAP) business object worth practising for C_ABAPD, SAP's ABAP Cloud certification, has five layers: a database table, a root Core Data Services (CDS) view entity, a managed behaviour definition in strict ( 2 ), a behaviour pool, and a service definition with an Open Data Protocol (OData) V4 binding. Build it from an empty package, in that order, until you can do it without notes.

C_ABAPD is SAP Certified - Backend Developer - ABAP Cloud (Beta Version). It is a system-based assessment: you build objects in a live system instead of answering about them. This post builds one tiny business object for course bookings, layer by layer, and shows what each step proves and which activation errors to expect along the way.

Why practise a RAP business object for the ABAP Cloud certification at all?

A RAP business object is worth practising because SAP's C_ABAPD description names RAP, and one minimal stack exercises all three exam topics at once. You touch the ABAP Dictionary, CDS, object-oriented code and the ABAP Cloud rules in about 70 lines of code.

The C_ABAPD certification page, checked on 14 November 2026, shows these figures:

Item What SAP Learning shows
Format 1 activity (System Based Assessment)
Duration 3 hours
Pass score 67%
Using ABAP and Building Data Models 61%
Designing Effective Object-Oriented Code 21-30%
Applying Basic Techniques and Concepts 11-20%
Tooling Your own Eclipse with ABAP Development Tools (ADT), highest available release

SAP does not publish the exam tasks, and this post does not guess at them. Jennifer Hauck, a Product and Topic Expert at SAP, wrote in her March 2026 SAP Community post that the tasks are based on courses S4D400, S4D401 and S4D430, in an ABAP environment on SAP Business Technology Platform (SAP BTP). She also warned: "The certification system will resemble the training and practice systems available in learning environments - but it won’t be identical."

That is the case for a small, self-written business object. You can't memorise the exam system, but you can make the build order automatic. The Acquiring Core ABAP Skills journey lists S4D400 at 17 hours or more, S4D401 at 23 hours or more and S4D430 at 20 hours or more, each with its own practice system. Hauck adds that those practice systems use the same underlying data model as the exam, with identical table and field names, so they are the right place to rebuild the worked example below.

What does the smallest useful RAP business object contain?

The smallest useful RAP business object contains six objects in five layers. Each layer proves one skill that the exam topics name, and each one depends on the layer below it.

The five layers of the minimal RAP business object, from database table at the bottom to service definition and binding at the top, with what each layer proves and the object name used in the worked example.
Layer Object in this example What it proves Exam topic it feeds most
1. Persistence Table zcourse_book You can model keys and admin fields in the ABAP Dictionary Using ABAP and Building Data Models
2. Data model Root view entity ZR_CourseBooking You can write a CDS view entity and alias fields cleanly Using ABAP and Building Data Models
3. Behaviour Behaviour definition (BDEF), managed, strict ( 2 ) You know what RAP generates for you and what you must declare Using ABAP and Building Data Models
4. Code Behaviour pool zbp_r_coursebooking You can implement a handler method in a local class Designing Effective Object-Oriented Code
5. Service Service definition ZUI_CourseBooking plus an OData V4 binding You can expose and test the object Applying Basic Techniques and Concepts

The topic mapping in the last column is this blog's reading of SAP's topic names, not an official SAP mapping. If you share a trial system, add your initials to every Z name.

Step 1: how should the table look so that managed numbering works?

For managed numbering to work, the table needs a client field and a 16-byte raw UUID key. SAP's field numbering documentation says fields with managed numbering must be primary key fields of data type RAW with length 16, which is a UUID (universally unique identifier).

@EndUserText.label : 'Course booking'
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
@AbapCatalog.dataMaintenance : #RESTRICTED
define table zcourse_book {
  key client            : abap.clnt not null;
  key booking_uuid      : sysuuid_x16 not null;
  course_id             : abap.char(10);
  participant           : abap.char(40);
  status                : abap.char(1);
  local_last_changed_at : abp_locinst_lastchange_tstmpl;
}

What this step proves: you can pick released data elements (sysuuid_x16, abp_locinst_lastchange_tstmpl) instead of inventing types. The last field later becomes the entity tag (ETag) for optimistic concurrency control.

Errors to expect: a key typed as abap.char(32) activates fine here. It only fails two layers later, when the behaviour definition asks for managed numbering. That delay is why checking types early saves time.

Step 2: what makes a CDS view entity a valid RAP root?

A CDS view entity becomes a valid RAP root only with the keyword root. A behaviour definition can only be created on a root entity, so define root view entity is not optional, even for a single-entity object.

@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Course booking'
define root view entity ZR_CourseBooking
  as select from zcourse_book
{
  key booking_uuid          as BookingUUID,
      course_id             as CourseID,
      participant           as Participant,
      status                as Status,
      @Semantics.systemDateTime.localInstanceLastChangedAt: true
      local_last_changed_at as LocalLastChangedAt
}

What this step proves: you can alias table fields into readable CamelCase names. Those aliases are the names the behaviour definition and the service use from now on.

Errors to expect: a DDL source name that differs from the entity name, or a missing root. The annotation on LocalLastChangedAt matters too. SAP's ETag documentation says the managed provider can fill the field automatically only when it carries @Semantics.systemDateTime.localInstanceLastChangedAt: true.

Step 3: what does strict ( 2 ) change in the behaviour definition?

In a RAP behaviour definition, strict ( 2 ) turns outdated-syntax warnings into errors and adds stricter checks on the business object contract. The strict(2) keyword page explains that outdated syntax, which would normally give a syntax check warning, gives a syntax check error instead. The statement must be the second line.

managed implementation in class zbp_r_coursebooking unique;
strict ( 2 );

define behavior for ZR_CourseBooking alias Booking
persistent table zcourse_book
lock master
authorization master ( global )
etag master LocalLastChangedAt
{
  create;
  update;
  delete;

  field ( numbering : managed, readonly ) BookingUUID;
  field ( readonly ) LocalLastChangedAt;
  field ( mandatory ) CourseID, Participant;

  mapping for zcourse_book
  {
    BookingUUID        = booking_uuid;
    CourseID           = course_id;
    Participant        = participant;
    Status             = status;
    LocalLastChangedAt = local_last_changed_at;
  }
}

What this step proves: you know which lines are framework services you only declare (numbering, locking, ETag, create/update/delete) and which ones need code (authorization).

The authorization line is not decoration. SAP's RAP authorization page states that the root entity of a RAP business object must be defined as an authorization master entity. Choosing ( global ) means you must implement a handler method. Choosing ( none ) needs no method but tests less, so for practice, keep ( global ).

Step 4: what goes into the behaviour pool?

The behaviour pool needs one local handler class with one method for global authorization. Put the cursor on the class name in the first BDEF line and use the ADT quick fix. ADT creates the global class zbp_r_coursebooking and a local handler class with the method definition.

CLASS lhc_booking DEFINITION INHERITING FROM cl_abap_behavior_handler.
  PRIVATE SECTION.
    METHODS get_global_authorizations FOR GLOBAL AUTHORIZATION
      IMPORTING REQUEST requested_authorizations FOR Booking RESULT result.
ENDCLASS.

CLASS lhc_booking IMPLEMENTATION.
  METHOD get_global_authorizations.
    " Training example only: allow everything.
    " Real code checks an authorization object first.
    result = VALUE #( %create = if_abap_behv=>auth-allowed
                      %update = if_abap_behv=>auth-allowed
                      %delete = if_abap_behv=>auth-allowed ).
  ENDMETHOD.
ENDCLASS.

What this step proves: you can read a generated signature (REQUEST, FOR Booking, RESULT) and fill a typed result structure with a constructor expression. That is object-oriented work, and it feeds the topic weighted 21-30%.

Errors to expect: writing the method in the global class instead of the local handler, or using the entity name instead of the alias Booking in the signature.

Step 5: how do you expose and test the business object as a service?

You expose it with two objects: a service definition that lists the entity, and a service binding that publishes it as OData V4. Neither needs code beyond one expose line.

@EndUserText.label: 'Course booking service'
define service ZUI_CourseBooking {
  expose ZR_CourseBooking as Booking;
}

Right-click the service definition, create a binding of type OData V4 - UI, activate it, then press Publish. SAP's service binding documentation covers the binding types. Select the entity and open the Fiori elements preview to create one booking.

What this step proves: the whole stack works end to end. If you can create a record in the preview and see a generated UUID, every layer below is correct.

Errors to expect: an empty list in the preview. That is not a bug. The view has no @UI.lineItem annotations, so pick columns in the preview settings or add the annotations.

In which order should you activate the objects?

Activate the RAP objects bottom up: table, view entity, behaviour definition, behaviour pool, service definition, service binding. Each object refers to the one before it, so activating out of order produces follow-on errors that hide the real cause.

Activation order for the minimal RAP business object in six steps: table, CDS view entity, behaviour definition, behaviour pool, service definition, then service binding with Publish, with the dependency each step relies on.

Two habits help. First, activate each object as soon as it is written, instead of activating everything at the end. Second, when an error points at a higher layer, check the layer below it first. A mapping error in the behaviour definition is usually an alias typo in the view.

Which activation errors should you expect, and what causes them?

Most activation errors in a minimal RAP build come from five causes: a missing root, strict mode placement, a key type that managed numbering can't fill, alias mismatches in the mapping, and unreleased objects. The table below describes each one in plain words. Exact message texts vary by release.

Map of common activation errors per layer of the RAP business object, such as a missing root keyword, strict ( 2 ) not on line two, a non-UUID key for managed numbering, mapping mismatches and an unpublished service binding.
Where it shows up Likely cause Fix
Creating the BDEF View defined without root Use define root view entity
BDEF, line 2 strict ( 2 ) not on the second line Move it directly under the header line
BDEF, numbering Key is not RAW 16 Retype the key with sysuuid_x16
BDEF, mapping block CDS alias and table field names don't match Copy aliases from the view, field names from the table
BDEF, header No authorization declared on the root Add authorization master ( global )
Behaviour pool Pool or authorization method missing Use the ADT quick fix, then fill the method
Any class or view Object not released for ABAP Cloud Find the released successor
Service binding Preview button inactive Press Publish after activating

The row about unreleased objects deserves attention if you come from on-premise ABAP. Thomas Schneider, a Product and Topic Expert at SAP, explains in his ABAP language versions FAQ: "In Cloud, the ABAP language version is set by the system and cannot be changed." You can't switch to classic ABAP to make an error go away. The only fix is a released API.

How do you turn the walkthrough into a timed C_ABAPD rehearsal?

Turn the walkthrough into a C_ABAPD rehearsal by rebuilding it four times, faster each time, in one of SAP's practice systems. The time targets below are this blog's suggestion, not SAP figures.

Round Rules Target
1 Follow this post, read every error message fully No time limit; write down each error you hit
2 Build from an empty package using only your error notes Under 45 minutes
3 Build from memory, then add one validation (Status must be N, C or X) Under 30 minutes for the base stack
4 Repeat round 3 on top of a table from the course practice system Same target, unfamiliar data

Round 3 matters most. A validation adds a BDEF line, a handler method, a READ ENTITIES call and a failed/reported result, which tests the object-oriented topic again.

Time pressure is real. "Three hours go faster than you think!" Hauck writes in the same post. In March 2026 she also noted that Joule for Developers is available within the exam system, so practise asking it to explain a generated signature and then check its answer against the keyword documentation.

To check the reasoning behind these steps away from the system, ERPPrep's C_ABAPD sample questions include free scenario questions on RAP business objects and ABAP SQL, each with a rationale. They complement building the objects yourself; they don't replace it.

Frequently Asked Questions

Q: Is a RAP business object guaranteed to be part of the C_ABAPD task? No. SAP doesn't publish the tasks. SAP's description names RAP, and SAP staff list S4D400, S4D401 and S4D430 as the content base. A minimal RAP stack is good practice because it covers tables, CDS and object-oriented code together.

Q: Why use strict ( 2 ) instead of strict? Version 2 includes every check from version 1 plus stricter checks on the RAP business object contract. SAP's strict mode documentation recommends the most recent strict mode version, so practising with it avoids learning syntax that now produces errors.

Q: Can I use authorization master ( none ) to save time? It activates without a handler method, so it is faster. For practice, keep ( global ): it makes you write the behaviour pool method, which is exactly the object-oriented step you want to rehearse.

Q: Why does the Fiori elements preview show an empty list? The view has no @UI.lineItem annotations, so the preview has no default columns. Choose columns in the preview settings, or add a metadata extension with UI annotations. The data is there.

Q: Which ADT version should I use for C_ABAPD in 2026? SAP's certification page asks for your own Eclipse and ADT installation on the highest available release. Update a week before the exam and build this example once with the updated version.

Q: Where can I practise in a real system before the exam? The Acquiring Core ABAP Skills learning journey links a hands-on practice system for each of S4D400, S4D401 and S4D430. Access depends on your SAP Learning account, so check what your subscription unlocks before you plan your rehearsals.

For more ABAP Cloud and RAP guides, see the SAP ABAP Central homepage.

Saturday, 5 October 2024

Oracle Listener doesn't starts after DB instance installation

During the installation of Netweaver 7.3 on Oracle 19, we faced a scenario where the SWPM stopped while installing the primary application server at the stage where it tends to restart the SAP instance. Further investigation led to the log which suggested that the application host was unable to connect to the database

"R3trans -d" was failing

On checking further it was revealed that the Listener was not running and when an attempt was made to start the listener, it failed

Saturday, 6 July 2024

Efficient Data Retrieval and UI Binding To Value Help: Using Batch Requests with OData in SAPUI5

I have observed that there is limited content available regarding the process of sending batch requests from SAPUI5 applications to OData services, receiving the response, and subsequently binding the retrieved data to a Combo Box for value help

So in this Blog I would like to explain create a Combo Box using XML, Send a batch request from SAP UI5 and Bind the data to Combo Box for Value Help.

What is a batch Request?


In SAP OData, a batch request is a mechanism for sending multiple HTTP requests as a single batch to the OData service endpoint. Instead of sending individual HTTP requests for each operation, such as read, create, update, or delete, you can group multiple operations into a single batch request.

Friday, 5 July 2024

How to Create a Custom Validation from Fiori App Manage Substitution and Validation Rules

As we are moving to Fiori first yet cloud ready approach for any development, why restrict us to GGB0 or GGB1 for creating validation or substitution rules?

We can utilize the Fiori application - Manage Substitution and Validation Rules to create the rules which will be applied to all the standard processes such as standard interfaces, GUI T-codes and managing standard processes in custom program.

In this blog, we will create a custom-defined function in the validation rule on asset creation or modification done through the Fiori app - ‘Manage Fixed Assets’. The rule will validate against the supplier assigned to the asset master record.

Wednesday, 26 June 2024

MFS Testing strategy for smooth transition and reliable performance

It is crucial to test the MFS solution thoroughly before Go Live to ensure a smooth transition and reliable performance. Different projects require different test strategies. Below, I share some general approaches I followed in various MFS implementation projects.

During the build phase, we usually use an ABAP program (SCWM/MFS_TEST_MFS_RECEIVE2 or a custom program) to test our solution. However, this does not provide visibility into how the PLC would react to different situations. Therefore, we use emulation software where the warehouse automation layout is modelled and all possible logic is implemented. In SIT, we typically use this emulation software to test the MFS solution.

MFS Testing strategy for smooth transition and reliable performance

Many cases, existing PLC logic is changed to ensure it can work with MFS solution. Even sometimes a master PLC is introduced which communicate with lower-level PLC or hardware’s & then communicate with MFS with telegram messages. So, it is important to test these PLC changes. For this we usually place the new version of PLC software in place of the existing Legacy PLC & do the test with MFS. These kind of test needs warehouse down time.

Many warehouses run 24/7 & getting a down time is a big challenge. So, it is very crucial to plan these kinds of tests in detail so we can utilize this downtime to the fullest. This is also a great opportunity to test all your warehouse automation & integration with other software’s.

We usually try to replicate a day after Go Live in the testing environment which gives us a very good visibility & confidence how the EWM/MFS solution would work in production environment.

MFS Testing strategy for smooth transition and reliable performance

Operational test Planning:

We need to ensure following key items are addressed before we start operational testing for Warehouse Automation with MFS.

Master data: Need to ensure all the master data such as products, packaging specifications, any other data entries are in place in test system so you can use these production data for these tests. These test data also need to be available in other software test system. You may need to block bins not part of the agreed test scope so to ensure testing process does not mess up current legacy production inventory.

Network issues: Network team need to set up the firewall rules so Test MFS system can communicate with Test PLC without any issues. Similarly, connection between Test EWM/MFS system, Test Fleet management software which controls the AGV & any other application which we would like to test as part of end to end operational test needs to be in place.

Resources: It is crucial to have resources from business teams and all other applications available during planning & execution of operational test. All warehouse key resources should be trained on the new MFS processes so they can participate actively and appreciate the test results..

Test Scenarios: You need to have test cases covering both happy paths and all exception scenarios. Decide how to recreate exception scenarios. For example, to simulate a "No Read" scenario from a scanner, you might need to cover the scanners so the PLC sends telegrams accordingly.

Test Cases/Pallets: Ensure you have enough cases and pallets with all possible data variations. For partial pallet scenarios, have partial pallets ready. Also, include oversize pallets, mixed pallets, etc. Decide the entry and exit points of these pallets, Cases for each test. For instance, in the Goods Receipt process, determine where pallets should enter and where they should be stored. If cases are used to build pallets, decide where cases need to enter the system and where pallets should come out.

Rollback Approach: It is critical to have a solid roll back plan so after the test everything is brought back to BAU status. 

Operational Test Execution:

During the test, all the test results, observations need to recorded correctly. Not everything goes as planned, so need to be able to change the approach on the fly with due consideration to overall design architecture.

After Test execution:

During the test, things move very fast & so many transaction data gets posted. So after the completion of the test, it is important to analyze the data to see of anything has any abnormal posting. Log all defects & track for its closure.

It is very critical to complete the rollback steps before handing over to business. Such as replacing the test PLC with current production PLC, changing the IP address at MFS. Network team reverting the Firewall rules. If any test EWM labels are used, it is necessary to replace with actual labels. If any BAU labels are damaged, ensure to reprint them in current legacy software. Do a stock count & ensure they are in right places. Sometimes you need to bring back the pallets, cases to its original positions or manually adjust the new position of these stock in legacy WMS application.

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.

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

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.