As mentioned in the blog post for configuration of service group in SOAMANAGER, we need to prepare and upload the WSDL. In SAP NetWeaver PI/PO systems, it can be obtained from the Sender Agreement or Integrated Configuration object. For CPI one needs to enrich the WSDL by adding the binding information manually, as the deign time WSDL....

Overview for Implementing Custom Logic in SAP Marketing Cloud Welcome to the blog posts of the SAP CX Services Marketing Practice. We are happy to share with you our experience around Marketing Business, Technology and Analytics. You want to see more blogs from us? Click here. In this article, you will learn about the available options....

For over ten years now every month on the SAP Community Site someone publishes a blog about how to upload/download data from EXCEL to ABAP. So, I am going to start doing this as well – only I will always be talking about ABAP2XLSX as the preferred mechanism to do this. Millions of Excel Blogs....

Back from SAP Sapphire in Orlando and Barcelona, I’ve seen a real change in how our customers and partners are considering SAP Business Technology Platform. Indeed, the questions they asked were not around “What is SAP BTP and what capabilities does it bring?” but rather “How can we effectively adopt SAP BTP for extending our....

Requirement: To form a range table consuming two or more fields from a table in ABAP.   Old or Traditional way of Coding: *Define the structures of table TYPES: BEGIN OF lty_comp, seqno TYPE char4, wtype1 TYPE char4, wtype2 TYPE char4, wtype3 TYPE char4, END OF lty_comp. *Declare table type TYPES: gtt_comp TYPE STANDARD TABLE....

Since the ABAP environment in SAP BTP typically interacts with other BTP services, you may be interested in a performance monitoring of such outbound communication. In this blog post, I’ll show you how you can use the System Outbound Communication app in the ABAP environment. You can even get alerted by mail if the performance of a specific outbound....

Earlier While creating an OData service, I have gone through multiple blogs which has few steps to create Odata Service that helpIed me to create the service. But for every term, I needed to go and search for the particular term to understand what actually they do. So here in this blog, I am going....

Hello everyone, i am an ABAPER who loves sharing. In my previous blogABAP MULTI ALV Share source code . I shared a code repository with multiple ALV displays. Today, I will continue to share a code repository that encapsulates SALV for more convenient display of ALV. System version requirements SAP ON PREMISE ABAP 750 and later....

In the fast-paced world of SAP development, buzzwords can often create confusion and uncertainty. Among these buzzwords, SAP BTP – ABAP Environment, Steampunk, ABAP Cloud, and Embedded Steampunk have emerged, leaving developers searching for clarity. In this SAP SCN blog post, we aim to demystify these concepts, providing a clear understanding of SAP BTP – ABAP Environment, Steampunk, ABAP Cloud,....

At a guess, many of you will have had reasons to use the SAP standard transaction CODE_SCANNER to search through ABAP code in order to find a specified string. I hadn’t known about this old transaction until happening upon the blog post by arghadip kar in 2021 and have been using it regularly since then. It’s a great way to quickly....

I’m writing this blog to provide an overview of how to define the ABSTRACT CLASS in Local Class & Global Class. Many beginner developers working in SAP ABAP OOPs, need to be familiar with OOPs concept. One of the concepts is ABSTRACT CLASS & METHOD is explained here. Readers will be able to understand how....

Because of the ease-of-use nature of CL_SALV_TABLE, we have long wanted to use CL_SALV_TABLE to handle editing as well. A post by SCN Blogger Naimesh Patel surprised many and saw potential. https://blogs.sap.com/2015/06/25/salv-editable-with-single-custom-method/ Paul Hardy has suggested a more moderate way to make columns editable. https://blogs.sap.com/2015/08/07/salv-and-pepper-editing-individual-columns-in-the-salv/ Even if the original design ruled out modifications, many developers....

In this blog, we will get to know about deploying any custom SAPUI5 application into SAP Fiori launchpad. Prerequisites User must have access to SAP Logon. User must have access of TCodes: SE80, /UI2/FLP, /UI2/FLPD_CUST, /UI2/FLPD_CONF, /UI2/_FLPCM_CUST, /UI2/FLCM_CONF, /UI2/SEMOBJ, PFCG. User must have access to SAP BTP Cockpit, Business Application Studio(BAS) or SAP Web IDE. Procedure Step 1: Upload the SAPUI5 application as a BSP application.....

I have found a small but nice program to change the SAP logon language on the fly without the user having to log off and log on again. This program is very useful to me on some days and I save a lot of time to test e.g. functionalities multilingual.   REPORT ZBCLNG01 . data....

As a ABAP developer, creating and deploying your application in SAP BTP Platform is now very easy. Use of ABAP Restful application Programming model makes this tasks very easy. More over there is a huge demand now to deploy your application in ABAP on Cloud and to consume it in your On-premise applications and enhancements.....

CDS doesn’t need any introduction so let’s get to the core of the topic for which I am writing this blog post. I was investigating on certain CDS annotations and I was missing something called “where used” option for CDS, this is a feature which we ABAPers use almost every day! But when comes to....

Owing to various business scenarios, we might come across requirements where background jobs must be scheduled. Now, the most common way to schedule batch job is through the TCode SM36. Especially, in case of Interfaces through which SAP receives huge volumes of data from Third Party and must process them in one batch run, nightly in most....

While deleting Inbound Queues without resolving the errors are a risk, there might be cases where queues need to be cleared on regular intervals. Best practice is to check the Stuck Queues and then act accordingly. We can delete Queues and specific LUWs from SMQ2 TCode manually. However, when the count goes up to 1000s....

In SAPGui, you can for most ABAP Workbench objects create temporary versions. Then during development if you need to revert a change that you’ve not yet transported, you can go back to an earlier version. When the transport the object is locked against is finally released the temporary versions are deleted. I develop in Eclipse/ADT,....

Hello everyone, this is my first blog, i would like to share with you a multi ALV display code repository written by me. Introduction I am an ABAP developer who is willing to share. This blog will introduce an open source repository that I have written. It can display multiple ALVs on a single screen....

このブログ投稿では、SAP S/4HANA Cloud, public editionにおける開発者拡張の実装方法について実際の操作画面ベースにステップバイステップでご紹介します。コンセプトなどの概要情報については、わかりやすく紹介されているブログをリンクしていますので、ぜひそちらも参照ください。なお、SAP S/4HANA Cloud, private edition, SAP S/4HANA (オンプレミス)でも方法は同じです。 開発者拡張とは 開発者拡張(Developer extensibility)は、ABAP開発者によって、SAP S/4HANA Cloud システム内で SAP オブジェクトの拡張および独自のカスタムオブジェクトの作成ができる、というのものになります。 キーユーザ拡張よりも複雑な拡張・カスタム開発が可能であり、かつ SAP S/4HANA Cloud 内でデータを直接参照することができるため、SAP Business Technology Platform 上の Side-by-Side 拡張よりもより SAP オブジェクトと密結合した拡張機能を実装できます。 ただし従来のクラシック拡張とは異なり、開発者拡張(Developer extensibility)では、コアとカスタムコードを分離するために、従来の実装ルールより制限が多い新しい実装ルールへの準拠が必要となります。 更に詳しい内容はこちらのブログで紹介されていますのでご参照ください。 開発者拡張における ABAP とは 新しい実装ルールの主なポイントとしては、下記の3点が挙げられます。 更に詳しい内容はこちらのブログで紹介されていますのでご参照ください。 SAP オブジェクトの使用制限 – リリース済オブジェクト (Public API) のみ使用可能 Release contract という属性でリリースステータスが定義され、 未リリースのオブジェクトは使用できず、構文エラーになります。 SAP オブジェクトの拡張は事前に定義されリリースされている拡張ポイントのみ モディフィケーションは許可されていません。 Restricted....

In the world of ABAP development, efficient data retrieval is crucial for optimal performance and seamless user experience. ABAP Core Data Services (CDS) views provide advanced techniques to leverage the power of the underlying database for efficient data retrieval and manipulation. In this blog post, we will explore various advanced data retrieval techniques with ABAP....

Bärbel Winkler asked a question about how to trigger some kind of popup in ADT/Eclipse using information held on the backend application server. I realise one solution would be to have some code run every time an (ABAP) editor was opened in Eclipse. This code would call a function module on the backend, which could take some....

Navigating to MDG CRs can be cumbersome at times. If users are on the Go and the CRs are awaiting their action, a direct CR link would help users. Although we can setup extended notifications will a link in the emails to navigate to NWBC Home Page(hard coded link) via variables.   Business Need: Better....

I have been looking in the forums for ways of making a CL_GUI_ALV_GRID grid editable for the user in a way that whatever value they put in the cells gets registered in the iternal table being displayed on that ALV, but most of the content I found were solutions using the FUNCTION ‘REUSE_ALV_GRID_DISPLAY_LVC’, but in....

In the world of ABAP development, the RAP framework has revolutionized the way we build robust and flexible applications. One of the key features of RAP is the ability to dynamically generate EML (Entity Manipulation Language) requests. In this blog post, we will explore the dynamic form of MODIFY ENTITIES OPERATIONS, which allows us to....

In the world of ABAP development, optimizing performance is crucial for delivering efficient and responsive applications. By implementing effective performance optimization techniques, you can enhance the runtime of ABAP programs, improve user experience, and maximize system resources. In this blog, we will explore advanced techniques for optimizing performance in ABAP development.   1. Database Access....

Since, it was introduced twenty years ago, SAP ECC (Enterprise Central Component) has been a widely used Enterprise Resource Planning (ERP) tool. But as digitalization, cloud computing, and the demand for real-time data processing have increased, SAP ECC has become antiquated and unable to satisfy the needs of modern business. New and enhanced functionality to....

Recently in one of the project implementations, I got a requirement to extend the solution by creating subsequent document based on a business process being executed. I am sharing this blog as I felt not much has been written for such type of requirements. Problem Statement: – How do you create a subsequent document based....

I am am using my display_data-method quite often. And every now and then, I stumbled over a dump, e.g. wenn the table provided was “deep” -> included other components that where themselves tables. I often thought: If we could just drop those columns but display all the others – would’t that be nice?! But I never created....

Do you know this problem? New features should be developed, but communication with the customer is difficult. People talk past each other. Requirements are unclear. Finally, when the feature is implemented, it turns out the customer actually had a different requirement: “But we thought that does something completely different!” One solution to this problem is....

The intent of this blog post, is to provide a FM to fetch older profile version interval values. Issue: Calculation of total consumption for each version is not directly retrievable in SAP. This total consumption for each version is even though available in transaction EEDM02 when versions are displayed, the same value cannot be retrieved....

You’ve already been introduced to ABAP Cloud by Boris’s Blog Post, if not, I highly recommend reading it. In this blog post, you’ll gain insight into the architectural idea of ABAP Cloud and its essential parts. If you are directly interested in the supported technical use cases and recommended technologies, you can find them in this complementary....

Some time ago I received a new challenge at work: The business requested to send a zipped file by e-mail, with password. Sending files by e-mail is not something new. But zip the file and set a password from ABAP was a challenge. After some researching, I have not found something like a function module....

Here is a quick and effective example of using Open AI in SAP environment. In the example, developer can put pseudocode in the ABAP editor as comments and pass it on to Open AI and get back Open AI’s recommendations in the same editor. Prerequisites For this demo, will utilize one of the Open AI....

This blog relates to generation of an Adobe Form via transaction code CORRHIST in SAP HANA.  Normally when selecting a document to print and output to PDF as a spool file there is no issue, but in some instances the document may fail to produce due to Adobe Document Services (ADS), encountering an error with....

Last year SAP announced the availability of the new ABAP Cloud development model in SAP S/4HANA Cloud, private edition and SAP S/4HANA. More information about that can be found in Boris Gebhardt’s blog post (“How to use Embedded Steampunk…”). Part of the announcement is the new ABAP extensibility guide. In this guide the 3-tier model was introduced to establish ABAP Cloud in SAP....

We’ve started working with Fiori elements, it’s an exciting journey and I see lots of possibilities- and challenges ahead. It’s really a group effort where you need to involve everyone from the business, UX to the dev. But one thing leaves me especially puzzled; in all examples and tutorials the CDS views are annotated with ....

This blog is to provide the steps with the screenshots on how to import contents from abapGitHub into BTP ABAP environment. Pre-requisite In BTP subscribe to ABAP cloud platform and generate the service key Install the eclipse latest version in the local machine. After that, install the add-ons for ADT and abapGitHub. Follows the steps....

Following what we have learned from other blogs for the Output Parameter Determination app, I came across something which seemed impossible at the beginning but what’s not possible with SAP? I had a requirement to setup dynamic Sender and Receiver email address in Output Parameter Determination app for Item Interest Calculation rule. As we know....

This is continuation of my blog series: ABAP Lesser Known Heroes Series – Group Column : Part 1 | SAP Blogs ABAP Lesser Known Heroes Series – Value Operator : Part 2 | SAP Blogs ABAP Lesser Known Heroes Series – TYPE RANGE OF : Part 3 | SAP Blogs ABAP Lesser Known Heroes Series....

Dealing with logos is always a big deal in Smart form. This blog shows how to generate a Smart form with a dynamic logo in SE38. The objective is by using the parameter values set dynamic logo in the report program. Requirement: Pass Purchase document number (EBELN) as input parameter and fetch Document date (BEDAT). If....

As an SAP consultant or administrator, you may be familiar with the DDIC user, which plays a key role in your SAP system. The DDIC user has extensive privileges and is responsible for managing the database and other important tasks. However, there may be times when you need to reset the password for the DDIC....

Introduction: Recently we faced a scenario where it was required to create one more accounting document ( different document type) in ECC for CRM billing scenario and for a special case. There might be one question can come up why it was at all required and believe me that we had a same question. But business....

In SAP S/4HANA Cloud, private edition and SAP S/4HANA on-premise we recommend to follow the ABAP Cloud development guidelines as much as possible and reduce the amount of classic ABAP developments to enforce upgrade stability and clean core for your systems. The 3-tier extensibility model described in the ABAP Extensibility guide provides you a blueprint how you should setup....

Todos nós sabemos que o MVC é um padrão de projeto muito consolidado no mundo Web, isso não é novidade, mas se te disser que podemos importar essa ideia para dentro do SAP e construir aplicações utilizando o MVC e tendo todos os seus benefícios?   Componentes Primeiramente devemos entender como o MVC funciona para....

Below details to add the new field in TC ME91F as per the business requirment . and it’s very easy to process we follow the below steps .   Program name : SAPDBENM structure : MEREP_OUTTAB_MESSAGES   Append the structure: MEREP_OUTTAB_MESSAGES with new fields like below Create the enhancement spot in program SAPDBENM in the FORM put_ekko.....

Since my JSON parsing class zJSON is celebrating its 10th anniversary this year and its “successor” /ui2/cl_json – in combination with /ui2/cl_data_access – now has (nearly) all the needed functions built in, it’s time to retire (the class of course, not me unfortunately). To make the farewell easier for us all, I’ve created a little....

In this blog post, I would like to share an alternative way of working with JSON, especially with huge json data. As we all experience, JSON is the most popular standard when it comes to integration, communicating to 3rd party systems. And SAP finally has good libraries to work with json(/ui2/cl_json) . But before that we....

an SAP TM Developer or Consultant. familiar with the ABAP programming language, BOPF framework. You have already faced the difficulties of GUIDs, determination/validation cycles. debugged TM ABAP code. got lost in the call stack / complexity of a debugger session. You would like to understand which BOPF action is responsible for setting a certain field?....

This blog shows the gateway project using OData service to obtain an output as a PDF by using Smart form. The objective is to pass the parameter as input and obtain an output as a PDF using Smart Form. Requirement: Pass the Invoice Document number (Belnr) as input and obtain Plant, Purchase document number, Item number,....

We are excited to announce the launch of Microsoft AI SDK for SAP ABAP. This software development kit (SDK) is designed to provide SAP ABAP developers with the tools they need to create intelligent enterprise applications using artificial intelligence (AI) technologies. Microsoft AI SDK for SAP ABAP is designed to be user-friendly, with an intuitive....

Hi and welcome to my next SAP Community blog post. This time I come to you with an easy to implement enhancement, which will forever change your lives as ABAP developers. 😉 How many times have you struggled with the ToCs cluttering your list of transports in the Versions Management view? Now there is a solution....

As customer or partner, you might want to know more about the health of your ABAP system in a cloud-centric system landscape. Now, you might already be aware that you can use SAP Cloud ALM as the central entry point to monitor your solution landscape. What’s probably less well known is that SAP Cloud ALM....

Introduction: In this article, I’ll demonstrate, how we can draw an HTML table in an E-mail body by using an E-mail template with all the styles we can do in Microsoft Word and a simple way to do this. In SAP_BASIS 750 and above releases or in S/4 systems, we have an Email template feature available....

As of ABAP release 7.91, a new syntax is available for specifying the cardinality of associations and joins in ABAP CDS and ABAP SQL. When used in the right way, it speeds up the query performance on the SAP HANA database. This blog post explains the new cardinality syntax, how it can improve query performance,....

The SAP Community is celebrating its 20th anniversary this year. We thought it would be the perfect time to not only commemorate the SAP Community but also honor the remarkable accomplishments of our fellow ABAP developers within the open-source ABAP community. What is Open-Source? Open source refers to software whose source code is made available....

In the blog series of enterprise event enablement I present to you the possible ways to produce and consume an event in SAP BTP ABAP Environment and SAP S/4 HANA Cloud, also I show you how you can create RAP Business Events in an OP2022 system. Implementation and configuration of an event in RAP only takes a few minutes and is relatively....

Introduction: Recently I have encountered a business scenario where we needed to schedule a batch job for a definite period and on a regular time interval. Furthermore, subsequent jobs should not trigger, if we needed to stop/delete a previous job in case of any error. In T-code SM36, we don’t have this functionality available. We can....

Flaky tests (aka fragile, brittle or instable tests) are tests that fail or pass intermittently without any changes to the codebase. They are a common problem in software development and can be frustrating to deal with. However, it is important to be disciplined with flaky tests because they can lead to a number of issues. Why it is important to deal....

Introduction: In this blog post we will see how we can have a file attachment title when it is over 50 characters long. If we use the CL_BCS class to build email functionality, we use the method ADD_ATTACHMENT from the class CL_DOCUMENT_BCS to attach any document. Generally, we pass all the mandatory importing parameters including (I_ATTACHMENT_SUBJECT) which....

Experts, before getting into the topic, let’s understand the motivation and purpose of the new modern extensibility options defined by the SAP for SAP S/4HANA Public, On-premise, and PCE editions. Motivation SAP S/4HANA extensibility strategy update comes with lots of benefits for traditional ABAPers and overall benefits for operating in a cloud-first environment. There is....

In my last blog post about Custom Business Objects, I illustrated some simple cases of how to execute API operations on a Custom Business Object in S/4HANA Cloud. In this follow-up post on CBO’s, I’d like to demonstrate a slightly more complex use-case that you might need to employ if you have specific customer requirements that necessitate....

Parallel processing is implemented in ABAP reports and programs, not in the background processing system itself. That means that jobs are only processed in parallel if the report that runs in a job step is programmed for parallel processing. Such reports can also process in parallel if they are started interactively. Parallel processing in OAbap....

In this blog post of my series Use ST05 to Analyze the Communication of the ABAP Work Process with External Resources, I explain how you can store traces of your applications’ communication events as long as required. Beside giving you more time for in-depth analyses, stored traces pave the way to completely new types of investigations. Examples are: Check....

When doing demos in workshops it is beneficial when participants are able “see” which buttons the presenter has pressed when working with ADT. For example when using the data preview for a table or a CDS view one will press the F8 button and this information is then nicely displayed so that the participants can easily read....

DME stands for Data Medium Exchange having T-code DMEE(DME Engine). Some business has this interface with banks which process their payment by just sending a payment file to the bank generally the file is in .xml or flat-file format which can be created by a standard process called DMEE. DMEE is a standard process that can be....

It’s been a while since I last wrote about any notable changes in my ADT Plug-in ABAP Tags. There have actually been a few releases in between this one and that last blog post I published, but only the last 4 minor releases have brought major changes with it, which all were released in the last 2 months. It’s a common occurence....

Dynamic structures and data references have been well-documented and written for more than a decade already and it’s one of the most flexible (albeit, also the most dangerous security-wise) components of SAP development. I would not be re-engineering the wheel but presenting it in different layers of a dynamic structure. In addition, I wouldn’t include....

In every SAP VIM Project I have done we have a requirement to Hide some features in VIM Workplace as it can be an Audit issue as anyone can process any Users VIM Workflow Item. Solution First lets understand the Issue. When we go to Transaction Code /OPT/VIM_WP Now we hit Switch Work View We....

This is not a blog post about convincing you to adopt a clean core policy and why it is important, but instead, this blog post is more about asking the question: Can we keep the Core Clean with RAP Model? If you’re still unfamiliar with this clean core policy, I would suggest reading through this....

Without any surprise, new issues come with new company codes. The user reported that all Revenue Recognition documents are missing the sales order number for the new specific company code. The only clue is it referenced old company codes that are working fine without issue. I use this article to track my checking steps to....

As an administrator or developer, you need to keep track of the performance of your own applications in the ABAP environment of SAP BTP. Ideally, you have an app that not only shows you when performance deteriorates, but that also allows you to drill down to the relevant requests and the associated code. In this....

Recently got one request to check why the payment advice showing incorrect company code details for the new company code. Not familiar with this process before, so write this down as a tips and hope can help someone who faces the same issues. For this case, the payment advice generation processing is following below steps:....

SAP VIM Workplace is a Transaction code similar to SAP Inbox but it has a lot of more features than SAP Inbox or My Inbox Fiori App. Sometimes the AP Team or other role wishes to see Items with different Colors. This Blog will cover the steps.   Solution Go to Transaction Code /OPT/VIM_WP  ....

Welcome to the final part of this blog series introducing abap2UI5 — an open-source project for developing standalone UI5 apps in pure ABAP. This post will focus on the technical background and summarize all the project’s key ideas by covering topics such as its architecture, codebase and compatibility. Find all the information about the project on GitHub and stay....

Dear community, I recently had to deal with an older source code because of an error. The understanding of the code was unnecessarily difficult for me due to some “strange” SY-SUBRC comparisons. The following pseudo-code will hopefully give you a better understanding of what I had to deal with. SELECT SINGLE * FROM ztable WHERE....

In this post, I would like to share my thoughts and suggestions on SOLID’s most violated principle, Single responsibility. Before we start with SOLID, I need to mention about MVC. Because they go hand in hand. You can read about applying MVC in this blog post. Previous to Abap, I had chance to work with different....

After the new plant has been created and the initial stock has been set at the plant/storage location level, the user finds that the initial stock calculation for MB5B at the Storage location level is not correct as they expected. As per the current understanding, the new plant should have zero initial stock on 01-01-0000....

Welcome to part six of this blog series introducing abap2UI5 — an open-source project for developing standalone UI5 apps in pure ABAP. This post explains how to install, configure and debug abap2UI5. Find all the information about the project on GitHub and stay up-to-date by following on Twitter. Blog Series (1/7) Introduction: Developing UI5 Apps in pure ABAP (2/7) Displaying....

During ABAP coding in many occasion we need to create dynamic table. Similar situation can be handled during creation of custom entity by using annotation @ObjectModel.dynamic Use case: In SAP S/4HANA create a custom entity that selects data from a dynamic table based on a parameter using the ABAP CDS framework Steps: Define a data type....

Curious Developer 👥: Hey Helper Bot. Anything new related to ABAP that you wanna share 🙂 Helper Bot 🤖: Hi Dev. Seems you are curious to find something new. Well I have something new for you 😊   Curious Developer 👥: Great !! What is it 🙂 Helper Bot 🤖: While writing code in ABAP, we often would like to declare immutable variables instead of mutable variables to avoid....

If the current system already has dozens or even hundreds of NAST output types, one day must adapt all those forms if related to one group of specific criteria like sales organization, then how to identify which output type has been used by the sales organization? It’s well known that general NAST output determination and....

Welcome to part five of this blog series introducing abap2UI5 — an open-source project for developing standalone UI5 apps in pure ABAP. This post explains various ways of creating views and enhancing them with Custom Controls, HTML, CSS, JavaScript and third-party libraries. Find all the information about the project on GitHub and stay up-to-date by following on Twitter. Blog Series....

Data breaches are one of the most prevalent issues in the technology space in today’s technology-driven world with easy access to information. It not only poses an information risk but often results in financial losses such as loss of trust or government penalties. For instance, in 2018, a Singapore government health tech agency was fined....

Recently got one issue that one user got the message “Deficit of SL Unrestricted-use 1.000 EA: Plant/Storage Location” during PGI for one delivery number (which contains single material) at VL02N. But it’s can be PGI for another delivery number with exactly the same material for another plant. Generally, PGI means goods have been moved from....

There is a very common problem, that while doing a post request or any kind of update containing empty dates are not allowed by default via SEGW based OData-Services. How to enable this is described here: DateTime field in OData entity – Points to take care when the UI is throwing run-time error. | SAP Blogs....

I am grateful to share a concept as my first blog. A concept where data inconsistency was fixed within a AMDP Class. So, I have gathered information and shared this Blog which would be helpful to resolve this issue with a single shot and precise solution. Providing a useful Reference Link for ABAP related development....

Welcome to part four of this blog series introducing abap2UI5 — an open-source project for developing standalone UI5 apps in pure ABAP. This post explains the functionality of four demos – MIME Editor, Table Maintenance, File Upload/Download, Charts – to see different use cases and features of abap2UI5. Find all the information about the project on GitHub and stay....

How the error looks like If you have an SAP ABAP trial installation that uses the Sybase ASE database, then it periodically stops working. Often it happens at the beginning of April. The server just hangs during the startup process and doesn’t give any errors to the terminal. The following information is displayed in the....

This blog contains the step-by-step process to update the withholding tax of an accounting document using ‘BAPI_INCOMINGINVOICE_CREATE’. We generally use to analyze a lot to update the data in withholding tax of any accounting document. We can simply create/update the withholding tax data by simply passing 2 required parameters to the FM ‘BAPI_INCOMINGINVOICE_CREATE’. The parameters....

In my introductory blog post related to ABAP SQL services (Consuming CDS View Entities Using ODBC-Based Client Tools | SAP Blogs), I described how to expose CDS objects in a SQL Service, how to install the ODBC driver for ABAP on Windows, and how to use it in Excel. In this blog, we want to....

What a trip this case has been. The ABAP RESTful Programming model isn’t exactly new, and yet in my reality it hasn’t been used much. And suddenly I saw myself facing the need for an unmanaged scenario. First off, this is what you will find here: every single step, from CDS data definitions, to behavior....

Today I am going to explain how to achieve AFE process which is used in oil and gas industries for both Upstream and Downstream. The term AFE stands for Authorization for Expenditure. This term is used for drilling and completion costs. AFE is used for approval of large Capital expenditure related to exploration, development and....

SAP delivered a dedicated component called Dispute Management within FSCM module to manage the differences (i.e., disputes) that arise during clearing of incoming payments & customer invoices. Dispute Management uses the component Case Management as a technical basis to process the dispute cases. The purpose of this post is to explore the enhancement options behind the BADI SCMG_CHNG_BFR_STR_C. This post will....

Searching for the right CDS view can be a time consuming task. A DB table / DDic View or CDS View can have hierarchically more than 8000 related views. DB table MARA has for example 8201 related views in S/4HANA 2022. Searching is also error prone, because searching based on naming does not always lead....

Clean code é um termo usado para descrever software que é fácil de ler, entender, manter e testar. Neste blog, quero resumir alguns princípios importantes e fornecer uma introdução ao tópico para iniciantes. Além disso, o blog deve se conectar ao repositório de guias de estilo, aos livros e às iniciativas atuais em que os....

Go to T-code SPPFCADM or one can go via SPRO->Cross Application Components->Reusable Objects and Functions->PPF Adapter for Output Management->Maintain PPF Settings Fig 1 Select the relevant application and click on define Action Profile and Actions Fig 2 In the screen we can see three selections Action profile->Action Definition and Processing Types Fig 3 Choose relevant....

Recently I had look on how to handle AIF error message inside the source code and enable them in the logging. Because not all end users were comfortable with /AIF/ERR to check AIF message status. However, I couldn’t find a blog where it is explained in detail, so I decided to post how I handled error....

This is the second blog post in my series of posts about SAP GUI transaction ST05. Here, I explain that you can control and customize the trace recording with filter conditions, and how this is useful for analyzing your applications’ performance. With a small case study I show this feature in action. In the introduction to....

Running a module in back-ground task means assigning the module to separate LUW. To debug our background task we need to switch on Do not process in debugging mode as shown below Once we execute our program in SE38, FM will get execute in background task and it will be assigned to a separate LUW. We can....

If you have got this error so, you are in the right place. We came across this problem after migration from EHP7 FOR SAP ERP 6.0 to S4HANA ON PREMISE  2020 while running t-code MIGO as shown below picture. DBSQL_REDIRECT_INCONSISTENCY CX_SY_SQL_REDIRECT_ERROR So, in this blog, I am going to show how to solve this error with detailed steps. The error....

Delete/Release that lock entry and start working on that object immediately     Go to T-Code SM12. Provide the user id of the person who has locked the program and hit list.   You will get the list of all locks under his id.   Identify and select your program which you want to release/unlock. Hit....

“…neque porro quisquam est, qui dolorem ipsum, quia dolor sit, amet, consectetur, adipisci velit…”¹ Campfire We have come to the last part of the series. In this last chapter: Story 5: Displaying an Unordered List Story 6: Displaying Longer Text Using a Document Object Story 5: Displaying an Unordered List Now that we learned how to....

Description: What is bgRFC. bgRFC configuration. bgRFC programming. bgRFC Monitoring.   1. What is bgRFC? The bgRFC allows application to record data that is received later by a called application. When the data is received, we must ensure that the data was transferred to the receiver either once only in any order(transactional) or once only....

The PPOM transaction is an SAP transaction that enables organizational object management. “Process and Organization Management”. This transaction allows users to create, modify, and display organizational objects such as organizational units, positions, employees, services, and teams. It is often used by HR administrators to maintain and update the organizational structure of the company in the....

As you could see in my previous blog Use DDIC Interface based Regular Custom Adobe Form We have generated a barcode for MATNR with data length of 40 CHAR.   Challenge: The value is generally coming in 10 CHAR or 18 CHAR (ECC length of MATNR) and as per that BARCODE generation covers the provided width, in....

In this Blog, I would like to present some code snippets, which could help others in order to consume Token based REST APIs in ABAP.   Obtaining the relevant details in order to get the Token In order to get the Token, details like Application ID, Application Secret, Client ID and the Token Endpoint must....

In today’s fast-paced business environment, companies need to be agile and responsive to rapidly changing market conditions. This requires seamless integration and communication between different business applications and systems. In the SAP BTP landscape, Remote Function Call (RFC) and Business Application Programming Interface (BAPI) are the traditional ways to integrate applications, but Event Driven Architecture....

As you for sure already know, ABAP Cloud was announced at SAP TechEd 2022 and was part of the Juergen Mueller’s day 1 and Philipp Herzig’s day 2  keynotes. ABAP Cloud is the ABAP development model to build cloud-ready business apps, services, and extensions on the SAP products SAP BTP ABAP Environment, SAP S/4HANA Cloud, public edition, and SAP....

This blog post in my series of posts related to SAP GUI transaction ST05 (introduced in Use ST05 to Analyze the Communication of the ABAP Work Process with External Resources) explains the tool’s inner workings and configuration options, and how they affect its behavior. With this knowledge, you can avoid some pitfalls that otherwise would make your performance....

In this blog post, I would like to show you how to validate data on maintenance view screen before save. Maintenance views are very useful interfaces to create a viewer and editor for database tables. And with events and search helps, we can make them even more useful. In this blog post, we will create....

Hello SAP Community Members, My Name is Zeshan Shafaqat. I’m Expert in SAP BI/BW and SAP Analytics Cloud. I found many peoples having trouble that how can we create an ABAP package for develop CDS Views. In this Blog, I show you how can you create an ABAP package. Short Video:     Conclusion After....

Hello SAP Community Members, My Name is Zeshan Shafaqat. I’m Expert in SAP BI/BW and SAP Analytics Cloud. I found many peoples having trouble that how can we add HANA servers in eclipse to develop CDS Views. In this Blog, I show you how can you add HANA servers and develop CDS Views using eclipse.....

Hello SAP Community Members, My Name is Zeshan Shafaqat. I’m Expert in SAP BI/BW and SAP Analytics Cloud. I found many peoples having trouble that how can we fix abap communication layer not configured error from eclipse. In this Blog, I show you how can you fix abap communication layer not configured error from eclipse.....

Sometimes when you want to find a text it may not appear on usage list results. In those cases, you can use following transaction codes/reports to search string code blocks, including enhancements. Transaction EWK1 – Find text in code, including badi/enhancements Transaction CODE_SCANNER Report(SE38) RS_ABAP_SOURCE_SCAN   Bonus : How to find related CDS views hierarchically by Alwin van de Put EWK1  ....

If you have a scnerio that you want to call BD10 , so that you could create idocs for only those materials which are changed alongwith full details and same for customer master(BD12). Then below code can help you fasten the build process.   A class is created with 2 methods , first is to....

In this beginner blog post we are going to see how we can create Factory Actions in ABAP Restful Application Programming Model.   Ref: https://help.sap.com/doc/abapdocu_cp_index_htm/CLOUD/en-US/index.htm?file=abenbdl_action_nonfactory.htm     NOTE: We are using same application code base which we have used to demo Large Object (LOB) or File Upload Blog. Refer below URL: https://blogs.sap.com/2023/02/13/abap-restful-application-programming-model-rap-abap-rap-file-upload-large-objects-lob/   Before starting on....

Remote enabled function modules (RFCs) can be a bit weird Way back when, I worked on the case of the mysteriously filled parameters. Eventually I caught the culprit – when you call an RFC FM that has optional parameters, and you don’t fill those parameters, the RFC engine fills them anyway with default values. Which....

In the previous blog post, I covered my experience with creating a CDS data model and filling in some data. In this post, I’ll continue with the tutorials to develop a Fiori app using the ABAP RESTful Application Programming Model. I’ll also share key takeaways from my experience defining and exposing a CDS-based travel data model. CDS- Based Data....

SAP Fiori provides an easier, more intuitive way to run SAP applications in your organization.For SAP Projects we often deal with custom solutions/enhancements.This blog will help to create the Fiori tile for custom transaction codes or custom reports for sap object. This will be divided in mainly four parts: Create Semantic Object Create Catalog Create....

Ranges in ABAP are similar to the internal table that saves group values or value intervals and has various applications like passing values in select Query and submitting reports with values. Sets are used for saving the values to avoid hard coding in the program, where values can be changed in any system  weather modifiable....

I would like to explain about how to Attach File to ODATA . This blog Post is mainly useful for beginners. Please follow the below steps to Create attachments. Step: 1 Go to SEGW T-code and create new project. Click on Create button .The Popup will open. Step:2 Give the ‘Project name’ and ‘Description’ ‘Package’ and click on Continue.....

When I need something, I look for it in the nearest place. SAP standard codes are my main resource when it comes to ABAP development. That’s why I usually lose myself in SAP codes. It’s a kind of journey. The good thing is, I always get something useful from SAP at the end of every....

Messages in ABAP as in all other programming languages are used to describe what is happening during the code execution to the programmer or user. They were first invented acting as dialog messages to display short information and handle incorrect user inputs during the classic dynpro processing.  Here, an exception situation usually required the direct....

As explored in the previous chapter, we have a powerful function module that we can use for different scenarios. Now that we have discovered it, let’s build a campfire and tell some stories. In this chapter: Story 1: Changing the Popup Icon Story 2: Customizing the Icons and Quick Info of Buttons Story 1: Changing the Popup....

I know I told very simple stories in the previous chapter. Now let’s get into some details. I think this chapter is the most exciting, at least for me. In this chapter: Different Code Versions Story 3: Splitting Text into 48-Char Sentences and Starting on New Lines Story 4: Splitting Text into 57-Char Sentences and Starting on....

Classic ABAP offers untyped literals , which are interpreted as either character literals or as numeric literals. The new kids on the block are typed literals. They are available in almost all data types, but are only supported as operands in  ABAP SQL and ABAP CDS. This blog post provides an overview of literals in....

Switching from a conventional middleware to direct consumption of a RESTful API in Azure Cloud requires me to design and build a new SAP program .   Business scenario  SAP Invoices are to be sent out to Microsoft Dynamics AX Cloud to create local invoices in AX. The invoices from SAP need to be stored....

SAP provides multiple ways to interact or communicate with external systems using techniques like OData, RFCs, etc. In today’s IT era, APIs are the top priority when choosing communication mechanisms. SAP provides the standard class CL_REST_RESOURCE, which provides REST methods like GET, PUT, POST, DELETE, etc. In this blog, I have explained how to accept....

Hari Boda is working as a SAP Lead BW-HANA consultant at TekLink Software Pvt  Ltd and has worked on multiple assignments in BW-HANA analytics  domain. Brief about issue: Amount in certain currency is multiplied by 100 in bex report in other terms the decimal places in a query is returning wrong values, sometimes the amount....

How to block banking information in SAP S/4HANA applications? Introduction A couple of years ago we did a greenfield implementation of S4/HANA. Sometime after go-live there was concern about sensitive banking information being shown. The business was aware of costly solutions being offered but wanted to save the money and see if we could do....

Welcome back to our ongoing series on getting to know RAP! In the previous blog post, we went over the steps on how to create a CDS data model and how to project this data into an OData service. Additionally, we also showed how to consume this data model using the SAP Fiori elements app preview. In this blog....

One of simple tasks that I had to do was to retrieve DP documents from OpenText Archive server using Archive link functions in order to attach them into GOS email services. I found lots of examples of reading data from Archive link and all of them required writing files on a physical folder to attach....

I had a chance to enhance GOS email service from my suggestion to utilize already activated GOS functionality instead of building new object. GOS has been activated at lots of SAP transactions in my system but only specific Tcode needs to be enhanced. The enhancement point of the requirement was “Send” email -> “Send Object....

Scenario: There are many times when we need to translate some text from one language to another based on business demands during the runtime and display it over the UI. For this, I came up with a Runtime Language Solution using existing API resources. I have developed 2 solutions as below Using Google Translate API for which Google API Licence is pre-requisite and cost more if customer doesn’t alright have it. Using SAP Translation Hub API for which SAP Translation Hub Licence is required and API Key is included with S/4HANA licence. I will write 2 blogs separately for both the solutions. In this blog, I will explain the first option using Google Translation API step by step. Step 1: Set Up Your Google Cloud Project and Obtain API Key The first step in integrating the Google Translation API is to set up a Google Cloud Project. This can be done by visiting the Google Cloud Console and creating a new project. After setting up the project, you will need to obtain an API key, which can be done by navigating to the “Credentials” section of the Google Cloud Console. Visit the Google Cloud Console at https://console.cloud.google.com/ Click on the project drop-down and select or create the project that you want to use for this integration. Click on the hamburger menu and select APIs & Services > Library. Search for Google Cloud Translation API and click on the API to open its overview page. Click on the Enable button to enable the API for your project. Go to the API credentials page. Click on the Create credentials button and select API key. The API key will be displayed on the API credentials page. Note down this API key as it will be used in the SAP ABAP code. Step 2: Create a New SAP ABAP Project The next step is to create a new SAP ABAP project. This can be done by navigating to the SAP ABAP development environment and creating a new project. Log in to your SAP system with a user that has sufficient authorisation to create ABAP programs. Navigate to the ABAP Development workbench (transaction SE80). In the ABAP workbench, click on the Create button and select Package. Enter a descriptive name for the package and click on the Create button. Right-click on the package and select Create > Function Group. Enter a descriptive name for the function group and click on the Create button. Right-click on the function group and select Create > Function Module. Step 3: Define the Function Module Once you have created your SAP ABAP project, you need to define the function module. To do this, navigate to the ABAP Dictionary and create a new function module. In the function module, you will need to specify the parameters and the return values. Enter a descriptive name for the function module. In the Function module dialog, click on the Import tab. Define the input parameters for the function module. For example: IMPORTING IV_TEXT TYPE STRING, IV_SOURCE_LANGUAGE TYPE STRING, IV_TARGET_LANGUAGE TYPE STRING. In the Function module dialog, click on the Export tab. Define the output parameters for the function module. For example: EXPORTING EV_TRANSLATED_TEXT TYPE STRING. Save the function module. Step 4: Write the Code for the Function Module The next step is to write the code for the function module. The code will utilise the Google Translation API to translate the text from one language to another. To do this, you will need to make an HTTP request to the Google Translation API and pass in the text to be translated, along with the source and target languages. Please look for the FM code into the Appendix 1 at the end of the blog. Step 5: Test the Function Module Once you have written the code for the function module, you can test it to ensure it works as expected. To do this, you can run the function module in the SAP ABAP development environment and verify that it returns the expected results. Save and activate the function module. In the ABAP workbench, click on the Test button to open the Function Builder. Enter test input values for the function module and click on the Test button. Check the test output values to ensure that the integration is working as expected. And that’s it! You have successfully integrated the Google Translation API into your SAP ABAP system. In conclusion, integrating the Google Translation API into SAP ABAP is a simple and straightforward process. With just a few steps, you can add a new level of functionality to your SAP ABAP applications, making it easier for businesses with a global presence to communicate with their customers in multiple languages. Appendix 1: **************************************************************************************************** Appendix 1: Sample code: **************************************************************************************************** * Define the data for the API request data: lv_url type string value ‘https://translation.googleapis.com/language/translate/v2’, lv_key type string value ‘YOUR_API_KEY’, lv_q type string value iv_text, lv_source type string value iv_source_language, lv_target type string value iv_target_language, lv_param type string, lv_response type string. * Build the API request URL concatenate lv_url ‘?q=’ lv_q ‘&source=’ lv_source ‘&target=’ lv_target ‘&key=’ lv_key into lv_param. * Call the API and receive the response call method cl_http_client=>create_by_url exporting url = lv_param importing client = lv_client exceptions argument_not_found = 1 plugin_not_active = 2 internal_error = 3 others = 4. call method lv_client->request->set_method exporting method = ‘GET’. call method lv_client->send exceptions http_communication_failure = 1 http_invalid_state = 2. call method lv_client->receive exceptions http_communication_failure = 1 http_invalid_state = 2. lv_response = lv_client->response->get_cdata( ). * Extract the translated text from the response data(lv_json) = cl_sxml_string_reader=>from_string( lv_response ). data(lv_data) = cl_sxml_table_reader=>from_json( lv_json ). ev_translated_text = lv_data[ ‘data’ ]-[‘translations’ ]-0-[‘translatedText’ ]. * Close the HTTP client connection call method lv_client->close. Please note that you will need to replace YOUR_API_KEY, YOUR_TEXT_TO_BE_TRANSLATED, YOUR_SOURCE_LANGUAGE, and YOUR_TARGET_LANGUAGE with your own values. You may also need to modify the code to parse the response according to your specific needs. Please share your feedback or comments down below if you have any suggestions. In the next blog, I will be sharing the second solution i.e. Runtime Translation Solution using SAP Translation Hub API, which will be live soon. Thank you and keep learning!

In an Introduction to Messages in ABAP blog post, I already explained the basics of messaging concepts. Here, I would like to continiue further with the evolution of messaging in ABAP to the new form. From release 7.52, short new form USING MESSAGE of statement RAISE EXCEPTION with the addition MESSAGE makes it possible to pass the....

There are many FM’s to get tax details from external system. Few of them are below and what are details to pass to get exact tax details CALCULATE_TAX_FROM_GROSSAMOUNT Parameters to pass: I_BUKRS – Company Code I_MWSKZ – Tax Code I_TXJCD – Tax Jurisdiction Code I_WAERS – Currency I_WRBTR – Amount CALCULATE_TAX_FROM_NET_AMOUNT Parameters to pass: I_BUKRS....

If for any reason, you have a fairly detailed segmentation of BP types and activities in MDG, there’s a chance you have had to copy over BRF+ workflows. Now, this is not a terribly difficult thing to do as the Import/Export functionality in BRF+ is a great feature. However minor changes can be a headache....

This is just an executable program to help developers quickly duplicate an existing reservation (transaction codes MB21, MB22, MB23), and see how parameters are filled. Just used it in ECC 6.0. EDIT: the code is proposed in this GitHub repository. If you want to improve the code below, please contribute in GitHub. EDIT: by default the....

This is part of the Easy way to write algorithms in ABAP: Series 01. For more algorithms, please check the main blog-post. Problem A permutation of an array of integers is an arrangement of its members into a sequence or linear order. For example, for arr = [1,2,3], the following are all the permutations of arr: [1,2,3], [1,3,2], [2, 1, 3],....

ChatGPT has become big. If the internet is something to go by, it is THE NEXT BIG THING, and I mean like Industry 4.0 + 1. Whatever that might be – Industry 5.0, Internet 5.0, Conversations 5.0? I’ll leave the naming to marketing experts. We have all seen hundreds of articles on the internet on....

Someone had posted a blog post last month but it was removed (I don’t know why), but I had spent lot of time to verify the result of ChatGPT, so I think it’s useful to post my experience (again). ChatGPT was queried to converting this algorithm to group anagrams to ABAP: class Solution { public....

DevOps for SAP is having a moment. More and more elite organizations and prominent developers are embracing the benefits that come from applying modern development principles to ABAP development. The journey is not easy, but it is worthwhile, and taking it one step at a time makes it significantly easier. One small step is starting....

To the existing SAP development audience – git and abapGit can be curious things. Why did SAP ABAP need to have git when CTS has reliably moved and tracked changes across SAP environments for years? Obviously it’s useful for open source ABAP – but really what else? In case you missed it: abapGit can be....

A null value is a special value returned by a database to indicate an undefined value or result. There are no special null values in ABAP, and it’s not easy to add such a feature to the language these days. The value range of a data type takes up the entire memory space of its....

You have the requirement to call an external scalable REST micro-service. Unfortunately the system needs a few 100ms to respond and you have to call the system multiple times with different parameters. As the code is called by end users you want to parallelize the REST calls. So what is the “normal” solution for that....

So recently in a program, I am trying to clear couple of columns in an internal table. So instead of doing it the regular old way of looping into reference and clearing those fields, I used the new ABAP to do that job. Don’t reason with me on this, I am addicted to the new....

The Data Analysis Tool is a html+javascript based utility used by administrators, tuning experts, support engineers and consultants to create professional graphs based various types of input data. The tool is fully automatic and significantly faster than Excel at creating scatterplots, bar charts and line plots together with histogram analysis for almost any column separated....

Usually, you can find plenty of articles and blogs about the TDD and how to write or use TDD approach in your project development. But this blog is not about it. Well actually it is, but here I want to grab your attention to the other side of the coin. Namely, to have dynamic data....

Welcome back to the series! We’re already halfway through it, and I hope you’re finding it informative and helpful. In our previous blog post, we walked through the process of creating a CDS behavior definition for a managed travel business object. We covered the steps to define the behavior for the travel entity, as well as creating....

Typically, SAP Systems are configured in a three-tier configuration: the presentation tier or layer (FIORI, SAP GUI, or HTML browser), the application layer (SAP Netweaver ABAP/Java), and the storage/database tier. The Presentation Tier: This is the user interface layer and is responsible for displaying data to the user and allowing the user to interact with....

From release 7.57, the new addition ELSE UNASSIGN can be specified in various cases of the statement ASSIGN, like dynamic assignments/access, assignments of dynamic components or table expressions. An assignment passes the content of a source to a target data object. The general syntax is ASSIGN  mem_area  TO  <fs>  [ELSE UNASSIGN]. Which assigns the memory area specified using mem_area to....

This blog series introduces the abap2UI5 Project. It is an open source project which helps you develop standalone UI5 applications in pure ABAP. All project information can be found here: Repository on GitHub News on Twitter General Idea Abap2UI5 gives you a cloud/on-premise ready and non-sap-gui way to create UI5 apps in pure ABAP without using....

This is the second blog post of a blog series which introduces the abap2UI5 Project. It focuses on the output of lists and tables. All project information can be found on GitHub and Twitter: Repository and Installation with ABAPGit News, Feedback and Updates on Twitter Blog Series (1/3) ABAP2UI5 – Development of UI5 Apps in pure....

Recently there was a question in the german DSAG Community if there is a trick to insert more lines at once into the table maintenance dialog than there are on the screen. Short answer: There isn’t any easy way to do this. Before I dig deeper into this topic and provide some solutions and workarounds,....

This is the first blog post in a series of posts that cover my SAP GUI transaction ST05. Here, I show the straightforward use of the tool to get you started for ad hoc performance analyses of your business applications. If you have not yet done so, please read the introductory post Use ST05 to Monitor the....

In my previous blog posts Measure your Application’s Performance and Resource Consumption: Evaluate Statistics Records with Transaction STATS and Use Transaction STATS_FE to Analyze the Performance of your Web Application, I have put you as a software developer in charge of your business applications’ performance. Here, performance encompasses end-to-end response time and scalability, which is impacted by your application’s....

​The most awaited feature was released for SAP BTP – ABAPEnvironment in 2302. It is none other than ‘Side effects in CDS Behavior Definition’. I have been waiting for this feature and can’t stop myself from trying it. I thought the syntax would be complicated and was surprised when I realized they were so simple....

In this blog post, we will learn to activate AbapGit on SAP NetWeaver Developer Edition 7.52 with an alternate way of installing server certificates and ensuring AbapGit is working as it should be. Recently, i had the pleasure of installing the SAP NetWeaver Developer Edition 7.52 on my PC. The first thing i wanted was to have backup of....

The reason for writing this post is to provide an overview of how interfaces and OOP concepts can be used in SAP ABAP. Many beginner-level developers working with SAP ABAP may have experience with procedural programming. They may need to be more familiar with OOP concepts like interfaces. By providing a clear explanation of interfaces....

Most SAP Systems are configured in a three-tier configuration with multiple application servers. For a given peak number of users/transactions and a resulting peak usage of system resources CPU/Memory/Work Processes a frequent question asked is how to configure the landscape; is it better to use only a few big application servers or rather many small....

In a typical ABAP stack system (ECC/BW/CRM…) each month 1000s of different transactions are executed. Often the responsible system administrators and tuning experts ask the question, if is possible to identify the transactions and reports which show a performance degradation. Due to large number of different transactions, tracing all those transactions is not an option.....

I’ve been searching for a solution for a while now, but I’ve been unable to find one that meets my requirements, even after consulting multiple blogs. It took some effort, but I’ve finally found a solution that fits my needs. Letsss goo(Nervously excited) Introduction- Dealing with multiple rows of data can be challenging, especially when....

Here’s a little bit of code: REPORT. DATA a TYPE f. DATA b TYPE f. a = '0.1'. b = '0.2'. DATA c TYPE f. c = a + b. WRITE / c. Output is… 3,0000000000000004E-01 (i.e. 0.300 000 000 000 000 04) Add a couple more WRITE statements and you might begin to see....

Searching User Exits and BADI In this blog, we will look at another way to debug and find a place to enhance custom error message. Also, I am going to explain the problem we faced and the solution to it. P.S You can read my previous blog about the enhancement for Fiori. Problem: The customer wants to....

The article will let you go through purchase order email when an approval workflow is triggered at the time of release purchase order.   This article will include following: 1. Purchase Order PDF Conversion 2. Create HTML Content of Purchase Order Email 3. Send Purchse Order Email with Purchase Order Document in PDF format  ....

Users get the below message for all adobe form generation even for the SAP standard DEMO program: FP_TEST_IA_01 since this Monday. Processing exception during a “UsageRights” operation. com. Adobe.Processing Exception: The credential with alias: Reader Rights has expired After checking the details from CX_FP_RUNTIME of FUNCTION ‘FPCOMP_CREATE_PDX’ at include program LFPCOMPFRM (check this), find this could be caused by  ADS....

QR (Quick Response) codes are two-dimensional barcodes that are widely used for storing and sharing information. They are particularly useful because they can be read quickly and easily by a smartphone or other device equipped with a camera and a QR code reader app. If we can add a QR code to our app/oData call,....

Dear Community, IDoc is the abbreviation for “Intermediate Document”, a widley used SAP standard to exchange business data between systems (mostly SAP software based). With an implementation of the classic Business Add-in (BAdI) IDOC_DATA_MAPPER, you can change values in outbound and inbound IDocs via ABAP programming. Here are some tips and tricks around implementing this BAdI. Check....

In this post blog, I will show you how change to line items in asset document for the asset accounting system that allows you to differentiate accounts based on fixed asset type and cost center. This method can be applied to SAP S/4HANA version 1909 and later. In order to make necessary changes we need....

Happy New Year! I hope you all had a wonderful holiday season with friends, family, and colleagues. As an ABAP developer, we are always looking for new and better ways to create robust and scalable applications. Recently, I have been exploring the ABAP RESTful Application Programming Model (RAP) and I am impressed by its capabilities....

This Blog post is to share a ABAP Utility Tcode YOSQL to test complex OpenSQLs from inside SAPGUI. Most often you would use Eclipse ADT SQLCONSOLE but once in a while this will be very useful for 2 main reasons: 1. Excel download as it takes output using SALV grid 2. WITH  subqueries or CTE Common Table Expressions are fully....

For over ten years now every month on the SAP Community Site someone publishes a blog about how to upload/download data from EXCEL to ABAP. So, I am going to start doing this as well – only I will always be talking about ABAP2XLSX as the preferred mechanism to do this. Blogs from Last ten....

After completing a few cycles of form remediation which includes hundreds of SAP script forms, I keep trying to prepare some tools for self-check and quick validation of SAP script forms. In this article, I wrap up various programs for such purposes.   <1> Script Form Break-Down Tools by Michael Keller 1. It can provide....

TM transactional documents do have numbers, which are typically drawn from an internal number range. This number range is finite, and the status should be monitored. This note describes how to monitor the current status using the report RSNUMHOT. Important: As most other SAP number ranges, the TM number ranges are defined as rolling, meaning, that this needs....

This blog explains about down payment requests, which SAP Business ByDesign does not support down payment invoices, but down payment requests are supported. For more information about the down payment process and business background, refer, Down Payments Received in Financials. The workaround described in this document was created/designed based on project experience in Bosnia, Croatia, and....

Motivation and Functionality In this blog we want to show how ABAP Unit-Tests can be run from a CI/CD pipeline. This is relevant for all applications where automated deployment shall be achieved. We run the respective ABAP Unit-Tests through automatically triggered Azure DevOps pipelines. Graphically displayed test results are also desired to be obtained. In the following, I will start....

A new version of abap2UI5 is released! You now have the complete freedom to create views making it possible to develop UI5 apps for a lot of different use cases. Check out this new blog post. Introduction In ABAP Cloud there is no SAP GUI anymore and one thing i miss is a lot is the former....

Introduction: In SAP CRM actions, we don’t have any option to configure, develop and print Adobe form. It allows printing of Smart Forms only. But we can tweak system to make this feature possible, by doing some config/coding changes. In SPRO, we have Actions available which gets configured with all the required business functionality. For the purposes of this....

When sometimes, we want to get inside the debug screen but ‘/h’ is not always work, for example in the pop-up screen. SAP do not allow you to write the t-code ‘/h’ so for this kind of situations..   Drag&Drop Debugger is the best way to solve !! Let’s talk how can we use it.....

This is the second post in this series. Here is the previous blog post: [Get to Know RAP: Introduction] This blog post also follows up with a video that walks you through the tutorial that I will be going over. Introduction As mentioned in the previous blog post our goal is to develop a Fiori app using the....