6

Looking at some of the delivered SAPUI5 code on HANA I noticed that WebStorm and even RubyMine was used by some SAP developers. I have also heard that various other developers on customer sites use WebStorm for code checked into the ABAP repository.

Both the HANA and ABAP repositories technically look to be proprietary. The default method for syncing SAPUI5 code with HANA and ABAP repos seems to be using Eclipse or the Eclipsed based HANA Studio, via SAP delivered plugins installed.

I searched and couldn't find any plugins or help on how you could check in and out of HANA or ABAP repo easily not using Eclipse or Orion.

For HANA you can put Github in the middle using something like the SAP HANA Deployment Shell and on the ABAP stack you can /UI5/UI5_REPOSITORY_LOAD to manually upload, i have heard alternatives for both where developers have reverse engineered the services eclipse use by listening on the HTTP traffic or de-compiling the plugins.

My question how are others using Webstorm to develop SAPUI5 applications within a team and how do you sync your code with the SAP repository?

Jasper_07
  • 2,453
  • 2
  • 18
  • 23
  • 2
    Best choice for developing UI5 in a team is to NOT use the ABAP Stack as a repository ;) Anyways +1: Would be interested in how to connect with WebStorm, too! – cschuff Jul 27 '14 at 20:11
  • still deploy to ABAP stack or use other webserver? – Jasper_07 Jul 28 '14 at 10:25
  • 1
    Well, it can have some advantages as a webserver (e.g. sharing the same ui5 location accross applications, improves caching). I would use a regular code repository like git or svn and also some kind of build system like ant, maven or grunt.js e.g. to get your code minified, execute tests whatever you need to do. The build artifacts is the part that I would give a unique identifier and upload to ABAP via Team Provider. That way you have a fine-grained and state-of-the-art SCM and you still don't have the hazzle with UI5/UI5_REPOSITORY_LOAD. – cschuff Jul 28 '14 at 13:26
  • thanks, very similar to how I see teams doing UI5 dev, use existing corp svn/git, build code using grunt – Jasper_07 Jul 28 '14 at 21:43
  • missing part is how to automate deployment? not sure about Team Provider still manual step and then Eclipse becomes a dependency – Jasper_07 Jul 28 '14 at 21:58
  • true and sad... But if an Eclipse Plugin can do it there must be another way to do it :/ – cschuff Jul 29 '14 at 15:19

1 Answers1

2

I use Webstorm for my UI5 development. We store the code in a GIT repository hosted through an internal Gitlab server (https://about.gitlab.com/) running on Ubuntu! You could just as easily use cloud solutions such as Gitlab or Bitbucket.

There are two ways to circumvent Eclipse and remove the need for the ABAP team repository:

(1) Use the abap program /UI5/UI5_REPOSITORY_LOAD in t-code SE38 on your Gateway ABAP stack. Just point it to your git directory and execute!

(2) Use the program /UI5/UI5_REPOSITORY_LOAD_HTTP to do the same thing from a webserver. You could imagine a scenario where you have a HTTP service that triggers the pull on SAP but we always use the first method!

Edit @ 03-SEP-14

To clarify my thoughts on (2) the ideal scenario would be to implement a small post commit handler so that on a repository change it would:

  • Pull the changes from the repository
  • build the UI (i.e. perform minification/uglify on the JS & CSS) to a separate build folder (create preload files)
  • perform any unit tests on the code (if they exist)
  • if the tests pass, upload to Gateway by either:
    • zip the build folder and post it to a custom Gateway service (or)
    • call a custom gateway service to then trigger a pull of the build folder via HTTP

(Since master is always deployable :-)!)

You end up with a continuous integration platform that ensures the integrity of your code and ensures that you also deploy only the production code (always a little uncertain of deploying non-minified source code with comments etc. to a productive internet facing server..).

This method is agnostic of the IDE you use and if you do it right, also of the source code repository setup.

Hope this helps & happy developing!

Oli

orogers
  • 577
  • 3
  • 14
  • @qmacro recently suggested a periodic push from the ABAP repo which makes a lot of sense, so long as you can avoid wiping all the git.ignore content, still wish there wasnt the Eclipse Webcontent folder formatting though, interested to hear if this can be removed – Jasper_07 Sep 02 '14 at 06:13
  • 1
    @Jasper_07 I have updated the answer with a more thorough flow of events. The Webcontent folder is not a pre-requisite for the upload - my current app doesn't have one and works just fine! – orogers Sep 03 '14 at 19:13
  • cool thanks, I remember we used to be able to use a WebDAV client to manage BSP Mimes, I wonder if it still works, you could set up a web hook in say gitlab to trigger a Webdav deploy – Jasper_07 Sep 04 '14 at 12:02