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.

Wednesday 28 February 2024

A Quick Guide To ABAP Debugger

While the SAP BTP platform has witnessed significant progress and adoption, offering numerous development tools for SAP platforms, it's noteworthy that SAP GUI for ABAP continues to be widely utilized in many organizations and projects. This document aims to deliver succinct information about the SAP GUI ABAP debugger, specifically catering to SAP functional consultants and ABAP newcomers.

Note that certain features are also accessible during debugging in Eclipse ADT. Personally, I favor using the Eclipse IDE.

Breakpoint: A breakpoint is a specific point in your program where the execution of instructions comes to a halt. In ABAP, there are four ways to interrupt the execution of your program:

Monday 26 February 2024

How to use Side Effects in RAP (Restful Application Programming) Model

Introduction


When a user modifies the content of a field, and it affects the other fields in the UI. This is known as a side effect.

Side Effects annotations indicate which targets are to be refreshed in order to display updated values. These field values change due to the change of a field, action, or decision action. There are various ways to annotate side effects by combining the triggers and the affected components.

Wednesday 21 February 2024

Reporting daily material stocks using CDS views

Core Data Service Views (CDS) offer the possibility of reporting daily inventory values without the need to set up and fill info structures.

Every company must be able to show and report its inventories and, above all, be able to control them. For some companies, it is also important to be able to see the development of their stock on a weekly or even daily basis. For retail companies in particular, there is also the need to track not only the quantities but also the development of inventory values. In SAP ECC, this was made possible by updating information structures and transferring data to an SAP BW system using so-called 2LIS extractors. In this blog, I would like to discuss the possibilities in S/4HANA systems using CDS views, as in certain scenarios it is no longer possible to update the required info structures. In addition, the approach using CDS views offers the avoidance of non-posting times and the extraction of values without an S-API. This can be used within SAP Datasphere scenarios using CDS-CDC datasources.

Monday 19 February 2024

Dynamically show/hide enable/disable fields in Fiori Elements

Sometimes you need to hide or disable the field in UI dynamically based on condition, for example based on entered data in edit mode.

You can make it in backend using hide annotation with value based on control field. Changing the value of control field via value help additional bindings or determination with side effects.

Use Case: In our app for order creation user is entering order code first. Based on the value of order code the device location field or the device number field should be enabled dynamically in edit mode. I one is enabled for entering the other must be read only. 

Friday 16 February 2024

Methods to identify VIEW and TABLE name(s) from IMG node

Whenever a IMG node configuration is done in SAP, data get stored in View. Views are basically combination of one or more Tables. So, technically when a configuration is saved data is stored at Table level which could be one or more Table but virtually it is possible to view data from one or more table at a single virtual storage location called View. Implementation projects would require Views and Table for IMG Node to custom build tools as per local business requirement.

I have come up with methods to find VIEW(S) and TABLE name using IMG node to all beginners.

Follow either Method 1 or Method 2

Method 1:

Wednesday 14 February 2024

Multi Level BOM Explosion using CDS + Table Function

Problem Statement:-


I came around a requirement to create a fiori applications which involves BOM and had to list down all components of Material considering the multi level explosion.

Considering this data forming the base for the overall fiori application, we can not build a logic using CDS view only, as this involves selecting components underneath each component.

So the only approach is to write a recursive logic to fetch all the related components.

Friday 9 February 2024

Export the Analytic Application to PDF

Introduction:


We can use the "Export to PDF" component and its script APIs to export an analytic application to a PDF file. By default, the export settings we defined in the Export to PDF panel cannot be modified during the application run time by the users.

In this example, to offer application users the flexibility to customize the export settings, I have designed a new settings dialog by leveraging relevant APIs.

Wednesday 7 February 2024

Create CDS view in ABAP on BTP

Overview of ABAP for BTP


The foundation of SAP modification and development has always been ABAP. Developers may now fully utilize cloud-based solutions and expand the reach of ABAP applications to unprecedented levels thanks to the integration of ABAP on BTP. BTP offers a flexible and scalable platform that makes it possible to integrate numerous SAP and non-SAP services with ease.

Begin with Creating a Trial user and installing ADT tools


SAP has given a provision to create a trial user in the BTP environment - Create a Trial user - SAP BTP ABAP Environment

Friday 2 February 2024

Tip: SAP GUI Scripting VBA Code Snippet to Detect all IDs of the UI Elements

In a few cases it is in business context not allowed to install additional analyze software or tools. So applications that are permissible and available must be used, e.g. like Microsoft Office applications. This makes things a bit more laborious, but not impossible.

Here a Visual Basic for Application (VBA) example to detect all IDs of the UI Elements of a session of the SAP GUI for Windows with SAP GUI Scripting. The result is written into a Microsoft Excel table.

The sub routine Start connects to the session and calls the recursive sub routine GetAll, which detects all IDs. The global variable gColl stores all IDs as an array of strings.

Wednesday 31 January 2024

MDG DQM: Troubleshooting DQM validation rules for central governance - Product Master S/4 HANA

INTRODUCTION


In this blog post we will cover a few steps on how we can troubleshoot the BRF+ validations which is the underlying framework for MDG DQM. This module of MDG is still evolving rapidly as we move towards cloud first and a clean core approach. As MDG developers we are still pretty comfortable with classical BADI's for doing validations and we all know it's quite easy to troubleshoot the rules. But when it comes to DQM we might wonder how do my rules get called? how can i troubleshoot my rules if they are not working as expected? 

So let's see how we can troubleshoot the rules.

Monday 29 January 2024

SAP BTP Environments – Cloud Foundry Vs ABAP Vs Kyma

Introduction


Introduced in January 2021, SAP Business Technology Platform (SAP BTP) is a unique and powerful solution offering by SAP. It is the technical foundation of entire SAP ecosystem and plays a crucial role for all SAP customers and partners.

SAP BTP offers 3 major environments – Cloud Foundry, ABAP and Kyma. SAP BTP offers one more environment as well called Neo, which is going to sunset.

Wednesday 24 January 2024

Inventory Aging Trend with S/4HANA Embedded Analytics

Inventory aging trend with S/4HANA embedded analytics? Hmm…Sounds like data warehousing  snapshot requirement. Actually S/4HANA inventory data model supports key date concept (with some limitation) making it possible trend analysis.

Example below demonstrates one of possible use cases – month to month comparison showing changes across different aging ranges

Inventory Aging Trend with S/4HANA Embedded Analytics

Monday 22 January 2024

Unmanaged Query in Root View Entities

Introduction


In the context of the Restful ABAP Programming Model, when you think about an Unmanaged Query, you’re mostly thinking of a Custom Entity. In this blog post, I would like to introduce a method to implement an Unmanaged Query in combination with a Core Data Service (CDS) Root View Entity. I want to explain the advantages and disadvantages using a specific example.
 

Example


Two Fiori applications are required: One app is needed for maintaining an HTML email signature in a Database Table with placeholder for Name & Position, and the other app is intended to locate a specific signature for the logged-in user and replacing these placeholder.

Friday 19 January 2024

Exploring Cross-Database Operations in ABAP Managed Database Procedures (AMDP)

In the SAP ABAP world, the use of ABAP Managed Database Procedures (AMDP) has brought about major and useful changes in the way data is processed in HANA databases. One of the many features that AMDP provides developers is the ability to perform Cross-Database Operations. This is an important and useful functionality that allows developers to interact with different databases within or between systems.

Wednesday 17 January 2024

How to add a new field to the RAP BO of a customizing table

Introduction


In this blog post, you will learn how to adapt a RAP business object of a customizing table when you add a new non-key field to the table. Removing a field works very similar.

This blog is relevant for:

  • SAP S/4HANA On-Premises 2022 or higher
  • SAP S/4HANA Cloud, Public Edition
  • SAP S/4HANA Cloud, Private Edition
  • SAP BTP, ABAP Environment

Monday 15 January 2024

“Unlocking EDI Flexibility: A Customizable ABAP Journey in SAP”

Enhancing EDI Processing with Customizable ABAP Code


In the realm of Electronic Data Interchange (EDI), flexibility and adaptability are paramount. In this post, we will explore a robust ABAP code for handling EDI files, specifically in the context of SAP systems. The code is designed to be customizable, allowing for seamless integration with various client-specific EDI scenarios.

Customizing the Main Table

To start, we create a main customizing table that serves as the backbone for EDI processing. This table incorporates essential elements for mapping and customization:

Friday 12 January 2024

Creating custom DANFE | Output Management | S/4 HANA Public Cloud Edition | release 2308

Introduction


In S/4 HANA Public Cloud, we exclusively work with Adobe Forms to handle standard or customized forms. To develop a customized form, it is necessary to customize it using Adobe LiveCycle Designer and apply some settings in the environment so that the form in question can be used. I bring an example with one of the most requested forms by clients: the dear DANFE.

Need


Customization and implementation of a customized DANFE form to meet the needs of the end user. S/4 HANA Public Cloud environment – release 2308

Monday 8 January 2024

Encrypted E-mail Attachment Pdf

I am delighted to communicate my enthusiasm regarding the proposed measure to enhance the security of the payroll envelope mail that is slated for transmission within the Human Resources (HR) module. This enhancement involves the implementation of encryption to fortify the confidentiality and integrity of the sensitive information contained in the payroll documentation.

I have employed a third-party tool supplied by ‘VeryPDF‘ to implement PDF encryption with a password.

Specifically, the ‘Encrypt PDF Command Line‘ tool from VeryPDF facilitates the encryption of PDFs with a password through the Windows Command Prompt. We can easily trigger that tool from SAP. It is noteworthy that a trial version is available for testing purposes.

Friday 5 January 2024

SAP Business Workflow – Trigger Workflow Behind Tcode: CJ20N

There was a requirement in a project that the users wants to control project creation with workflow. Project Builder (CJ20N) screen does not have standard workflow process working behind. First of all we need to find the triggering event works behind Project Builder (CJ20N) screen. In my case I need to start workflow process after creating project.

In this blog I will show you how to reach the standard class, events and event parameters to trigger and design a workflow.

Wednesday 3 January 2024

SAP BTP ABAP Environment – Pre-Upgrade Option for Release 2402

Overview


Providing a significant number of new features is an important goal of release upgrades to deliver innovations to our customers and partners.

An upgrade is intended as a “no event” for customers and partners. For example, only compatible changes of released objects (APIs) will be delivered. But we recommend performing a test of the custom-built productive apps in a test environment for the new release. The complexity of the technical dependencies between the custom-built apps and the underlying environment cannot be tested isolated, only including the ABAP environment on SAP side. Therefore, we offer you to upgrade selected systems 15 days in advance to test the applications prior to the planned standard-upgrade.