tags:

views:

1232

answers:

7

Our product currently spans a large number of technologies, including Java, PL/SQL, VB.Net and ABAP. We have a fairly mature source control and build system set up for all of the languages except ABAP, which is still in the stone ages. Since SAP has a build system set up within it, our engineers do all of their development in an SAP environment export transports, and check those into source control. Since we support a number of SAP versions, it becomes very difficult to track versions and migrate code across 4.6, 4.7, 5.0, etc.

My ideal process would be to check the ABAP code into source control in text files, and then load it into SAP and generate the transports as part of the build process. The SAP engineers don't think there are tools to support this model.

If you are managing ABAP code in a source control system, what does your process look like? Are there tools available (preferably command-line) for loading ABAP code into SAP? How do your engineers manage the code/test/debug cycle? Do they code in SAP and then export the code when finished, or edit in an external editor?

+1  A: 

http://code.google.com/p/saplink/

might help

Willi aus Rohr
+4  A: 

I'm interested as to what the benefit is of version control outside the ABAP stack of the SAP system.

I've never seen anyone use external source code control for ABAP, as it's built right in. I've never seen anyone code ABAP outside the SAP system either. It really doesn't fit the model.

SAP's ABAP stack is a single-development system environment. All the developers log on to the one system and develop there. The system records versions automatically, and groups changed objects into transports. A transport is just a list of changed objects. Once you export the transport, the version numbers are incremented for each object and you get the package for the other systems.

The ABAP stack also doesn't really have a "build" concept as such. Everything you do is a patch.

Dom
We have to support multiple versions of SAP (4.6C, 4.7, 6.0, etc.). Our current mode for doing this is to develop in one version, export the code, and then manually merge it into the other versions.Furthermore, the ABAP code correlates to code outside of SAP that must be branched and versioned.
John Stauffer
A: 

Also check out SAP CTS+ which is used for managing transports and version control of ABAP and JAVA based components.

https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/e0249083-c0ab-2a10-78b8-b7a7854b1070

Techboy
A: 

Do you have a functional answer to this... I have been bugged a lot on a similar aspect...

Thanks for sharing,

+2  A: 

I used SAPLINK (mentioned in previous answer) for that purpose. There is also a related project called "zake", that supposedly can automate some of the tasks but I never used it. I simply exported my code manually to so-called slinkees (they contain single objects like function groups; nuggets on the other hand contain several objects).

Reasons to use some external source control system:

  • correlation to non-abap source code (as our software consisted of .net and abap code)
  • hosting / maintaining SAP was not something we were exactly good at, so it was good to know you had your code in a safe place

one thing though: you need at least WAS 620 in order to use saplink

Stefan Egli
+1  A: 

Hy,

As Dom told you, SAP has it's own version managment. However in order to makes regular save between transport releasing, you might use tools like :

  • [http://code.google.com/p/saplink/ SAPLink] (as saied Wili aus Rohr)
  • ZAPLink

this tools could be use to extract ABAP components into XML. I really do not advise to make automatic import into SAP, for many reasons : # thoses tools have no guaranties # not all ABAP Compoponent can be handled like this # you will lose SAP guaranty if you do this on a productive SAP system

But it might be interesting to use tools like (Google code) to display in detail software change, which could be more complicated on ABAP Object.

I developed this on ZAP Link framework with ZAPLINK_EXTRACTOR program that export SAP Components into XML when they have changed. This prevent XML file to change (new file but same content) and to be detected by tools such as mercurial as a change.

Hope it helps.

Keep in mind that you should use SAP tools to change SAP Component. SAP consultant might explain it to you in details.

Taryck. [http://www.steria.com Steria (France)]

Taryck
A: 

At the very least, modifications should be done and tested in an SAP development system. Nobody uses an external editor with ABAP. (SAP Java on the other hand...) There is no reason why you can't keep backups of the SAP code, either directly, as text files, or, (preferably) with SAPLink or transport dump files. (Ask your BASIS people about the transport files). Realize that if you go the text file route, you might miss out on things like field text, etc., which are stored elsewhere in the database.

Noah