Application Development Blog Posts
Learn and share on deeper, cross technology development topics such as integration and connectivity, automation, cloud extensibility, developing at scale, and security.
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member

   I am project manager of some SAP ABAP add on development project and, as every project manager, I face from time to time a need to create something special for the folks I am working with as a gift for their great work. I guess you know that feeling at the end of some important milestone or when you are panning some team building event or when planning to throw a party due to new product release when you are thinking of what ‘team goodies’ you can present or how you can spread a word  around about efforts your team made. I guess today I can share with you one of the things I did.

   It started from the idea to collect some cool statistic over our project, but colleague of mine pointed my attention to one open source project called Gource that is a software version control visualization tool and is able to produce incredibly nice videos about your project development. Gource is well known by Java community as it has built-in integration with SVN, GIT and Mercurial version control systems to pull out change logs from there for video generation. Fortunately, being an open source, it also does not hide a secret about log format so I decided to spend a weekend and write my own extractor from SAP transport system in order to make it work with Gource.

    Below I am presenting video generated for our project as well as steps and ABAP code required to generate your own video for your development or implementation project. Our project, FM insight, Software is displayed by Gource as an animated tree with the project name at its center. Different ABAP object types appear as branches with object names as leaves. Developers can be seen working on the tree at the times they contributed to the project.

How to make your own video

    Since our project contains from both Java and ABAP stacks and we use SVN at Java for version control I decided to mimic SVN change log output format for the SAP transport system log export. This decision had also nice feature that I can combine two logs into one file and produce video that consists both – Java and SAP development at the same time. To do similar video on your projects you shall go over tree steps only that I am going to convey in details below. As well there is enough information on Gource wiki and Internet on different peculiarities if your situation differs from mine.

Get and install Gource

You had to go to Gource download section in order to get last stable version of Gource. In my case I was using version 0.38 for my vide so all examples below are based on this version. From the download section it is possible to download compiled Windows version (called gource-0.38-1.win32.zip) or, for Linux users, source code archive (gource-0.38.tar.gz). I tried both options but my problem on Windows were that I haven’t found a nice tool to capture the video produced on screen and generating of non-compressed video is supposed to take way more disk space that was available on my laptop so I used a Linux version where it was possible to pipe output of Gource bitmaps directly to ffmpeg for compressing.

So, where under Windows you need just to unpack archive for Linux side I had to do few more steps in console:

Download the latest Gource:

wget http://gource.googlecode.com/files/gource-0.38.tar.gz

Unpack archive:

tar xzf gource-0.38.tar.gz

Configure, make, and install Gource

cd gource-0.38

./configure

make

sudo make install

Generate your log file

Java

If you happen to have situation like me and need Java logs from SVN you can get the logs as it is described in Gource wiki:

cd your-svn-project
svn log
-r 1:HEAD --xml --verbose --quiet >your-project-log.xml

Just after doing it you can run video visualization just by running from command line:

       gource my-project-log.xml

SAP

SAP transport system logs are generated from custom program written by me which source code is available here (http://scn.sap.com/blogs/artem/2012/10/30/program-source-to-generate-sap-code-statistic-for-gource-v...). Below I will describe how use the program assuming that you have taken code from code exchange, copied it into some Z-report in your system, activated and executed it.

In short, this report will select all transport request in your system according to user defined criteria and make from them change log XML file which can be used later by Gource for generation of video.

Below is first screen when you run report:

On the first screen it is possible to maintain following parameters:

  • define path prefix of your project (e.g. center of your tree)
  • File destination where to store change logs in order to use them later for video generation
  • Several options that are related to change log generation:
    • Merge with existing – if your project, like mine, has Java and ABAP parts you can direct the program to file with java logs and let system know that you do not want to overwrite it/create new file but merge changes from ABAP between Java changes keeping same history order. The reason why same history order should be kept is that later when Gource will use a log file to generate video it will show both Java and SAP changes in same time as they really happened in real life
    • Ignore Note corrections – as it says from name – it excludes any transports with SAP Note corrections (e.g. not your project code)
    • Shorten object type description – makes a description of object types in transport a bit shorter in order to increase their readability on screen
  • In Step 1 section you have ability to limit set of the objects that shall be included/excluded for analysis from the transports selected. For my video I excluded following objects:
    • SMIM - Info Object from the MIME Repository
    • MERG - Comment: Object List Included
    • PERF - Perforce Changelist
    • RELE - Comment Entry: Released
    • CINS - Correction Instruction
    • NOTE - SAP Note

You can save your selection as variant by hitting save button in SAP menu

And move to transports selection screen by pressing execute button which will lead to following screen:

Here you can select transport requests for analysis by:

  • Request number
  • Request owner
  • Date range
  • Request type and status

By hitting expand selection button you can limit your selection further using following parameters which I am not going to describe as it is typical fields for SAP transport system

Again, you can save your selection here as variant by hitting save button in SAP menu or start log generation by pressing execute button.

After processing is finished you shall find an XML file on your hard drive containing log changes from all requests selected. Now we are ready to start with final step – video generation.

Generate video

First of all, to check that so far everything is going fine you can try just to run the Gource with XML file created so far by running Gource from command line:

gource my-project-log-with-sap-logs.xml

If it works and you see all data you expect to see it is time to recorder the video generated and present to your team :smile:

First what we will need to do is tweak some of the video output options in order to bring your personal touch to Gource visualization. You can see the list of all possible parameters by running Gource with -H switch from command line. Below I will explain some of the parameters I’ve used for my video generation:

--title <project title>

--logo <project logo>

--logo-offset 0x690                       Logo offset positioning on screen (<Y coordinate> <X coordinate>) 

--highlight-users                           Highlights names of all users

--camera-mode                            Track places with changes (track) instead of showing overview picture all the time (overview)

--key                                           Show file extension keys – in case of SAP it would be name of objects

--background <hexcode>              Hexcode of background color                                   

--auto-skip-seconds <value>         Autoskip to next log entry if nothing happens for the number of seconds (I put it to zero in order to not see same screen if nothing was happening on project

--seconds-per-day  <value>          Speed in seconds per calendar day (default 10, you have to calculate your speed rate depending of project duration. For example to pack a week duration into one second the rate is 0.1428571

--bloom-multiplier 0.5                   Adjust amount of bloom (default 1)

--bloom-intensity 0.5                    Adjust intensity of bloom (default 0.75)

--date-format <format>                 Java date format string to represent a date

--hide <element list>                   Hide elements from display

--user-image-dir <name>              Directory with user pics that would be associated to user names. Images must be called like <user name>.(jpg|png|gif)

As example, for the video show above I used following parameters in command line in Windows:

gource.exe --title "FM Insight development (1 sec video = 1 week of development)" --logo FMInsight_small.jpg --logo-offset 0x690 --highlight-users --camera-mode track --background 444444 --auto-skip-seconds 0.1 --seconds-per-day 0.1428571 --file-idle-time 0 --max-files 0  --max-file-lag 1 --max-files 10000 --bloom-multiplier 0.5 --bloom-intensity 0.5 --date-format "%b %d   %Y" --hide filenames,mouse  - 20121025\SAP_20121025.xml

Capture video


Capturing of output is really depended of the platform you are using. On Windows you can use either Farps or Camtasia or some similar window capturing tools to grab the video from screen and compress it into movie. As I mention before I did not liked quality of screen capture and do not had enough disk space available to let gource generate uncompressed sequience of bitmaps for the movie, so I moved to Linux and piped the Gource output directly to ffmpeg encoder for video encoding. Below is example of my command line on Linux to do it:

artem$> gource --title "FM Insight development (1 sec video = 1 week of development)" --logo FMInsight_small.jpg --logo-offset 0x690 --highlight-users --camera-mode track --background 444444 --auto-skip-seconds 0.1 --seconds-per-day 0.1428571 --file-idle-time 0 --max-files 0 --max-file-lag 1 --max-files 10000 --bloom-multiplier 0.5 --bloom-intensity 0.5 --date-format "%b %d   %Y" --hide filenames,mouse  -o - SAP_20121025.xml | ffmpeg -y -b 3000K -r 60 -f image2pipe -vcodec ppm -i - -vcodec libx264 -threads 0 FMInsight_dev.mp4

Some more ideas how to encode video from Gource are described as well in Gource wiki here: http://code.google.com/p/gource/wiki/Videos, I suggest to read it as well in order to understand how to do it.


Enjoy and share

That’s basically it. Now it I s time to make your video about your project – it can be anything: development, implementation, configuration  - everything that lands into hands of SAP transport management system as request can be tracked and can be used to generate video. I suggest to go over Gource parameters and play around with options – there are many things to tune up to make your it look completely different than any other videos.

And do not forget to share your video, upload it to youtube (there you can very easily add audio track to it or add some annotations), share it to your colleagues or anyone who is interested.

Please put the link in comments to this blog – I would love to see your video!

Best regards,
Artem Ruzak

artem.ruzak@symphony-solutions.eu

www.symphony-solutions.eu

2 Comments