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.