Friday 27 December 2019

Workflow: Purchase Order/Requisition Approvers Simulation

Have you wondered how, after you’ve finalized your release strategy configuration (for Purchase Order and Requisition as an example), how the approvers for each code are ACTUALLY found?

If you’re using the standard Workflows, they’re using Rules (PFAC) to do so. One thing in common between these 2 rules (PO and PR) is that they both execute the FM ME_REL_GET_RESPONSIBLE to actually find the approvers for the Workflows (FIORI or SBWP).

Wednesday 25 December 2019

Monday 23 December 2019

Understanding ABAP Unit Testing Fundamentals – Overview for Beginners

In this blog series, I will share my understanding and knowledge about ABAP Unit Testing and TDD approach. As this itself is a vast topic, I will first begin with Unit testing fundamentals, then delve into testing framework. Later I will write about TDD, its necessity and illustrate how to achieve it practically. The blog series is structured in such a way that it goes from scratch, and later goes in-depth into the concepts.

Friday 20 December 2019

Fiori Elements extensibility using CDS and KUE (Key User Extensibility Tool)

Prerequisites


UI Adoptation with KUE( Key user extensibilty) required certain security Roles.

Please make sure to assign  security Role SAP_UI_FLEX_KEY_USER to your user id in Fiori Front system.

Wednesday 18 December 2019

ABAP Development in VS Code

When I started learning ABAP I found myself getting increasingly frustrated with the speed at which the SAP GUI for Java responded and I looked for other options, this is how I found that you can mount your SAP system as a filesystem in VS Code. This blog will cover how you can get started with developing ABAP from VS Code.

Note: If you are not running Netweaver v7.51+ you will have to install a patch that can be found as part of the first plugin install options.

Monday 16 December 2019

SOAP web service using SAP Cloud Connector with SAP Cloud Platform

Optimizing your business with embedded intelligence, extending your processes with guided outcomes, or break new ground with open innovation by leveraging intelligent technologies Like SAP Cloud Platform, SAP Web IDE and SAP UI5 to transform processes and business models to deliver the outcomes that you and your customers need.

As one of the requirement now a days are to scaling up/expose your on premise legacy server and use it as it is sitting on the internet. It is somehow not feasible for one organization to migrate to new server in short span of time.

Saturday 14 December 2019

Usage of Module Pool to customize fields in TMG

Introduction:


In this blog post, we’ll go over a series of steps that will explain how to perform screen level changes such as column label, column sequence, visible length of the column and make use of excess space on screen in TMG without any modification in the table structure.

We generally use TMG to create, change and delete entries from the DB table. By following the steps mentioned in this post, you can change the look and feel of the screen as per your requirement.

Friday 13 December 2019

Running SAP NW 7.52 SP4 trial in docker in Windows Subsystem for Linux 2

On top of that I’m very interested in running Linux on my Windows machine, since some development stuff just works better on Linux

Depending on your preferences, you can choose between these 3 options:

In option 1 I updated the original blog to make it run on Docker Desktop for Windows with the SAP NW 7.52 SP4 trial.

Wednesday 11 December 2019

Refactoring with sensing variables

In this blog-post i want to show how to refactor ABAP source-code using sensing variables.

Sensing variables


Sensing variables were a idea invented by Micheal Feathers, which help to preserve existing behavior after refactorings. Refactoring in this context means to split a long procedure into smaller procedures.
In this blog-post i want to modify Feathers idea a bit, so that it is more suitable for ABAP developers.

Monday 9 December 2019

Memory wasted by spring boot application

One of the widely wasted resources in the world today is: Memory. Due to inefficient programming, surprising (sometimes ‘shocking’) amount of memory is wasted. We see this pattern repeated in several enterprise applications. To prove this case, we conducted a small study. We analyzed the famous spring boot pet clinic application to see how much memory it is wasting. This application has been designed by the community to show how the spring application framework can be used to build simple but powerful database-oriented applications.

Saturday 7 December 2019

All about CDS Annotations

This blog would give insights about the Annotations used in the S4HANA CDS DDL views.

If you are begineer then you will be puzzeled what are the available Annotations which we can use while creating a CDS view. SAP doesn’t allow any customer specific annotations so you have to use what ever SAP delivered.

Friday 6 December 2019

SAP MDG- Entity data specific to current Change request

1. Introduction – The purpose of this document is to explain If the material is processed under 2 change request i.e Parallel Processing, then we need to bifurcate data specific to each CR.

2. Overview In Parallel Process we can have the same material in multiple active CR. For example, a material can be requested for an extension for 2 different Plant in two separate CR. So while processing the first CR one should not execute any action on data which is from the second CR.

Wednesday 4 December 2019

Proposal search for Standard field in SAP

In this blog we are going to learn about how to enable ‘Proposal search help for standard field’ which is similar to Google search suggestions when you start typing words in search box.

Yes! you heard me right, it is possible to provide proposal search help in standard screen fields even though Search help is not assigned to field in Screen attributes and it is possible in ABAP 7.4 and higher.

Monday 2 December 2019

Smartform folders: change their sequence at runtime

On a customer project, we were asked to add some flexibility to the display of customer “Factsheets”: ability to suppress some sections, and possibility to change sequence of the displayed ones.

A “Factsheet” is a SAP SmartForm that provides in PDF format a customer overview of various data, including sales, marketing, service and logistics data. Factsheet is requested from a Fiori app, and is provided either online or by e-mail.

Saturday 30 November 2019

Dynamically read the application server data to internal table and download to presentation Server

Introduction:


I got the requirement to Dynamically read data from the Application server to Internal table and Download in to Presentation server.

First we should have to know how to upload internal table data to application server, from there how to read the application server data and download to presentation server.

Friday 29 November 2019

SADL – Handling OData Navigation Without Association

Overview


In this blog post I’ll share how I was able to enable navigation between two OData entities that did not have an association mapped by SADL.  I wasted a lot of time searching for a blog post or question on this and didn’t find one.  So now that I figured out the answer hopefully it will save you time!

Wednesday 27 November 2019

Add Additional tab in Sales without using Access key

What does this Document have to offer?


The focus of this blog post is “How to add Additional Data tab in Standard transaction (VA01,VA02,VA03) in the Header Level using BADI.

Example Scenario : Lets take Seed Industry.While creating the Sale Order they want to record the data related to Schemes like kharif,rabi,spring, in what scheme the Sale Order has been created. So here our requirement is to add the “SCHEMES TAB” in Header level beside Additional data A and B.

Monday 25 November 2019

Dashboard App to view the Usage/Operations of Fiori and UI5 Apps

This blog details about how to extract statistical, usage and other app based information for all the existing FIORI and UI5 based apps connected via SAP NWG(Netweaver Gateway).

Fiori and UI5 based apps related details(Technical Name, Entities, operations, users, device types etc) are  stored in Metering table(Ex: /IWFND/L_MET_DAT ).

Before proceeding further lets look at below jobs related to metering tables.

Friday 22 November 2019

How to import and use ATC check variants in SAP Cloud Platform ABAP environment

The first problem was that transaction SCI is not available in SAP Cloud Platform ABAP environment and that there is no UI available yet in ABAP in Eclipse to create ATC check variants. This is planned to become available in one of the next releases of SAP Cloud Platform ABAP environment.

In the meantime there is the option to create check variants in an on premise system using transaction SCI and to import the same into our SAP Cloud Platform ABAP environment using abapGit.

Wednesday 20 November 2019

How to report an incident for SAP Cloud Platform ABAP Environment from within ABAP in Eclipse

If you encounter an error in your SAP Cloud Platform ABAP environment you can now report an incident without having to leave your development environment. It’s now possible to launch the SAP ONE Support Launchpad from within the ABAP Development tools in Eclipse.

Friday 15 November 2019

Software Lifecycle Management for SAP Cloud Platform ABAP Environment

SAP Cloud Platform ABAP Environment is available for one year now, and users are running more and more productive apps in this environment. Due to the criticality of changes, customers maintain and verify changes of custom application in development and/or test/quality systems first, before they transfer the verified content in a controlled way to the production system. Thus, software lifecycle management is getting a critical aspect.

Wednesday 13 November 2019

Interesting stuff you find when running S/4HANA Readiness Checks

Even though our move to S/4HANA is still quite some time away, I decided to run readiness checks with the latest simplification database for release 1909 on our large Z-code base.

SAP ABAP Certifications, SAP ABAP Learning, SAP ABAP Tutorial and Materials, SAP ABAP Online Exam

Friday 8 November 2019

About Debugging- Part1

About Debugging in SAP :


The objective of this document is aimed at explaining the concept of SAP debugger types and tricks.I assume that this will be a helpful for my fellow readers.

Wednesday 6 November 2019

Workflow: Get PO(also PR and Entry Sheet) Approval History

If you need to get the Approval history for PO, PR and ES documents in realtime, you could use the following BAPIs:

BAPI_PO_GETRELINFO: For Purchase Orders;

BAPI_REQUISITION_GETRELINFO: For Purchase Requisitions;

BAPI_ENTRYSHEET_GETRELINFO: For Service Entry Sheet;

Tuesday 5 November 2019

Convert local class in program to global class in SE24

This document explain how to convert a local class in program to a Global class in SE24.

Convert local class to Global:


◈ Go to transaction SE24, select menu Object type and option Import (Local class in program):

Monday 4 November 2019

External REST api integration in SAP using REST handlers

I have been not blogging for quite sometime and I was looking for some interesting use-case related to SAP Gateway which could be of some help to the community. Recently I have worked on SAP & External third party integration about which am going to share the technical know-how’s.

Saturday 2 November 2019

How to Profit from FAST RFC Serialization

Introduction


Fast RFC serialization speeds up RFC-communication by factors and is easier to manage than other RFC serializations. It is required for all scenarios with t/q/bgRFC in the cloud and brings great advantages for all RFC communication with S/4HANA releases. Therefore, you should use fast serialization for all new RFC scenarios. Due to its optional compatibility with classic serialization and basXML, it’s also easy to use fast serialization for existing RFC-scenarios – based on classic serialization or basXML – , if you want to speed up data transmission or profit from fast serialization’s other advantages.

Friday 1 November 2019

Implementing an IoC Container in ABAP

Preface


The following is an article describing my adventures of creating a naive implementation of an inversion of control container using the ABAP programming language.

The first part will focus on the Dependency Inversion Principle and ways of achieving loose coupling.

Thursday 31 October 2019

Bill of Material (BOM) – Components | Deletion steps

Introduction


In data migration testing, we can come across a situation where the records which are being created as per the file provided by the client, later on can be irrelevant from the functional point of view. So what to do now? Will we have to delete them manually? The answer to this problem lies in this blog post.

Wednesday 30 October 2019

Displaying Plant Maintenance Order Plan/Actual Line Item Wise

I had a client requirement where i was asked to show Plant Maintenance Order Plan/Actual (line item wise) side by side like below.

SAP ABAP Tutorial and Materials, SAP ABAP Study Materials, SAP ABAP Guides, SAP ABAP Certifications

Friday 25 October 2019

Re-process the IDOC ID

Introduction:


This blog post is about reprocess the IDOC, while getting an error to post the inbound IDOC.

In this blog post you can see how to find the issue or how to debug the existing error IDOC.

Wednesday 23 October 2019

ABAP to JSON with Custom Transformation

Introduction:


ABAP to JSON conversion is very common requirement now-a-days. This can be done easily using the standard class “/UI2/CL_JSON”. This is the best way to convert ABAP to JSON. There are already couples of blog post already there.

Monday 21 October 2019

File encryption and decryption using ABAP

This blog post is intended to give an overall idea on file encryption and decryption process using a key in ABAP. By end of this blog post, we will be able to learn ‘how to encrypt a text file or data using a key and in the end we will also able know “how to decrypt the encrypted data using the same key”.

You can also try this blog post if you are getting run time error “CX_SEC_SXML_ENCRYPT_ERROR” in class “CL_SEC_SXML_WRITER” during decryption of the data.

Friday 18 October 2019

A Neanderthal guide to configuration of Fiori my Inbox App with SAP business workflow

This article contains information about the configuration of Fiori my inbox App with workflow on a gateway central hub deployment.

In a standard work item that appears in your inbox, there is always a workflow id and step id assigned to it. This workflow id and step id when viewed in T-Code SWDD appears as a workflow activity with a task id assigned to the workflow activity. This task id should be noted as it will be later maintained in the scenario definition on the front end server.

Thursday 17 October 2019

AbapTurtle – make something pretty in abap (and possibly win prizes!)

Introduction


In order for our legacy to continue, we should be thinking about raising the next generation of ABAP programmers. In my experience, talent can easily be attracted by using shiny or colorful things.

Turtle graphics are a popular method of visual programming. If only we had something like this in ABAP!

Wednesday 16 October 2019

Alternative to “discover” Workflow executions coming from FIORI MyInbox and SBWP

In this Blog i’m gonna show you a alternative to a “common” question among the community: How do i know if a Workflow was executed coming from FIORI MyInbox or SBWP?

Well, there are a few ways to do that… This is one of them, a “coding” approach.

So let’s get to it!

Monday 14 October 2019

E-Mail Templates in S/4 HANA

E-Mail communication is very common business requirements in day-to-day life. SAP understands that and comes up with very interesting feature in S/4 HANA (cloud and on premise both) – E-Mail Templates. In this article, I will provide a little overview and a demo of E-Mail templates.

Friday 11 October 2019

Custom Search help Find technical information, Debug and Troubleshoot search help not returning any values

This blog discusses how you could add SAP custom Search help to standard search help and also troubleshoot why the SAP custom search help does not return any values even when user selected multiple values. It covers below topic areas:

i. Check how to find the technical name of the search help being used
ii. Add custom search help by modifying the standard search help
iii. Fix the issue for user being able to see any option returned when selecting multiple options in the search help window.

Thursday 10 October 2019

ABAP BAPI BO Class Code Generator – Create method

This blog post is a follow-up blog post of the blog post ABAP BAPI BO Class Generator.

The explaining of the Create method is done by example.
The example is creating a Sales Order – Create method based on BAPI BAPI_SALESORDER_CREATEFROMDAT2.

Wednesday 9 October 2019

Creation of Odata services for beginners

In this series of Odata and UI5 blog posts I will be sharing my development experiences, challenges and different tips and tricks which I learned through a lot of internet searches.

My only motto will be to save time and efforts of many developers who are searching for a solution for their problem, which has either already appeared/solved by someone else.

If you have any question/query regarding this blog post or anything related to Odata, ABAP, JAVA, Android or any other technology, post a comment I will try to answer it.

Monday 7 October 2019

CRUD Operations in Module Pool

Introduction


In the below example I am going to explain CRUD Operations using module pool programming.

Here, I have done CRUD operations by taking separate screens i.e., GET, CREATE, UPDATE and DELETE operations.

Saturday 5 October 2019

ABAP on Cloud Trial on SCP set up info

ABAP on cloud was in introduced in september 2018 with official name SAP Cloud Platform ABAP Environment. SAP Cloud Platform ABAP Environment is a platform as a service (PaaS) offering for the ABAP developer community running in the Cloud Foundry environment of SAP Cloud Platform.

ABAP developers can leverage their existing ABAP know-how to develop and run native ABAP applications, either as an extension to SAP software or as standalone applications.So, we  can combine latest ABAP on HANA with the innovations available in SAP Cloud Platform, like SAP Leonardo, and the benefits of a cloud-based deployment.

Friday 4 October 2019

AES Encryption in ABAP

Introduction


Recently we had a requirement in our organization to implement encryption for all data transmission happening from SAP to external systems to have an additional layer of security.  The requirement was to AES256 encrypt and Base64 Encode the information shared between the systems.The encryption/decryption was done with a common key which gets generated in SAP and shared through automated email from the system.

Wednesday 2 October 2019

How to insert test data into tables in SAP Cloud Platform, ABAP Environment

Since there aren’t any sophisticated techniques available yet I asked colleagues for ways how to upload test data into tables in SAP Cloud Platform, ABAP Environment and found the following workaround.

1. Create a report in the source (ERP) system that reads the data and creates a list output using “write” statements that contains appropriate Open SQL INSERT statements.

2. Create a table in the target system.

3. Create a class in the target system and start the import via F9.

Monday 30 September 2019

Download Spool to Application and Presentation server in Text, HTML and Excel formats

In this blogpost you will learn to “Download spool to presentation server and application server in 3 formats – Excel, Text and HTML “.

In one of my projects I got a requirement to download the spool in Excel, text and HTML format in presentation/Application server.To convert spool into PDF, SAP has already provided a function module – CONVERT_ABAPSPOOLJOB_2_PDF and CONVERT_OTFSPOOLJOB_2_PDF.But unfortunately to convert in the above 3 formats there is no such Function module present.

Saturday 28 September 2019

How to merge multiple PDF forms into single one and write in application server

Today I will try to explain how we can merge multiple PDF forms output into single one and write the same PDF file into application server.

Brief requirement: The real life scenario demanded to send a bundle of different SAP system generated PDF forms to a third party document repository ( has access to the SAP application server ) . The form bundle contains different forms like cover letter, loan agreement, direct debit, third party authorization, terms and condition forms etc.

Friday 27 September 2019

Parallel Processing for Huge Number of Records In Internal Table

In some situations, Processing huge number of records in Internal table could take a lot of time. This in turn reduces performance of the entire system.This is where the concept of Parallel Processing comes into the picture. This Blog explains how to use Parallel Processing technique to Process huge volume of data in a much efficient manner.

Thursday 26 September 2019

Find the variant of a program causing dump

Introduction


In the area of SAP interfaces, particularly report programs having complex selection screens; it practically becomes impossible to remember the screen values, every time the user run the report.

Thus to solve, this problem, SAP came up with the concept of variants long ago, which enables the user to store the selection screen value combinations into a logical object.

Wednesday 25 September 2019

Where my transport and what inside

Introduction


Transport objects list handling is very important on any project: first developer may make a correction and release the transport, than an object may be changed by another developer and be released again. Wrong customization in a transport may have impact on regular reporting. New OSS Note may also affect performance or conflict with Customer enhancements, Customer User-EXIT’s or Customer BADI’s implementation.

Tuesday 24 September 2019

SAP new technologies and the impacts in the life of consultants

I recently received an invitation to prepare and run a presentation to the IT Brazilian community in Sydney, subject free and with the main purpose of sharing experiences which may help other consultants in their SAP career’s development.

With this opportunity I found the perfect excuse to discuss a relevant topic that affects the SAP community nowadays, new SAP techs and the impacts in the life of consultants.

Monday 23 September 2019

Refactoring an ABAP Include Monolith

Motivation


Usually, in R/3 you see a common pattern: Spaghetti-Code within of program includes of a certain function group. Especially, in case of extensions of SAP standard this was required and caused the creation of big monoliths, whereby more than 10.000 lines of code was not rarely.

In addition, another problem as consequence is that only one developer could do a change of the source code, because the whole function group was locked. I would also assume that those changes could not be tested very well. Therefore, the developer would not be aware of any side effects.

Saturday 21 September 2019

Dynamically Update Data From Excel To Database Table

Introduction


I got the requirement to update the database table using the excel sheet data provided by the end-user. End-user will provide different database table names and the corresponding excel data, we need to upload that particular excel data into that corresponding database provided by the end-user.

Handling the field level validations i.e, the field order of that particular table with the field order of the excel data.

Friday 20 September 2019

Allowing multiple entries for document number in F-28 | F-32

So here I am with another blog which talks about an enhancement which can help in solving a problem that has been there in F-28, F-32 and other similar standard transactions since long time.

People worked in FI as a consultant or end users know that while using F-28, we cannot give as many document numbers as we want as input. There is a limitation on number of documents that can be supplied at one go with below flexibility:

Wednesday 18 September 2019

Tip: How To Execute C# or VB.NET Seamlessly in ABAP

Therefor I added a wrapper method in the COM library which delivers as return type a string. This method called run_str. It is very interesting to develop a component which can be used in different scenarios.

This approach uses the COM interface of the SAP GUI for Windows. Without the SAP GUI for Windows this approach can not be used. It is also not possible to use it with background processes.

Monday 16 September 2019

SAPUI5 “FullStack” Tutorial: Fiori Client Barcode to Employee Data/Photo

In this tutorial i’m gonna show how to display the employee’s data/photo on a FIORI App, by reading a QR Code that contains his PERNR (Personnel number), showing all the way through.

To be able to complete this tutorial, your HR environment needs to have at least 1 employee with image configured.

Friday 13 September 2019

SAP Manufacturing Integration and Intelligence for ABAPer’s

Trigger


I have recently switched my job and that job super technical, each day is a new challenge.  So one of the challenge which came my way was to ramp up myself in SAP Manufacturing Integration and Intelligence(MII).Initially I thought it must be new module like SD/MM/FICO, language will  be ABAP only, I can do no issues. The moment I had my first call where the other person asked me few of the MII jargons like BLS, queries, PCO etc. , I was shocked I knew nothing.

Thursday 12 September 2019

A4H Use Case – Creating CDS view to get System status and User Status Texts for bulk of Objects

Introduction:


In this blog post you will learn a use-case on concatenation of column values from multiple records and bring the data into single record in ABAP CDS views.

Overview


At some point in time we would have used the Function Module STATUS_TEXT_EDIT to fetch System Statuses and User status for any OBJNR.

Wednesday 11 September 2019

Info-Provider Record Statistics Tool

I would like to share with you all regarding a BW tool that has been developed by myself. The tool is called as ‘ Info-provider Record Statistics tool’.

Introduction:


The Info-provider Record Statistics tool can be used for analyzing the key statistics in a Data – provider (Infocube, DSO, Master Data and DataSource). The tool determines the following statistics when we provide the technical name of the desired data provider as an input. The metrics determined are as follows:

Monday 9 September 2019

Implementing Cartesian Transformation in SAP ABAP CDS Views

Introduction


This paper presents in detail how to implement Cartesian Transformation in SAP ABAP CDS Views to convert a record with hundreds of measures to multiple records with few measures and their IDs.

This approach could be very useful when converting COPA and/or CCA data with hundreds of measures in each record to P&L data with multiple records; e.g., Sales, Rent, …, Revenues, Payroll, Utilities, …, Expenses for each original record and; e.g., , 2 measures in each record; e.g., current year and previous year values.

Wednesday 4 September 2019

SOH: ABAP Code Remediation & Rules to be followed

While working for a Suite on HANA Migration Project, as an ABAPer I need to carry out the ‘Code Remediation’ activity & have to make some ABAP code changes to avoid the potential functional issues while migration to HANA.

Initially, I had referred many SAP Blogs & SAP Learning Hub Material before commencing my project activity. Now, with the experience from my work & reference from multiple SAP Blogs, I have  prepared list of guidelines to be followed while doing Remediation & Code changes. I am sharing the same.

Monday 2 September 2019

Custom KPIs for Cross Project Overview and Multi Project Overview Fiori Applications

INTRODUCTION


This Enhancement is used to extend Cross Project Overview Application and Multi Project Overview Application in SAP S/4HANA Commercial Project Management. Here, the purpose is to display below Custom KPIs

◈ ZCFA – Capex
◈ ZTNP – Transaction price

Wednesday 28 August 2019

ABAP BAPI BO Class Generator

As ABAP developers we should write object-oriented code instead of procedural code, because it has better memory management, better syntax checks, more reuse possibilities and more. Also SAP states it is the preferred way to program ABAP. However, most of the business logic of SAP must be accessed by BAPIs *1, which is procedural code.

Friday 23 August 2019

Building a dynamic Gauge in apps using Fiori Elements – Google charts

One of the advantages of Sap Fiori is that you can integrate 3rd party JavaScript APIs with ease. In this blog I will showcase one such use case by building a dynamic Gauge using Google Charts. I will also utilize the Analytic Engine of S/4HANA to generate aggregated data for the gauge with ABAP CDS views (embedded analytics capability).

Wednesday 21 August 2019

Upload a SAP Transport Request – Made Easy

If you are using third-party ABAP tools in your SAP systems or interested to move an ABAP package to your existing SAP system from another SAP system , you can use SAP Transport Request files.

In my company,  we produce some third-party ABAP applications & add-ons and installing & reqularly updating them via SAP Transport Request files.

Monday 19 August 2019

Get to know and how to use – Whitelisted Released ABAP Artifacts for Configuration Experts in SAP S/4HANA Cloud

In this short blog post you will get to know the latest feature released in SAP S/4HANA Cloud 1905 called – ‘Released ABAP Artifacts’, like – Classes, Interfaces, and Data Structures

SAP ABAP Tutorials and Materials, SAP ABAP Learning, SAP ABAP Certification, SAP ABAP Online Exam

Friday 16 August 2019

Bulding a simple Web/Android App for Document-Management with Mendix Low-Code-Platform

Introduction


This blog examines how document management processes can be mapped in Mendix’s low-code platform when the actual document management functions are implemented via a backend in the form of the SAP ERP system using web-services.

Wednesday 14 August 2019

Multiple Shades of ABAP!!!

Yes, you heard it right shades or different versions of ABAP. With changing deployment options and the way, we can enhance business solutions in addition to the classical extensibility, leads to different versions of ABAP currently.

Monday 12 August 2019

ABAP / Fiori Elements – Organizing your Data Architecture using CDS Views: Building from Scratch Walkthrough (UI and Logic)

Let us say that you must build a data architecture that needs to have an office that contains employees and workstations. Below I have put an image representing the data architecture of this example.

ABAP Development, NW ABAP Web Services, SAP ABAP Study Materials, SAP ABAP Tutorial and Material

Sunday 11 August 2019

Singleton design pattern – A simple yet useful example

Introduction


The example below are based on my need to hold and transfer two fields from LIKP. It is easy to expand to hold other table structures or single fields.

The datastore could be used to replace the usage of MEMORY ID, which are not very readable / maintanable.

Friday 9 August 2019

How to create your own DMEE Tree Type? Part 2 of 2

Introduction


In first part of the Own DMEE Tree Type series I presented how to create own DMEE Tree Type and set up a new tree of own type.

Second part is concerned on triggering the own DME Tree via custom program and showing which standard functions can be used for that.

Wednesday 7 August 2019

How to create your own DMEE Tree Type? Part 1 of 2

Introduction


Almost every SAP consultant in Finance area associates DMEE transaction with building own DME Trees for payment using the most commonly used Tree Type PAYD.

In some countries consultants also see that other tree types are used like DSLH / UMS1/ ASLD etc. for providing VAT statements/ EC Sales list etc.

Friday 2 August 2019

Adding Website Public Certificates to ABAP Stack

This is going to be a pretty short tutorial / walkthrough on how to add website certificates to your SAP ABAP stack specifically.

I like to categorize my blog post based on the Five Ws and one H, What, Why, Who, When, Where and How methodology.

Wednesday 31 July 2019

Data Migration: Using a Single program to Upload any database table

Introduction:


We often come across situations where we would like to directly upload data in the custom database tables (Transparent tables) which we create. The main intention of such kind of a direct update is primarily based on the fact that these tables only hold relevant data and there are no complex validations which needs to be taken care during the upload process.

Monday 29 July 2019

Steps to create a data connection between a SAP on-premise system and SAP Web IDE using cloud connector

Overview


This blog post will guide you through the steps to create a data connection between a SAP on-premise system and SAP Web IDE. I will also be discussing steps to configure cloud to on premise and steps to map virtual to internal system in a cloud connector. At the end, I will be creating a list report application using an OData service in Web IDE.

Friday 26 July 2019

Break point for SELECT statement with Table Filter

1. OVERVIEW


In some occasions we need to find exactly where a SELECT statement is done for a particular table.

We can use breakpoint for SELECT statement but, most probably, the debugging session can be hard due to the number of hits we can get.

To go straight forward and find exactly the place in the code where table, or a group of them, are being involved in a SELECT statement we can use Filter Criteria for the Breakpoint.

Wednesday 24 July 2019

How to use BAPI_PRICES_CONDITIONS to mass upload price conditions

Brief overview of BAPI_PRICES_CONDITIONS:  is the unreleased BAPI and deficient in many aspects as there is missing documentation and also the BAPI has structural defects. This BAPI fairs not so well when compared to VK11 BDC updates [ or other application transactions ] or Idoc Creation. However like all BAPIs, we can rollback our changes in mass and the use of it to load all conditions from excel file and if any error, rollback is one of the reasons I would recommend to use this.

Monday 22 July 2019

Building connected UI5 apps using Fiori Elements

It is a common requirement to enable app to app navigation and intra-app navigation when building a suite of UI5 apps. Anybody who has experience with traditional UI5 apps (free style apps before the Fiori elements era) will acknowledge that it is a bit challenging to implement and a variety of approaches can be used to achieve this. Things are streamlined a lot in apps using Fiori elements and usage of navigation controller(provided as part of extension API). In this blog I will share my experience building apps that talk to each other.

Friday 19 July 2019

Gateway – OData Post using Postman

In this blog i’m gonna demonstrate how to use Postman to execute Post calls to a SAP Gateway server.

Then, create the Z table below in your backend (assuming it’s a Hub scenario) server:

Wednesday 17 July 2019

ABAP on SAP Cloud platform – ABAP RESTful Programming Model (RAP) for beginners with CRUD example

Prerequisite: 


Concepts of Core Data Services(CDS) and annotations.

Lets Start

RESTful ABAP Programming Model (RAP): The term RESTful ABAP Programming Model (RAP) is chosen to reflect its orientation towards a “stateless” REST architecture.

Monday 15 July 2019

S/4 HANA Embedded Analytics KPI Tile: Configuring Insight to Action

S/4 HANA Embedded Analytics KPI tile provides drill down capabilities. Clicking on KPI tile takes you to default drill down, where you can continue your analysis apply filters and drill down to the most granular data level e.g document level. Finally you can drill down to application (insight to action) to make transaction changes etc.

Friday 12 July 2019

Currency and Unit conversion in ABAP CDS views

Recently, I’ve been checking some examples of unit and currency conversions based on ABAP CDS views and I noticed is quite common to find people applying manual conversions in the formulas.

A simple example of a days to years conversion is conceived with a multiplication of the original value by 365, for more complex situations like an expansion of this same conversion from days to months and years a CASE statement is implemented to adjust the output of the value.

Wednesday 10 July 2019

How to create an openApi Rest Service from an oData v4 Rest Service with SAP Netweaver ABAP

Motivation and Introduction:


Rest Services are very popular and widely used. But Rest is only a programming paradigm and or an architectural approach as such it doesn’t set up any contract how services are offered, and which format the payload will have finally.

Monday 8 July 2019

Step-by-Step Archiving of Material Documents

1. Step by Step Archiving Procedure for Material Documents Archiving:


Archiving Object MM_MATBEL is used for the archiving of Material Documents.To perform data archiving in the SAP system, SARA transaction code is used. This is the standard method for executing the Archival.

Sunday 7 July 2019

Read COMM port using ABAP w/o third party software

Case: Weighbridge scale sends the weight data to COMM Port.

Earlier we had to write a .NET program using SAP.NET Connector (Using VB.NET) and then from SAP side we had to create RFC so that the COMM port data gets utilized in SAP.

Now there is no need to use the third party software (VB.NET, C# etc) Using the following steps we can directly fetch the weight data at the COMM Port to SAP:

Saturday 6 July 2019

How to create OData for GET operation in SAP Cloud for Customer System ?

Open Data Protocol (OData) is an open protocol which allows the creation and consumption of quarriable and inter-operable RESTful APIs in a simple and standard way.

This blog post covers the step by step process for beginners on how to create the OData service for GET operation in the SAP Cloud for Customer System.

Friday 5 July 2019

Excel Data to Internal table using ALSM_EXCEL_TO_INTERNAL_TABLE without additional code

This blog post will help you avoid extraneous code every time you create Excel upload program by creating a simple Interface and a structure.

Before I came across FMs like TEXT_CONVERT_XLS_TO_SAP and SAP_CONVERT_TO_XLS_FORMAT, I used  ALSM_EXCEL_TO_INTERNAL_TABLE widely.
For ALSM_EXCEL_TO_INTERNAL_TABLE, explicitly we need to write code to transfer output of this FM into internal table of desired format. For this we have to map column number of FM output with columns of required internal table using

Wednesday 3 July 2019

ST Transformations: XML 2 ABAP, a working example

Note: this post is not about the differences between XSLT and ST, it’s just a little example for quickly understanding the general structure of a Simple Transformation.

Monday 1 July 2019

Comparative Analysis with S/4 HANA Embedded Analytics

Comparative Analysis is a common requirement, for example, Y2Y. The challenge is to model CDS View in such a way that make data selection flexible and easy for both reporting period and reference period.

Saturday 29 June 2019

Modularizing CDS Annotations

You use CDS annotations to enrich your data model with metadata. In some cases, this can reduce readability and make it hard to maintain your data definitions. To improve this situation, metadata extensions have been introduced.

Friday 28 June 2019

Fiori Elements-Value help on a selection field within a value help dialog

This is about featuring the capability of Value help on a selection field within a value help dialog in Fiori Elements based List Report.

Business Scenario


Let’s consider Business scenario where Fiori Elements based List Report displays Purchase Order with Vendor as one of the selection field.

Wednesday 26 June 2019

Selection Screen Variants – Part II

In my previous blog we discussed about types of variants, protection of variants and tables storing variant values and directory.

This blog will cover the details about the variant attributes and their usage.

Monday 24 June 2019

Custom Data from FI-CA to RAR (Part II – Development Procedures)

Introduction


The purpose of this two part blog is to describe a solution that allows custom values to be populated on the provider contract and then transferred to SAP Revenue Accounting.  The custom values can be populated using both the provider contract create transaction and the standard creation BAPI.  The standard provider contract transactions are enhanced using the Business Data Toolset (BDT).  Using event 8205, the custom values are transferred to Revenue Accounting as both main and condition items.

Sunday 23 June 2019

Selection Screen Variants – Part I

What are variants?


In SAP ABAP reports have a mechanism for entering values for database selection or for performing different calculations through SELECTION SCREENS.

Friday 21 June 2019

Custom Data from FI-CA to RAR (Part I – Overview)

Introduction


The purpose of this two part blog is to describe a solution that allows custom values to be populated on the provider contract and then transferred to SAP Revenue Accounting.  The custom values can be populated using both the provider contract create transaction and the standard creation BAPI.  The standard provider contract transactions are enhanced using the Business Data Toolset (BDT).  Using event 8205, the custom values are transferred to Revenue Accounting as both main and condition items.

Wednesday 19 June 2019

ABAP CDS Consumption View Features Ultimate Test: Part 5

In first part, second part, third part and fourth of my blog I put ABAP CDS Consumption View to test and fulfilled some of most typical BW Query requirements. In fifth part of my blog I will challenge ABAP CDS Consumption View again. This time demonstrating exception aggregation using formula and count

I created CUBE views and finally created CONSUMPTION view. I will not go much into details of implementation because all that you can explore on your own. What is more important is to understand ABAP CDS views capabilities.

Monday 17 June 2019

Extraction from SAP S/4HANA and other ABAP sources into HANA SQL DW with Smart Data Integration

Have you ever tried to stage data from an ABAP source system into native SAP HANA or the SAP HANA SQL Data Warehousing solution? Have you tried leveraging BW extractors or CDS Views to do this? With the Feature Pack 1 update of SAP Web IDE for HANA, launched end of October 2018, extraction from ABAP source systems like SAP S/4HANA has become a lot easier. Flowgraphs in the SAP Web IDE now support ODP, complete with delta load support. The same goes for the Full Stack Web IDE on the SAP Cloud Platform. This blog describes how you can use these features.

Friday 14 June 2019

Presenting Percent Values in S/4 HANA Embedded Analytics Made Easy

Presenting percent values in S/4 HANA Embedded Analytics is a challenge.

On one hand decimal values without unit of measure are displayed correctly in Smart Business, but not in Query Browser

Thursday 13 June 2019

Creating Macros in ABAP programs for re-usability with Exception Handling

Introduction: Macros in ABAP are set of statements that are defined within DEFINE  and END-OF_DEFINITION within the program where we wished to use this macro. We can use the Macros after the Macro definition only in the same program in which it is defined. Macros are used for reusing same calculation in many places of same program instead of writing the same set of statements for same calculation.

Wednesday 12 June 2019

Fiori Elements List – Add and Implement Action Button

Recently, I worked on a requirement where we had to add an action button on Fiori Elements List Report. Looked at various options but nothing seems straightforward. UI5 Demo Kit suggests using UI5 Extensions which I wanted to avoid if I could. There are some annotations related to function import which looked promising but I couldn’t find any blog/help document on how to actually use them in CDS and implement in the OData service. Then I saw actions using BOPF, but this report which I was working didn’t have any business object attached to it.

Monday 10 June 2019

Embedded CDS View exposure to Fiori

1. Introduction


As we are aware that in SAP S/4HANA system, most of the DDIC tables has been converted to CDS views or DDL SQL Views. SAP is trying to mold all the technical changes/ABAP using these CDS views.

Friday 7 June 2019

Excel file (*.xlsx) Export/Import

In this Blog-post I’d like to give a few insights on how we process XLSX file by using latest ABAP, which might be quite different than in most other implementations, for example:ABAP and OLE or Excel with SAP – An Overview

By using CL_XLSX_DOCUMENT (available from 2008), it is easy to load file, workbook, sheets, rows and columns. A good example code can be found within class CL_EHFND_XLSX(available from 2014).

Thursday 6 June 2019

Using long string in function imports

Motivation


So I created a SEGW project in both the latest stack as well as in 740 (the latest SP though) to check whether I would be able to reproduce the issue.

I wasn’t able to do so but wanted to share in detail how it worked for me.

Wednesday 5 June 2019

Convert images into PDF and Merge with an existing Adobe forms

It’s very common business case where we need to add an image (jpg/bmp etc.) in an adobe form. We can use Image Field UI and bind the required image. But how we can merge an image in existing forms in Adobe? Recently, one of community members asked such kind of scenario and possibilities. Their requirement was to attach the images saved in PO and display along with PO Output Form. If there is any image files (mostly in “.jpg”) saved at Purchase Order, these should be merged with PO Output form and send it back to vendor. So I explored this with following use cases:

Tuesday 4 June 2019

Custom data selection for a Fiori list report application using DDIC Search help

In this blog you will see how a DDIC Search help can serve as a simple to use data source for a Fiori list report.

Why use a DDIC search help for a Fiori list report?


Search helps are well known and heavily used to find and select SAP objects. They are part of the DDIC development objects and select data either directly DDIC-table based or code based via an ABAP interface.

Monday 3 June 2019

Maintaining the One-to-Many (m = CN) cardinality between the Check table & Foreign Key table and using the combined key

Introduction: In this article we are going to learn how to provide the one to many ( m = CN ) cardinality between the check table and foreign key tables. one to many carnality can be selected upon our requirement while providing the foreign key relationship from key fields of foreign key table to check table key fields . One to many ( m = CN) cardinality refers there many be many matching records in the foreign key table for each record of the check table.

Saturday 1 June 2019

Dual Maintenance Management

Dual Transport Management has been, is and will continue to be an integral part of any SAP Upgrade project. Its mostly done manually and leaves everything to the manual verification of dual maintenance of transports in both the upgraded and non-upgraded system in spreadsheets. This blog will explain how we can automate this process and also be able to track and maintain the mapping of equivalent transports between two equivalent SAP systems.

Friday 31 May 2019

zmockup_loader and unit tests with interface stubbing

This article describes our experience of using mockup loader together with data accessor pattern approach.

Data accessor pattern overview


The code that needs to access DB inside is a bit complex to unit-test. One of the approaches to do this (if well designed from the beginning) is so called data accessor pattern.

Thursday 30 May 2019

SMW0 – “RAISE_EXCEPTION” Dump Solution Of The Error Received When Deleting An Object

In the “SMW0” transaction code, I encountered an error deleting an object. I solved this error by debugging. I wanted to share this solution with you.

The error I encountered:

Category                          : ABAP programming error
Runtime Errors                : RAISE_EXCEPTION
ABAP Program               : SAPMWWW0
Application Component  : BC-CI-WEBR

Wednesday 29 May 2019

ABAP Dumps

Dumps happen when an ABAP program runs and something goes wrong that cannot be handled by the program. Dumps that happen in the customer namespace ranges (i.e. own-developed code), can usually be fixed by the programmer. Dumps that happen in SAP standard code probably need a fix from SAP.

Monday 27 May 2019

Global Class and Method for Application Log

The goal of the object is to create the Global Class and Method for Application Log so that it can be reused where necessary in any RICEF object.

Application Log provides an infrastructure for collecting messages and exceptions in a log, saving, reading and deleting logs in the database and displaying them.

Sunday 26 May 2019

SAP S/4HANA Cloud Extensibility – Engraving sample scenario – run business process using a Side-by-Side app Part - 7

Run Business Process using a Side-by-Side app


First of all a big thank you to the colleagues from the Solution Experience team for building a Side-by-Side app which allows us to show the scenario in a real life scenario.

Saturday 25 May 2019

GLADIUS Is Getting Sharper

Introducing: GLADIUS – A Test Unit Framework

GLADIUS – The Next Level

The above blog posts are about the Test unit challenge and learning framework GLADIUS. In this series I try to evolve the framework to help better understand how the framework works and to document the development process.

Thursday 23 May 2019

Add Value to Your S/4 HANA Embedded Analytics Content with Material Hierarchy

Standard S/4 HANA Embedded Analytics content does not provide material hierarchy. The reason for that is that material hierarchy is configured as per business requirements and is unique for each client. Still you can benefit from material hierarchy in S/4 HANA Embedded Analytics, for example, drill-down along the hierarchy or selecting data using hierarchy. In my blog I will explain how to fill this gap and create material hierarchy.

Wednesday 22 May 2019

SAP S/4HANA Cloud Extensibility – Engraving sample scenario – Technical Setup – Process enablement Part-5

Process enablement


Chapter “Technical Setup” set the basis and technical foundation to use our customized process.

In this chapter I describe additional steps that are required to make our custom fields visible on the UI

Tuesday 21 May 2019

Sending push notifications from SAP to Mobile device using Firebase Cloud Messaging (FCM)

Notifications on our mobile device is something we experience on a daily basis from various mobile apps we use for News, Entertainment, Shopping, Health etc. Notifications has tremendous value to deliver in the enterprise context as they can deliver the right information at the right time to the right person. If used effectively they can be used as a tool to improve employee productivity, speeding up business processes, improving the quality of services and many more benefits.

Monday 20 May 2019

Decoration Day – Questioning The Decorator Pattern

There are design pattern. And there are design pattern. There are some I use really often because they are clear to me in use and technique, like the singleton or the factory pattern, the observer and some others. The decorator pattern for some reasons is very hard for me to understand. I learned about it in a workshop years ago. But over the years there was no need for me to use it and therefor no need to understand it. I try to change this for some weeks now…

Saturday 18 May 2019

SAP S/4HANA Cloud Extensibility – Engraving sample scenario – Technical Setup – Custom analytics Part-4

This blog is part of a blog series focusing on SAP S/4HANA Extensibility. It is one of 5 blog posts taking care of the technical setup of extensibility with a focus on In-App Extensibility.


Custom Analytics


In order to get some analytical insights about which engravings have been ordered in which month i will now setup some custom analytics.

Friday 17 May 2019

First Thoughts about Architecture of ABAP Cloud Applications

 In this blog entry, I would like to discuss some aspects.

Why ABAP Cloud Environment Matters


You are able to run existing ABAP applications in ABAP Cloud Environment if you manage to decouple them from the core systems. This helps you to keep the core systems clean since you reduce the amount of custom code in those systems. Moreover, you can use it to simplify your landscape and let SAP do the provisioning of the system. Another obvious advantage is that you get a more flexible release cycle for your application.

Wednesday 15 May 2019

Execute URL dynamically by a Button click event using Interactive features of Adobe Forms

Many a times, we have some business requirements where we would like to have editable form or buttons/check boxes in the form which user can click and desired action should be executed. Sometimes we also would like to interact with SAP using actions performed by interactive forms.

Monday 13 May 2019

How to generate the DDL source code for custom entities that are implemented by remote function calls

Introduction


SAP CP ABAP environment can serve as a platform to built side-by-side extensions for:

◈ SAP S/4HANA Cloud via OData
◈ SAP S/4HANA (on-Premises) via OData and RFC
◈ SAP Business Suite (on-Premises) via OData (using SAP Gateway) and RFC

Sunday 12 May 2019

How to implement a custom entity in the ABAP RESTful Programming Model using remote function modules

Introduction


In this blog I want to show how to build and implement a custom entity ZCE_Product_via_RFC whose query is being implemented via a class zcl_cq_product_via_rfc that reads the data from a remote system via RFC using the function modules

◈ BAPI_EPM_PRODUCT_GET_LIST
◈ BAPI_EPM_PRODUCT_GET_DETAIL

Friday 10 May 2019

Role of BTE process RWBAPI01 in BAPI_ACC_DOCUMENT_POST

Introduction


BAPI_ACC_DOCUMENT_POST is use for creating/posting accounting document for AP, AR and GL documents. This is an alternate solution in place of BDC which is used for posting documents through transactions like FB01 and FBB1. This BAPI can take input from legacy system and convert data into accounting document.

Wednesday 8 May 2019

How to call a remote function module in your on-premise SAP system from SAP Cloud Platform – ABAP Environment

Introduction


It is possible to call remote enabled function modules in your on-premise systems from SAP Cloud Platform – ABAP environment. How to integrate on-premise systems is described in the SAP online documentation.

Monday 6 May 2019

Quick/Easier way to find User Exits and BAPI’s for any T-Code

Introduction:


This blog helps any Functional / Technical consultants for getting the list of User Exits and related BAPI to a given t-code by easier/quicker way.

Obtainable:


Can be achieved through se93 / direct t-code help –> status –> program name and package.. further CMOD – lookup providing package and getting the list.  or it can be obtained through SPRO drill down.

Friday 3 May 2019

CCLM(Custom Code Life Cycle Management) Configuration In Solution Manager 7.2

Custom Code Management Work Center


CCLM- Brief description of the functionality
  • CCLM can be used for creating a library of custom codes
  • It gives you information of number (quantity) of custom code in various systems on various attributes like criticality and severity (enhancement, modification and custom code)

Wednesday 1 May 2019

Dynamic table data read and odata binding

Sometimes in our requirement we need to read data dynamically based on some condition, like columns, table/ internal table name may changes as per user input. During one such requirement we need replicate se16 like transaction for Fiori application. Here we need to show table and table data based on the table name given in input field.

Monday 29 April 2019

Hybrid Programming – OOP ALV CDS Fiori

I haven’t been on here in awhile. But today I was looking out my window in April in Michigan at the snow.  For those of you reading it not thinking that is a big deal. It’s been since the 1800s since we’ve gotten snow this late in April. And yes, I’m inside looking at that snow.  Take a look at the ground – yes lovely green grass and my pine tree looks happy.  It’s a bit of a hybrid out there spring and winter on the ground.

Saturday 27 April 2019

Fiori elements utilizing CDS with Virtual Elements

This Blog is about utilizing the CDS’s virtual elements feature which as exposed as ODATA Via SADL (direct in SEGW / with ODATA Publish true annotations). This ODATA can be further consumed by Fiori Elements based application.

Also following SAP standard documents are helpful for understanding of CDS with Virtual elements.

Friday 26 April 2019

SAP S/4HANA Cloud Extensibility – Engraving sample scenario – Technical Setup – Custom Business Logic Part - 3

Create Custom Business Logic


Also, in the cloud I have the option to write additional custom coding in order to adapt the business logic of my system.

I have mainly two options to add custom code.

Thursday 25 April 2019

Generate dynamic excel from dynamic internal table

This blog is to create a utility class for generating an excel file dynamically using a dynamic internal table. It can be directly called in any ECC program do download an excel file.

There are already some blogs available on this topic, but those does not support dynamic table.
This utility class can be used in multiple use case i.e. Download program in ECC, download excel via OData service etc.

Wednesday 24 April 2019

How to scan ABAP code?

For different purposes , scanning  ABAP codes in an SAP system is useful to gather different kind of information.

For example:

Monday 22 April 2019

Step By Step Process To Unlocking The Users Password Using Gateway Service(OData) When ever it is locked

In this blog I want to explain about how to unlock the users password when it is locked using OData and Resetting the users password by giving temporary password which is been sending through mail.

Step 1. Go to t-code SEGW to create service.

Saturday 20 April 2019

SAP S/4HANA Cloud Extensibility – Engraving sample scenario – Technical Setup – Custom Business Object Part-2

Custom Business Object


I will create a custom business object “Style” the purpose of the object should be that I can maintain the available styles for my engraving. The style should contain the layout of the engraving so which font, which font size, should it be bold, italic or underlined. The CBO could be used as a lookup in the imagined web shop, therefor I will expose the CBO via a custom communication scenario. With that I will be able to read the CBO and create new CBO entries from the postman application. I will also show you the option of a custom code list that I use as a value help for the bold field.

Friday 19 April 2019

SAP S/4HANA Cloud Extensibility – Engraving sample scenario – Technical Setup – Create custom fields, process extensibility and data exposure

This blog post is part of a blog series focusing on SAP S/4HANA Extensibility. It is one of 5 blog posts taking care of the technical setup of extensibility with a focus on In-App Extensibility. It also acts a the basis for the technical setups that will be done in the following technical blogs as well as in the process execution.

Wednesday 17 April 2019

How to guide – Connectivity Setup with ABAP and SAP Cloud Connector

Overview


This how-to guide describes an end-to-end scenario to consume backend data coming from an Netweaver AS ABAP system which is exposing a products catalog via an OData service. The approach of the blog is to provide intuitive guidance with the SAP Cloud Platform Connectivity Service and the SAP Cloud Connector.

Tuesday 16 April 2019

How to Create and Print the QR Code in Sap Scripts

Introduction


QR Code is stands for Quick Response Code.It was first developed and used in Japan.QR Code is advanced technology.It is a two-dimensional encoding, whereas a Bar Code is one-dimensional encoding in nature.

Monday 15 April 2019

Data filtration options and performance analysis in ABAP CDS views

Introduction


There currently three main ways of filtering data:

1. Parameters in all level of ABAP CDS views
2. Variables in consumption level ABAP CDS views
3. Authorisations with DCL views

Sunday 14 April 2019

Trigger workflow by OData service

This blog is define to trigger the workflow by custom application through Odata services it is a simple workflow with user decision, when a user approve the workflow the record will be created in database table.

Saturday 13 April 2019

Fiori Elements – Bullet Micro Chart in List Report

Introduction


In this blog, I’ll explain Micro Bullet chart’s feature and how to use it in List Report using CDS annotations. I have added screen shot from annotation modeler and respective xml code in case you are using one of these approach.

The bullet chart features a single, primary measure. It compares that measure to one or more other measures to enrich its meaning (for example, compared to a target), and displays it in the context of qualitative ranges of performance, such as poor, satisfactory, and good.

Friday 12 April 2019

Implementing Time Buckets in SAP ABAP CDS Views

Introduction


When reporting on large size financial, CO-PA or other applications’ dataset, it is often required to aggregate information by time intervals further called time buckets and compare revenues and expenses in two or more time buckets; e.g., Year 2016 vs Year 2015, March 2019 vs March 2018, … etc.

Thursday 11 April 2019

Physical Inventory with respect to WM

Overview Guide For Physical Inventory


Considering you have basic understanding of the process as discussed above let us jump in to the functional and technical process of the same.

Physical Inventory process varies with respect to MM and WM, in the upcoming steps we will show the same cycle with respect to WM Module.

Wednesday 10 April 2019

Automation of GR Against PO and Picking, PGI for Sales Order Delivery

Requirement: An automation requested from client for posting GR against purchase order of Delivery at PGI and delivery creation, picking for the sales order. The following is the flow chart of the requirement.

Monday 8 April 2019

CDS Hierarchies, RESTful ABAP Programming Model

In this blog post, I am going to talk about a new way of creating CDS Hierarchies. Earlier before 1809 (On-Premise release) or 1811(Cloud Release), there was a different way to create CDS Hierarchies.

Also, I will demonstrate a step-by-step tutorial to create a simple basic CDS Hierarchy. To make it really relevant for everyone I will start by creating TABLES, then to CDS Views, and then CDS Hierarchy.

Friday 5 April 2019

Class to call adobe forms and manage PDF files

This blog shows how to implement a class to create and manage PDF files based on existing adobe forms and structures of the data dictionary.

The development consists in create binary file and implement the most common actions related to adobe forms.

Wednesday 3 April 2019

ABAP Unit test patterns – test cases

By following good unit test practices, you can easily end up with a lot of boilerplate code. For example, it is recommended to have a single assert per test and split up tests into multiple methods instead of piling them up into one giant test. So it would not be uncommon for a new programmer to write a test class like this:

Tuesday 2 April 2019

PDF Base 64 (string) to SAP FBL1N

I did something simple in SAP, but I did not find everything in one topic only. So I decided to do this post and I’ll try to explain it as easily as possible.

The problem was: “I have a PDF file in the portal and I need to attach it to the FBL1N transaction.”

The tools used were SAP ECC 618 EHP 6, Abap Netweaver 7.51, SAP PO 7.5 SP01 and any portal with API Rest that returns a JSON.

Monday 1 April 2019

Consume data from an ABAP CDS association via INNER JOIN

People sometimes struggle to understand the value of associations in Core Data Services, in simple terms, associations define the relationship between different entities, but associations also improve the reusability, data consumption and it can even support different development scopes (e.g. use of attributes, texts and hierarchies in the analytical engine).

Friday 29 March 2019

Creating a draft enabled Sales Order Fiori App using the new ABAP Programming Model – Part 6: Converting the draft instance into an active instance & wrap-up

Converting the draft instance into an active instance

In the previous part we were able to provide our app with basic functionalities and draft handling. By now our app should be able to:

◈ Search for Sales Orders
◈ List Sales Orders
◈ Display Sales Order details
◈ Lock Sales Orders
◈ Delete Sales Orders
◈ Create new Sales Order draft instances
◈ Convert an existing Sales Order into a draft instance

Wednesday 27 March 2019

Creating a draft enabled Sales Order Fiori App using the new ABAP Programming Model – Part 5: Adding determinations

Adding determinations


In the previous part we were able to provide our app with basic functionalities. By now our app should be able to:

◈ Search for Sales Orders
◈ List Sales Orders
◈ Display Sales Order details
◈ Lock Sales Orders
◈ Delete Sales Orders

Monday 25 March 2019

Creating a draft enabled Sales Order Fiori App using the new ABAP Programming Model – Part 4: Implementing locking & delete functionality

Adding logic using BOPF


In the previous blogs we’ve prepared our virtual data model which we exposed using an OData service and created a Fiori Elements App on top of the OData service. We now have a very basic app up and running. Time to add additional functionality using ABAP and the BOPF framework to make our app fully functional!

Friday 22 March 2019

Creating a draft enabled Sales Order Fiori App using the new ABAP Programming Model – Part 3: Defining the UI & Creating the Fiori Elements App

Defining the UI using Metadata Extensions


In the previous part we’ve defined the data model for our app. Now it’s time to define how our app should look like. We’ll do this by adding UI annotations to our consumption views using Metadata Extensions.

Wednesday 20 March 2019

Creating a draft enabled Sales Order Fiori App using the new ABAP Programming Model – Part 2: Virtual Data Model & Consumption views

Building the Virtual Data Model


To provide our app with data and draft capabilities, we’ll build two CDS views which will form the base for our business object. I won’t go into details on how to create CDS views here, as there are enough guides available on how to create them.

Monday 18 March 2019

How to do Odata Services from BEx Query

1. Introdution


The following document discusses the method for creating ODATA services from BEX queries in the SAP BW environment.

ODATA services allow a BEx query to be consumed by any system external to SAP (mainly web services) using this standard language.

Friday 15 March 2019

And now, a real world case of parallel processing

Intro


Throughout my career as an ABAP developer I found very limited real world cases of parallel processing in ABAP. Truth is, 90% of the times, poor performance is coming from an unreasonable number of accesses to the database, normally in the order of several thousands of accesses, which is very easily fixable by changing the selection strategy, and the other 9.9% of the time, from not defining internal tables properly (as sorted or hashed tables when suitable), etc. Only very rarely there comes a situation where performance can be best improved by proper parallel processing, and I think that when these situations finally come around, the developer forgets that this is possible, it simply doesn’t come to the developer’s mind, or the developer is lazy to educate him or herself about it.

Thursday 14 March 2019

Creating a draft enabled Sales Order Fiori App using the new ABAP Programming Model – Part 1: Overview

Overview


I’ll walk you through creating a real transactional sales order Fiori app with draft handling using Fiori Elements and the new ABAP Progamming Model. The final result will be a working proof-of-concept, this will not be a finished product. (although with some additional work it could be)

Monday 11 March 2019

Finally, a real world use case for shared memory

Intro


For a very long time, I was fascinated by the idea of shared memory. It seemed to be the answer for all performance issues (at least database related), and I tried to find any suitable situation where I could apply (and learn about) shared memory. However, most of the times, the situation was easily fixed by turning table buffering on, or simply by creating an internal memory buffer, which would pretty much fix any performance issues and make it quite fast. Ok, the proposition of using shared memory to try and reduce replication of data in application memory was an interesting one, but not strong enough to make me use it where it would not have a noticeable impact on performance.

Saturday 9 March 2019

Table Buffering in Application Server

In this blog, i will be explaining how table buffering actually works in the SAP Application Server practically.

Let’s get started.

Every one knows about what is table buffering and how it reduces the time required to access the data from the data base table by buffering the frequently accessed data, but have you ever given a thought about following questions:

Thursday 7 March 2019

Standard way to add custom test cases in ATC

Adding custom test cases to ATC


There are situations where ATC might not be considering all the checks and your coding standards demands additional checks to be incorporated inside the ATC checks.

Hence adding custom checks to ATC is the only option you are left with (if you don’t want to purchase Code Vulnerability Analysis (CVA) license from SAP where additional checks are also incorporated like SQL injection etc.)

Panoramic View of Output Type

This Blog Aims at explaining the concepts of Output types which will aid both technical and functional consultants.

Introduction:


Output types are an important parameter in SAP for communications that are done at every Business Object level. This Document will explain the complete geography behind the output types. This will help us in knowing the T-Codes and other navigation that are required to understand the function of the Output Types.

Monday 4 March 2019

Report Creator

Introduction


Oftentimes, access to SE16 or SE16n is not granted to SAP end-users. This program would allow an analyst to configure their own reports by pointing to existing CDS Views, Views or SAP Tables without writing code. They configure their selection screens by importing an Excel spreadsheet. Lastly, create an SAP Transaction code which points to the report and assign certain users’ authorization to the new transaction. This program is suitable for those SAP installs with HANA.

Saturday 2 March 2019

Core Data Services in ABAP

Core Data services (CDS) are domain specific languages (DSL) and services for defining and consuming semantically rich data models in SAP HANA. They are integral part of SAP HANA, and can be leveraged in the ABAP stack.

Wednesday 27 February 2019

RFC creation using AMDP

I will explain how to create an RFC, using AMDP, with a practical example, from the analysis of the standard tables, the creation of the structure and type of output table, the creation of the RFC, the AMDP and finally the tests

Analysis of the Table to consult.

We begin by identifying the tables and fields we need for the RFC. For this we enter the se11, se11n, se16 or se16n to consult the columns of the tables:

Friday 22 February 2019

ABAP code in ECATT scripts

In this blog let’s see how to utilize ABAP/ENDABAP statement in the ECATT script.

We use ABAP/ENDABAP in ECATT scripts when we need to include ABAP code to perform validations like in the case below to check if a given material has valid Production Order.

It can also be used to fetch the data from Database and utilize as a parameter in the ECATT script.

We can either consider existing ECATT script or a new script.

Thursday 21 February 2019

SAPUI5 application with ABAP OData Service as backend

Let us start with the second use case where we will develop a SAPUI5 application with back-end as ABAP.

Since this is not a static application, you have to develop the SAPUI5 application as Node-js app which acts like an app router and as well as SAPUI5 application

Tuesday 19 February 2019

Getting an image from material master data and adding it into an adobe form

This post shows how to get an attachment, in this case an image, linked to a material that was uploaded to the material master data through Generic Object Services (or was archived), and add it on an adobe form.

The business object for Material is BUS1001006.

Monday 18 February 2019

MyInbox UI generation using CDS views and UI.facet annotation

Intro


Many of you probably may have observed that the MyInbox has an option to generate the UI based on the annotations but the information you may get from the help or online(questions&blogs) is very limited.

Thursday 31 January 2019

Extending Fiori Apps in S/4HANA using the Adaption Transport Organizer

During one of my recent S/4HANA implementations I had to extend a standard SAP Fiori App (Manage Supplier Quotations) with an additional input field. Never ever had I thought this could be so easy!

During this blog I’ll walk you through:

◈ Setting up the Adaption Transport Organizer (ATO)
◈ Extending a standard Fiori App (Manage Supplier Quotations)

Tuesday 29 January 2019

Locking the GUI apps from the Fiori/UI5 has never been so easier (via the Durable Locks for ABAP programming model for Fiori)

This blog is about understanding how the durable locks works in the new ABAP programming model for Fiori in creating the pessimistic locking for the Fiori apps which will also lock the GUI application.

I’ve seen people (including myself) struggling to answer the customers when they talk about pessimistic locking in Fiori apps as SAP officially given only ETAG functionality is optimistic based locking. But not anymore thanks to the durable locks which will create pessimistic locking for Fiori and GUI apps together at a time.

Thursday 24 January 2019

How To Use eCATT Script via HTTP Request

eCATT is a very powerful tool for test automation in the context of SAP. In this blog I describe how to call eCATT scripts via HTTP request. This approach is very similar to another with PowerShell, which I described in another blog. The difference is here that you don’t need an additional library and therewith is it possible to call eCATT scripts nearly from every tool.

Monday 21 January 2019

Creating Custom Output Type for Sales Scheduling Agreement in BRF+

Introduction


Business Rules Framework Plus (BRF+) is a Business rules System which is developed in ABAP by SAP. It is a part of SAP NetWeaver 7.0 EHP2 and hence requires no additional SAP License. It provides seamless user experience with features like simulation, transport, XML export or import.

Friday 18 January 2019

Tip: How to use Memory Mapped Files with ABAP/eCATT

During my tests with the RPA tool UiPath Studio in conjunction with eCATT it seemed necessary for me to think about an effective way of exchanging data. One of the standard options of interprocess communication (IPC) in Windows environments are Memory Mapped Files (MMF). So I decided to check if it is possible to use them in this context. Here is now the second step where I describe how to use the same approach in eCATT or ABAP.

Wednesday 16 January 2019

Add fields to ALV in FINT

Introduction


I have shown how email sending with Smartforms can be archived. This feature is not the only enhancement that can be applied to FINT.

In this blog I will show how ALV of FINT can be enhanced by new fields that will ease the work with interest processing.

Tuesday 15 January 2019

Expose CDS Views as OData Service

There are 3 different ways you can expose CDS views as OData service:

1. Import DDIC structure using SEGW Netweaver Gateway service builder transaction.
2. Reference Data Source using SEGW Netweaver Gateway service builder transaction.
3. Using Generic Annotations. (@Odata.publish:true)

Saturday 12 January 2019

Create an Excel worksheet (XLS file) using structures of the data dictionary

This blog demonstrates how to create an Excel worksheet based on structures of the data dictionary dynamically. The development consists in create an Extensible Markup Language (XML) file using Document Object Model (DOM) API that can be read on Excel program.

ABAP Programming Model for SAP Fiori (Draft based) for NON GUID Keys & Much more..

Introduction:


From Help:

The ABAP programming model for SAP Fiori defines the architecture for efficient end-to-end development of intrinsically SAP HANA-optimized Fiori apps in SAP S/4HANA. It supports the development of all types of Fiori applications like transactional, search, analytics and planning apps and is based on customer-proven technologies and frameworks such as Core Data Services (CDS) for defining semantically rich data models, OData protocol, ABAP-based application services for custom logic and SAPUI5-based user interface.

Wednesday 9 January 2019

ABAP on SAP Cloud Platform – ABAP Restful Programming Model

In this blog I am going to explain steps to develop Odata service based on ABAP on SAP Cloud Platform architecture using ABAP Core Data Service (CDS) views. The architecture overview is as follows:

Tuesday 8 January 2019

How to save import parameter values to RFM from external system

Introduction:


The intent of this blog is to show how to save the values being imported to parameters of a remote-enabled function module (RFM) as Test Data when it is called by an external system. Saved data can then be retrieved via the “Test Data Directory” screen of the function module. Note that this could also be done for a function module that is being called internally; however, this blog will outline an example of data coming from WebMethods to BAPI_PO_CREATE1 in an S/4 system.

Friday 4 January 2019

BTE 00001110 – CHANGE DOCUMENT: Save the standard data VS FI Validation Rule

I would like to share with you the use of Business Transaction Event 1110 – CHANGE DOCUMENT: Save the standard data comparing to the FI Validation Rule.

Many experts in SAP don´t know about the BTE’s and mainly the BTE 1110 – CHANGE DOCUMENT: Save the standard data.

Wednesday 2 January 2019

How to trigger custom message in F110

This blog is to demonstrate the example on how to trigger custom error message in F110 and do not proceed for payment due to the error.

Introduction


There is a requirement that the payment run process should not happen when there is custom error. Here, this blog will cover the error that ‘ if the vendor email is not maintained’ then the F110 payment run will not proceed and will show the error.

Tuesday 1 January 2019

Steps for migrating file interfaces to different codepage

I will be discussing some of the steps needed for adjusting file interfaces when we migrate system to a different code page.

In our organization we faced challenges with file interfaces when we migrated ERP from AIX to Linux OS and  to Unicode system (code page of the system from ISO-8859-1 to UTF16-LE and the endianness changed from Big Endian to Little Endian).