Sunday, 30 July 2017

CDS view authorization Part-13

There are already lots of blogs in community talking about CDS authorization concept, here I just blog what is so far not mentioned in those blogs.

For demonstration purpose I create a very simple database table ZORDER with two entries:

ABAP Development, SAP ABAP, CDS

Friday, 28 July 2017

How to Create,Change or Check FBI Customization

Normally in FPM we have direct option to create Customization , whereas in FBI we don’t have:

Standard FBI View how it looks, there is no option to create customization

SPA ABAP Tutorials and Materials, SAP ABAP Certifications

ABAP in Eclipse 2.80 benefits Eclipse Oxygen

On June 28nd Eclipse Foundation released the Oxygen release which is the newest version of the Eclipse platform. This release brings some nice improvements the ABAP Development Tools directly benefit from:

Improvements of the “Quick Access” field

  • You can now use * and ? as wildcards and also search for partial descriptions in Quick Access (Ctrl+3).

Thursday, 27 July 2017

CDS view test double framework Part-11

The CDS view test double framework works as a magic for me: how the mocked data I inserted into the view under test could be read again in unit test code? As a result in this blog I will try to explain how CDS view framework works under the hood.

The view I am developed is listed below, which is simply used to return material guid with description by joining table MAKT with MARA:

Wednesday, 26 July 2017

How does CDS view key user extensibility work in S4 Part-10

One of supported feature is customer can easily add new fields to extensible CDS view without knowing technical detail.

For example, if a given CDS view is marked as “UI Reports” extensible in extensibility registration tcode SCFD_REGISTRY.


Tuesday, 25 July 2017

Cube view and query view Part-9

In previous eight steps all we focus on is transactional stuff. This time let’s touch some analytics stuff.

Let’s first create a most simple database table in ABAP backend:

ABAP CDS, ABAP Development

Monday, 24 July 2017

Associations in ABAP CDS(7.40)

I would like to present one simple example to explain Association in ABAP CDS view in 7.40 environment.  In this example i will not concentrate on theory we will just take 3 tables and try to show association.

Let us take one problem statement

Problem Statement– “Need the details of all employees having valid addresses in database either PERMANENT or TEMPORARY”

Saturday, 22 July 2017

Darkest Dark Theme for Eclipse with ADT

I really like Abap in Eclipse and work with Eclipse every day. But if you work every day with Eclipse it’s really exhausting for your eyes because of the bright UI.

So i searched for a possibility to use the dark theme with ABAP in Eclipse. I think many developers tried to use the standard dark theme in Eclipse.

Friday, 21 July 2017

Simple Program to view tables in single view

A lot of times we need to view data from different tables in a single view to perform analysis.

It could be analysis for development or production. In those scenerios we can create quick SAP Query – but problem with Query is that if two tables are not joined you cannot view data from two more more independent tables.

In those cases we can use the below report which will fetch data from different tables and present it in single ALV or Browser page. The report logic is as given below.

Thursday, 20 July 2017

First Experience with ABAP for HANA – Evolution or Revolution?

ABAP for HANA – Revolution or Evolution?

When taking part at CEI Trailblazer I learned that SAP tried out lots of different approaches to find the best programming model for ABAP applications on top of HANA. So we had to learn about the new toolset ABAP in Eclipse and many new ABAP frameworks and techniques – in fact all represented different approaches and programming paradigms. Some of those frameworks are revolutionary in the sense that they are powerful and sophisticated – but do they allow agile development and “taste” like SAP Business Suite? We tested very conservative techniques like Open SQL with HANA as primary persistence and it worked fine and often brings immediate success. I learned that other approaches fit perfectly to HANA like OData with its filter and paging techniques.

Wednesday, 19 July 2017

ABAP on HANA Optimization – Step by Step Remediation


1.1 Introduction

Before Migrating to Suite on HANA or ABAP on HANA environment we need to analyse which of my ABAP code must be changed to avoid potential functional issues. In general existing ABAP code runs on SAP HANA as before
Only if ABAP code relies on technical specifics of the old database, ABAP code changes might be necessary.

Monday, 17 July 2017

Use Regular Expression to parse the image reference in the markdown sourcre code

As mentioned in my blog A Github repository issue backup tool developed by ABAP I am developing a tool in ABAP which can backup my github issues.

One of the functionality I would like to fulfill is to backup the images used in issue with markdown format as well. Take this issue of mine for example. This issue contains the reference to image files uploaded by me via dragging my local image files and drop them to the browser.

Saturday, 15 July 2017

A Github repository issue backup tool developed by ABAP

I personally prefer to use Github repository issue to manage my knowledge. For issue, this is my github repository to store ABAP and SAP CRM related knowledge of mine and currently it has already 285 issues.

ABAP Development, ABAP Tutorials and Materials

Friday, 14 July 2017

Step-by-step Guide to setup ABAP on HANA with Eclipse

Step by Step guide to install ABAP on Eclipse for HANA Development

This blog describes how to install and update the front-end components of ABAP Development Tools (ADT) for SAP ABAP on HANA.

I’m writing this blog as I see many people have asked questions about ABAP Development tool on Eclipse. One can take different approaches within Eclipse to bring ABAP development tool and this is one such approach. This blog is suitable for anyone who seeks to start the ABAP Eclipse setup or those who need of such information.

Thursday, 13 July 2017

Adding Custom Fields in WZR1,WZR2 and WZR3

Creating Additional Tab in WZR1/WZR2/WZR3

Now here is the document to show how to create an Additional Tab in WRZ1 (Settlement Request) screen. I did this as per my requirement which is for creating Payment Settlement Request.Here the data is coming from the IDOC to SAP server and to track the Payment Information the Settlement request is created and gets stored in the Standard WBRK table.

Now in this IDOC, it contains some IMP user specific data which needs to be stored ,it can be anything in my case it is  For Ex. IDOC number, IBAN number, SWIFT key and many more for which there is no fields provided in the Standard WBRK table. Now so as to store those values in WBRK table we need to create Custom Fields in WZR1 screen as well as in WBRK table.

Wednesday, 12 July 2017

Decimal Shift & Decimal Shift Back in CURRENCY_CONVERSION an Example

Below example explains the use of parameter DECIMAL_SHIFT and DECIMAL_SHIFT_BACK in CDS function CURRENCY_CONVERSION (ABAP 7.40).

First let us understand what does Standard definition says:

DECIMAL_SHIFT–  If the value “X”  is passed to the parameter decimal_shift, the value passed is multiplied by 10 to the power of two minus the number of decimal places of the source currency before it is converted.

Tuesday, 11 July 2017

SAP FICO ABAP Interface (Iine Items/Balance in currency transaction) error resolved)

One of the most important aspect of SAP FICO is the posting of the documents. Document postings can be done in several ways. When abapers use Interface or report program to post documents , they face many issues. Here I am discussing the solution of two of the most common issues for document postings  to the fico.

Frist scenario is related to lines Items postings. The second scenario is related to  the error ‘balance in currency transaction.

Sunday, 9 July 2017

Using the Rules Pattern to Improve Code Maintainability

The Root Cause

What is the root cause of all of this mayhem? In a word, unpredictability. It was impossible to gather all of the requirements at design time, and if working according to agile methodologies this would not even be attempted. Requirements evolve over time, new customers and business conditions come onboard, so even if the requirements analysis had been completely comprehensive at the beginning of the design process, new requirements would invariably crop up.

My summary of different approaches for annotation declaration and generation Part-8

During my recent CDS view explore I have experienced several ways of CDS view annotation declaration or generation. I list them in this blog for study purpose.

Approach 1: developer does not declaration explicitly, but backend generates automatically
Take this field for example:

SAP ABAP Tutorials and Certifications

Friday, 7 July 2017

Unveil the secret of @ObjectModel.readOnly Part-7

In my application with edit function enabled, I have set posting date as read only by using the annotation below according to sap help.

SAP ABAP Tutorials and Materials, SAP ABAP Certifications, SAP ABAP Guide

Thursday, 6 July 2017

Consume table function in CDS view Part- 6

Let’s try to resolve one real issue now. What we want to achieve is: in CRM we need a CDS view which returns the service order guid together with its Sold-to Party information, “Title” ( Mr. ) and “Name” ( blGMOUTH ).

ABAP Development, SAP ABAP Certifications, SAP ABAP Guide

Wednesday, 5 July 2017

Weak reference in ABAP and Java

Recently I have some recruitment interview on the topic Weak reference and I think it is necessary for me to refresh my knowledge on this topic.

According to ABAP help, we can wrap an object reference to the so called weak reference, for example see the following code:

lo_person = NEW lcl_person( 'Jerry' ).
lo_weak = NEW cl_abap_weak_reference( lo_person ).

Tuesday, 4 July 2017

Functional programming – Simulate Curry in ABAP

As I mentioned in What should an ABAPer continue to learn as an application developer, function programming language is a mind -blower to ABAPers who have got used to ABAP as an imperative programming language.

One of important concept in functional programming is Currying.

Currying intensively manipulates functions.

Monday, 3 July 2017

Lazy Loading, Singleton and Bridge design pattern in JavaScript and in ABAP

According to Wikipedia Lazy loading is a design pattern commonly used in computer programming to defer initialization of an object until the point at which it is needed. It can contribute to efficiency in the program’s operation if properly and appropriately used.

In this blog, I will use an example of SCN log on to illustrate its usage in JavaScript and how to simulate the implementation in ABAP.

Sunday, 2 July 2017

Singleton bypass Trap – ABAP and Java

Recently I meet with an issue using Spring which finally turns out that my bean is initialized multiple times although it is expected to be a singleton. As a result I look into the possible scenario that might bypass the expected singleton behavior.

This blog introduces two possible scenarios which will cause your singleton design fail to work as expected.