Monday 31 December 2018

Use SAP Cloud Connector + SAP Cloud Platform + Java to consume function in ABAP On-Premise system

Recently I was assigned to a prototype development which needs to consume some function modules in ABAP On-Premise system.

SAP Cloud for Customer is a cloud solution whose OData service / Web Service could directly be consumed by other application in the Internet. And the prototype I am working on recently needs to consume function modules in ABAP On-Premise system hosted in Corporate Network, which is not directly available for Internet application.

Saturday 29 December 2018

How to add an user-defined segment to an IDoc

This post will show you how to create a new Segment and append it to a IDoc type as an extension.

Introduction:


When you create a new extension for an IDoc, transfer the data, then insert again into IDoc, it sometime might lead to Status Error 26 “Get details from previous status records with status 26”.

Wednesday 26 December 2018

Automatic checking of your ABAP code in Github/Gitlab with CI and abaplint

The post is about automatic running of it using CI tools.

Since the availability of abapGit more and more CI scenarios becomes possible for ABAP. Keeping ABAP code in git repositories slowly becomes the mainstream. As well as different CI (continuous integration) scenarios around it. One of scenarios is automatic code check which abaplint makes possible.

Tuesday 25 December 2018

Safeguard Performance of ABAP CDS Views – Part 3 Rules for Good Performance of CDS Views

In this blog post on the performance aspects of CDS views, I want to discuss how good performance can be ensured when building and accessing CDS views. Basically, it’s all about simple SQL performance rules that sometimes sink into oblivion when working with CDS views and HANA, but that are still valid – or only need a gentle new interpretation.

Thursday 20 December 2018

Use BDC and BAPI CCAP_ECN_MAINTAIN at the same time to update Engineer Change Number (Change Master)

Introduction:


When you create an ECN by BAPI  CCAP_ECN_MAINTAIN, you can see there are some different comparing with when you create an ECN by Tcode SC01. The object types list looks not the same.

So you can combine BDC technique and BAPI to correct this error.

First you create ECN by BDC, then use BAPI to update Long Text and other fields.

Tuesday 18 December 2018

Safeguard Performance of ABAP CDS Views – Part 2 HANA SQL Optimizer and Plan Cache

In this blog post I describe how the HANA optimizer creates an execution plan from your SQL statement, how this plan wanders into the plan cache and what you should consider when analyzing the SQL statement from HANA studio. Since my main interest is the performance of CDS views, I will concentrate on the resource and runtime aspects.

Friday 14 December 2018

Sending Email from FINT

Introduction


FINT is a handy transaction for calculating of interest on customer items ( for vendor items FINTAP should be used). It is the successor of the old transactions F.2A/ F.2B/ F.2C and F.24 which were using program RFDUZI00 for calculation.

Wednesday 12 December 2018

CRM – Identifying user changes on a decision table in BRF+

At CRM system, when you need to maintain the content of a decision table at Business Rule Framework plus, could be a requirement, during the activation action, to identify the changes done by the user.

For this, we need to compare the changes that the user has done on the table content at the decision table settings screen with the content stored on the database.

Tuesday 11 December 2018

Safeguard Performance of ABAP CDS Views – Part 1 CDS View Complexity

I want to discuss some performance aspects of ABAP CDS views. As a performance expert daily working on CDS view performance topics I hope to be able to give some insights from my experience.

I roughly plan to cover the following points, but you are invited to ask for more if it has something to do with CDS view performance. If necessary, I will then consult the true experts …

Saturday 8 December 2018

How to find a predefined Virtual Data Model in S/4HANA

Purpose 


This blog illustrates how to find a predefined Virtual Data Model (VDM), template of the CDS View for business entities in S/4HANA in many ways.

The target audience are developers  looking to create reports or other applications, and functional experts writing specifications for  development. Each are expected to have already understood the basic concept of CDS views and S/4HANA application architecture (Fiori-OData-CDS Views) and want to save the effort for development by using Predefined VDMs, and want to know what kind of VDMs are available in S/4HANA.

Thursday 6 December 2018

Understanding basic HR modules for ABAPERS

Overview of HR-ABAP Programming

  • The aim of the HR module is to be able to process employee related data according to business requirements in an effective structure.
  • The human resource module maintains the data in a standard structure that is nothing but an info type.
  • HCM consist of many modules, some of the main modules are:

Monday 3 December 2018

SAT runtime analysis from UI

A codeline’s efficiency highly depends on its runtime performance. And when it comes to improving the performance, we always have to execute and analyse the time consumption.

But the challenging part here is when we want to analyse the performance in both frontend and backend perspective. Most of us puzzle over the problem of how to schedule a performance trace beginning from UI and including the backend program execution.

Friday 30 November 2018

Delete duplicate entries in ABAP CDS views using Table Function and SQL Window Function

With the Code Push-Down strategy introduced by SAP HANA some of the functionalities used by ABAP developers haven’t been easily translated to the newest technologies, for example, CDS views.

In this blog post we are going to explore one of this scenarios trying to delete duplicate entries using ABAP CDS Views.

Wednesday 28 November 2018

AMDP class and methods and how to use in an extractor

Introduction


An AMDP class is a global class in the class library that contains one or more of the following tag interfaces:

◈ IF_AMDP_MARKER_HDB for the SAP HANA database

The names of the interfaces all start with IF_AMDP_MARKER and a suffix indicates the database system for which the ABAP Managed Database Procedures can be implemented in AMDP methods of the class.

Monday 26 November 2018

Activate HTTP/2 on AS ABAP 752 SP01 Dev Edition

The quickest way to maintain an Instance Profile is through transaction RZ10 however, I was not able to locate one when I ran this transaction on the server. Weird, isn’t it?

ODATA services from Queries BEX

1. Introduction


The following document discusses the method to create 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 that has this service.

Wednesday 21 November 2018

SAP ABAP Unit test class with Test double

Introduction


ABAP Unit is the new unit test tool for ABAP which solves the problems with developer tests. Unit tests are a methodology for software development and are a mature framework in the developer toolbox. Tests can be conveniently grouped into test tasks. Test results are condensed and become evident at once. Test tasks can be performed by automation. In this document we will discuss how to automate Test Double Framework which is used to remove dependency from main CUT (Class under test) class.

Tuesday 20 November 2018

Hosting a Netweaver ABAP Developer System on Google Cloud Plattform

This blog aims to provide a reference to students and teachers at universities on how to easily host an SAP Netweaver ABAP Developer system on the Google cloud platform. Also some of the information is specific to people teaching at universities the general approach might also be interesting for ABAP developers looking for an alternative approach to installing the SAP Netweaver ABAP Developer in a virtual machine or via docker.

Friday 16 November 2018

General Usage Of Search Help Exits (Icons Display)

To bring some colour into SAP transactions I like to use Icons. I also think that Icons help to recognize faster what kind of data is displayed. Using different icons for different status help to get a better overview.

There is no witchcraft about the dynamic usage of Icons. But dynamic Icons in a search help exit comes quite close.

Thursday 15 November 2018

Options for editing table in ECC

This blog collates some of the techniques which helps me to edit tables directly in ECC without having to use Table Maintenace generator.

CAUTION: Modifying table entries in SAP directly is not recommended as it can corrupt the specific record or your DB. It is important to do this change with caution and only in Dev or Quality systems.

Monday 12 November 2018

Dynamic Handling of Decimal Places for Amounts

Introduction


Currency in SAP is largely handled extensively with the currency functionality and TCURC and TCURX tables. However, every now and then we come across a requirement where we need to extend this to accommodate other requirements.

In this blog we would like to share our experience of a requirement we came across in our project where the number of decimal places for a currency needed to be increased in order to attain more precision.

Saturday 10 November 2018

SAP Standard Fiori Apps : PR Approval Process

1. Config Part for PR Approval Process.


This Part Usually done by Functional team.Most of the issues will occur with this part only,so be careful while doing the config part.

Mainly the issues occur such as release code,release strategies,agent assignment for particular release code.

Monday 5 November 2018

Ensure values of the newly added fields to the database table in SE11 for the existing records are left as NULL and a default value is not filled in them.

INTRODUCTION:


This blog post highlights with details how to ensure that NULL values are assigned to the the newly added fields for the existing records in the database tables, so that huge amount of time is not wasted to fill them with default values. This requirement is even more relevant for Production systems where the database tables already have millions of existing records.

Friday 2 November 2018

Making your own planning and scheduling system

The aim of this blog is to show how you can make your own planning and scheduling system as an add-in into your SAP or at least the first step:  building order net for particular order-position-schedule combination or in other words order status report known from the transaction MD04.

Wednesday 31 October 2018

A simple REST Web-service from ECC called from a HTML5 screen

Introduction


Recently we were directed to design OS agnostic RF screens for one of our business partners. We envisioned a web browser based screen which can be called from both our android & windows based RF guns. We did not want to take the module pool ITS approach & our ECC system is one of the lower level versions so we could not do a UI5-Gateway solution. After reading across these forums we decided to implement a standalone REST based web-service in ECC which can be called from a HTML5 screen.

Monday 29 October 2018

ABAP Recursive Code to Identify root nodes in Hierarchy fromTable Data

I have come across a scenario where I need to find out the root entry from a hierarchy. I would like to share the approach which I followed for the same. It might not be the best one but hope will help you in one or the other way.

Wednesday 24 October 2018

How to deal with SAPGUI controls in a generic way

A few days ago I wrote a blog post about one of my favorite learning projects that taught me a lot about GUI programming: guidrasil

Today I would like to explain some of the techniques that I used in this project.

Friday 19 October 2018

Dynamic Selection Screen with ALV IDA and Excel

Introduction


In this Blog, we will combine an Excel upload, Dynamic Select Option generation, display on a Popup Screen and show the results in ALV IDA created for HANA. Continuing this blog series, the goal is to focus on comparing older ABAP language features with a detailed explanation of the new ABAP syntax and S/4HANA features.

Thursday 18 October 2018

ABAP Object Services Technique

ABAP Object Services

1. Creating Persistent Object with single-table


SAP Community has introduced excellent Professionals to SAP world as well as providing opportunity for all to writing blog posts which has helped us to improve SAP knowledge.

Monday 15 October 2018

View Cluster – Default selection of table

Agenda


To default the selection of table on view cluster maintenance screen for the filter values given on the initial screen.

ABAP is Evolving

I had the privilege of attending SAP TechEd in Las Vegas last week as part of the SAP Bloggers Program.

In the keynote Bernd Leukert announced that the SAP Cloud Platform ABAP Environment was Generally Available. When you say it like that it seems like an impenetrable wall of SAPanese – but the announcement was still greeted with spontaneous applause from the audience.

Friday 12 October 2018

SAPGUI is dead – long live SAPGUI

I realized that the SAPGUI will come to an end. That makes me pretty sad. But I think the new technologies and Cloud applications will conquer the SAP planet.

So I decided to make a project public that a former colleague and I started years ago. I have the feeling that if I do not publish it, it will be totally useless and unineteresting the next two years. But I want this project to survive.

Wednesday 10 October 2018

Use of Test Environment in ABAP Unit Test Class

Introduction:


ABAP Unit Test class, a simpler way to verify the behavior of our code. The unit test class not only check the code coverage but helps a developer to cover all possible scenarios of a code leading to more reliable code with less chances of rework.

Monday 8 October 2018

Accessing Local File in Background Mode

Introduction:


This blog covers how to access a local file in background job in SAP. Basis knowledge of ABAP is required to understand the concept.

Its applicable for SAP Netweaver 7.4 onwards.

Ideally when the background job is running, it can access the file from application server. It can’t access the file from presentation server. But let’s say there is a requirement where i am getting the file in email. Then I am placing the file in my local PC. After that my need is that a program which is running in background on application server, should process the file.

Saturday 6 October 2018

Register XSOdata servies into SAP Gateway

Complete procedure for registering xsodata services which are developed in HANA to SAP Gateway.

For any requirement in which if we develop xsodata services and use it while creating UI5 application in web ide, We can directly take that xsodata service URL from WEB ide or we can also register the service into SAP gateway and select the specific URL as a odata service URL to avoid issues while deploying app to SAP UI5 repository.

Wednesday 3 October 2018

Deployment options with SAP Gateway

There are 4 deployment options provided by SAP which ensures the enablement of gateway framework and it can be chosen based on business needs.

1. Central hub deployment (Routing will be easy in case of multiple system)

2. Central Hub deployment with Development in hub (Routing will be easy in case of multiple system)

3. Embedded deployment (Routing is should not possible-as per framework)

4. HCP or HCI deployment

Tuesday 2 October 2018

How to find a predefined VDM for a selected S/4HANA table

Purpose 


This blog illustrates how to find the predefined VDM (template of the CDS View for business entities  in S/4HANA)  for a table, e.g. finding the VDM “I_ProfitCenter” for the table CEPC.

This method should help reduce the development effort, by using a predefined VDM instead of creating custom CDS Views for the business entities in S/4HANA.

Friday 28 September 2018

Date Function for dynamic date filtering in Fiori apps

Date Function for Fiori Smart Business app


By using Data Function, it is possible to filter date dynamically in Fiori Smart Business Apps. It is important especially for Smart Business KPI tiles as they don’t   have value prompt screens associated with them. The purpose of this blog is to explain how Date Functions work and how they can be created.

Wednesday 26 September 2018

Automation Through Combining Test Scripts (ECATT & START)

In this blog let’s see wrapping/combining of ECATT & START scripts.

In general, Ecatt scripts are used for recording SAP GUI screens and START scripts are used for recording FIORI Applications.

In many cases end to end scenarios can not be covered in a single script. So, in such cases we record multiple scripts and can combine them into a single script which covers the complete scenario.

Tuesday 25 September 2018

SAP Lumira for BI Platform – Integration with ABAP Fiori Launchpad (no HANA)

Introduction


I typically do not get involved in BI, Lumira, HANA, etc. topics but I recently helped a colleague of mine to configure Lumira stories in the ABAP Fiori Launchpad, with no HANA in the picture. The blog assumes HANA Studio and static URLs are used in the Fiori Launchpad which means the changes can’t be transported from one system to another. Also following guidelines in the blog will open Lumira stories in separate tabs, not embedded in the Fiori Launchpad. This document addresses all those issues.

Friday 21 September 2018

Code Search in Modifications and Enhancements (without HANA)

As a long time SAP customer, you usually have a lot of code modifications and enhancements.

Wouldn’t it be useful sometimes to be able to search that code?

In this video you will see how you can use the new ABAP Sourcecode Search:

Wednesday 19 September 2018

SAP Cloud Platform ABAP Environment

In this blog I call it ABAP PaaS because that’s what it is: an ABAP Platform as a Service. For the first time in the history of SAP, developers worldwide can build and run ABAP code in the Cloud. On SAP Cloud Platform, where ABAP is the new kid on the block now, next to Java or Node.js.

You think we made a lot of noise last year and have been sort of quiet ever since? (skip these lines if you don’t). This is exactly why I don’t like upfront noise. I remember the good old times in 1998 when we implemented R/3 on Linux. We didn’t tell anyone inside or outside SAP until the port was completely done. Only then convinced Hasso how cool open source and Linux really are. And then spread the message at CeBIT 1999. Best time of my life, by the way. So far.

Monday 17 September 2018

An example to help you understand how does ADT work

Have you even thought about why you could operate on ABAP backend system using ADT?

This document just gives a brief introduction about how does the ADT backend infrastructure respond your operation done in Eclipse. It contains a hands-on exercise which you could finish in your own ABAP system.

Explore ADT by switching on ABAP communication log


In order to explore what has happened when we do operations in Eclipse, we need to switch on ABAP communication log.

Thursday 13 September 2018

Pitfall of the CORRESPONDING operator during IDoc processing

One of my recent tasks was to develop a couple of inbound IDoc interfaces in MM. If briefly, when an IDoc from the external SAP system comes to my client’s SAP, the appropriate interface should handle it, resulting in creation or change of a Purchase Requisition. And as in almost every development, a couple of interesting problems/challenges have been detected and obviously fixed. But one sneaky bug took a few working hours of my time, so I decided to share my experience with you, dear readers, in this very first blog post of mine.

Monday 10 September 2018

How to change the annotations sap:label, sap:heading and sap:quickinfo

Introduction


A customer asked me today how to change the the properties sap:label, sap:heading and sap:quickinfo in an OData service that has been developed using ABAP code based implementation.

Instead of the data which is retrieved by the SAP Gateway framework by default from the underlying data element they wanted to use custom annotations and retrieve the same from other data elements.

Saturday 8 September 2018

Installing AS ABAP Developer Edition with Hyper-V

If you want to install the AS ABAP Developer Edition, one choice you have to make is picking the virtualization software that manages the virtual machine. Common options are

◈ Oracle VirtualBox
◈ Docker
◈ VMware workstation
◈ Hyper-V

Thursday 6 September 2018

Variations on a Singleton

 As stated in that blog, most singletons are a variation on a theme, and the ABAP example code provided in that blog concentrated on the use of only one of those variations. In this blog we explore some other variations of defining and using a singleton object.

Monday 3 September 2018

Sample: Custom CDS View using predefined Virtual Data Model and Extend View in S/4HANA

Purpose


This blog intends to encourage you to enjoy high productivity of custom object development by using predefined Virtual Data Model (VDM) in S/4HANA by providing the sample of Custom CDS Views based on predefined VDM enhanced with Extend View. By using predefined VDM, you may not have to create custom CDS Views for all entities. It is always the case that predefined content is totally reusable but it is necessary to add some fields, which is possible with Extend View.

Saturday 1 September 2018

BRFplus : Decision Table Maintenance with wonder working features

Description: This blog describes about an ABAP utility for updating BRFplus decision tables in Production systems without logging into BRFplus UI. As well as describes how the governance on decision table maintenance can be achieved.

Wednesday 29 August 2018

Create a Geo-Analytical application powered by SAP Lumira, ESRI Maps and ABAP CDS views

Continuing our series about SAP Lumira and ABAP CDS views I would like to explore another interesting functionality, the data visualization based on maps.

If you didn’t check the first post of this series I advise to have a look before you proceed this reading, I shared some interesting information about the architecture, predefined templates and how you connect a Lumira application with a data source constructed on top of ABAP CDS views.

Monday 27 August 2018

Understanding & Implementing ILM Part 1

Recently I was assigned to a prototype development which needs to consume ILM framework in ABAP on-Premise system. I have divided the whole ILM topic into two separate blogs. The first one which we are going to discuss in this blog is to have the ability to automatically detect and destruct destroyable data (and its related component). Destroyable data is defined as data that are expired or no more needed based on pre-defined customizable business scenario. One such business scenario could be “retention period”.

Friday 24 August 2018

A simple way to increase maintainability of ABAP unit tests – with BOPF example

These two gave me very good perspectives and tools to up my unit testing game.

While the core lessons have been written about several times, I think the most important lessons are

1. Unit tests must be easy to write, read and maintain.
2. While the first test might take a while to write, the subsequent ones should take very minimal time.
3. Most important of all. The unit test must be self contained. So setting up the data (for the dependent object calls), running the code under test and verifying should be in the same unit test.

Wednesday 22 August 2018

Cardinality of Association in CDS View

Purpose


This blog explains how the Cardinality of Association in ABAP CDS View works.

Association is used to link a view (or table) to the source view (or table) in CDS View. In Association, Cardinality is defined. Cardinality is the relationship between the source and associated view in the form of [ min .. max ] (only the target cardinality is stated). When Sales Order is the source and Sales Organization is the target, the cardinality is [0..1]. This blog explains how the internal behavior is changed by the setting of Cardinality in Association.

Tuesday 21 August 2018

ABAP new Open SQL and CDS runtime

With the introduction of NW AS ABAP 740 SPS5, the New enhanced extended Open SQL was introduced. The new enhanced open sql has some good features such introduction of aggregate functions, right outer join, casting, etc making it a starting step for Code-Push down paradigm.

Friday 17 August 2018

Copy Customizing Path

I developed useful functionality for SPRO

I detected that is common the necessity of copy IMG path when you navigated of SPRO Tree Customizing .

With the following code you can copy the path very easy

Wednesday 15 August 2018

Create a Self-Service BI application powered by SAP Lumira and ABAP CDS views

SAP BusinessObject Lumira (a.k.a. Lumira) is a business intelligence tool focused on analytics and data visualisation, it provides the ability for business analysts to alter data structures and the correlation in the way they need without help of a professional designer or IT specialist.

Monday 13 August 2018

Soft State Support for OData Services

Soft State Support for Odata Services

• Index


1. Sample Service Details
2. Steps to Configure soft state
3. Steps for Technical implementations
4. Testing soft state in browser
5. Comparisons of response time
6. Implementation considerations

Wednesday 8 August 2018

Installing SAP NW ABAP into Docker

In the last part of the blog series you learned how to install the SAP Cloud Connector (SAPCC) into Docker running on your own machine. The corresponding YouTube video showed you how easy it is to connect your SAPCC to an SAP Cloud Platform (SAPCP) account. Furthermore, you learned some basics of Docker; not everything, but hopefully enough to serve as a good motivation to dive deeper into containers and Docker. Now we want to continue installing NW ABAP into Docker. The beginning of this blog is a little “chatty”, feel free to scroll down to the technical sections or jump directly to the YouTube video linked below which contains all the details.

Monday 6 August 2018

GLADIUS – The Next Level

The first part is here: Introducing GLADIUS – A Test Unit Framework

What Happened Before


I will give you a short overview of the current progress of the test framework. GLADIUS is the project name of something that some day will be similar to codefights or codewars – but for ABAP.

Saturday 4 August 2018

Getting comfortable using the Object-Oriented design model with ABAP – Part 6

To recap from the preceding blog, we took a program having virtually identical classes and removed the unnecessary duplication. Here is the source code as we left it in the previous blog:

Wednesday 1 August 2018

Adobe form output using Gateway Services [OData]: SAP

Introduction


Advanced adobe uses OData services as data provider to fetch data from backend system. The OData service converts the data that it fetched from backend, converts the data into XML format, and returns it to the Adobe layout. Adobe layout uses that XML data to print the form using the concept of binding available at Adobe layer.

Monday 30 July 2018

Getting comfortable using the Object-Oriented design model with ABAP – Part 5

To recap from the preceding blog, we took a program having classes with multiple responsibilities and transformed it so that each class has only a single responsibility. However, we’ve noticed after making classes flight_report, carrier_report and booking_report compliant with the Single Responsibility Principle that our changes have rendered these three classes exact duplicates of each other except for their names. Here is the source code as we left it in the previous blog:

Saturday 28 July 2018

Getting comfortable using the Object-Oriented design model with ABAP – Part 4

To recap from the preceding blog, we took a program having duplication of code amongst three report classes and consolidated that duplicated code, making it available to the three classes through the use of Inheritance. Here is the source code as we left it in the previous blog:

Wednesday 25 July 2018

Testing REST APIs in XSA Applications Without UI Layer

REST APIs are extremely useful for accessing and modifying data within XSA Multi-Target Applications. When it comes to checking whether the API you’ve designed is working properly or not, things becomes a little difficult if you are not familiar with web security protocols. In this blog, I am going to briefly describe OAuth 2.0, the security protocol used by XSA for user authentication and authorization (UAA), and cover details on how you can make HTTP requests to different modules within an XSA application.

Monday 23 July 2018

Getting comfortable using the Object-Oriented design model with ABAP – Part 3

To recap from the preceding blog, we took a program having only static classes and changed it so that some of those classes could be instantiated. Here is the source code as we left it in the previous blog:

Saturday 21 July 2018

Getting comfortable using the Object-Oriented design model with ABAP – Part 2

This blog represents part 1 Getting comfortable using the Object-Oriented design model with ABAP – Part 1

To recap from the preceding blog, we took a procedural program and transformed it into one that uses local static classes and a local interface. Here is the source code as we left it in the previous blog:

Thursday 19 July 2018

SAP List Viewer with Integrated Data Access (ALV with IDA)

Overview


ALV with IDA (SAP List Viewer with Integrated Data Access) helps tables that contain very large quantities of data to be displayed on the UI. The results of operations such as sorting, grouping, or filtering are also delivered with a very fast response time. It uses the in-memory database, such as SAP HANA, without having to switch to a new programming environment. There is no change in the User interface and standard functions (also ALV services). ALV functions are adjusted to the use of in-memory databases. The new general programming model (Coding Pushdown) is also optimally supported when using in-memory databases.

Monday 16 July 2018

Getting comfortable using the Object-Oriented design model with ABAP –Part 1

I Describing my experience using ABAP2XLSX to facilitate building an Excel spreadsheet from the content used to present multiple ALV reports and then send that spreadsheet to an internet email recipient. The example program I presented was written using the procedural programming model – that is, despite its use of classes from both ABAP2XLSX and the Business Communication Service, it did not require the creation of any new local or global object-oriented components. I thought this program might make a good candidate to illustrate how to change an ABAP program to transition it from a procedural design to an object-oriented design using local classes, transforming the code in a series of steps rather than all of it in one big gulp, with explanations to accompany the concepts associated with each change. Those who do not have ABAP2XLSX available at their site will still be able to follow along since I have adapted the example program to account for its absence.

Friday 13 July 2018

Getting the currently selected line in a TableCtrl (before PAI) dynamically

I have two table controls on my dynpro screen and in one of them there is a field which, upon F4, should check the value of another field and then execute one of two possible search helps, depending on the value of the other field.

I decided to create a fully generic code which returns the selected line in any given TableCtrl object before the PAI event. I checked class CL_TABLECONTROL but couldn’t find any similar method to do so.

Monday 9 July 2018

Unexpected ABAP pass-by-val method call

Prologue


I work a lot with pointers/references in ABAP, as I refuse to use CHANGING and EXPORTING method parameters. When using pointers you have to care about which data lies in which memory area. So, the first rule for working with pointers is: Don’t get pointers of stack variables. Or, if you do, make sure your pointers don’t find their way into the heap or to underlying stack layers.

Friday 6 July 2018

Introducing: GLADIUS – A Test Unit Framework

Why GLADIUS?


Gladius is the name of the famous roman sword. Coding and fighting has a lot of similiarities: you have to work hard to become a good programmer, you have to practice, you need good tools. That’s why we thought that GLADIUS might be a good and appreciable name for a learning tool.

Thursday 5 July 2018

Performance Optimization for ABAP CDS view

The blog will discuss on the Topic of Performance optimization for CDS views.

General Architecture for S4HANA:

SAP ABAP CDS, SAP ABAP Learning, SAP ABAP Study Materials, SAP ABAP Tutorials and Materials

Monday 2 July 2018

BOPF: Custom Lock/Unlock Action for Legacy DAC

1.  Objective


Objective of this document is to explain how to create custom lock/unlock action in case you are using legacy DAC. In my previous blog I have explain how to configure BOPF using Legacy tables. Refer to below link for more details on BOPF: Using Non-UUIDs (DB_KEY) keys DB tables

Friday 29 June 2018

Writing a SICF service

Introduction


This blog will guide you through the process of creating a SICF service (REST). SICF is an SAP transaction which is used to maintain services for HTTP communication, using the Internet Communication Manager (ICM) and the Internet Communication Framework (ICF). This can be useful in multiple situations. For example: A certain system might not have the proper Gateway installation or configuration to create services there.

Wednesday 27 June 2018

Adding custom tab in transaction RELMPL using BDT

This blog explains the enhancement for adding a custom tab in RELMPL transaction using BDT and to store the custom fields data in VILMPL table.

BDT:

The Business Data Toolset (BDT) is a central control tool for maintaining SAP programs. It supports maintenance via the use of dialog techniques, direct input and/or function modules. The BDT is basically the tool, SAP use when they want to add new fields, change field names, change/add field groups etc for specific customers, but they are now started to allow customers access to these maintenance transactions.

Friday 22 June 2018

How to create calendar day ABAP CDS view with working day flag

Introduction


◈ With S/4HANA we have a standard CDS view I_CalendarDate based on SCAL_TT_DATE table, but there aren’t information about working days. However it could be important to have such flag, for example, when we need to count only working days or filtering something based on working dates only.

Wednesday 20 June 2018

ABAP is here and it stays in the DNA of SAP even in the New Age of SAP Development

After having followed the other blogs you will have your own SAP Cloud Connector (SAPCC), your own NW ABAP, both of them running in separate Docker containers on your own laptop, and you’ll have setup all configuration needed to connect your very own NW ABAP through your SAPCC to your own SAP Cloud Platform (SAPCP) trial account – non-trial works as well. You will also learn how to configure Principal Propagation which basically allows you to get Single-Sign-On (SSO) easily working.

Monday 18 June 2018

Using ABAP2XLSX to send ALV table output as Excel spreadsheet via internet email

A recent discussion amongst the ABAP developers at my site dealt with the topic of how to arrange for a customized ABAP program running as a background job to have its ALV table output sent to an internet email address. During this discussion I learned the easy way to do this, requiring no ABAP programming at all, which simply requires the designation of a Spool recipient when scheduling the background job via transaction SM36:

Friday 15 June 2018

New ABAP Table Sum

Introduction


In this blog series, the goal is to focus on comparing older ABAP language features with a detailed explanation of the new ABAP syntax.

Wednesday 13 June 2018

ABAP CDS View: Issue faced on join of tables on columns where one column is of RAW data type

ABAP CDS views provide the capability to join tables on linked columns. For example, a table employee_details and company_details can be joined based on company_ID that exists in both the tables. But following issues are faced while performing join:

1) Both columns have different data types:

First solution that will come to your mind is to cast one of these columns as the data type of the other.

Monday 11 June 2018

How to Test BOPF Actions, Determinations and Validations Using BUnit – An Introduction to the BOPF Unit Test Framework

The Business Object Processing Framework (BOPF) provides actions, determinations and validations to define the (main) logic of their application. The behavior is usually defined in the execute method of those interfaces (/BOBF/IF_FRW_ACTION, /BOBF/IF_FRW_DETERMINATION and /BOBF/IF_FRW_VALIDATION). The application-related data can be obtained using the parameter io_read (type ref to /BOBF/IF_FRW_READ), and can be modified by io_modify (type ref to /BOBF/IF_FRW_MODIFY, not available for validations). Either one of them, if not both, might always be used. Writing unit tests for the execute methods will have mocking io_read and / or io_modify as a prerequisite. This would probably mean to perform at least the following:

Saturday 9 June 2018

BOPF: Using Non-UUIDs (DB_KEY) keys DB tables

1. Definition


The Business Object Processing framework is an ABAP Object oriented framework that provides a set of generic functionalities for modularized and standardized development. It controls business logic as well as data retrieval of buffer and persistency layer. The Business Object Processing Framework mainly processes data that are uniquely identified by UUIDs. This means, database tables should contain DB_KEY of Type RAW16. In case, there is a requirement to use existing legacy tables (Non RAW16 keys) in BOPF then it requires different steps in configuration of BOPF. Many blogs/documents are available that can provide more details about default configuration process and implementation of BOPF. However, not much information is available on the configuration required for using non-UUID key fields as table keys.

Wednesday 6 June 2018

ABAPUnitTest – TDD implementation

I must confess that I have never-ever written unit test before developing the code. Test Driven Development (TDD) is something which I was not aware of.  When I looked at the first slide I thought this does not make much sense to me. But eventually once I completed week 2, the overall understanding became better and was able to connect the dots.  In order to see how it works with our actual requirement, so thought of implementing it in implicit enhancement. So this blog talks about my experience of implementing a TDD for an enhancement, benefits which I saw, issues which I faced etc. with an intent it will help someone.

Monday 4 June 2018

How to register/activate ActiveX component MSCOMM32.OCX on Windows 7

In this blog I will try to explain step-by-step on how to download and activate Windows activeX control MSCOM32.OCX on the client PC where the Weighbridge’s serial port is connected.

Go to the link http://activex.microsoft.com/controls/vb6/mscomm32.cab and download the file mscomm32.ocx

If you are running Windows on 32 bit machine Copy the file that you have downloaded to C:\Windows\System32 folder.

Friday 1 June 2018

How-To Create Email Content Sections Using /SKYBFR/YCA1 Add-On

This article describes parameters and samples of how to use CONVERT_VALUES_TO_HTML Method of Skybuffer Simple Communication SAP Add-On.

CONVERT_VALUES_TO_HTML is a powerful method having a huge functional for email content creation in HTML format. It can create HTML sections containing header, text paragraphs, name-value pairs lists, data tables. These sections can be combined one by one into a complete neat email like this one:

Wednesday 30 May 2018

ABAP CDS Consumption View Features Ultimate Test: Part 4

In first part, second part and third part of my blog I put ABAP CDS Consumption View to test and fulfilled some of most typical BW Query requirements. In fourth part of my blog I will challenge ABAP CDS Consumption View again. This time demonstrating percentage share calculation (similar to BW Query %CT function) and filtering key figures structure.

Monday 28 May 2018

Short examples of CL_ABAP_TESTDOUBLE

Reminder: limits of CL_ABAP_TESTDOUBLE

  • Can mock interfaces only, not classes, and only global interfaces, not local ones.
  • Can output exceptions of type “class-based” only (cannot mock those original old exceptions).
  • A maximum of 36 interfaces can be test-doubled per test method, because the method CREATE of CL_ABAP_TESTDOUBLE generates one class at runtime by using a GENERATE SUBROUTINE POOL statement (generation of maximum 36 subroutine pools).

Friday 25 May 2018

ABAP Dictionary External Views for Overcoming ABAP CDS Views Limitations

This post I would like to share usage of ABAP Dictionary External Views in ABAP CDS views development to overcome some limitations.

Wednesday 23 May 2018

Addition & Deletion of Component in a Production Order

We are all well familiarize with creation of Production order and doing the modification of the existing operation and components. But what if we have a case where we need to delete the existing components and add a component into the given Production.

Monday 21 May 2018

Simple Number Game

During our childhood days we used to play the number game on paper. The same thing when I played with my kids, they were happy and excited. They used to ask me, dad, how you are telling the correct answers.

Saturday 19 May 2018

RRI: Jump from ABAP CDS Analytical query to Fiori Application

In this post I would like to share step-by-step description of creation RRI from ABAP CDS Analytical query to Fiori Application with parameter transfering.

Wednesday 16 May 2018

Water Puzzle Game in SAP using Dialog Program

Introduction


Water puzzle in sap. This is developed using dialog programming with simple logical expressions

Developed a material master dashboard using dialog program for our company to automate the material master creation from different units. This dashboard will collect the request from users and create the material codes using BAPI. Once the material is created an email will be send to the requester. The status of the request also can be viewed through this dashboard.

Monday 14 May 2018

Attachment dms file in workitem decision

For few days I searched the better way to solve my problem that was HOW CAN I ATTACHMENT DMS FILE IN WORKITEM DECISION in my reseaches i found a lot of and different ways to do that but neither that solved completely my problem but now I know how to do and I’d like do share with everyone my solution.

Friday 11 May 2018

SAP UI and Salesforce UI development Go-through

SAP UI



SAP GUI + Dynpro


It seems that SAP GUI plus Dynpro was used to develop application UI in Stone Age. Although there are still lots of transaction codes in S/4HANA backend available for end user, they could still be directly launched in browser by leveraging SAP Internet Transaction Server(ITS), even with Fiori-like appearance.

Wednesday 9 May 2018

How-To Perform any Action from Email Using /SKYBFR/YCA1 Add-On

As you are probably already aware, Skybuffer Simple Communication SAP Add-On (/SKYBFR/YCA1) can be used to perform any actions with any business objects in the system. You can record inbound email comments, you can create orders, etc.

Now we are going to show you how to create a button in email for any custom action which is not assigned to work item so that we could get a received action and comment in a custom comment-processing BADi.

Monday 7 May 2018

SAP IoT and SAP NetWeaver AS for ABAP Channels

Buzz about IoT


Technology is evolving everyday. Businesses are throwing challenges on technology and now technology is also challenging businesses in different ways.These days one can hear lots of buzz words like Cloud, Cloud Foundry, Cloud Platform, Industry 4.0, SAP IoT, Machine Learning, Artificial Intelligence, SAP Leonardo, SAP Co-pilot, SAP chatbot etc. All these buzz words are music to some people’s ears but there are still some people who are trying to connect dots and trying to understand how all these fit in context with SAP.

Sunday 6 May 2018

Implement a Block Chain prototype with 300 lines of ABAP code

In my article, I implement a simple Block Chain prototype via 300 lines of ABAP code.

It consists of three versions where new features are added in an iterative way.

Version 1:Data structure implementation of “Block” and “Chain”


As its name means, a block chain is a chain consisting of blocks.

Friday 4 May 2018

Solution Manager 7.2 SP 06 Upgrade Planning – Java Stack Part-2

Solution Manager 7.2 implementations have been gaining momentum. Recently I was a part of Solution Manager 7.2 on HANA support package 06 upgrade for a customer and I want to share how I planned the upgrade via Maintenance Planner for an already existing Solution manager Java System.

Monday 30 April 2018

Solution Manager 7.2 SP 06 Upgrade Planning – ABAP Stack Part-1

Solution Manager 7.2 implementations have been gaining momentum. Recently I was a part of Solution Manager 7.2 on HANA support package 06 upgrade for a customer and I want to share how I planned the upgrade via Maintenance Planner for an already existing Solution manager installed a few months ago.

How to use BW Infoobject hierarchy in ABAP CDS views

Introduction


◈ Hierarchies could be loaded or maintained manually in BW embedded in S/4HANA system.

◈ Considered approach is particularly relevant in case in S/4HANA there is embedded planning solution and you need to reuse existing hierarchy in analytical reports based on ABAP CDS views.

Thursday 26 April 2018

ABAP CDS Consumption View Features Ultimate Test: Part 3

In first part and second part of my blog I put ABAP CDS Consumption View to test and fulfilled some of most typical BW Query requirements. In third part of my blog I will challenge ABAP CDS Consumption View one more time. This time demonstrating time dependent dimensions / hierarchies and language dependent texts.

Sunday 22 April 2018

ABAP CDS Consumption View Features Ultimate Test: Part 2

In first part of my blog I put ABAP CDS Consumption View to test and fulfilled some of most typical BW Query requirements. In second part of my blog I will challenge ABAP CDS Consumption View even more. This time dynamically setting variable values (similar to BW OLAP Variable user-exit functionality).

Friday 20 April 2018

ABAP CDS Consumption View Features Ultimate Test: Part 1

ABAP CDS Consumption Views are exposed as BW Queries and can be consumed by S/4 HANA Query Browser and BI Clients like Analysis for Office and Design Studio. With my BW background I was curious to put ABAP CDS Consumption Views to test and fulfill some of the typical BW Query requirements like:

Wednesday 18 April 2018

S/4HANA Conversion – Error in display material Document by MIGO transaction

If the environment you are migrating from ECC to S / 4HANA has additional fields in the CI_COBL (coding block) include, you most likely have an error in the MIGO transaction. There are two paths to fix this error. One way would be to undo all CI_COBL configuration, but this is not always possible either because you still need the field in the S / 4 environment, or because it is more complex to undo the configuration.

Monday 16 April 2018

Hyperlink in Object Documentation

In this blog, I would like to share the possible solutions that could be used to achieve the desired result.

Requirement:

Friday 13 April 2018

Smoketesting host-print (“L”) from NetWeaver laptop edition

We assume you are running an SAP NetWeaver AS Abap Developer Edition instance as a guest VM on your local machine.

Also we assume that the SAP instance is up and running, and that your host computer (the one running your hypervisor for the guest VM) is capable of sending stuff to a printer located on your local network.

Wednesday 11 April 2018

Integrating Radiation Detection System to SAP

Weighbridges are connected to the radiation detector panels through which a vehicle passes and then reaches the weighbridge. The corresponding radiation vales are saved in the radiation detection system.

The purpose of this blog is to explain how this integration picks the radiation values automatically in SAP Screen of Scrap Receiving System (SRS – A custom built application in SAP) and to eliminate the need of manual entry, thereby saving time and eliminating manual entry error.

Monday 9 April 2018

How to Control Native Android Apps with ABAP

Business processes are not longer realized exclusively in the SAP GUI for Windows only. More and more, steps are also being taken on other UIs on other devices. In this blog post I describe the possibility how to control native apps and web apps on a virtual Android device with ABAP via PowerShell.

Friday 6 April 2018

Jump-start your report writing using a template (AdT / Eclipse)

You know how the say the best admins, developers (…) are the lazy ones – why? Because the automate everything that makes sense to automate: let repetitive tasks be done by some kind of automation, e.g. a script:

Once you have that, you’re way faster, you don’t make typing errors, and you script defines a kind of standard/best practice you can rely on, without having to think about it.
Of course, your script, template or whatever can and should improve if you gain new knowledge.

Wednesday 4 April 2018

ABAP Test Double Framework – An Introduction

Dependent objects which can’t be controlled makes writing unit tests hard or even impossible. In unit test environments dependent objects should be replaced with test doubles. They imitate the behavior of the real objects. The graphic below illustrates this idea.

Monday 2 April 2018

Technical comparison between S4CRM and C4C

As I have been once working as a developer in S/4HANA for Customer Management (S4CRM) and Cloud for Customer(C4C) development team, in this blog I will give some brief introduction regarding the technical difference between these two products.

Friday 30 March 2018

C-create, R-read, U-update, D-delete OData Services Creation Using ABAP CDS Views

Introduction


This article describes the fastest way of OData Services creation using ABAP Core Data Services. Details on @OData.publish annotation utilization, reference to Data Source CDS-Entity and import from DDIC Structure are given. Create, Update and Delete actions are shown on the custom transparent table data just to simplify the article and do not move focus from OData Service creation to business process requirements implementation.

Wednesday 28 March 2018

SAP Translation Hub. ABAP Integration How-To

Introduction


This article shows an easy and fast way of creating multilingual ABAP applications in order to correspond to best-practice methods and “to speak the Customer’s language”.

Monday 26 March 2018

TSW Junctions: An Example of Inversion of control

Introduction


In this blog, I want to show an example of one of the object-oriented principle Inversion of control. It is implemented in the TSW (Trader’s and Scheduler’s Workbench). The approach taken is not so object oriented but it resemble the Concepts of Inversion of control. This blog is not for in detail understanding of junctions in TSW.

Friday 23 March 2018

ABAP Debugger Script – 2 use cases ( display object data in ALV / break condtion on object value)

In the project we came across the challenge to find information within a list of objects in the debugger. in the ALV display you will only see all the objects instances.

Using debugger scripts (basics here) you are able to iterate on the internal object table and work with the values. In the second example I will show you how to display object information in an ALV.

Thursday 22 March 2018

ABAP Unit Test for Odata Services

The intent of this blog is to describe how to create local unit test classes for Odata services.

Example Considered


In order to keep things simple we have created an Odata service which returns the description of the document type (AUART from TVAKT table) field based on the code passed to it. So I want to test my filter functionality where we will Document type code and it shall return description. In case no description exists then ABAP Unit test shall fail.

Monday 19 March 2018

Create an analytical model based on ABAP CDS views

SAP HANA combines OLAP and OLTP processing in a single in-memory database, transactional and analytical can live together in the same place and this means you have access to the exact information you need in real time.

With this new approach an interesting question emerges, since we have the transactional and analytical worlds combined in a single database, is there any difference in the development approach when we talk about data models constructed over ABAP CDS (Core Data Services)?

Friday 16 March 2018

How eCATT Executes the Commands TCD and SAPGUI

SAPs Extended Computer Aided Test Tool (eCATT) offers in its language two interesting commands – TCD and SAPGUI – to executes some recorded activities. In this blog post I describe how the commands works, from the recorded XML file to the BCD respectively to the OLE interface of the SAP GUI Scripting.

Wednesday 14 March 2018

How To Combine PowerShell Development in ABAP Context

If you work with PowerShell in ABAP context it could be profitably to integrate PowerShell development into your ABAP development process. In this example I will show how to use PowerShell ISE to read and store PowerShell scripts as includes on an SAP system.

At the SAP system I added two RFMs. The first reads an include and the second writes an include. In both cases it is necessary that the include exists on the SAP system and it must be activated.

Friday 9 March 2018

Tool to list down the Looked-up Tables in any Transformation in SAP BI

I’ve created quite a handy tool that would save you all a lot of time and effort in doing several small things at work. This tool might interest you much as I’ve coded a tool that lists down the Objects that are being looked-up in any Transformation (including 2 level Include Programs i.e. upto an Include Program in an Include Program used in either of Field/ Expert/ Start/ End Routine) so that you get to know which Objects shall be loaded before-hand i.e. before executing the DTPs that load using the said Transformation.

Wednesday 7 March 2018

Using interfaces to standardize your ABAP OO Development

TLDR:

◈ You can utilize interfaces to move class functionalities to higher abstraction level
◈ You make code cleaner and nicer to look at
◈ Interfaces enable you to create mockup objects and increase code testability
◈ SOLID approach can be achieved
◈ With interfaces you make your class enabled for extension, but closed for modification
◈ Methods can use different object of differrent classes without using RTTS and casting unless they implement the same interface.

Monday 5 March 2018

SAP FIORI Debugging Tales – Display Notification App Action box failing

In addition we are open to all ears to hear about any shortcut ways to resolve the issue, any quick dirty solution most welcome.

Problem Statement


Display quality notification app was displaying the notification but when we click on any button in Action box we were getting RFC error as depicted in below picture

Wednesday 28 February 2018

How To Connect SAP with PowerShell via HTTP Request

More and more comes the communication with SAP back end system with standard protocols like HTTP in our focus. So it is easy possible to communicate with an SAP system without any additional libraries. In this post I describe an easy example how to connect an SAP system via HTTP request from PowerShell.

Monday 26 February 2018

SAP Cloud Platform Workflow Integration with Back-end OData Service

Prerequisites:

◈ SAP Cloud Platform access
◈ Destination(s) setup in SAP Cloud Platform
◈ SAP Cloud Connector Setup
◈ Back-end system access for OData Creation

Friday 23 February 2018

Producing a Message to Kafka via a TCP ABAP Push Channel

In exploring options for moving data/events around our landscape we wanted to know if it would be possible to have a native ABAP TCP Kafka client.  One could of course consume one of the REST Proxy options (eg. Confluent’s), which would be a much simpler option than building a TCP based client from scratch, but we still wanted to know if it would be possible.

Wednesday 21 February 2018

How to implement Link to action in ABAP webdynpro ALV

If you include the standard webdynpro ALV component SALV_WD_TABLE into your own component, you could not directly change the ALV table column as usual. In ABAP Webdynpro an example of link to action element used in ALV looks like below. Once the column “Social Media Post ID” is clicked, it is expected our application could catch the event and implement our own event handling logic.

Monday 19 February 2018

Displaying Rich (Formatted) text in SAP ADOBE form

Requirement


There is a common requirement given by client wherein they ask to generate PDF files based on the data entered in SAP WebDynpro ABAP input screen. Approach to achieve this is quite simple for most of the UI element i.e. transferring/displaying the data from WebDynpro ABAP screen to SAP Adobe form.

Friday 16 February 2018

Using Conditional Aggregation in CDS views on AnyDB or HANA

Background:


We recently needed to quickly create an extract of sales order related data with ~200 columns using ~20 source tables from ECC on anyDB. With a relatively straightforward pull of data, with little or no calculated columns or complex transformations but a short timeline, we decided to use CDS views to exclusively gather the data.

Wednesday 14 February 2018

How to add an embedded ABAP WebDynpro in Freestyle Portal

Freestyle Portal comes with many great capabilities for presenting content and applications to customers and employees. It is an ideal solution when you would like to have more information, graphics and/or context around the applications you want to present in customer facing, supplier facing, or HR portals, etc.

There are a couple of features that require some more focus and in this blog I would like to explain how we are adding backend ABAP WebDynpro applications to the Freestyle Portal.

Monday 12 February 2018

ABAP Ray Tracer – Part 5 – The Sample

Objectives


In this fifth blog I am updating my ray tracer to use different sampling algorithms to tackle the problem of aliasing.

I will demonstrate the aliasing effect by showing images created by my ray tracer and allow you to compare different sampling algorithms to minimize the aliasing effect.

Friday 9 February 2018

Code Review, Code Inspector, Code Pushdown & Key Changes in ABAP – S/4HANA

Overview


This Article will help SAP Application Consultants who have passion for ABAP coding. It will cover followings:

1. S/4HANA Conversion & Custom Code
2. Changes in ABAP Dictionary Objects
3. Essential ABAP Code Review
4. Performance Booster ABAP Code Review
5. Tools for ABAP Code Review

Wednesday 7 February 2018

OpenXML in word processing – Custom XML part – mapping flat data

In my first blog I wrote short introduction about OpenXML in word processing and how we can work with word documents in ABAP. In this blog I will describe custom xml part of word document and give some examples how we can use it in ABAP. For example how custom data can be used in on demand printing requests to provide customer data in document with content control.

Custom XML parts were introduced in Microsoft word 2007 along with Open XML formats. Custom part of microsoft word document is used to store custom data and it is not suprising that data format is XML. In connection to Custom XML we will use also Content Control functionality of Microsoft Word. Custom Control is set of individual objects to control and customize content of the document. One of its purpose is to map data from different sources (in our example from custom XML) to exact place in word document. So let’s go with example.

Monday 5 February 2018

ABAP in Eclipse – External Debugger Setting

And with technologies changing so fast its hard to keep your focus on what to start learning . Anyways I decided to stick to my core , which I love , ABAP !

But this time in a different way, Yes using Eclipse instead of ABAP workbench – Se80 . And while I am very confident in working in SE80 , I am getting use to developing & debuggging ABAP stuff in Eclipse . And I keep finding new stuff everyday rather every couple of hours.

Sunday 4 February 2018

Announcing The ABAP Scheme Workbench

What is Scheme?


From Wikipedia, the free encyclopedia:
Scheme is a functional programming language and one of the two main dialects of the programming language Lisp. Unlike Common Lisp, the other main dialect, Scheme follows a minimalist design philosophy specifying a small standard core with powerful tools for language extension.

Thursday 1 February 2018

Smart charts in Object Pages using ABAP CDS Annotations

With the introduction of Fiori Elements SAP started a revolution in the way we can construct Fiori apps, they are basically a set of generic UI5 codes that can read annotations and generate applications automatically without the need of javascript coding.

These templates are powered by Smart Controls, you can place them in your XML views to create mixed apps or just let the Fiori Elements execute all the job.

Monday 29 January 2018

How To Use eCATT Script from PowerShell

eCATT is a very powerful tool for test automation in the context of SAP. In this blog I describe how to use eCATT script from PowerShell. So we can combine the possibilities of eCATT on the one hand and PowerShell on the other hand.

Hint: To realize this scenario you need the SAP dotNET connector NCo. Look at my blog posts to find examples how to use NCo with PowerShell.

Sunday 28 January 2018

OpenXML in word processing – Introduction and how to use it in ABAP

In first part of this blog I give introduction to OpenXML in word processing. In second part I will provide ABAP code how to read word files.

Starting with Microsoft Word 2007 when you create new document in word and save it – a new file is created with extension  “*.docx”. This file represents zipped xml files which describe whole word document. It includes, texts, tables, font sizes, colors, comments, margin settings, sections settings and everything what user manually placed and maintained in document. It is all about xml files bounded via relations one with each other in specific structure and zipped into file.

Saturday 27 January 2018

Step by step to run Vue application in BSP

I discuss SAP UX strategy with their IT team. The team architect is a fan of Vue, who prefers to use Vue in their UI custom development instead of Fiori. Then I am curious about the advantage of Vue and plan to learn it in my spare time. As always a Vue Hello World must be finished before advantaged content is touched.

Wednesday 24 January 2018

Secrets of the ABAP Debugger: Advanced ABAP Debugging Techniques

The ABAP debugger is a powerful tool helping to examine your ABAP code at runtime.

Besides the common and basic features, such as stepping through your code and inspect the values of your variables, field symbols, and references, it provides helpful features that can simplify and shorten your debugging sessions. Not all of these features might be known to everyone.

Tuesday 23 January 2018

Formatted Excel Process

The dictionary defines automation as “the technique of making an apparatus, a process, or a system operates automatically.”

We define automation as “the creation and application of technology to monitor and control the
production and delivery of products and services.”

Sunday 21 January 2018

How to create FPM Tree UIBB – Detailed steps with screenshots

Creating Tree UIBB in FPM application and displaying hierarchical records.

Scenario:

This document explains the step by step procedure to create Tree UIBB and display employee to manager relationship in tree or hierarchical form.

Friday 19 January 2018

Spotlight on ABAP for SAP HANA – Again

The move from the classical SAP Business Suite to the Digital Core, i.e. SAP S/4HANA, places SAP HANA at the center of the game. The same is also valid when moving from traditional databases to SAP HANA – i.e. SAP Business Suite and SAP Business Warehouse powered by SAP HANA.

What does this really mean for ABAP developers?

I would like to use this blog to elaborate a bit on the topic ABAP for SAP HANA again.

Thursday 18 January 2018

OpenXML in word processing – Custom XML part – mapping structured data

I discussed custom XML part and content control and how to work with it to achieve data binding in word document. Custom xml file was structured in very simple way. However there might be requirement to map and create some parts of document dynamically. For example we do not know how many records our table can contain after processing.

Tuesday 16 January 2018

Saturday 13 January 2018

Fiori elements – List Report – Sorting, Grouping and Table Types

It’s worth remembering that, as well as guiding the design of the List Report through annotations, there are always some List Report behaviours end users can control for themselves.  Naturally, if there’s a common preference among many end users you will want to default those behaviours up front using annotations. It’s also necessary to set certain default behaviours – such as sorting and grouping – if you want to add more advanced aggregation features such as totals, subtotals, and other analytics.

Wednesday 10 January 2018

Variations Of Selecting Multiple Options From A List

If you want to provide a user the possibility to select multiple values from a list then you normally have – in other programming languages – a control containing items an the possibiity to mark or unmark them. It’s called a listbox in Visual Basic for example. You eather choose items by holding CTRL key pressed or clicking the check box of the desired list items.

Tuesday 9 January 2018

Optional Parameters in CDS Views

I am a newbie to SAP-HANA world and was recently exploring different types of CDS Views (particularly CDS Views with Input Parameters).

Though CDS Views with Input Parameters were introduced quite a long time back but I could not find a way to make some of the input parameters as Optional. So I played around with some annotations and found out a way to accomplish the same.

Friday 5 January 2018

SALV Tree(CL_SALV_TREE) Functionalities, Events and Tricks

CL_SALV_TREE is a very useful class to print information on the output screen in the form of a tree.

We can view similar kind of information grouped under nodes and can have option to have limited or full access to them.

The tabular view enables us to navigate through the data in an informative kind of way.

In this blog, we shall discuss about many small useful events for the CL_SALV_TREE and also some tricks to use them for our own desired functionalities such as Sorting, Filtering and Deleting and most importantly, REFRESH.

Wednesday 3 January 2018

R/3 Take a step back into time – ALV Interactive Cut / Paste

Requirement:


Upload data from a spreadsheet into sales order conditions and a custom table.

The solution:

Use copy / paste from a clipboard into a program.   Create an ALV    The ALV will allow for some of the fields to be changed.

Tuesday 2 January 2018

How to add value help for parameter in ABAP CDS Analytical Query

In this post I would like to share trick for adding value help to parameter in analytical query.

Parameters in ABAP CDS view could be used as mandatory, single value variable, which could be used when split of calculation logic required. By default parameters don’t have value help, like filtration option based on fields at consumption level.