Thursday, 30 March 2017

What is RICEF?

You can see RICEF acronym, when you look at the most SAP ABAP Developer job position descriptions; and you can sometimes encounter RICE version of it. So what does RICEF stand for?

Firstly let’s look at some SAP job posting examples:

  • Able to scope, review, and create SD RICEF…
  • MM RICEF Functional Spec Exp…
  • Must have experience supervising a team and writing RICEF…
  • Must be very proficient in all aspects of RICEF developments…
  • Interact with business users to analyze the requirements and technical desings of the RICEF objects…

Friday, 24 March 2017

An ABAP test case pattern using fixtures inspired by Javascript

An ABAP test case pattern using fixtures inspired by Javascript


21.03.17 – Frank Gales

After years of ABAP development I some years ago moved to Javascript but I’m for a short intermezzo doing some ABAP development again. In Javascript in my team we do have a pattern for test fixtures that evolved during time. A test fixture is a set of test data.

Here is the pattern. It is mostly JSON so it should also be understandable for ABAP developers. In order to get the most benefit out of a test it should be easy to add a new fixture (test data set) e.g. to cover more edge cases or after a bug is found to have that specific context covered in a test.

Monday, 20 March 2017

Java byte code and ABAP Load

I use this small blog to help my new colleagues on board who have Java programming background to understand the hello world example written in ABAP.

Hello World example in Java


The following example could be done in pure text editor without Java IDE. You should have JDK installed as prerequisite and corresponding environment variable setup correctly.
Once done, type javac -version in command line, you should see the following output: ( result may vary based on your JDK version )

Thursday, 16 March 2017

Abap Syntax Highlighter and code folding in Notepad++

Editing Abap code with Notepad++

Maybe like me, you are doing some remote work with using RDP connections or Citrix. It can be very slow sometimes even if you tweak the settings of your RDP connection or Citrix by putting an awkward 8 bit resolution, something unheard in the first quarter of the twenty first century… I often experience lags and slowdown that makes me sometimes very angry. Using a SAP logon connection through RDP can be a very frustrating experience (especially if you are in China like me…)

Wednesday, 15 March 2017

Fibonacci Sequence in ES5, ES6 and ABAP

The concept of Fibonacci Sequence or Fibonacci Number is widely used in many programming books.

It could be defined via the formula:
F(0)=1,F(1)=1, F(n)=F(n-1)+F(n-2)

In ES5


In ES6 there is a feature so called “generatorFunction” which can achieve the calculation of Fibonacci Sequence in a very convenient way. But before we really enjoy the built-in language feature, let’s first see how to simulate it in ES5.
Here I use the closure in JavaScript to store the current round of calculation and return a new function for next round trigger.

Wednesday, 8 March 2017

SAP Table Maintenance Tool

Whether it is a functional or technical transaction or a basis transaction, everything in SAP or for that matter in any technology, boils down to database, and as we know database means tables. Apart from the standard tables that SAP has, a business will usually have to create many ‘Z’ tables for its custom development. Many times a business ends up with hundreds of custom tables and always their maintenance is a real cause of concern as the usual maintenance tools in SAP have their own issues. Usually, a table in SAP can be maintained in three ways,

            1.Through ‘SM30’ (Table Maintenance)

            2.Through SE11 

            3.Via custom transaction.

Monday, 6 March 2017

How to use SQL window functions in ABAP CDS views

I would like to consider a case of using Windows Fuctions in ABAP CDS views based on data in S/4HANA system.

I also take case of some features like:
  • Main CDS view syntax and semantics
  • Parameters in CDS views
  • Consumption options of CDS views

Friday, 3 March 2017

How to trace authorizations in ABAP CDS views

Now it is time to trace and troubleshot. I’am going to explain this thema based on analytical query CDS Z05_C_FlightByAirportQuery which is based on Cube CDS view Z05_I_FlightByAirport.

Access control was defined for the Cube CDS view in previous post:

@EndUserText.label: 'Role for Z05_I_FLIGHTBYAIRPORT'
@MappingRole: true
define role Z05_ROLE {
    grant select on Z05_I_FlightByAirport
     where ( Airline, FlightDate) =
            aspect pfcg_auth (  ZS_NEW,
                                CARRID,
                                FLTDATE,
                                actvt = '03' );

Thursday, 2 March 2017

Code visualization using Moose

It is now possible to extract model information from a SAP system to analyze it using Moose in a Pharo virtual machine.

Pharo is a kind of Smalltalk and heavily used by specialists who develop techniques for code visualization especially for refactoring. The SAP model data is extracted using FAMIX, this allows a more detailed analysis as would be possible using UML. This is now possible due to a new open source extractor.

Wednesday, 1 March 2017

Standart DEMO Examples of ABAP CDS views

This post was created to show standard ABAP development package with could be very useful for:

  • ABAP programmers starting  to use CDS views functionality
  • Application consultants (e.i. in case of customer CDS views enhancements should be done or some standard CDS view results don’t seem to be correct)

You could find a package SABAPDEMOS in HANA Studio ABAP perspective in case of S/4HANA system (or in SE80 t-code). There are a lot of useful things there.