Friday 31 May 2019

zmockup_loader and unit tests with interface stubbing

This article describes our experience of using mockup loader together with data accessor pattern approach.

Data accessor pattern overview


The code that needs to access DB inside is a bit complex to unit-test. One of the approaches to do this (if well designed from the beginning) is so called data accessor pattern.

Thursday 30 May 2019

SMW0 – “RAISE_EXCEPTION” Dump Solution Of The Error Received When Deleting An Object

In the “SMW0” transaction code, I encountered an error deleting an object. I solved this error by debugging. I wanted to share this solution with you.

The error I encountered:

Category                          : ABAP programming error
Runtime Errors                : RAISE_EXCEPTION
ABAP Program               : SAPMWWW0
Application Component  : BC-CI-WEBR

Wednesday 29 May 2019

ABAP Dumps

Dumps happen when an ABAP program runs and something goes wrong that cannot be handled by the program. Dumps that happen in the customer namespace ranges (i.e. own-developed code), can usually be fixed by the programmer. Dumps that happen in SAP standard code probably need a fix from SAP.

Monday 27 May 2019

Global Class and Method for Application Log

The goal of the object is to create the Global Class and Method for Application Log so that it can be reused where necessary in any RICEF object.

Application Log provides an infrastructure for collecting messages and exceptions in a log, saving, reading and deleting logs in the database and displaying them.

Sunday 26 May 2019

SAP S/4HANA Cloud Extensibility – Engraving sample scenario – run business process using a Side-by-Side app Part - 7

Run Business Process using a Side-by-Side app


First of all a big thank you to the colleagues from the Solution Experience team for building a Side-by-Side app which allows us to show the scenario in a real life scenario.

Saturday 25 May 2019

GLADIUS Is Getting Sharper

Introducing: GLADIUS – A Test Unit Framework

GLADIUS – The Next Level

The above blog posts are about the Test unit challenge and learning framework GLADIUS. In this series I try to evolve the framework to help better understand how the framework works and to document the development process.

Thursday 23 May 2019

Add Value to Your S/4 HANA Embedded Analytics Content with Material Hierarchy

Standard S/4 HANA Embedded Analytics content does not provide material hierarchy. The reason for that is that material hierarchy is configured as per business requirements and is unique for each client. Still you can benefit from material hierarchy in S/4 HANA Embedded Analytics, for example, drill-down along the hierarchy or selecting data using hierarchy. In my blog I will explain how to fill this gap and create material hierarchy.

Wednesday 22 May 2019

SAP S/4HANA Cloud Extensibility – Engraving sample scenario – Technical Setup – Process enablement Part-5

Process enablement


Chapter “Technical Setup” set the basis and technical foundation to use our customized process.

In this chapter I describe additional steps that are required to make our custom fields visible on the UI

Tuesday 21 May 2019

Sending push notifications from SAP to Mobile device using Firebase Cloud Messaging (FCM)

Notifications on our mobile device is something we experience on a daily basis from various mobile apps we use for News, Entertainment, Shopping, Health etc. Notifications has tremendous value to deliver in the enterprise context as they can deliver the right information at the right time to the right person. If used effectively they can be used as a tool to improve employee productivity, speeding up business processes, improving the quality of services and many more benefits.

Monday 20 May 2019

Decoration Day – Questioning The Decorator Pattern

There are design pattern. And there are design pattern. There are some I use really often because they are clear to me in use and technique, like the singleton or the factory pattern, the observer and some others. The decorator pattern for some reasons is very hard for me to understand. I learned about it in a workshop years ago. But over the years there was no need for me to use it and therefor no need to understand it. I try to change this for some weeks now…

Saturday 18 May 2019

SAP S/4HANA Cloud Extensibility – Engraving sample scenario – Technical Setup – Custom analytics Part-4

This blog is part of a blog series focusing on SAP S/4HANA Extensibility. It is one of 5 blog posts taking care of the technical setup of extensibility with a focus on In-App Extensibility.


Custom Analytics


In order to get some analytical insights about which engravings have been ordered in which month i will now setup some custom analytics.

Friday 17 May 2019

First Thoughts about Architecture of ABAP Cloud Applications

 In this blog entry, I would like to discuss some aspects.

Why ABAP Cloud Environment Matters


You are able to run existing ABAP applications in ABAP Cloud Environment if you manage to decouple them from the core systems. This helps you to keep the core systems clean since you reduce the amount of custom code in those systems. Moreover, you can use it to simplify your landscape and let SAP do the provisioning of the system. Another obvious advantage is that you get a more flexible release cycle for your application.

Wednesday 15 May 2019

Execute URL dynamically by a Button click event using Interactive features of Adobe Forms

Many a times, we have some business requirements where we would like to have editable form or buttons/check boxes in the form which user can click and desired action should be executed. Sometimes we also would like to interact with SAP using actions performed by interactive forms.

Monday 13 May 2019

How to generate the DDL source code for custom entities that are implemented by remote function calls

Introduction


SAP CP ABAP environment can serve as a platform to built side-by-side extensions for:

◈ SAP S/4HANA Cloud via OData
◈ SAP S/4HANA (on-Premises) via OData and RFC
◈ SAP Business Suite (on-Premises) via OData (using SAP Gateway) and RFC

Sunday 12 May 2019

How to implement a custom entity in the ABAP RESTful Programming Model using remote function modules

Introduction


In this blog I want to show how to build and implement a custom entity ZCE_Product_via_RFC whose query is being implemented via a class zcl_cq_product_via_rfc that reads the data from a remote system via RFC using the function modules

◈ BAPI_EPM_PRODUCT_GET_LIST
◈ BAPI_EPM_PRODUCT_GET_DETAIL

Friday 10 May 2019

Role of BTE process RWBAPI01 in BAPI_ACC_DOCUMENT_POST

Introduction


BAPI_ACC_DOCUMENT_POST is use for creating/posting accounting document for AP, AR and GL documents. This is an alternate solution in place of BDC which is used for posting documents through transactions like FB01 and FBB1. This BAPI can take input from legacy system and convert data into accounting document.

Wednesday 8 May 2019

How to call a remote function module in your on-premise SAP system from SAP Cloud Platform – ABAP Environment

Introduction


It is possible to call remote enabled function modules in your on-premise systems from SAP Cloud Platform – ABAP environment. How to integrate on-premise systems is described in the SAP online documentation.

Monday 6 May 2019

Quick/Easier way to find User Exits and BAPI’s for any T-Code

Introduction:


This blog helps any Functional / Technical consultants for getting the list of User Exits and related BAPI to a given t-code by easier/quicker way.

Obtainable:


Can be achieved through se93 / direct t-code help –> status –> program name and package.. further CMOD – lookup providing package and getting the list.  or it can be obtained through SPRO drill down.

Friday 3 May 2019

CCLM(Custom Code Life Cycle Management) Configuration In Solution Manager 7.2

Custom Code Management Work Center


CCLM- Brief description of the functionality
  • CCLM can be used for creating a library of custom codes
  • It gives you information of number (quantity) of custom code in various systems on various attributes like criticality and severity (enhancement, modification and custom code)

Wednesday 1 May 2019

Dynamic table data read and odata binding

Sometimes in our requirement we need to read data dynamically based on some condition, like columns, table/ internal table name may changes as per user input. During one such requirement we need replicate se16 like transaction for Fiori application. Here we need to show table and table data based on the table name given in input field.