Saturday, 7 December 2024

Steps to Replace OData in Business Application Studio UI5 Extension Project

How to change OData service when using BAS Extension Project for Standard Apps

Background: Sometimes, standard FIORI apps cannot be extended via BAS Adaptation Project. This limitation arises if the app contains synchronous views. In such cases, you may need an alternative approach to customize the app effectively.

Requirement: The standard app ‘Transfer Stock - Cross-Plant’, includes buttons to transfer stock between plants. My requirement is to customize the app to grey out the buttons based on the plant category.

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, 7 September 2024

Currency conversion in SAP Datasphere

Currency conversion is a fundamental capability across most SAP products, playing a vital role in enabling accurate financial reporting and analysis across different currencies. Whether you're working within the traditional BW environment or leveraging the modern features of SAP Analytics Cloud, there are various techniques available to handle currency conversion effectively.

In this blog, I’ll take you through a comprehensive, step-by-step guide to modeling currency conversion in SAP Datasphere, helping you unlock the full potential of this essential feature.

Disclaimer: All the data created are for demo purposes, the approach is used to demo the functionality of the currency conversion in SAP Datasphere, not intended for production design or usage.

Tuesday, 27 August 2024

Automating Username Generation for Employee BP Records mandatory in SAP EHS

In the context of SAP EHS (Environment, Health, and Safety), ensuring that all employees have a unique Business Partner (BP) record is crucial for effective management and compliance. Each employee must have a username to be assigned as part of their BP data, which is essential for proper system integration and user access.

This guide demonstrates how to create an ABAP program that automatically generates usernames for employees. The usernames are derived from the first letter of the employee’s first name and their last name, followed by a numeric suffix to ensure uniqueness if similar usernames already exist. This is particularly useful in the SAP EHS module, where each employee's BP record requires a unique identifier.

Saturday, 27 July 2024

Understanding SAP RAP, CAP, Build, Joule, Embedded Analytics: A Simple Guide

Introduction


In the rapidly evolving world of SAP, staying updated with the latest technologies can be challenging. Today, we will simplify five key SAP technologies: SAP RAP, SAP CAP, SAP Build, SAP Joule, and SAP Embedded Analytics. Let’s understand what they are, how they differ, and when to use each one.

SAP RAP (Restful ABAP Programming)


Let’s start with SAP RAP. ABAP has been the backbone of SAP for years, and RAP brings a modern approach to it.

Wednesday, 10 July 2024

ABAP CDS Select from dynamic data source

I faced a little problem while reporting in Fund Management (FM) module as the tables are generated automatically while creating derivation rules with dynamic names and differs by system /client.

The rule entries are stored in the generated table "FMFMOAXXXYYYZZZZ", where XYZ symbols means as follows:

  • XXX is the system specification (e.g., DE1 or QE1)
  • YYY is the client number (e.g., 120 or 200)

ZZZZ is the number of the derivation rule (which you should have as per your table 31, 51, 64, or 61)

To be able to move my report / solution I had to selecting from dynamic source which is not supported in CDS!

Monday, 8 July 2024

A Comprehensive Guide to Using OLE Objects in SAP ABAP

In this blog, we’ll explore how to use OLE objects in SAP ABAP to automate tasks in Microsoft Word. We will cover the basics, including how to create an OLE object, manipulate data, and handle errors.

Introduction to OLE in SAP ABAP

OLE Automation in ABAP enables you to control Microsoft Office applications. You can create documents, fill in data, format cells, and even run macros—all from within your ABAP programs. This is particularly useful for generating reports, exporting data, and performing complex calculations.

Prerequisites

Before you begin, ensure that:

You have access to a Microsoft Office installation on the machine running the SAP GUI.

You have basic knowledge of ABAP programming.

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, 3 July 2024

Full screen list in Maintenance Views

Introduction


With or without Fiori in the picture, Maintenance View is one of the main tools for maintaining SAP configuration. Reliable and easy to use, it is a proverbial workhorse.

However, since widescreen monitors became a standard, it has always been frustrating to me to see how much space is left unused (not to say wasted) in the list of a Maintenance View. The obvious solution was to modify the screen manually, but this was overwritten whenever a list was recreated.

Today, I will show you a way of making the Maintenance View list use as much space as possible, always.

Monday, 1 July 2024

SAP Datasphere: Replicating Custom CDS Views from S4 HANA to Azure Data Lake with CDC

Introduction


In this article I will share work experiences of using a custom CDS view on Joining BKPF and BSEG table in S4HANA and consuming it in SAP Datasphere for delta enabled replication (Change Data Capture) to Azure Data Lake Storage Gen2.

SAP Datasphere: Replicating Custom CDS Views from S4 HANA to Azure Data Lake with CDC

Create a Custom CDS View: ADT on Eclipse


Go to ABAP Repository Object and Click on the drop down for Core Data Services and then click on Data Definitions:

Friday, 28 June 2024

SAP Cloud Transport Management

Introduction


I have experimented a bit with SAP Cloud Transport Management.

The Big Picture


As usual on SAP BTP you have to use a service from the service marketplace to use the SAP Cloud Transport Management. You also have to create a solution landscape on the SAP BTP. 

I designed it as follows:

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.

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. 

Friday, 31 May 2024

Be a Cockroach: A Simple Guide to AI and SAP Full-Stack Development - Part II

Disclaimer: There are various methods to develop the SAP RAP program, but I've opted for a basic approach to comprehend table custom concepts and explore the fundamentals from a beginner's perspective. If you're already proficient in advanced techniques, feel free to move on and explore other content.

I) Introduction:

If you're new to this blog series, I recommend starting with PART-1 by clicking the link provided. This post is PART-2, so starting with PART-1 will help you grasp the topic better, especially since it uses story-based learning.

Wednesday, 29 May 2024

Be a Cockroach: A Simple Guide to AI and SAP Full-Stack Development - Part I

Disclaimer: This blog delves into SAP full-stack development, incorporating SAP RAP for both front-end and back-end functionalities, Integration Suite for middleware tasks, TensorFlow for AI/ML modeling, and crafting a personalized system dashboard. Geared towards simplifying complex business systems through engaging stories, it's for those wanting to understand these concepts. If you're already well-versed, feel free to just stop here and explore other content.

I) Introduction (Story):


Most people came here to see what he has to say about cockroaches and their connection to SAP development. Some might be curious to learn about it. Few of you could feel grossed out and think cockroaches are yucky and ugly! But after reading this section, I hope you'll respect these special creatures called “COCKROACH”.

Monday, 27 May 2024

Our Way into the Clean Core

Where are we coming from


We are a long-standing software partner of SAP, specializing in supply chain AddOns for nearly 20 years. We have different solutions inside of the portfolio and the older ones are more procedural coding, while the newer ones have more object oriented, more unit testing, and so on. But the big majority of all user interfaces are ALV Grid, ALV Tree and graphics (based on cl_gui_chart_engine). By the time we developed our own framework for these tools, so that it is easy to create several new containers with ALVs, letting the user decide, if he wants to use docking containers or dialogbox containers, support multi screens and so on.

In essence, we had a user interface that our end users greatly appreciated due to its ease of use. However, despite creating additional UI5 applications in recent years, most of our current users continue to work primarily within the SAP GUI. As a result, our initial plans were to gradually transition to more UI5-based applications. But the pressure to do so wasn’t significant, at least not from our customer base.

Friday, 24 May 2024

RDG eases the process of data replication through SOA services with custom enhancements.

Syniti RDG is an SAP-endorsed application on the Business Technology Platform (SAP BTP) to facilitate MDG implementation with intuitive UI and process automation.

RDG eases the process of data replication by setting data replication configuration steps like data replication model, create and maintain business systems and can map standard and customized attributes with different mapping transformations. This simplifies the process onto one easy to navigate screen. RDG replication via IDoc or via services (WSDL and SOA) are available and are dependent on the outbound implementation selected. Custom enhancements with replication of data can also be created in SOA proxy structure depending on business requirements.

Wednesday, 22 May 2024

Simple way to renew NW ABAP SSL certificate with STRUST Replacement Wizard

Overview:


Many a times it is seen that when SSL certificate of a server is expired or when new application servers are introduced in landscape, we need to share Certificate Signing request (CSR) with Certificate Authority (CA).

Method generally used is to create CSR form SSL Server Standard pse of STRUST and share with CA but sometime below error appears at CA side CSR doesn’t conform to policy and new CSR must be generated or pse error while importing.

Monday, 20 May 2024

Organize and categorize your documentation in SAP Cloud ALM

I want to highlight some important new features of “Documents” that will help you better organize your documentation in SAP Cloud ALM.

Create Process Hierarchy


You might already know about and use the functionality to create your own process hierarchy. You can access this feature from the “Processes” application or by adding the tile to your launchpad.

Friday, 17 May 2024

Calling Fragment Form & Send it as an attachment using ABAP Walk-Through

This Blog is based on the Output Management Form and has all of its configuration completed 

Ex for dunning: use maintenance view: V_T047E using code: sm30 to switch between frameworks through drop-down list

Calling Fragment Form & Send it as an attachment using ABAP Walk-Through

Wednesday, 15 May 2024

BODS migration

In this blog, I have detailed the steps taken for SAP BODS application migration from existing on premises to HANA database including the DR Testing Setup.

The Purpose of this blog is to provide a guidance path for migration of the BODS Application to HANA.

Existing Landscape Design:

1. The IPS and DS version remain the same as on premises.

Friday, 10 May 2024

Create trusted RFC with specific technical user

As the SAP Basis administrator, we understand how to set up a trusted RFC connection between ABAP systems. This allows us to connect to the target system using our current user credentials, without needing to input them again, as shown in the screenshot. I hope this blog post finds you in good health. If you have any questions or concerns, please don't hesitate to reach out to me.

Create trusted RFC with specific technical user

But what if we want to use a specific technical user and still want to benefit from trusted RFC? Actually, we can do it with the same method and I will show you how in this blog post.

Wednesday, 8 May 2024

How to identify the actually used UserInterface Technology from ABAP

I would like to share with you a method I wrote in my last S/4HANA 2022 Assetmanagement Project to identify from ABAP side (Userexit, BADI, Enhancement, ...) the UserInterface (UI) Technology ("WinGUI", "htmlbased GUI", "WebDynpro", "Fiori", ...) the user is currently using.

How to identify the actually used UserInterface Technology from ABAP

Monday, 6 May 2024

Fiori PO Approver app Accept and Reject button customization from ECC backend

Many time there are custom requirements for which it requires the need of creating Enhancement in standard SAP functionality.

Overview: PO Approvers are maintained in Release Strategy. Once the PO is generated it is set to be approved by PO approvers based on the levels maintained in PPOME structure. Only then the PO will be set to 03 status in EKKO.

Pre-requisite: All the roles and authorization must be given to the approvers to access the PO Approval Tile in SAP Fiori.

Friday, 3 May 2024

Adapt Clean Core Principle using SAP Cloud ALM

Introduction:


The main aspect of an ERP systems are:

◉ Business Processes
◉ Extensibility
◉ Data
◉ Integration
◉ Operations

Monday, 29 April 2024

Creating ABAP Dataframes for SAP PAL

Machine learning algorithms often need large datasets for training. E.g. the MNIST dataset consists of 100.000 records. Each record represents a little greyscale image of size 28x28 pixels of a handwritten number and the respective number as integer value ,  i.e. 28x28 =  784 integer values in the range interval [0,255] and one integer value for the number value.

Assume you want to train a neural network in PAL using AMDP (ABAP managed database procedures) in order to predict the number. For this task you could e.g. use the PAL algorithm "Multilayer Perceptron", which is a neural network. In order to supply the input neurons with data a dataframe is needed, i.e. an ABAP-DDIC structure containing the following fields:

Friday, 26 April 2024

SAP BTP, ABAP in the Cloud Custom Code Transformation using abapGit and gCTS

abapGit and gCTS (Git-enabled Change and Transport System)

◉ The basic idea behind abapGit is to exchange source code between any ABAP systems using a Gitbased repository.

SAP BTP, ABAP in the Cloud Custom Code Transformation using abapGit and gCTS

Wednesday, 24 April 2024

How to improve the ADT Class Runner with additional Features

What is a Class Runner?


A class runner is a great tool to test code snippets and run code directly from ADT. You can even write a simple log to the console in Eclipse.

What can be improved?


When using multiple systems and complex projects I got annoyed at some point in time, that I don't know from which system the last log was, when it was written by which runner and if the last execution has finished or failed maybe.

Wednesday, 17 April 2024

Upload Excel using SAP RAP Only

Develop an SAP RAP based App to upload excel (CSV) file just like you used to develop SE38 classical report.

We often get this requirement of developing a utility to create/update mass data for a BO such as Purchase Orders, Materials, Sales Orders etc. In S/4 HANA, the customer prefers to use SAP Fiori applications, rather than using the old classical reports. But can we develop a Fiori application to upload a file without involving using SAP UI5? Yes, we can.

Monday, 15 April 2024

Dynamic Derivations using BADI in SAP MDG

Business rules are one of the important feature in Master Data Governance Process. Deriving the value for particular field of an entity can be done either by BRF Plus or BADI. This Blog Post explains you about creating complex or dynamic derivation rules which can be achieved through BADI.

In this post, I am taking the example of deriving Cost Centre value from Cost Centre Entity of Finance Data Model. Its a kind of Mandatory and derivation rule and the naming convention should be followed.

Friday, 12 April 2024

Unable to log in to SAP BusinessObjects CMC

We were recently performing regular maintenance, including an OS patching of the SAP BO development server for one of the SoftwareONE customers.

During the patching, some issues were encountered leading to a failure. It was decided to restore the operationability of the application by reverting to the previously backed-up state of the VM back to the patching event, and the Basis team was tasked to bring the application up and do the sanity tests.

The application was able to start but the login to the CMC was denied.

Wednesday, 10 April 2024

How to develop Customer creation Application in SAP Build Apps with OData service

Objective: -


Implementing SAP OData URI to SAP Build and Creating Customers in SAP BUILD which can replicate to SAP System

Business Scenario: -


How to create Customers using SAP Build Apps and OData Service.

Prerequisites: -


-> You Have an SAP BTP account or trial account.

-> Inside the BTP account, go to Instances and Subscriptions and create an instance of SAP Build Apps

-> Now go to Security -> Users Tab and assign Role to the user for SAP BUILD Apps

Monday, 8 April 2024

Declaring Dynamic UI5 Fields in SAP Build Process Automation

While automating SAP Fiori applications, one might come across some dynamic UI5 elements such as mentioned in the snapshot below.

Declaring Dynamic UI5 Fields in SAP Build Process Automation

In most cases, recorder may not be able to uniquely identify the elements, thus terminating the automation where it may not find the suitable elements.

Friday, 5 April 2024

Analytical Query CDS View creation and consumption in RSRT along with publishing OData Services

Introduction


In this blog you will learn about the creation of Query CDS Views for Analytical purpose and their consumption in RSRT tool, along with the required steps that needs to be followed to achieve it. Once after the Analytical query creation, I have tried replicating one of my project scenarios to have better understanding on defining key figures/ measures in CDS views. In the end blog explains about the process needs to be followed to expose the given Query CDS view into OData service links. The Query CDS Views are created specifically for Analytical reporting purposes within SAP systems. They can be optimized for certain reporting scenarios, analytical queries, aggregations and further can be integrated with SAP FIORI tool providing much better visual reporting experience.

Creation of query CDS view:


For the creation of query CDS view we must follow 3 basic steps as mentioned below:

Wednesday, 3 April 2024

How to collect hardcoded values, ABAP routines & OLAP variable values used in DTP filters

Introduction


This blog talks about how to collect selections or filter details used in a DTP by using some standard tables in both BW on Hana & BW4HANA systems.

Especially In migration projects (SAP BW on Hana to BW4HANA), it’s very hard to collect hardcoded values or ABAP routines or OLAP variable details used in DTPs manually for ‘n’ number of DTPs. So, to overcome from this issue, below steps will help us to collect DTP filter details by using the tables RSBKREQUEST, RSSELDTP, RSBKSELECT.

1. DTP filters in BW on Hana


As we know, in a DTP filter we can maintain hardcoded values, ABAP routines & OLAP variables to restrict data while loading into Target objects. Below steps will help us to get the selection details used in a DTP for n number of DTPs.

Wednesday, 27 March 2024

Automate Sybase ASE Backups using DBA Cockpit (Sybase:v15.7.0.021+)

Automating Database Dumps in SAP ASE


This blog post guides you through automating database and transaction log backups for your SAP system using DBACockpit in SAP Sybase ASE version 15.7.0.021 or higher. We'll focus on using the local file system for intermediate storage.

Prerequisites:


1. Administrative access to the SAP ASE server.

Understanding of SAP ASE utilities like dump database and dump transaction.

Friday, 22 March 2024

Fiori Adoptation Project for Extending Standard Fiori Application for onPremise using BAS

Prerequisites:


◉ On BTP: Cloud Connector Connection to Gateway system and Destination 
◉ OnPremise: Activating required standard Fiori Application

Step 1: Open Template Wizard and select the application type as SAP UI5 Adoptation Project.

Fiori Adoptation Project for Extending Standard Fiori Application for onPremise using BAS

Wednesday, 20 March 2024

SAP BW Bridge In SAP Datasphere: Connectivity Between S/4HANA System & BW Bridge

Introduction:


SAP BW bridge is a functional enhancement of SAP Datasphere and enables ABAP-based data extraction and staging capabilities within SAP Datasphere. It provides customers who are running SAP Business Warehouse or SAP BW/4HANA with access to the public cloud as it offers SAP BW capabilities directly in SAP Datasphere.

SAP BW Bridge for SAP Datasphere is a feature that makes certain elements from the on-premise SAP BW system available in the cloud. In order to transfer these elements to SAP Datasphere, SAP also supplies the appropriate conversion tools. SAP BW Bridge is a cost-effective and simple way to switch from an on-premise SAP BW system to SAP Datasphere.

Friday, 15 March 2024

Comparing Workflow Templates in SAP

Introduction


Identifying the changes present between different versions of workflow templates can be a challenge. Unlike other objects, there isn't a built-in functionality for direct comparison. Manually scrutinizing each step of the templates side-by-side can be both tedious and error-prone.

This lack can be frustrating, as I’ve witnessed firsthand through inquiries from few of my colleagues struggling to identify changes between versions for troubleshooting or maintaining consistency across environments. Fortunately, I’ve been able to help them by employing a couple of effective techniques that help bridging this gap.

Wednesday, 13 March 2024

Exposing an oData Service from SAP S/4HANA Cloud Public Edition to the SAP BTP

This blog post will explain how to expose a CDS view as an API using developer extensibility in SAP S/4HANA Cloud Public Edition to be consumed in the SAP Business Technology Platform

Exposing an oData Service from SAP S/4HANA Cloud Public Edition to the SAP BTP

Technical Procedure


Extending our solutions allows you to differentiate yourself from the competition, simplify processes, and adapt the software according to the specific needs of your business.

Monday, 11 March 2024

Domain name migration for SAP ABAP system.

Migrating the SAP instances from one domain to another domain is always tedious task for administrators.

To overcome these challenges, I'm going to explain how we can successfully migrate our SAP ECC system from old domain (example.com) to new domain (example2.xyz).

Friday, 8 March 2024

SQL Statement Collection for SAP HANA - The output is right aligned

In some ABAP Support Packages the SQL Editor of DBACOCKPIT will show a right-aligned output.

SAP Note 1969700 (section 'The output is right aligned') respectively 3343639 describe the reason and solution for this from ABAP aspect.

The aim of this post is to present an instant workaround to convert the output to a kind of "human readable" format.

The SQL statement referenced here is a statement from the statement collection attached to the SAP Note 1969700.

Wednesday, 6 March 2024

Can I extend a certain app? With Clean Core? How?

Extensibility is a very important part in SAP S/4HANA. Although we recommend to have a fit-to-Standard approach, we know that not everything can be covered; there is a need for extensibility. But we don't just want to go hack about our system (anymore), we want to do it Clean Core compliant, meaning:

  • Extensions are clearly separated from SAP's code
  • Extensions do not modify any SAP objects
  • Extensions use only stable, released SAP APIs and extension points

But how to go about that? Well, I'm hoping to give some help on that. In this blog post I'm focusing on extending an SAP S/4HANA Standard app, as an example.

Monday, 4 March 2024

CDS View: Time comparison

This blog is about CDS scalar functions - CALENDER_SHIFT and CALENDER_OPERATIONS and how to use it in analytical queries for time comparison. Similarly FISCAL_CALENDAR_SHIFT and FISCAL_CALENDAR_OPERATION can be used.

These CDS scalar functions are used to compare the measure value of current time period with previous time period. Further it can be used to calculate measure value for year to date (YTD), month to date (MTD) or quarter to date (QTD). Current member can only be used when time dimensions are in drilldown else restricted measure is used. The usage of current member is not as fast as restricted measure. Detail specification of the mentioned scalar functions can be found in Help.

Friday, 1 March 2024

Exploring SAP BTP with Trial Accounts and Free Tiers

Exploring SAP BTP with Trial Accounts and Free Tiers

Introduction: SAP Business Technology Platform (BTP) is a powerful and versatile platform that empowers businesses and developers to build, extend, and run applications in the cloud. It helps us explore its capabilities, SAP is offering a variety of options, including Trial Accounts and Free Tier offerings.

Trial Account or Free Tier Offering: When to Use Which? Before diving into SAP BTP, we must determine which free offering suits our requirements best. SAP provides two primary options: Pay-As-You-Go or CPEA accounts with free tier service plans and Trial Accounts. Here's when to consider each option:

1. Pay-As-You-Go or CPEA accounts with free tier service plans:

◉ These accounts are open to customers, partners, and individual developers.

◉ They allow us to experiment with SAP BTP without time limitations.

◉ We can test our scenarios and have the option to upgrade to paid service plans.

◉ They support long-term data storage and project migration to production.

◉ Access to the community, including tutorials and technical resources, is available.

◉ Note that only community support is available for free tier service plans, and SLAs do not apply for these plans.

◉ Some services may not support upgrading from a free tier to a paid service plan.

2. Trial Accounts:

◉ A SAP BTP trial account provides a 90-day free trial period.

◉ It is intended for personal exploration and non-productive testing only.

◉ Trial accounts should not be used for production or team development.

◉ Everyone can access this option, and you can self-register for a trial account.

◉ Once the 90-day period ends, the trial account is automatically deleted.

Free Tier and Always Free Tags: In the SAP Discovery Center service catalogue, some services are tagged as "Free Tier," indicating that they offer a free tier service plan. Others are labelled "Always Free," which means these services come without additional charges as they are included in the overall SAP BTP contract. We can use the filter function in the SAP Discovery Center to find services that offer Free Tiers and Always Free plans. Keep in mind that Always Free service plans may not be available in all regions or for all providers.

Trial Lifecycle: When we opt for a SAP BTP trial account, here's what we can expect in terms of its lifecycle:

1. Familiarization and Exploration:

◉ Get to know the platform's scope and explore the Starter Scenarios.

◉ Utilize the Tutorial Navigator for guidance and insights.

2. Account Extension:

◉ The 90-day trial period is divided into intervals.

◉ Regularly signing in to the trial account extends the intervals to 30 days or until the 90-day trial period is completed.

◉ We can manually extend our trial account interval by clicking "Extend Trial Account."

3. Account Suspension:

◉ If we don't sign in for 30 days or more, the account will be suspended, and we won't be able to use applications or services.

◉ To unsuspend the trial account, click "Extend Trial Account" and use the account again, provided there are still days left in your 90-day trial period.

4. Account Deletion:

◉ After 90 days, the trial account is automatically deleted.

◉ If we wish to continue using SAP BTP, then we must set up a new account.

Trial Scope: A SAP BTP trial account offers access to essential platform functionality, including the following features:

◉ Cloud management tools (Feature Set B)

◉ Availability in various regions

◉ Directory creation

◉ Use of productive and beta services

◉ Management of security users through role collections

◉ 4 GB of memory for applications

◉ 8 GB of instance memory

◉ 10 total routes and 40 total services

◉ Configuration of 2 on-premise systems with the Cloud connector

◉ No service level agreement (SLA) regarding platform availability

◉ Use of HDI containers in a shared SAP HANA database (only available on cf-us10)

◉ Automatic daily application stops for cleanup purposes, requiring manual restart when needed

Conclusion: Even though the trial accounts are free, the limited lifespan is not helpful when building demos or PoCs where you don't want to run the risk of losing your work just because you haven't logged in for a while, which is why we at SoftwareOne chose to invest some money in a 'proper' paid-for environment. Free trial environments remain useful for things which are disruptive or throw-away, such as experimenting with setting up single sign-on (which has the potential to disrupt other users), or training/education courses which you don't need to keep after the completion of the course.

Exploring SAP Business Technology Platform is now more accessible than ever with Trial Accounts and Free Tier offerings. Determine your requirements, select the right option, and embark on your SAP BTP journey to innovate, develop, and transform your business. Whether you're an individual developer, a partner, or part of a larger organization, SAP BTP has a solution for your specific needs. Sign up, explore, and unleash the potential of this powerful platform.