Skip to Content
Author's profile photo Paul Aschmann

xSync – Making HANA XS development easier

Update: March 7th 2014

– Added support for SAP HANA SPS07
– Ability to ignore local deletes, which would leave the files on the server
– Shortcut link opens the Web Editor, and another to open IDE in your browser

– Stability and speed improvements
– Corrected multiple minor bugs 


A couple of weeks ago, I started playing with HANA development after going through a couple of the opensap courses. One of my biggest surprises was that HANA Studio was windows only. As a Web/Mobile/App developer spending majority of my time on the Mac platform, having to get my Dell out was a walk down memory lane, and caused me to not spend as much time working on the projects as I would have liked. Since Rev 52 of HANA included a XS Engine Lite IDE, a useful web based IDE for your XSJS/SAPUI5 development. I was been looking forward to getting it installed on my AWS machine and giving it a test drive. Last weekend Juergen Schmerder posted a updated really easy to follow and simple guide of going through the process and within a hour, I was up and running on the newest available rev.

First off, the web IDE was great. Secondly, not having to use my old Dell was bliss. From a development perspective I am OK with the fact I need to do schema modeling/view generation input etc. through the Studio IDE, its well built for this and has functions and customizations which are not as necessarily as generic as web/java/jquery development. I spent the weekend working on a small POC/rewrite I have been working on and enjoyed the development experience. But after a while, found myself wondering about code completion, syntax highlighting, text formatting and a few more features which are generally available in your favorite IDE.

After some digging, I came up with the concept of being able to develop locally and yet still be able to execute the code online through my browser as if I was using either the Lite IDE or the Studio. I am not sure if #openSAP intend for students to hack HANA, but that’s exactly what happened … 🙂


Enter xSync … xSync is a *little* like dropbox for your HANA repository. Its a Mac app which runs in the Status Bar and watches file system changes to a designated development folder. As soon as you save, it saves your file in XS Engine to your package repository. Development is no longer is choir of saving, syncing and activating 😉 Even if you are not a developer, it has some useful features, it shows if your HANA instance is online – avoiding unnecessary costs, and also allows you to easily download all files from a HANA package or development project. This is great for creating local backup/snapshots regularly. Below is a quick video of the app in action.

If you are interested in testing the app out, please download a copy here – all feedback and constructive criticism is welcome as usual. Please keep in mind, this is still *very* beta. I have done my best to test, but from conception to app in a couple spare hours is always a challenge 🙂 = DISCLAIMER, use at own risk! 🙂

Some technical notes and features:

– Features:

     – Use your favorite IDE to edit files locally

     – Save, Create, Delete, Rename files locally and have them *sync* with your XS Engine package

     – Quick way to ensure your Instance is available (watch costs on your cloud hosted system!)

     – Download all package contents to your local HDD

     – Easily upload files/folders to your packages

– Requirements:

     – HANA Rev. 52

– Usage:

     1.) Download the app here

     2.) Enter your HANA XS Engine URL, package (I suggest creating a test package to test the app out with)

     3.) Enter the folder location of your local development objects (I suggest a blank folder to start as it will not upload existing objects already in the folder)

     3.) Enter HANA username/password

     4.) The log will show that the folder is being watched

     4.) copy/create a new file in the folder and check the log to ensure the file was synced

     5.) develop something awesome … 🙂

– Bugs/Issues:

     – Renaming/creating folders could be a little better, since XS engine does not require spaces, it can be problematic

– Future Ideas:

     – Sync existing files

     – Maintain a local “folder” structure db for reference

     – Sync from XS Engine if changes made there

     – Insert your idea here 🙂

     – Less ‘buggy’ for release 1 🙂

For all the HANA hackers out there … how do *you* think the app is integrated with HANA XS Engine? Any guesses? 🙂 I will follow up this blog in a couple of days with the technical details and how the app works.

Screen Shot 2013-06-15 at 8.43.30 AM.png

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Henrique Pinto
      Henrique Pinto

      This is awesome. But how come you don't have a Win VM running on vFusion/Parallels? 😀

      I'm curious to know how you were able to emulate regi.exe on a Mac.

      Did you decompile it's code or something? hehe

      Or did you find the repository structure within HANA server and are feeding the same structures?

      Author's profile photo Paul Aschmann
      Paul Aschmann
      Blog Post Author

      Hi Henrique, thanks for your comment.

      Re: vFusion - if I was a 'DBA' it would make a lot of sense, being more of a UI/Front End/App developer I spend  majority of my time between apps like Dreaweaver (Web), Photoshop/Illustrator (Graphics) and a host of other Utils (Like RestClient) to get the job done. but having a setup in each OS and switching for one type of work is not perfect.

      Re: Regi emulation/decompile ... I am not smart enough to get anything complex done like decompile, although ... good thinking 😉 One reason it requires Rev 52 is because the Lightweight IDE has a service (reposervice.xsjs) which accepts params and is actually extremely simple to use/call. I have started a short blog on the technical side and will publish it Monday probably.

      I am looking forward to when DB artifacts will be able to be created through the Web UI! (I recall Thomas Jung mentioning this somewhere I believe). This will really be great and open a nice opportunity to put together a better featured app. Maybe xSync v2 😉

      Cheers, P

      Author's profile photo Henrique Pinto
      Henrique Pinto

      BTW someone found a .dmg file in some rev56 installation folder within AWS (or something like that - I'll try to find that thread). Maybe it's an indication that they are working on a studio version for Mac, perhaps it'll be released with SPS6 (supposed to be released by the end of the month).

      Author's profile photo Craig Cmehil
      Craig Cmehil

      There is a DMG out there up to REV56 however it's more just for Modeling and SQL, not so much in terms of Native Development as there is no Client yet for Mac OS X.

      Author's profile photo Graham Robinson
      Graham Robinson

      Very nice Paul, a great example of so many cool concepts.

      I am getting lots of errors with my HANA instance. They all seem to be HTTP error codes returned by the HANA server, some HTTP 500, 503 & 303 errors. The log shows the offending URL's which all seem to work fine in my browser so it seems to be some sort of synchronisation issue between backend & frontend to me.


      Graham Robbo

      Author's profile photo Paul Aschmann
      Paul Aschmann
      Blog Post Author

      Hey Graham, thanks for the feedback. The errors seem slightly odd but if you check your Utilities -> Console Log file (and filter for xSync) you might find some additional details. Keep in mind that folders cannot have spaces which were constant issues for me.

      As a "workflow", I would recommend using the app to download your package contents to a temp folder (not in your "sync" folder), then close the xSync app, copy those files into your development folder and start developing locally. All saves should sync. I know its pretty ghetto 🙂 until I can work on a "true" sync this should assist.

      Thanks for being a first tester 🙂


      Author's profile photo Graham Robinson
      Graham Robinson

      Yeah I am sort of working through it a bit. It seems to have created some bad entries in the repository. For example I had a file called businessPartners.xsodata and up popped a new one called businessPartners.xsodatart which gave this error in the log.

      16/06/13 1:21:50.664 PM xSync[23423]: Error Domain=AFNetworkingErrorDomain Code=-1011 "Expected status code in (200-299), got 500" UserInfo=0x7f9e1b03d490 {NSErrorFailingURLKey=, AFNetworkingOperationFailingURLResponseErrorKey=<NSHTTPURLResponse: 0x7f9e1b49de90>, AFNetworkingOperationFailingURLRequestErrorKey=<NSMutableURLRequest>, NSLocalizedDescription=Expected status code in (200-299), got 500}

      Looking in the IDE lite UI I see the object with the same error reported. I deleted it successfully from the IDE lite app.

      I think I might try again another day with an empty package and then build up from there - but for now I am going to have a Sunday arvo chillout. 🙂

      Author's profile photo Paul Aschmann
      Paul Aschmann
      Blog Post Author

      Here is a link to the technical side of how the app integrates with the HANA repository:

      Author's profile photo Paul Aschmann
      Paul Aschmann
      Blog Post Author

      See added notes for recent update

      Author's profile photo David Greengas
      David Greengas

      I did the entire open sap course on an Arch Linux platform. It is not Windows specific.

      I am glad you created the xSync app. It looks very like a very good approach to decoupling HANA development from HANA Studio.