Sunday 29 August 2021

Organizing ADT Project Explorer – Working Sets

Introduction

When I started using Eclipse ADT I missed a functionality to organize all access to systems that I had in SAP GUI in workspaces:

ABAP Development, SAP ABAP Exam Prep, SAP ABAP Tutorial and Material, SAP ABAP Career, SAP ABAP Preparation, SAP ABAP Guides
SAP GUI Workspaces

Friday 27 August 2021

ASYNC/Parallel ABAP in a OO way

Motivation

Every now and then we find a need for doing some work in parallel. Recently I’ve worked on a process that was taking far too long to be of any use. It was taking large amounts of data in and creating an even larger amount of records given complex rules, validations and enrichment.

Refreshing some ABAP parallelism techniques, my options were basically to split the input data and then running FMs in background, starting a new task or writing a report and scheduling a job with parallelism being ranges of a selection criteria.

All valid options, I suppose, but I got used to work purely in OO and hammering FMs here and there to have my parallelism had a particular bad smell.  It would prevent me to assert some critical behavior via unit tests, for starters, and it would also add this new responsibility, running in parallel, to weird places with code that looked boring and repetitive (take data from classes, run fm, take data back…).

Friday 20 August 2021

OData Versioning

OData has become an inevitable topic for any SAP ABAP developer. I am sure most of us are involved in an OData development one way or the other.

Let’s discuss versioning, one of the advanced concepts of OData.

Note – I are working with OData version 2.0 in this article.

Motivation

Ever wondered if the business logic of an OData can be modified and activated as a different version without effecting the current business logic? I did and some of the scenarios I have faced are

Wednesday 18 August 2021

Post Request for Adobe Form Generation with OData Version 4

Introduction

In blog post “Download File through NetWeaver Gateway with OData Version 4” I showed you how you can download a file via NetWeaver Gateway with OData Version 4. Now I would like to present you how you can generate an adobe form via post request. The result is that we have an entry in ZDEMO database table and the key of the entry is in the response of the OData Request.

The next sections contain following topics:

1. preliminary work

2. implementation of a model provider

3. implementation of a data provider

4. test

Monday 16 August 2021

SAP GLM Integration with EWM in S4 Embedded System (Technical)

This blog post explains the process of printing the labels/Safety Data Sheets from the EWM system using the SAP Global Label Management (GLM) tool. This article explains related to the technical solutions only.

Our client was a chemical products manufacturing company and had to print lots of the labels and safety data sheets to adhere to the safety standards. The client was using a third party software to print these labels and the safety data sheets in the existing SAP system.

During the S/4 implementations, our client decided to make use of the SAP GLM functionality to meet their business requirements.

The client was implementing the embedded SAP EWM as well. The standard GLM process works based on the ERP process but the client requirement was to print the labels/SDS using the EWM system. The client was expecting to the implementation partner to automate this printing process in EWM than ERP.

Friday 13 August 2021

FBL1N Enhancement Document Date Functionality

Standard FBL1N transaction fetches the vendor line item display based on posting date. When there is a requirement to fetch customer line items based on document date, a custom enhancement needs to be developed.

To make them work based on document date (To fetch records based on BLDAT-Document date) enhancement needs to be developed in the logical database.The logical database holds all the structures. Here we cannot enhance the structures and nodes directly. Only the source code program of the database can only be enhanced.

By using submit functionality (passing vendor,open items date) in custom z reports ,records based on the posting date will only be fetched. But in order to fetch open items based on document date(BLDAT), enhancement needs to be done. The standard transaction code FBL1N cannot be enhanced to accomodate this functionality. The standard FBL5N fetches the customer line item display based on posting date(key date).

Thursday 12 August 2021

A Pocket guide for Hello World in SAP ABAP

In this blog, I will discuss What is SAP, and How to write Hello World in SAP ABAP.

SAP stands for Systems Applications and Products. SAP, by definition, is in addition to the name of the ERP (Enterprise Resource Planning) software and the name of the company. The SAP software package was established in the year 1972 in Walldorf, Germany by five IBM German employees; Wellenreuther, Hopp, Plattner, Tschira, and Hector.

The solution of SAP is a combination of various kinds of modules or applications. Every module contains a vital role to play in the basic process of the business.

Monday 9 August 2021

Exceptions in oabap for new abapers

First we can discuss what is exceptions exactly.

Exceptions: The Exception is a problem that arises during execution of the program. When an exception occurs the normal flow of an execution is disrupted and the program application is terminating abnormally, which is not recommended, by avoiding these you can handle the errors. When you fail to capture the error the runtime system will abort the program (i.e., crash)

Whenever the exceptions are raised in case of ABAP the program is going to short dump, this is not the right case, as a developer you can think about the exceptions where it is raised from where you need to capture the exceptions, Exceptions are always play an important role while developing the application.

What is exception handling ?

Exception handling is a process of handling an exception in such a way the short dump of a program is avoided and normal termination of the program is achieved. If the generated exception successfully handled the normal termination of the program is achieved and the performance of the software is not affected.

Friday 6 August 2021

Refresh of CL_SALV_TREE

Introduction

I’m developing for the first time a CL_SALV_TREE simple tree. The tree is way of configuring data that is grouped together. I could have done it with table maintenance, but I wanted something rather nicer.

The structure of my data (for the purposes of this blog is:

Group name Count Active flag

The three operations I want to do are:

Create a new entry

Delete a current entry

Toggle the activation flag

Thursday 5 August 2021

Azure Synapse Pipelines and OData – Part 3 – Metadata Store

Where I show you how to deal with OData extraction from the SAP system using Synapse Pipelines. In the first episode, we’ve built a simple pipeline that extracts data from a selected OData service and saves it to the data lake. Then, a week later, we enhanced the design to support parameters, which eliminated some of the hardcoded values. It allows us to change the OData service we want to use without modifying the pipeline or resources.

It was a great improvement, but the process still has two main disadvantages. The extraction job can only extract a single OData service at a time, and we still have to provide parameter values manually. If we want to extract data from many services, we have to start the pipeline multiple times, each time providing the OData service name, entity and host. Not the most effective approach.

Wednesday 4 August 2021

Azure Synapse Pipelines and OData – Part 2 – All about parameters

OData services have become one the most powerful interfaces in SAP systems. In the last episode, we’ve built a simple pipeline that extracts business information from an OData service to a data lake and makes them available for further processing and analytics. We’ve created all required resources, including linked services and datasets, and we’ve used them to define the Copy Data activity. The extraction process run without any issues, and we were able to display data from the lake.

But imagine you’d like to change the data source. Instead of Sales Orders, you’d like to get information about Business Partners. To make such a change, you’d have to go through all resources and modify them. You’d have to alter the URL of the OData service, target location and entity. Quite a few changes! Alternatively, you could create a new set of objects, including the Copy Data activity. Both solutions are not ideal. As your project grows, maintaining a large set of resources can become a tremendous job. Not to mention the likelihood of making a mistake!

Tuesday 3 August 2021

Azure Synapse Pipelines and OData – Part 1 – The First Extraction

INTRODUCTION TO AZURE SYNAPSE

I want to keep the theory as short as possible, but I think you will benefit from a brief introduction to Azure Synapse. Especially, if you’re unfamiliar with Azure tools for data analytics. Whenever you work with data, there are a few steps involved to retrieve a piece of information or insight. I guess we are all familiar with the ETL acronym, which stands for Extract – Transform – Load. It basically describes a process that gets data from one system, modifies them, and then uploads them to a target solution. For example, to a data warehouse, making it available for reporting.

Read More: C_TAW12_750

Monday 2 August 2021

Connecting from SAP Business Application Studio to SAP ABAP Environment in BTP

This post will cover setting up a connection between SAP BTP ABAP Environment and Business Application Studio.

SAP Business Application Studio (BAS) is a new SAP Business Technology Platform (BTP) service that offers a modern development environment tailored for the efficient development of business applications for the SAP Intelligent Enterprise.

In this blog, we will use the Trial account where I will walk you through the steps on how you can use a Booster to Automate the Setup and create a Fiori application. If you have created an instance and service key already? you can skip step 1