Friday 30 December 2022

Send XLSX file with multiple tabs in zip format via E-mail

Objective

To send ‘.XLSX’ file type with multiple sheets in single excel file as attachment via E-mail

Context

Using OLE logic, we can achieve this requirement and the attachment will be an ‘.XLS’ file. But our client system has some trust center setting enabled in their system which exempts them from opening .XLS file. So, we have to send the file in .XLSX file format for them to open. Although, we have abap2xlsx to deal with such requirements, this blog tries to achieve this without using abap2xlsx, and the attachment will be sent in ZIP format with one single .XLSX file as attachment in E-mail.

Wednesday 28 December 2022

How To Create A Rest Api With SAP Abap And Apply MVC1 Routing

In this blog post, I would like show how to create Rest api and how to apply MVC1 routing to handle different request simply from a controller class.

For that, first we will create handler and controller class for rest structure. Then we will add mvc1 controller class and model class to process business logic.

And finally we will create a service to handle rest requests.

Friday 23 December 2022

Displaying the signature of a method in ADT permanently

I’m sure you often have the situation that you are implementing a method in ABAP with ADT and you need information about the signature and the types that are used in the signature.

The standard answer for this is the Element info (Shortcut F2) on the method name.

SAP ABAP Development, SAP ABAP Career, SAP ABAP Skills, SAP ABAP Jobs, SAP ABAP Tutorial and Materials, SAP ABAP Certification

Wednesday 21 December 2022

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

In this beginner blog post we are going to see how we can use Side Effects in ABAP Restful Application Programming Model.

What is Side Effects:


When user makes a change to a field on UI, and this change effect the content of other field, this behavior is called Side Effect.

Annotation to Implement Side Effects:


Some more annotation properties are available but for this demo we are only using below 2 Annotations properties.

Monday 19 December 2022

Send ZIP File Filled with PDF Files in OData, Media Handling in OData

Introduction


Recently I got a request for getting multiple PDFs from the service that was already in use, and I was already using ‘ GET_STREAM ‘ method to return a single PDF. Facing this request, the most quick and usable solution I thought was why not I am adding multiple PDFs into a single ZIP File, and then here we are.

Friday 16 December 2022

ABAP Units with Test Data Container

Introduction – Test Data Container


A Test Data Container (hence its is referred as TDC) is an E-CATT Test Object. It is defined in the test repository. It has the following:

– Technical Attributes – Information about the container like description, package assignment etc.
– Parameters – Name of the variable through which test data is passed to test the ABAP object.
– Variants – Different combinations of the test data/values to be used for parameters

Wednesday 14 December 2022

How to Change Screen Field Properties in Purchase Requisitions

In this post blog, I will show you how to change screen field properties and how to hide screen fields/tabs on purchase requisitions screens.(ME51N, ME52N, ME53N)

This blog post specifically will cover showing, hiding fields which can not be customized by using SPRO customizing settings.

In additional, it works on S/4HANA Cloud too.

In our example, I’ll show you, hiding the fields which are ‘Expected Value’ and ‘Overall Limit’ fields.

Friday 9 December 2022

Eclipse ADT & SAP NetWeaver AS ABAP Developer Edition Connection

In this post, I would like to show how to connect Eclipse ADT to SAP NetWeaver AS ABAP Developer Edition 7.52 SP04 on Ubuntu, which is running on Oracle Virtual box.

For Eclipse ADT installation you check that link.

With steps below you can connect to SAP from Eclipse;

Step 1 – Check your SAP GUI connection

Wednesday 7 December 2022

How to Configure Legal Numbering for Customer Invoices for a Non-Localized Country

This blog outlines Configuring Legal ID in Cloud Application Studio at detailed level over the existing model in SAP Business ByDesign.

Configuration of Legal ID in SAP Business ByDesign solution is outlined as following.

1. The Fine-Tuning activity to maintain “Document Numbering Formats for Customer Invoicing” is accessible in the SAP Business ByDesign, Business Configuration WorkCentre

Friday 2 December 2022

Quick check when IDOC not generated for FIDCC2

Once IDOC has not been generated correctly for message types like FIDCC2, especially for new company code at rollout project. The quickest way to check this:

SAP ABAP Career, SAP ABAP Tutorial and Materials, SAP ABAP Guides, SAP ABAP Learning, SAP ABAP Skills, SAP ABAP Jobs, SAP ABAP Certification

Wednesday 30 November 2022

Adapt UI in SAP S/4HANA Cloud Using SAP Screen Personas

In this blog I am going to show you Adapt Ui feature for S/4Hana cloud, Private-Cloud and how outbound delivery classical application screen will be turn into simple informative one.

Let’s start..


With respective to Screen Personas, SAP S/4HANA and SAP S/4HANA Cloud are different solutions  to address different customer needs, in the context of the user experience and adapting the UI they’re almost identical.

SAP Screen Personas, which is the technology that powers the Adapt UI capabilities for classic applications in S/4HANA Cloud. There are thousands of applications you can use to run your business. some of these apps are based on SAPUI5. These are often called Fiori apps. SAP Fiori is the standard UX for S/4HANA.

Monday 28 November 2022

ABAP RAP – Global Authorization

In this beginner blog post we are going to see how we can use Authorizations (Global Authorization) in ABAP Restful Application Programming Model.

What is Authorization in RAP


Authorization control in RAP protects your business object against unauthorized access and operations (Create, Update, Delete). Authorization control is always relevant when the permission to execute an operation depends on the role.

In RAP each read or modify request can be checked via authorization objects against user roles before the request is finally executed.

Tuesday 22 November 2022

Template of concatenate internal table as excel attachment

There are too many articles that talk about excel attachments, no matter whether ABAP2XLS or using cl_salv_table->to_xml, etc. Sometimes no need to use a gun to shoot a mosquito when the gun & bullet are not ready.

Here is just one small code to quickly send one internal table as an excel file, which will be used as a template for myself. I would like to hide this blog if here provides this functionality. Please ignore this and sorry if it causes duplicated subjects& content…

Friday 18 November 2022

Excel File Read From Application Server, Move From One Folder To Another Folder And Delete From Folder

BUSINESS REQUIRNMENT

Read Exel file from Application Server(T Code – AL11) put it to internal table , Move file from
one folder to other folder and delete file from folder.

EXCEL UPLOAD FORMAT DEMO

SAP ABAP Career, SAP ABAP Tutorial and Materials, SAP ABAP Guides, SAP ABAP Skills, SAP ABAP Jobs, SAP ABAP Exam

Wednesday 16 November 2022

ABAP RAP – Implement Prechecks in ABAP Restful Application Programming

In this beginner blog post we are going to see how we can use Prechecks in ABAP Restful Application Programming Model.

What is Prechecks


Prechecks is used to validate data before it can reach to Transactional Buffer.
You can prevent invalid changes from reaching the transactional buffer by prechecking modify operations.

Prechecks are suggested to use when we need to validate value of one control with another control on UI. More important is when controls are getting values by a complex backend logic / joins etc.

Instead of validating values at Save operation when Invalid values are already reached to Transactional Buffer is not a good Idea.

Monday 14 November 2022

S/4 Hana Enforcement Actions and Debt Set Relationships

Introduction


The purpose of this article is to explore the relationship that exists between a DCM Debt Set and an enforcement action. These new entities within S/4 Hana essentially act as an adapter or bridge between the worlds of CRM and PSCD. The new capabilities of the Debt Set and Enforcement actions means that complex transactional processing can be managed by one order object entities with the added benefit of linkages to financial processing where appropriate.

Debt Set

A Debt Set entity has been introduced which essentially acts as a container to group like fica items for a specific debtor together. A debt set may also be categorised by utilising the concept of a debt set type.

Friday 11 November 2022

Create CDS Value Help or F4 help for In App Field Custom Fields

I was searching for different blogs for this F4 help but unfortunately couldn’t find a detailed blog on this. So, I felt to start writing the same for all technical developers.

For creation of CDS view we have 3 main interface view to be created.

Step 1.

First create a CDS view for Text table.

Use Object model annotations like @ObjectModel.representativeKey, @ObjectModel.dataCategory, @ObjectModel.usageType.dataClass, @ObjectModel.usageType.serviceQuality, @ObjectModel.usageType.sizeCategory, @ObjectModel.supportedCapabilities.

Wednesday 9 November 2022

Creation of IDoc extension for Basic type INVOIC01 – Step by step and real Business Scenario

In this blog post, I will describe the steps I have followed to create an extension for the basic type INVOIC01. I will also illustrate the actual business requirement and what was requested.

First, I know that there are a lot of materials out there for how to create an IDoc extension and I won’t get into very tiny details and will focus more on my problem.

So, to give a general background in transaction NACE we have done the configuration for Application V3 (Billing), OutputType (ZRDO), and Processing routines: Medium – EDI, Program – RSNASTED, FORM routine – EDI_PROCESSING. But surely you know this part well. Anyway here is a print screen:

Tuesday 8 November 2022

Creating Dynamic Table and Dynamic Select

In this blog, I will talk about the necessary methods and definitions for the use of dynamic tables in a program, dynamic select and how to perform operations on dynamic table. I hope it will be an example for you to create a dynamic table. Before start, dynamic internal table is an internal table with variable rows and columns which can be defined during run time.

Definitions

For dynamic table, we create Field-symbol. Remember that “Field symbols can be declared in any procedure and in the global declaration part of an ABAP program, but not in the declaration part of a class or an interface.”

Monday 7 November 2022

Block the user if the user not logged more than 90 days using BAPI_USER_CHANGE

Block the user if the user not logged more than 90 days using BAPI_USER_CHANGE and validity date will updated with current date.

1. Give the import parameters as number of days and test flag

SAP ABAP Career, SAP ABAP Tutorial and Material, SAP ABAP Learning, SAP ABAP Skills, SAP ABAP Jobs

Saturday 5 November 2022

SAP Analytics Clouds Stories with S/4HANA Live CDS – Time Variance

Purpose


This blog explains the typical issues developers have trying enable Time Variance charts in SAP Analytics Cloud (SAC) based on CDS-Views and how to solve this by adding additional fields and annotations to the Cube and Query

Baseline CDS View:


Every CDS which is built to do reporting in SAC, will have at least one date field, and in most dashboards the users want to see a time-based chart for their measures.

Saturday 22 October 2022

How to Add a Custom Field to QA11

I am a SAP ABAP consultant and recently I have been requested to make enhancements to QA11 screen. After some research, I could manage to put things together. And I thought, it is worth creating a complete tutorial on that topic.

Therefore, in this article, I would to share with you how to add the material group field to the QA11 screen and QALS table.

We need to complete following steps;

◉ Add our custom Z field to structure
◉ We create a Function Group.
    ◉ We are creating a screen.
    ◉ We write the input and output codes.
    ◉ We create functions.
◉ We are creating BAdI implementation.
    ◉ We enter the filter value and screen information.
    ◉ We write the GET_DATA and PUT_DATA methods.

Friday 21 October 2022

Creating Change Documents for a Specific Field of a Database Table

In this blog i will try to demonstrate how you can track any change in a particular field of a database table. As you may already know, in some cases it is very crucial to see the change history of fields. So that we can analyze any problem easier and also, we can see what happened before the case that we are trying to analyze and find out the root cause.

Let’s start with creating a very simple database table and determine one of the fields inside it as trackable. By this way the changes (including creation and deletion) will be recorded in a particular table. (We will see which table it is 😊)

I won’t bother you with creating a table step by step and I will just display the database table I have created. ( Below picture ↓ )

Thursday 20 October 2022

Gobang Game write in ABAP OO!

This is a small game, Gobang, you can play with an AI(not very smart).

Just write it for learning abap oo and new Syntax.

If any question, please leave a message.

SAP ABAP OOP, SAP ABAP Career, SAP ABAP Skills, SAP ABAP Jobs, SAP ABAP Tutorial and Materials, SAP ABAP Guides, SAP ABAP Certification

looks like a ALV? haa, yes, this is a ALV.

Wednesday 19 October 2022

Applying MVC in Abap

In this blog post, I would like to share a few thoughts on how to write better code in SAP Abap by applying MVC to code structure.

I work as an Expert Abap consultant and sometimes fellow developers are asking advices on writing better code. There are many patterns, rules in coding world to help you to write better code. MVC is one of them, and I will try to explain where MVC fits in Abap development.

Previous to Abap, I worked with many different programming languages and my favorite languages are the object oriented ones, such as Java, C# and of course Abap. I like object oriented languages, because, you can create a model of the required algorithm in small modules, you can re-use code and encapsulate complexities. I believe, it is important to write lego like, modular, reusable code. That makes coding more fun and less painfull.

Monday 17 October 2022

Cancel BTP workflow instance from ABAP

Introduction:


As an abapper most of us might be new to calling external APIs from the ABAP environment. There are lots of APIs on cloud foundry or deployed elsewhere which we can use as per as our need. Most of them use the OAuth 2.0 authentication and other authentication processes.

You must have heard about SAP Workflow Management Triggering the workflow and getting in my In Box. But What about cancelling the running workflow instance from the ABAP environment.

In this blog we not only learn how to cancel the workflow instance but also we can use this to call any APIs which uses OAuth 2.0 authentication.

Saturday 15 October 2022

Material Characteristics Batch View Report

I’m starting the SAP blog page with a report. In this report, we will try to show the characteristic values entered under the material class in the material master data to the user in the form of a report.

I am working as an ABAP developer in a company that uses SAP. The reason why we need this report is that our production planning department wants to see the characteristics they defined for the materials collectively. Material characteristics can be obtained with the CLAF_CLASSIFICATION_OF_OBJECTS function. Since we will query the materials collectively, we will read directly from the tables to gain performance.

Friday 14 October 2022

Reusing Class Methods Should Be Easier

One of the short comings of ABAP is the ability to find and reuse class methods. It is easy to find functions from within the ABAP editor by clicking the [Pattern] button. But to find a method you first need to know what class it is in.

One way to overcome this is to search the table VSEOCOMPDF from SE16 but that’s a bit awkward, so I have written the below program to search for and display a list of methods based on selection criteria. I have written the code as a report with local classes to make it easily portable.

To implement this you can simply copy and paste the code into a new report in SE38. Here it is called ZFIND_METHOD but you can choose any name that suits you. When you save the code you can make it a local object. There is no need for this program to be transported.

Wednesday 12 October 2022

Using RFC adapter in the SAP integration suite

Overview:


This blog post intends to show how to use an RFC adapter in an integration flow (iflow as we would be referring to in this blog) for fetching data from the SAP ERP system.

We have various adapters provided by SAP which can be leveraged based on a particular requirement. In this blog, I am focusing on the RFC adapter and will provide you with a brief understanding of how you can use it.

Targeted Audience: 


Beginner level in integration suite. Basic ABAP knowledge would be a plus.
Even if you don’t have either, I believe this can give you a fair idea of where to start!!

Monday 10 October 2022

Create a CDS view with joins using eclipse

What is CDS View?


CDS stands for Core Data Service which are virtual data models of SAP HANA which allow direct access to underlying tables of the HANA database. SAP CDS Views came into being with SAP’s new programming model. SAP CDS Views aim to push logic from the application server to the client side and database.

Let’s Begin to open your Eclipse and Follow the Steps that I write Blow for CDS View creation.

Step 1: Login to your development server and add your development Package

Right-click on the favorite package and select add a package

Friday 7 October 2022

AppGyver + CAI = Productivity & Digital Assistance

This post how we can combine AppGyver and SAP CAI together to achieve business goals.

Let’s see how AppGyver can help in increasing the productivity in your day-2-day business activities – you can be so close to your relevant information which can improve decision making and off-course a fast way to take decisions how ?

If we combine AppGyver & CAI together then – On tap you can access information and if you want to see the data at granular level – you have ConversationalAI with you to help.

Let’s see the architecture and understand the integration of these two in details and implementation too.

Wednesday 5 October 2022

POWL Enhancement in SAP TM: Standard Hidden Field and Custom Field in Freight Unit Overview Screen

Introduction


I have provided a detailed guide on how to add custom Date/Time Field in your FPM Application. In this blog post, you will learn how to enhance the Overview screen and add custom field as well as Standard hidden fields in your active Query in the Overview Screen.

POWL Enhancements are a tad bit different than enhancing FPM applications. They are subject to the Active Query in POWL which is present in the Planning component of NWBC screen in SAP TM.

Monday 3 October 2022

Developer Extensibility for SAP S/4HANA Cloud on the SAP API Business Hub

This blog post helps in understanding developer extensibility for SAP S/4HANA Cloud (aka Embedded Steampunk) and discovering them on the SAP API Business Hub.

Problem Description


Today, customers and partners can use key-user extensions and side-by-side SAP Business Technology Platform (BTP) extensibility to extend SAP S/4HANA Cloud. What is the motivation behind introducing Developer Extensibility? Do customers need all these? When to use what? And finally, where to discover the released artifacts from SAP.

Friday 30 September 2022

Add a validation to a Custom Field via Developer Extensibility in SAP S/4HANA Cloud

Introduction


With the introduction of Three System Landscape(3SL) in SAP S/4HANA Cloud, developers will now be able to create development projects via Eclipse IDE with the help of ABAP Development Tools (ADT)

In this blog, I will take you through a simple example of how to add a screen validation to a Custom field created via Key-User Extensibility in the Development 100 client using Developer Extensibility in the Development 080 client

Wednesday 28 September 2022

Extensibility in SAP S/4HANA Cloud

Introduction

Extensibility covers a broad spectrum of topics that allow customers and partners to adapt standard business software to their business needs. This includes business configuration, integration, custom fields, and logic, layout adaptation of user interface (UI), forms, and reports. It also covers custom terminology and translation for customer-specific applications. (SAP, 2022)

Extensibility in SAP S/4HANA Cloud can be divided into three parts:

◉ In-App/Key User Extensibility
◉ Side-by-Side Extensibility
◉ Developer Extensibility/Embedded Steampunk

Monday 26 September 2022

Streams in RAP: Uploading PDF, Excel and Other Files in RAP Application

Uploading Large Object and media such as Excel or Image through your application is a common business requirement and the only way to do it through a RAP application was by extending the application and using UI5 tooling to upload the file.

With the latest SAP BTP ABAP 2208 release the RAP framework now supports OData streams. It is now possible to enable your RAP application to maintain and handle Large Objects(LOBs).This feature provides end users an option to upload external files of different file formats such as PDF, XLSX 
, binary file format and other types hence allowing media handling.

In this Blog we will explore how to upload and handle Large Object such as PDF or Binary files without the need to extend the RAP application in BAS.

Saturday 24 September 2022

Concento RDG provides an effortless way to assign the Email Template to the Workflow

Concento™ Rapid Data Governance (RDG) is an SAP Certified accelerator and Data Governance based product that automates the processes of many Configuration steps, such as Data Model Maintenance, Workflow Design, Business Rules creation, and Field Property configurations. RDG allows users with or without MDG technical knowledge to perform Complex MDG configurations.

This blog describes the functionality of RDG in assigning Email Templates to workflow steps. The users can create or modify email templates and use them in rule-based workflow steps without coding, in contrast to the traditional process.

Using RDG, users can easily create and assign the Email template to workflow steps by performing the below actions.

Wednesday 21 September 2022

Realizing a Clean SAP Core: A pragmatic approach towards digital transformation

Introduction


The world today witnesses a massive digital transformation, impacting organizations globally through fast-evolving business models. Likewise at SAP, key products and solutions are advancing with all the more flexibility and robustness. To enable this agility within the foundations of ERP, has repositioned its flagship product offering to a new ‘digital-core’ in the form of S/4HANA. With the recent S/4HANA releases also on Cloud, the new digital core offers a fascinating array of new innovations, ranging across digital-age User Experiences, next-gen Business Processes and Embedded Intelligence, through seamless integration and automation options.

Numerous existing customers however, are still on the former SAP ERP (ECC or older) systems with many of them also engaging industry specific components to support their businesses. With SAP’s future plans of withdrawing support and maintenance for its legacy ERP software versions, customers are required to devise an upgrade strategy to move to S/4HANA solutions, mostly through Brownfield implementation projects. In the process, project teams typically deal with several technical hiccups in managing custom code, around aspects like complexity, dependency with SAP standard, upgrade stability etc. This is where the catchphrase ‘Clean-Core’ comes in, which essentially emphasizes on fitting to standard offerings, extending them appropriately, and decoupling custom objects with minimal dependency to standard solution lifecycle outside the central ERP, therefore making the ‘Core’ clean. The coming sections will elaborate the needs, benefits and ways to achieve a realistic and modern ‘Clean Core’ SAP solution.

Friday 16 September 2022

Download ALV Report Output as Excel

This Article explains code about how to download Report output in Excel through Program directly.
In case ALV report Display is not required only Excel download is required.

Excel Output will be similar as we download through
List >> Export >> Spreadsheet options
Shown as below.

SAP ABAP Certification, SAP ABAP Certifications, SAP ABAP Tutorial and Materials, SAP ABAP Career, SAP ABAP Skills, SAP ABAP Jobs

Wednesday 14 September 2022

Explore Business Add-Ins (BAdIs) for SAP S/4HANA Cloud on SAP API Business Hub

This blog post describes how to explore released Business Add-Ins (BAdIs) from SAP S/4HANA Cloud on SAP API Business Hub.

Problem Description


If Developer Extensibility with Embedded Steampunk is for ABAP Developers and technical users, then where can they find the APIs to build the extensions? Also, are there any technical documentation available for developers which they can refer to?

Monday 12 September 2022

Explore Business Object Interfaces for SAP S/4HANA Cloud on SAP API Business Hub

This blog post describes how to explore released Business Object Interfaces or RAP BO from SAP S/4HANA Cloud on SAP API Business Hub.

Problem Description


If Developer Extensibility with Embedded Steampunk is for ABAP Developers and technical users, then where can they find the APIs to build the extensions? Also, are there any technical documentation available for developers which they can refer to?

Saturday 10 September 2022

Reconciliation report on ODQMON T-Code

Recently I have been working on a requirement on a report which will have the information of the volume of data being loaded for every extractor into BW system from SAP ECC(ODQMON).

This will help create a technical reconciliation report where one can see how much volume of data is being loaded for every datasource. This will help get an insight on how much volume of data is being loaded on daily basis and if any miss can be easily detected.

We are loading the data from SAP ECC(ODQMON) into Azure system. This report will help overcome the regular issue we face in Azure system when data loads fail/or missed some data during processing, which can be identified by this reconciliation report. The reconciliation report will be built in Power BI. The blog will focus on the logic used in extractor and not on the Power BI report.

Friday 9 September 2022

Create and Deploy MTA Project to Cloud Foundry account using Business Application Studio

Deploying Fiori List Report and Object Page application to Cloud Foundry account.

We have created Fiori List Report and Object Page Application as MTA Project using Business Application Studio.

Below video shows step by step detailed process of deployment.

Step By Step Guide Create and Deploy MTA Project


What is MTA Project

MTA stands for Multi Target Application. Multi Target Application logically created with multiple different parts which may be written using different languages or technologies. All of these different parts works together to complete application life cycle.

Sunday 28 August 2022

HCM Processes & Forms: FPM forms? Let there be light…er uhm….PRINT!!!!

I have not blogged in a good while and figured if I came back, I better drop a banger (that’s what the “kids” call it, right?). Well, I guarantee you, this one is quite a doozy! (that’s what the “old folks” call it, right?). I will worry about which crowd I most appeal to later. For now…..let’s do this! I am about to rock your world and show you a “new” way to make printing your FPM forms for HCM P&F a whole lot easier….like super simple easy! Don’t believe me? Read on!

Background


Way back when SAP announced and released the FPM options for HCM Processes & Forms which effectively replaced Adobe Interactive Forms, the world rejoiced. When SAP said “nuh uh uh…not so fast” and let it be known that the only way to “print” FPM forms was to develop and Adobe form/layout in parallel and assign it in the configuration, the world let out a collective sigh. That just did not sit right with us HCM P&F folks. In fact, I can say that in all of my projects implementing FPM HCM P&F processes, not a single one ever implemented the “Adobe print form option”. Not ONE! In most cases, the customers would tell their users either:

Friday 26 August 2022

Order to Invoice Sales Cycle using FM/BAPI’s

We keep getting requirements from businesses to create a Z Process to perform Order , Delivery and Invoicing in the background.

Although there are other option like BDC’s, here I am making attempt to do the same using FM/BAPI’s, this might be useful specially for Consultant who have just started working on Developments.

The Usage is typically for any Development where there is requirement for Mass Automaton of Order to Invoice generation or for a requirement where we need to perform the whole Order to Invoice process in background.

Wednesday 24 August 2022

Expose SAP GUI Transaction in Fiori Launchpad

In this blog post, we will learn how to expose Standard SAP GUI Transaction in FIORI Launchpad.

1. Here we want to create Tile for standard SAP GUI Transaction i.e. ME42 in Fiori Launchpad

2. First check, if standard Fiori App is available for Transaction ME42, in this case, no standard Fiori app is available, so follow below steps to expose backend transaction to Fiori Launchpad

3. First Verify that the standard Transaction Me42 is SAP GUI for HTML.

Monday 22 August 2022

Extending SAP FIORI App : My Inbox – Approve Purchase Order (F0402A)

Overview

This blog shares on how SAP FIORI App – My Inbox can be enhanced. FIORI extension is done on My Inbox – Approve Purchase Order (F0402A) enhancing custom field in PO Line Item data.    Custom screen enhancement is done on PO Line Item to add field ‘Last Price’. To display the field on FIORI screen, no enhancement is needed either in Odata, Workflow or UI. Appropriate CDS views related to My Inbox – Purchase Order app to be identified and enhanced to modify the UI output display.

Workflow Configuration

SAP Business Workflow configuration entries maintained for Workflow Task of Purchase Order

Transaction Code – SPRO

Friday 19 August 2022

IDOC data extraction method for multiple segments using an RFC Function Module

Title

IDOC data extraction method for multiple segments using an RFC Function Module.

Introduction

In this document, we will discuss the process of extracting the IDOC data from multiple segments and sending it to a target system using an RFC function module.

Wednesday 10 August 2022

Enabling the CFL custom fields with F4 help using SCFD_EUI transaction from SAP GUI

Custom fields can be enabled at GUI or FIORI launchpad either using CFL (Custom Fields Logic) or transaction code SCFD_EUI. In this blog I will be demonstrating the prominence of SCFD_EUI in enabling the custom fields with F4 help at the backend (SAP GUI).

Why to use SCFD_EUI instead of CFL?

There are few advantages for preferring SCFD_EUI over CFL

In CFL, customization of field suffix is not allowed as the suffix is predefined and cannot be changed. However, in SCFD_EUI we can change the suffix of the field as per the requirement.

Monday 8 August 2022

ABAP Restful Application Programming : Real Time validation on field input in transactional Fiori Application

Introduction:

Main aim of any application is to keep the transactional document error free. That says how important is error handling and validations in the application process.

In this blogpost, I will explain how we can implement real time validations on field input in a transactional fiori application with ABAP RAP framework. Instead of executing the validations at the save in the end.

Saturday 6 August 2022

Interactable split-screen ALV (using CL_SALV_TABLE)

One ALV with headers and a second with details of selected row – quite a common use-case. And won’t it be practical to have all this in one screen, so users can check details quickly without constant back and forth between screens? This was indeed what users wanted and what I implemented for them.

In this post, I will describe how to make such a screen with two ALVs, utilizing CL_SALV_TABLE, displaying dependent information.

SAP ABAP Certification, SAP ABAP Career, SAP ABAP Tutorial and Materials, SAP ABAP Career Exam, SAP ABAP Skills, SAP ABAP Jobs, SAP ABAP ALV, SAP Method, SAP ABAP ALV Exam
Finished split-screen

Friday 5 August 2022

ABAP Restful Application Programming: Custom actions => Merge Draft entities into Active and switch to display mode

Introduction:

In this blog post, I will explain about “Custom actions” that can merge draft entities into Active and switch to display mode. An action in RAP is a non-standard modifying operation that is part of the business logic. The standard use case of an action is to change specific fields of a business object entity.

Problem statement:

In General, MODIFY ENTITIES can be used to change the required fields in an entity. That means, Active instance remains as active and Draft instance remains as Draft. But some business requirements expect us to convert those draft instances into active instances.

Thursday 4 August 2022

About ADS Font Trace

With the activation of ADS Font Trace by referring to Note 1717189, we can get the font processing log following the steps provided by 2216427 – How to generate a PDF with Additional Information – ABAP Scenario.

SAP ABAP Exam, SAP ABAP Tutorial and Materials, SAP ABAP Career, SAP ABAP Skills, SAP ABAP Jobs, SAP ABAP ADS, SAP ABAP Preparation

Wednesday 3 August 2022

Simple Report by calling function module SE16N_EXTERNAL_CALL

Purpose 

I have been asked to make simple reports just for retrieving data from tables with all nice functions which you can use at SE16N, SE16H sort of SE transactions .

Well, there are many fancy UI report tools that you can create a fancy report, which are something like POWL or Fiori List, FPM, and WebUI. Of course, if you are good at using conventional SAP report tools like Report Painter, SAP QUERY, QuickView, and so on .. Wouldn’t be any problem considering that SAP has been providing  lots of report tools for user to avoid building SAP reports from scratch.

Tuesday 2 August 2022

Editable CL_SALV_TABLE after release 756

Ever since the CL_SALV_TABLE class was released, one question was ever present – how to make it editable? For years the answer lied in taking advantage of the inheritance of the CL_SALV_TABLE, as presented in this post: http://zevolving.com/2008/12/salv-table-10-editable-salv-model-overcome-the-restriction-of-salv-model/.

I was among those using this method. But then the Release 756 came. And suddenly, all ALVs using it suddenly started reported error after error. I dived in and investigated the issue. To my surprise, I discovered that the very basis of this “edit-hack” was gone. The CL_SALV_TABLE class was no longer in the inheritance tree which enabled it to work!

Monday 1 August 2022

Custom Print Preview In MIGO Transaction

Introduction:

In this blog I am going to explain how to add additional tab and print preview button in MIGO Transaction.

Normally in MIGO Transaction there is no standard print preview button available to preview the forms. Only way to preview the Form layout is by using another transaction MB90 only, But there is an way to achieve the print preview using a BADI by adding a custom tab and a print preview button to view the form layout.

Wednesday 27 July 2022

Moderate way of Debugging for Technical Consultants – “Art of Removing Errors”

What is Debugging??? 

◉ Identify Error.

◉ Identify the Error Location.

◉ Analyze Error.

◉ Prove the Analysis.

◉ Cover the Lateral Damage.

Tuesday 26 July 2022

Transportation Management : Get Freight settlement documents using selection options

In this blog post, we will learn how to get the freight settlement documents using query.

Freight settlement documents are created to perform freight settlement with your suppliers or carriers. In document flow, Freight settlement documents are created after Freight Order/Booking.

Suppose our requirement is to read all the Freight settlement documents which are in status Accruals posted and those are posted in a particular date range.

Saturday 23 July 2022

Common performance issues with the inline declarations

The Inline declaration provides an effortless way to create data objects and better readability to code readers. Since SAP NetWeaver ABAP 7.4 introduced this new feature, it has been the preferred way over explicit data declaration.

We will always have to consider the data volume for the internal tables to avoid possible performance issues. It is more critical when we use the inline declaration because it creates only standard-type tables. Performance issues happen if the internal table created by the inline declaration contains many rows and we access it inside a loop.

Friday 22 July 2022

ABAP Restful Application Programming : Real Time validation on field input in transactional Fiori Application

Introduction:

Main aim of any application is to keep the transactional document error free. That says how important is error handling and validations in the application process.

In this blogpost, I will explain how we can implement real time validations on field input in a transactional fiori application with ABAP RAP framework. Instead of executing the validations at the save in the end.

Problem statement :

In the traditional approach ( link ), the validations can only be executed at SAVE in the end. The disadvantage in this approach is that inconsistent values have already been entered and the document becomes inconsistent. if it is a draft enabled application, then these inconsistent values have already been stored in draft tables and transactional buffers. This is additional work for the user to clear all those errors at the end. As a user, he/she always expects to display the error on field input.

Wednesday 20 July 2022

Reverse Loop finally possible with STEP addition for ABAP Internal Tables

Are you tired of taking the secondary road to your destination? You might feel like this if you’re writing DO or WHILE statements with a READ ... INDEX to loop backwards across the lines of an internal table in ABAP. And if your internal table is a hashed table… you’re almost good to go to turn around. The good thing in brief: You’ve been heard! With SAP BTP ABAP Environment 2202 the new addition STEP is introduced. STEP combines the loop order with the step size – you’re getting two in one. If you want to take the main road to your destination, follow this blog to get most out of the new addition.

Basics

While the main use case for STEP might be the LOOP statement, there’re more statements, expressions, and operators to use the addition with. But first, we’ll look at the usage of STEP itself: The loop order and step size are defined by STEP n where n has a positive or negative sign for the loop order and where n is a numeric expression position of operand type i for the step size. For example, if you wanted to loop across every second table line in a backward order, you’d simply write STEP -2. Other statements, expressions, and operators to use STEP with are: FOR ... IN, DELETE, INSERT, APPEND, NEW, and VALUE. We’ll go through them step by step. (Want a quick overview? Scroll down.)

Wednesday 13 July 2022

Display logo in ALV Report.

In this blog post you will learn how to display logo in your ALV Report.

How to Create a Logo

Once you login to system enter T-code OAER.

Follow the below steps to create a logo.

Step 1: Enter OAER transaction code in command field and press Enter.

Step 2: Enter the following fields for your logo.

Tuesday 12 July 2022

How to Download Data from Internal Table to an Excel File

This blog post is explaining all about how to download data from internal table to an excel file.

Requirement: On selection screen user will give the input as country name and file name in which user want to download the data to an excel file based on the given country name.

Step 1: Design Selection Screen. On selection screen declare country and file name as parameter.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.

  PARAMETERS:p_land TYPE kna1-land1,

             p_file TYPE rlgrap-filename.

SELECTION-SCREEN END OF BLOCK b1.

Monday 11 July 2022

Maintaining Long text in the EWM Product Master

In some cases, we require to maintain the texts related to the products maintained in the warehouse. These texts can be any such as the how the product maintained, customer feedback, quality/inspection notes, vendor feedback etc.

Using this simple but powerful functionality, the long text can be maintained in EWM product master by enhancing the screen.

This article provides a high-level overview of the custom solution to maintain the long text in the product master.

This functionality can be achieved using ‘EEWB’ functionality not with ‘Custom Fields and Logic App‘.

Friday 8 July 2022

CDS Projection Views in ABAP CDS: What’s Your Flavor

Since kernel release 7.83, CDS projection views are available in different flavors, specified using the syntax statement PROVIDER CONTRACT. Each flavor has a different feature set and different syntax checks. This blog post describes the available types of CDS projection views and where to find further details.

CDS Projection Views, ABAP CDS, SAP ABAP Career, SAP ABAP Skills, SAP ABAP Jobs, SAP ABAP Tutorial and Material, SAP ABAP Guides, SAP ABAP Preparation, SAP ABAP Exam Preparation
Types of CDS projection views

Wednesday 6 July 2022

SAP to SFTP simple Setup with a Windows Host

The aim of this blog is to give an easy way to setup an SFTP connection between a SAP system and an SFTP server.

Main problematic

As Said, SAP does not cover SFTP using SAPFTP. According to note 795131, the best solution is to use a third party software to do it and then call the third party software from SAP (using SM49/69 host command). Still, if the SAP system is running on a Unix Based system, everything is fine, because the syntax offered by Unix allow you to run SFTP command in Oneliner (using | eventually), but if the SAP system is running on a Windows NT based system, problems arise.

Friday 1 July 2022

Getting Started With ABAP: PART 2

This is the second blog post in this series. Here is the previous blog post Get Started with ABAP Programming From Scratch

In the first blog post, we learn how to create package and how to write your first program.

In this blog post you will learn how to print multiple text on same line and multiple line as well as how to give comments.

In previous blog post we have seen how to create package and program from transaction SE80. So, once you open SE80 (Transaction Code for ABAP Editor) you have already created the package so need to create it every time. Just right click on existing package name and create new program.

Wednesday 29 June 2022

Getting started with ABAP Programming from Scratch

In this blog post you will learn how to create package and how to write your first program. This blog post based on classic development in SAP GUI.

How to Create Package

Once you login to the system, below screen will be open. On the left side of the screen there is command field. You can enter transaction code to go to any task of SAP application.

SE80 and SE38 are transaction code for ABAP editor.

Monday 27 June 2022

How to use the ABAP Client Proxy to consume a public REST service.

This blog shows how the Client Proxy (CP) can be used to consume any public REST service. The features used in this blog will be available from ABAP Platform 2022 and the corresponding SP’s in SAP Note: 2512479.

For our example, the PetStore-V3 REST API from swagger has been used. Since it is based on the Open API 3.0 standard and has no authorization headers, so the setup is easy. We will use public HTTP endpoints of the service to perform typical CRUD ( Create, Retrieve, Update, Delete ) operations. Although any public REST service can be consumed via CP, it is really helpful if it is based on Open API 3.0 because then the field mapping from JSON to ABAP is easy to infer.

Analyzing the Service

Before we can consume the service we should perform the following analytical tasks to better understand the service we are going to consume and also the corresponding CP coding:

Friday 24 June 2022

Add Custom Date-Time Field in FPM Screen for SAP TM

Often the standard FPM fields provided by SAP is not enough to satisfy all the business requirements. You need additional fields on the screen. This is where enhancements and customizations come in.

In this blogpost, I am going to show you just that. This is a step-by-step guide for adding custom Date/Time fields on FPM screen for Freight Order General Data tab.

Requirement: Add Vehicle Placement Date/Time/Time zone field in the General Tab of Freight Order Screen. During Save, the data will get saved in TOR structure as Timestamp.

Friday 10 June 2022

SAP BTP, ABAP Environment Pipeline: Introducing ABAP Unit

So, let’s get started:

ABAP Unit in the ABAP Environment Pipeline

ABAP Unit (AUnit) is the standard tool in the ABAP world for executing unit tests and thus ensuring the functional correctness of your software.

With the communication scenario “ABAP Unit Test Integration”, a service was introduced that enables the execution of ABAP Unit Tests via HTTPS. Of course, we implemented this API in our “ABAP Environment Pipeline”, so you can use it in your CI/CD processes. The newly created AUnit stage runs in parallel to the ATC stage:

Thursday 9 June 2022

Providing Value Helps in Flexible Workflow Condition Parameters

Introduction

Flexible Workflow in both S/4HANA Cloud and on-premise (and everywhere in-between) is the recommended way of constructing simple workflows. In this blog, I want to talk about two programmatic methods of providing value helps for custom Condition parameters in S/4HANA Cloud.

Standard flexible workflows are provided for a number of different scenarios in S/4HANA Cloud. I will be looking at the Supplier Invoice scenario, but the use of custom conditions is common across different scenarios.

First I’ll talk a bit about conditions in flexible workflows, so if you’re only interested in value helps, feel free to skip to the end!

Wednesday 8 June 2022

Get started with ABAP Programming from Scratch

In this blog post you will learn how to create package and how to write your first program.

How to Create Package

Once you login to the system, below screen will be open. On the left side of the screen there is command field. You can enter transaction code to go to any task of SAP application.

SE80 and SE38 are transaction code for ABAP editor.

Follow the below steps to create package.

Monday 6 June 2022

Thoughts about form layout design

Almost every corporation has its own design guide& style for all its paperwork including envelopes, business cards, and various business forms, etc. As a developer, I am just concerned with the logic to populate the fields as long as have a detailed layout reference; and there is no need to consider layout design like layout structure, font selection, windows alignment, etc.

SAP ABAP Exam Prep, SAP ABAP Career, SAP ABAP Skills, SAP ABAP Prep, SAP ABAP Jobs, SAP ABAP News, SAP ABAP

Monday 30 May 2022

SAP EWM Technical Made easy –> Enhance EWM Product Master (/SCWM/MAT1) – UI Enhancement

In this blog, we will unpack, the transfer of additional Non EWM fields or custom fields from ERP Material Master (MM01) to EWM Product Master (/SCWM/MAT1).

1. Enter transaction EEWB and Create Project in EWM system

SAP ABAP Development, SAP ABAP Career, SAP ABAP Skills, SAP ABAP Jobs, SAP ABAP Preparation, SAP ABAP Tutorial and Material, SAP ABAP Certification

Saturday 28 May 2022

How to enable clean code checks for ABAP

The Open Source contribution Clean ABAP style guide for ABAP coding offers best practices and set of rules for you as developers to enable you to write more efficient, easier to understand and maintainable code. Having a common understanding of the code style enhances consistency of the code base and thus significantly improves your developer experience enforcing to work more quickly with even unfamiliar code and speed up the ramp up of new developers in your environment.

The style guide allows to enforce rules with static code checks. Based on the Clean ABAP, the free and Open Source code pal for ABAP tool contains a set of checks to support the Clean ABAP adherence. Code pal for ABAP checks can be used in Code Inspector and ABAP Test Cockpit.

Friday 27 May 2022

ABAP OO Design: 7 Basic OO Principles Summary

There many blog posts about OO principles. The reason for me to write also a blog post on this subject is because it can be a struggle to get out of all these blog posts a clear unambiguous understanding of the terms and the relationship between the terms. So this blog post is focused on how to remember them and the principles cohesion. And also to give some information about relative class names.

Overview

The basic OO principles are:

◉ Instantiation

◉ Access principles (Horizontally principles)

Wednesday 25 May 2022

Archive Conversion with SAP LT Tool

SAP offers for the execution of the conversion on the db as well as for the related archives the Landscape Transformation Tool (LT Tool). There are a lot of kind of conversions possible. Some examples are Company Code splits, Controlling area merges or also renaming of supplier numbers for example.

In this blog we are going to focus on the archive conversion which will in most cases take place after the database conversion has already been conducted successful. The advantage is that the mapping of the db conversion can be taken over for the archive conversion as well.

To start with the archive conversion you need to call the process monitor for the merge package. This is done via Transaction code CNV_MBT_SLOP

Monday 23 May 2022

Troubleshooting ABAP-Fiori E2E Scenarios with little (or no) information

Are you struggling with the famous “There is an issue in this Fiori App” email?

Were you not given further details on which is the error, in which environment it happened, nor which is the service name?

Are you starting with SAP Fiori but want to rely on your strong ABAP skills?

Or are you just curious…?

Sunday 22 May 2022

Simulate 3rd party, non-SAP systems and EDI partners to remove delays from complex SAP S/4HANA transformations

Why read this article

Service virtualization and testing (SVT) solutions like Int4 IFTT (Certified ABAP addon for SAP Solution Manager – SAP Solman) provide the developers and functional consultants with ways to quickly simulate the interfaces of any 3rd party, non-SAP systems as well as B2B partners – EDI. This allows not only to quickly run test scenarios during the development (DEV) and integration (SIT) phases of the project but also run the regression testing on any non-productive environment. Not having to install and maintain many new test instances of non-SAP systems also allows the SAP S/4HANA transformation projects to be more sustainable as projects use less resources and can be done much faster, therefore reducing carbon footprint significantly.

Friday 20 May 2022

Process Order Screen Enhancements (COR1/COR2/COR3)

Customer fields in process order transactions (COR1/COR2/COR3) : PPCO0020 Screen Exit

Objective

In this blog post we are going to create a custom tab for Process Order transactions (COR1/COR2/COR3) with below 3 additional fields:

◉ Reason for Schedule Variance (Drop down options)

◉ Schedule End Date (Non-editable)

◉ Schedule End Time (Non-editable)

Wednesday 18 May 2022

Implementation of $Batch Processing in the Odata with CDS

The topic is ‘$Batch operation on the Gateway Services with CDS’. In Odata, generally we use deep entity method for implementing table or header-item relationship. But sometimes we do not want to implement deep structure methodology, we want to send data in just one request or try to do different thing.

This blogpost will explain details of Odata implimentation ’$Batch Processing’ step by step.

First topic is the reason of why we use $Batch method, Aim of the Odata Batch method is send several request in just one HTTP request. It helps us to use; get or put or post (etc.) methods in a parallel. This is very effective method for computing.

Monday 16 May 2022

zsql_test_double_framework as downport of OSQL Test Double Framework for releases from 7.02 to 7.50

Unit tests play a big role in modern software development. Unit tests let us check parts of our code for correctness very quickly within seconds. Independence of unit tests on any external dependencies means independence on any external environments like network, file system, database etc

Most of SAP developments work with database and we need a good isolation technique to test them. ABAP SQL Test Double Framework in my opinion is one of the best implementations ever. It lets you create something like a virtual database with temporary data in any table, Open SQL selects and updates work with that data in test mode.

But unfortunately ABAP SQL Test Double Framework is available starting from 7.51 version. I work in company where most of project use releases 7.50 and lower and I cannot use it.

Saturday 14 May 2022

ABAP REST API http Service call from Postman: JSON to ABAP data

This blog post will describe the steps of how to expose REST API and handle REST API request from SAP ECC 6.0 without installing SAP Gateway service builder component. It will also help to convert json data to ABAP data. In this blog post I have described how to build web server service in ECC application server of Rest APIs using JSON data format.

Prerequisite JSON data format, SAP logon and postman.

◉ Define JSON structure:

JSON is a text-based data format which follow JavaScript object syntax. It stores the value in form of key value pair. Each of the property and value is separated with colon (:).

Wednesday 11 May 2022

How to change database table entries in any environment?

Introduction:

This blog post will help you to change database entry in any environment with ease, but remember this is very powerful technique and may leads to data inconsistency if any wrong key data changed.

Also after this blog post you will be able to update the entries.

“This is very useful technique which can be used to change database tables data in any environment (if you have CHANGE access in Debugger).

The changes which can be taken out through this process cannot be tracked so may leads to inconsistencies. Think twice before using this….”

Friday 6 May 2022

gCTS configuration and integration with GitHub

SAP has launched Git-enabled Change and Transport system (gCTS) back in 2019 with S/4 HANA 1909 to manage the ABAP changes which can leverage Git as an external system for Version Management.

Now let us understand what are the planned use cases of gCTS are:

Planned use case 1: You need to build N+1 landscape for new project requirement

Using gCTS we can create a Feature branch and a Maintenance branch and perform changes in the same N landscape development system in parallel.

Monday 2 May 2022

HTTP Services in SAP BTP

Definition:

The HTTP service is the component of the Application Server that provides facilities for deploying web applications and for making deployed web applications accessible by HTTP clients.

We have seen HTTP and HTTPS services in SAP ERP, there are many steps involved to create and enable this service in ERP. But in BTP its relatively Simpler, Let’s look at the steps for creating HTTP service in SAP BTP.

Friday 29 April 2022

Enhancement at Purchase Requisition: Status Grid

There’re some articles already explaining how to add customized fields at the customized sub-screen of ME53N:

Add Custom Field to Purchase Requisition – MEREQ001 by M.Ozgur Unal

Add a Custom Screen on Purchase Requisition Header by Gangrong Chen

What if only a few more standard fields at Purchase Requisition: Status Grid without using custom TAB/sub-screen?

Wednesday 27 April 2022

Changing i-flow name permanently in SAP CPI/HCI

Introduction:

In this blog post you will learn how to change the i-flow name permanently in CPI. I am sharing my inputs which I had gone through while I was doing this.

Let’s consider that you have an i-flow and you want to change the i-flow name. There are two ways to change the i-flow names. So, that in UT & SIT(Unit & System Integration Testing) also flow name will be changed permanently.

Monday 25 April 2022

Embracing ABAP TDD as a standard development practice

Introduction

Last October, at GrainCorp, we went live with CropConnect self-service Croptimiser. It allows our Growers to optimize their grain quality at no extra cost. You can find more details on the same here – https://grains.graincorp.com.au/croptimiser/. The project was a huge success. Our growers are happy and so we are happy.

Performance improvements is one of the key challenges that we faced to achieve this project. The code has to perform all the Croptimiser calculations within a few seconds and also should be able to bear the load. We had to make code changes multiple times to achieve this performance and at the same time should not break the business logic.

Friday 22 April 2022

Mass Deletion of MRP controller in APO

I recently just first touched on the APO system and surprisingly find out that APO even doesn’t have the MARA/MARC table and Transaction code MM01 not to mention the function module like ‘BAPI_MATERIAL_SAVEDATA’!

Here list of the basic approach to mass deletes MRP controllers in APO. It’s for the beginning level of APO development only :

1. Get the structure of the planning objects by ‘/SAPAPO/TS_PLOB_LIST_GET’

◉ Input parameter IV_BAS_PLOBID is mandatory, which will define&provide by functions

◉ Input parameter table it_group_by will be lists of object names that will contain fields like material/plant/MRP controller etc. In my case, it’s totally customized fields like Z_MATNR.

Wednesday 20 April 2022

Mass activation and mass deletion a la carte using ADT

The problem

Today I had to delete 1385 repository objects that had been created as part of a customer workshop.

The problem was that all these objects have been created in 70 packages.

On the other hand I had to perform a mass activation for the objects that are part of the SFLIGHT sample project and which live in the /DMO/ namespace, but unfortunately I had played around with the generation of RAP objects in the Z-namespace and my transport request did not only contain the objects of the /DMO/-SFLIGHT objects but lots of other (partly inconsistent) stuff.

Monday 18 April 2022

How to use the latest SAPUI5 library for the Fiori Elements preview in ADT?

When using the RAP Generator it is necessary to use the latest version of the SAPUI5 libraries.

Please note:

If you don’t have the latest version of the SAPUI5 libraries installed you will get no dialogue asking you for the name of the root entity and for the name of the package when pressing the New Project button in the RAP Generator.

While this is automatically ensured when using a SAP ABAP BTP Environement system (aka Steampunk) in on premise systems the classes that are called when using the Fiori Elements preview will use the locally installed SAPUI5 version instead. Since I am testing my RAP Generator in various test systems where the latest SAPUI5 version was not deployed I thought about a workaround.

Friday 15 April 2022

SELECT * EXCEPT col1, col2, … in ABAP

A syntax

SELECT * EXCEPT col1, col2, ...

to select all columns but those listed behind EXCEPT is not supported in most SQL variants, see e.g. discussions in stackoverflow.

Alas, it is not supported in ABAP SQL either.

But instead of working wit GTTs and ALTER TABLE as proposed in variuos discussions, we have another way, namely our dynamic tokens. Let’s look at an example.

Assume we want to select all columns from good old demonstration table SCARR except two of them.

Wednesday 13 April 2022

CDS Analytical Projection Views – the new Analytical Query Model

CDS analytical projection views are a new type of CDS projection view, available since SAP BTP ABAP Environment 2111. They are designed for modelling analytical queries within a CDS data model and they improve on the previous version of CDS Analytical Queries. Read this blog post to learn about the advantages and usage of CDS analytical projection views.

Motivation and Advantages

CDS analytical projection views improve development efficiency when designing analytical queries within a CDS data model. They offer several advantages over the previous version of CDS Analytical Queries:

Monday 11 April 2022

Easy way to write data via a deep entity in OData

Introduction

I have seen many tutorials based on OData but I really found them complex for beginners.

So, I am writing this blog post for quick easy reference. This is the 2nd blog post in the series.

For the first post please check the Easy way to read data via a deep entity in OData.

Friday 8 April 2022

Exploring web app development with ABAP & htmx (in comparison with ABAP RAP)

1. Introduction

1.1 Motivation

The world is shifting towards SAP web development using SAPUI5 and ABAP RAP model on a platform like BTP, and it feels like all the years and efforts spent on developing pure ABAP applications and accumulating the know-how are starting to be forgotten.

The blog introduces a web app development using htmx to control the frontend and ABAP on the backend. To put this in the modern SAPUI5 MVC architecture, “view” is managed by htmx, “controller” is managed by ABAP, and “Model” is not needed because ABAP can directly access the database.

Wednesday 6 April 2022

Easy way to read data via a deep entity in OData

Introduction

I have seen many tutorials based on OData but I really found them complex for beginners.

So, I am writing this blog post for quick easy reference.

Solution

Please follow the steps:

Monday 4 April 2022

Extending GOS with Create Multiple Attachment

Overview

Intent of this blog post is provide a working prototype for additional GOS service to upload multiple attachment together in one go.

Business Requirement

Some time it is difficult for users to upload 7-8 documents in GOS using the option ‘Create Attachment’, as the same steps needs to be repeated several times. So users require a new option ‘To upload multiple attachments from GOS’ to avoid repetitive steps.

Friday 1 April 2022

Advanced String Manipulations with ABAP CDS Views

ABAP CDS views provide a set of string functions and also support regular expressions from release 7.55. But sometimes your string manipulation requirements go beyond aforesaid capabilities. In this case my blog is for you.

Below is a perfect example, when CDPOS values which are saved as a plain text need to be properly formatted.

SAP ABAP CDS Views, SAP ABAP Exam Prep, SAP ABAP Career, SAP ABAP Skills, SAP ABAP Jobs, SAP ABAP

Wednesday 30 March 2022

How to add custom generic fields for Ariba SLP to SAP MDG integration with CIG

This article explain how to add custom fields in Ariba SLP integration using CIG. We have came across the requirement to add few localizations fields in Ariba network as part of Ariba implementation. Those will be available in integration payload with name ‘GenericCustomFieldname’. But those are not available in standard interface ‘BusinessPartnerSUITEBulkReplicateRequest_In’ in our MDG S4 system. This will help you out how to enable ‘GenericCustomFieldname’ in Ariba SLP standard interface.

SAP Ariba Cloud Integration Gateway, add-on to be installed on SAP ERP and it enables SAP to communicate with Ariba Network and SAP Ariba solutions through SAP Ariba Cloud Integration Gateway. SAP cloud integration using SAP Ariba Cloud integration Gateway is more popular and efficient for both master data and transaction data integration

Friday 25 March 2022

About EDI conversion of External tax rate and tax code

The transaction OBCD is a standard transaction to maintain EDI conversion of External tax rate and tax code and its corresponding Maintenance table is T076M. It’ll impact the tax code if the FI accounting document is created through EDI (which is IDOC normally). Now, what if the tax code is not been assigned correctly as expected on the posted document created by IDOC?

SAP ABAP Exam, SAP ABAP Exam Prep, SAP ABAP Preparation, SAP ABAP Career, SAP ABAP Jobs, SAP ABAP Skills, SAP ABAP PDF

How to check the source of the tax code?


In my case, the account document was triggered by intercompany billing with standard output type RD04.

SAP ABAP Exam, SAP ABAP Exam Prep, SAP ABAP Preparation, SAP ABAP Career, SAP ABAP Jobs, SAP ABAP Skills, SAP ABAP PDF

The account document is generated through inbound IDOC using message type ‘INVOIC’ with the basic type ‘INVOIC01’. The process code ‘INVF’ uses the standard function ‘IDOC_INPUT_INVOIC_FI’ for inbound processing. Global search ‘BSEG-MWSKZ’ at this FM will find out its source comes from E1EDP04-MWSKZ.

SAP ABAP Exam, SAP ABAP Exam Prep, SAP ABAP Preparation, SAP ABAP Career, SAP ABAP Jobs, SAP ABAP Skills, SAP ABAP PDF

The standard approach to fetch tax code


Normally the routine ‘READ_T076M’ been used to get the tax code from the T076M table which is exactly the maintenance against transaction OBCD:

SAP ABAP Exam, SAP ABAP Exam Prep, SAP ABAP Preparation, SAP ABAP Career, SAP ABAP Jobs, SAP ABAP Skills, SAP ABAP PDF

Enhancement may impact the tax code


But attention here is one BADI called ‘INVOIC_FI_INBOUND’ been checked using METHOD: IF_EX_INVOIC_FI_INBOUND~DETERMINE_TAX_CODE ahead of ‘READ_T076M’.

SAP ABAP Exam, SAP ABAP Exam Prep, SAP ABAP Preparation, SAP ABAP Career, SAP ABAP Jobs, SAP ABAP Skills, SAP ABAP PDF

Besides IDOC inbound processing for document generation, the IDOC generated by function module ‘IDOC_OUTPUT_INVOIC_IV_MM’, global search ‘e1edp04’ will find the fill routine ‘fill_e1edp04′ and its user exit inside ‘customer_function’ could have impacts for this value as well.

SAP ABAP Exam, SAP ABAP Exam Prep, SAP ABAP Preparation, SAP ABAP Career, SAP ABAP Jobs, SAP ABAP Skills, SAP ABAP PDF

For this case, e1edp04–mwskz comes from ikomv–mwsk1 which mapping to table KONV-MWSK1 with KONV-KSCHL equal to MWST.

How to debug this Idoc generation


1. As the IDOC type ‘INVOIC’ can be re-triggered, just modify output at one invoice and set dispatch date/time with option ‘1’ which is Send with a periodically scheduled job.

SAP ABAP Exam, SAP ABAP Exam Prep, SAP ABAP Preparation, SAP ABAP Career, SAP ABAP Jobs, SAP ABAP Skills, SAP ABAP PDF

2. Set breakpoint accordingly at FM: IDOC_OUTPUT_INVOIC_IV_MM, it’ll be triggered using standard program RSNAST00 with parameters like below:

SAP ABAP Exam, SAP ABAP Exam Prep, SAP ABAP Preparation, SAP ABAP Career, SAP ABAP Jobs, SAP ABAP Skills, SAP ABAP PDF

3. After Idoc has been generated will get the below message. After that, it’ll be processed as an inbound IDoc.

SAP ABAP Exam, SAP ABAP Exam Prep, SAP ABAP Preparation, SAP ABAP Career, SAP ABAP Jobs, SAP ABAP Skills, SAP ABAP PDF

How to debug this Idoc inbound processing


To test the inbound process FM: ‘IDOC_INPUT_INVOIC_FI’, just use SE19 with Inbound FM and check the box of ‘Call in debugging mode.

SAP ABAP Exam, SAP ABAP Exam Prep, SAP ABAP Preparation, SAP ABAP Career, SAP ABAP Jobs, SAP ABAP Skills, SAP ABAP PDF

Source: sap.com

Wednesday 23 March 2022

Display Material Picture in Material Master Screens MM01/MM02/MM03

Introduction:

This blog post will guide you to create a custom sub screen in the basic data tab of the material master transactions.which displays the picture of the corresponding material stored in the DMS.

Requirement:

The requirement is to create a sub screen in the basic data tab of the material master transactions.The custom screen is used to display its corresponding image from DMS.

With the help of custom function group and SPRO configuration to the screens,we will be able to achieve this.

Monday 21 March 2022

SAP GCTS – Getting Started

SAP GCTS or git enabled CTS is important as we move into S4HANA and in the blog series which I plan to write should provide the basics and to the path to SAP Dev ops using Jenkins.

What is SAP GCTS

The figure below gives an idea of what GCTS means

SAP GCTS, SAP ABAP, SAP ABAP Exam, SAP ABAP Exam Prep, SAP ABAP Preparation, SAP ABAP Tutorial and Material, SAP ABAP Learning, SAP ABAP Exam Preparation

Friday 18 March 2022

Prefill UI2 Cache for better performance @ initial call of FLP

Case Description

I noticed that when Fiori Launchpad (FLP) is starting, it’s calling /UI2/PAGE_BUILDER_PERS OData service via the URL like below:

/sap/opu/odata/UI2/PAGE_BUILDER_PERS/PageSets(‘%2FUI2%2FFiori2LaunchpadHome’)?$expand=Pages/PageChipInstances/Chip/ChipBags/ChipProperties,Pages/PageChipInstances/RemoteCatalog,Pages/PageChipInstances/ChipInstanceBags/ChipInstanceProperties,AssignedPages,DefaultPage&sap-cache-id=6C0B84AA82291EDCA8F56801507C3C1B

This call is needed to get the needed information for your personal FLP configuration, including tiles, groups etc.

The result of this call is cached in your Internet Browser, however during the first login into FLP such call may take a very long time. It depends on the complexity of your FLP configuration.

Wednesday 16 March 2022

ABAP Restful Application Programming – Unmanaged Draft for non-guid key based Legacy objects.

Introduction:

In this blog post, we will see one of the common problems and possible solutions in the Unmanaged Draft scenario in ABAP RAP. As we know, the keys are automatically drawn for draft records. Imagine as a case, we have a legacy data model (EKKO, VBAK) whose keys are not GUID based.

Problem statement:

If we develop a RAP application based on it. Application will not let any user create another draft in the whole system. If it is based on GUID Keys, then we could have marked the key as a numbering field to draw automatic keys. In this case, the application already consumed default keys ( ‘     ‘ for CHAR, ’00..0’ for NUMC ) and returned the error below.

Sunday 13 March 2022

Basic Overview and Trouble shooting of SAP FQEVENTS

Background of FQEVENTS:

SAP created events to apply custom related solutions for FICA which its gives us an easy navigation and on the point spots to enhance the process. These events include a wide range of process (ex: posting, reversals, dunning, encashments etc.) which is very helpful when it comes to supporting business processes by applying custom solutions.

Transaction FQEVENTS is meant to maintain FI-CA events and some specific events which are used by the mass activities. There are many enhancement techniques used in SAP ABAP.

Monday 7 March 2022

Easy way to disable creation, modification & deletion of sales order item text ids in VA02

Introduction

In certain cases, you need to disable text ids of the Sales order item in VA02 under the Texts tab to restrict the user from deleting, changing, or creating texts.

SAP ABAP Certification, SAP ABAP Tutorial and Material, SAP ABAP Career, SAP ABAP Job, SAP ABAP Skills, SAP ABAP Preparation

This can be complex based on your approach. So, for the easy solution, I am writing this blog post.

This solution is to convert the type( V -> A ) of the transaction in the include: MV45AF0C_CUA_SETZEN by doing an explicit enhancement.

Friday 4 March 2022

Enforcing Global ABAP Quality Standards with ABAP Test Cockpit (ATC)

When you are adopting agile and DevOps methodologies in SAP development, part of the process is shifting left. That means giving the developers more ownership of code quality, by integrating quality checks into their workflows. It’s a more satisfying way to work, and it cuts cycle time by reducing rework between developers and QA.

At the same time, many organizations find it difficult to achieve consistent code quality across all of their development systems and team members. A company might have multiple developers working on the same code base, or might, for example, have separate code bases for different systems like ECC, BW and CRM.

SAP’s ABAP Test Cockpit (ATC) provides a solution. It enables you to run the same code quality checks across all of your systems and can empower developers to check and manage code quality much earlier in their development workflow. ATC is integrated into ABAP Workbench, so it’s easy for developers and QA experts to use.