FromZeroToCloud – Take the journey with me and became an SAP Cloud Platform expert

In my day by day job, I realize that many SAP experts still had no opportunity to explore SAP Cloud Platform and start their journey to renew their skills. This happens for different reasons: too busy in their daily job, confused on where and how to start their learning journey, not familiar with the innovation, or many others. This is very sad to me, because there is so much talent out-there that many companies need to be successful in their business, but, most important, to keep innovating and lead the change. SAP Cloud Platform is a very powerful Platform as a Service solution that offers so many tools and business services, but sometimes it could be scary for old ABAPers to start a new learning journey. I have been in that situation too, so I want to use my experience in approaching SAP Cloud Platform with other members of the community and share as much information I can to share the value, the flexibility, and the versatility of the SAP Cloud Platform. There are 20 macro categories of services in the SAP Cloud Platform and most of the time we focus in just one of this service, such as the API Management or SAP Fiori development, but we do not consider how we can get the real power of a Enterprise Business Platform combining these services to easily create Enterprise level cloud applications.

Extend the core with new functionalities, Integrate solution to provide a valuable access to data, Build innovative application to simplify and innovate core processes. For this reason, I decided to create a video series FromZeroToCloud that wants to explore SAP Cloud Platform capabilities one by one, but not a single service, but more how we can combine different services to deliver the Intelligent Enterprise!

In this series, I start the journey of a new company, a new delivery Pizza shop (who doesn’t like pizza?), that want to embrace the cloud to quickly expand its business and leverage the innovative technologies to become the leader in the market. Starting with one simple application, we will expand or offering, adding more and more functionalities and services for my customers, suppliers and employees, and becoming THE best pizzeria.


What are you waiting for? Join me in this journey and let’s make Pizza rule the Cloud.

Publish date Episode Abstract
Mar 14, 2019 0 – Intro On Pi(e) day I decided to open a new activity a new Pizza delivery! Welcome to Cloud Pizza! A journey to a successful business using SAP Cloud Platform.
Apr 1, 2019 1 – Setup In this episode we will start our journey with SAP Cloud Platform creating a new SAP Cloud Platform Trial account and an SAP Gateway account to a Gateway System in the cloud.
Apr 9, 2019 2 – Connectivity In this episode we will cover the initial configuration for connecting the SAP Cloud Platform with our cloud and on premise systems using the SAP Cloud Connector
Apr 22, 2019 3 – SAP Cloud Portal It’s time to start building a site for our pizzeria, we need to communicate our clients that we are open for business and ready to deliver our pizza. Let explore SAP Cloud Portal service and move forward to our success.
May 2, 2019 4 – GitHub Quick information for downloading the source code of each episode.
May 23, 2019 5 – SAP Cloud Portal Theming It’s time to personalize our portal and creating a theme that brings our portal to the next level. In this episode we create a custom theme in SAP Cloud Platform and we will apply to our pizzacloud site.
Jul 9, 2019 6 – SAP Cloud Portal Widgets Let’s create some custom widget for our SAP Cloud Platform Portal. This is our starting point to create a more professional website.

Let me know with your content what you do and do not like. I’m not a professional or experienced Youtube VBlogger, actually this is my first experience, so I would like to improve the delivery of this content also learning from you!   PS I recently realized that I need subscribers to activate some YouTube features. If you find this content relevant, let me know by subscribing to my Youtube channel

ABAP URL shortener

Nowadays, everyone knows URL shortener services and even you don’t know it you are using it.

Twitter automatically translates every URL into a shorter URL, Google has is own service and there are so many others…

In my last project I had to configure NWBC and I faced a problem. Do you know that URL for menu entries in PFCG is just 132 characters?

Usually this is enough, but in my case it was not…

I had to link Cognos reports, that believe me are really long URL and even more due to a bug with SAP Fiori Launchpad I had to apply a workaround to have my theme applied as described by note 2092412, and it generates long URLs.

Continue reading “ABAP URL shortener”

Free iTunes, Amazon, Google Gift Card

Recently, I found a way for getting free iTunes gift card, I’ve already got 2 of mine 10$ iTunes Gift Cards.
Go check out FeaturePoints on iOS and Android and use my link to earn 50 bonus points. Get points for trying free apps, and redeem those points for awesome rewards including and iTunes gift cards, PayPal payments or even an iPad mini.
An other site is Free My Apps and the procedure is very simple:
  • Goto to from Safari on your device
  • Install the certificate as requested
  • Install the application available and play/open these for at least 30 secs (the first one takes a little longer I waited 1 min).
Doing this you’ll get points and one you reach the cap you can redeem your Gift Card 😛
Update: Another easy way to get free iTunes Gift card is using AppBounty, same concept, but you just need to download the free app.
Get 50 starting credit using this code jipmzvk.

From Assembla to GITHub – Phase 2: Migrate issues, comments and milestone

In my previous blog From Assembla to GITHub – Phase 1: Migrate your SVN repository to GIT I explained how to migrate your SVN repository to GIT and commit it to GITHub.

In this blog I will give some information on how to migrate Assembla issues into your GITHub repository, without losing any data.


A PHP Web server to run the script

Chapter 1 – Export data from Assembla

From your Assembla console, Tickets->Settings->Export & Import and Export your tickets, this will generate a bak file (they say it is a JSON, but basically is text file with some JSON structure)

Assembla export

Chapter 2 – Import bak file into your GITHub repository

Here comes the fun… There is no easy way to import this file in GITHub, but they have very powerful REST services.

So, I decided to create a PHP script that parses the export file from Assembla and import to GITHub using their services. GITHub has no official API for PHP, but there are several GITHub repositories that are creating them.

I decided to use github-php-client, that, IMHO, has a great structure and flexibility. Unfortunately, these APIs are not fully compliant with the version 3 of GITHub services.

No fear! Is it an open source project? OK, let’s collaborate…

I created a fork of that project and I completed the API fixing the missing pieces for my scope (currently most of my changes have been included into the master, otherwise you can use my fork).

Then a simple PHP script will do the dirty job… The code is shared as open source here.

github import

After few minutes all the issues, comments and milestones were imported into my new GITHub repository!

Note Before starting the import of the file I suggest to test the export file in a dummy project, only after this test I would suggest to try on your official GIT repository. I have no responsibility on the use of this script.

From Assembla to GITHub – Phase 1: Migrate your SVN repository to GIT

I recently migrated my Assembla abap2xlsx to GITHub ( #abap2xlsx is relocating… Welcome to GITHub ) and I would like to share a quick “how to” just in case you want to migrate also your SVN repository to a GIT repository maintaining all the history.


  • GIT installed on your machine, if you’re using GITHub you can install their Client
  • Having an SVN repository to migrate 

Let’s start our journey


Unfortunately, I switched to a Windows PC right now, so most of the screen shots and commands are referred to a windows machine, I’ll try to give you the same details also for Mac o Unix/Linux.

Chapter 1 – Prepare for migration

The first step is to prepare everything in order to have a smooth migration, in this case we need to create a file with the list of all the contributors of the SVN project, this file will be used in the next step to match users in repository history.

Using your console/shell move into the root of your SVN project

If you’re not in a windows machine

svn log -q | awk -F ‘|’ ‘/^r/ {sub(“^ “, “”, $2); sub(” $”, “”, $2); print $2″ = “$2” <“$2″>”}’ | sort -u > USERS.txt

On windows you have to install sed – the stream editor, simple copy sed.exe in the current folder (I’ll make this step simple, you can also add sed in your PATH) and then execute

svn log –quiet –xml | sed -n -e “s/<\/\?author>//g” -e “/[<>]/!p” | sort | sed “$!N; /^\(.*\)\n\1$/!P; D” > USERS.txt

The file is the list of all contributors that had made at least a commit to the repository. We need now to edit this file in order to make it like the snipped below, please pay attention to the charset otherwise the next steps will fail (never trust Notepad)

Alessandro Iannacci = Alessandro Iannacci <>
gregor.wolf = Gregor Wolf <>
IvanFemia = Ivan Femia <>
JOACHIM.WRBA = Ivan Femia <>
Ludek.Vondruska = Ludek Vondruska <>
p491969 = Ivan Femia <>
stefan_schmoecker = Stefan Schmöcker <>
Tomek Mackowski = Tomek Mackowski <>
turnheim = Rene Turnheim <>
www-data = Ivan Femia <>

Chapter 2 – Convert SVN repository

GITHubOpen your GIT shell and start the conversion…

Really easy? No this command depends on your SVN structure, so it depends on the TRUNK, BRANCHES, TAGS folders.

From GIT console move on a directory that you want to use a working dir and then execute the following command:

git svn clone [SVN repository URL] -A USERS.txt –stdlayout ~/temp

on a Windows machine I suggest to use /temp instead of ~/temp

This command it’s great  if you have a standard SVN layout, with all the three SVN folders; in my case, for example, I had only the trunk as a root so I executed

git svn clone [SVN repository URL] -A USERS.txt –trunk=/trunk /temp

For more information on git svn command please refer to the official documentation

Chapter 3 – Convert svn:ignore to .gitignore

From the GIT console execute this simple steps

cd temp
git svn show-ignore > .gitignore
git add .gitignore
git commit -m ‘Convert svn:ignore properties to .gitignore.’

It will convert the SVN ignore properties in the GIT ignore and add it to the commit.

Chapter 4 – Create the bare repository

Now we need to create our bare repository (.git folder) that will be imported in our Code Repository (e.g. GITHub)

git init –bare ~/your_project_name.git
cd ~/your_project_name.git
git symbolic-ref HEAD refs/heads/trunk

push the content into this bare repository

cd ~/temp
git remote add bare ~/your_project_name.git
git config remote.bare.push ‘refs/remotes/*:refs/heads/*’
git push bare

and link the trunk as master of the git bare

cd ~/new-bare.git
git branch -m trunk master

Chapter 5 – Gran finale: import into your Code Repository

You are now ready to import the .git bare folder into you git repository (in this case GITHub). Make sure that you have created a repository on GITHub with the same name of your bare folder.

cd your_project_name.git
git push –mirror

and delete temporary folder

cd ..
rm -rf your_project_name.git

Epilogue – Enjoy

Enjoy GITHub!

In the next blog I will describe how to import issues, comments and milestone from Assembla to GITHub.

%d bloggers like this: