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.

Wednesday, 13 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.

Friday, 8 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.)

Wednesday, 6 March 2019

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.