Sie sind auf Seite 1von 4

Getting Started Newsletters Store

Products Services & Support About SCN Downloads

Industries Training & Education Partnership Developer Center
Lines of Business University Alliances Events & Webinars Innovation
Log On Join Us Hi, Guest Search the Community
Activity Communications Actions
0 Tweet 0
In the last weblog I have explained some basics about the ABAP server: Let us now combine what I have explained
about the three-layer architecture of the server and the fact that developers in general develop on a central ABAP server
in real-world projects. As in the last weblog I will provide a little example to illustrate what happens when you activate
your program.
Active and Inactive Programs
As I have told you, there are many developers developing on the same server. Each developer has his own "instance" of
the development environment on the server within his roll area.
You can compare this to many clients working with different instances of a class.
Technically the development environment comprises a set of programs such as the ABAP Editor, the ABAP Workbench
or the Class Builder plus a lot of other tools to support the development process. An ABAP developer works on the client
and has the classical SAP GUI that presents the user interface of the respective development tools. The program(s)
under development are stored on the central database.
The program a developer writes within development client 1 is only visible to this developer as long as the program is
not activated.
ABAP Trial Version for Newbies: Part 4 - Many
Developers On One Central Server - How Does It
Posted by Thomas Weiss in thomas.weiss on Apr 1, 2007 11:40:49 PM
Share 0 Like
As soon as the developer activates a program it is visible on the whole server. This means, of course, that other
programs can access it.
Developing on a Central Server - The Way to Keep Your Sources in Sync
One great advantage of this organization lies in the fact that incompatibilities will become visible very early. Let us refine
our small sketch a bit to show you how this works in detail: Let us assume that program 1 uses class 3 (developed by
development client 3). Remember: It is the active version of class 3 that is used. Inactive versions are not visible to other
users (in fact they are not visible to any other development objects).
Average User Rating
(1 rating)
My Rating:
0 Tweet 0
Meanwhile there is a new inactive version of class 3 under development.
As developer three is not very experienced he changes the interface of the method that is called by program 1. Let us
assume he renames the parameters of the method. Unaware of the consequences of this incompatible change
developer 3 activates his class. What happens? The old inactive version becomes the new active one and … there
is an syntax error as soon as program 1 (the client of class 3) is recompiled:
If the new program 1 does not properly interact with other programs that call program 1 this problem arises as soon as a
client program of program 1 is run. So, as I have already told, there is no need to maintain a dedicated test system if the
developers belonging to a project develop on the same server.
So you see: As I have already explained, there is no need to maintain a dedicated test system if the developers
belonging to a project develop on the same server. So one typical problem of local development does not occur when
you develop in ABAP: Instead of developing against proprietary source versions that you have on your PC and not
updated for weeks, you will always use the latest sources as soon as they are activated. This way, incompatibilities will
be realized in a very early state.
I hope, by now you have understood what is so good about many developers working on one central system. Once you
activate your program it is visible to everybody else on the system, and possible conflicts are detected in a very early
Share 0 Like
Davide Cavallari Apr 11, 2007 7:47 AM
Hi Thomas,
I see the advantage of the ABAP development approach, as far as the source code is developed on
the programmers' local PCs and "not updated for weeks".
I wonder whether the centralized development still results is an effective advantage when compared to
a development process where a versioning system is used - e.g. CVS or SourceSafe.
In fact any significantly complex development project takes advantage of such tools, and this paradigm
is used in NetWeaver Java development.
The benefit would be that the developer doesn't need to be connected to the applications server with a
high bandwith network connection.
What are the major drawbacks in your opinion?
Regards, Davide
Follow SCN
Site Index Contact Us SAP Help Portal
Privacy Terms of Use Legal Disclosure Copyright
Like (0)
Like (0)
Thomas Weiss Jun 11, 2007 12:03 AM (in response to Davide Cavallari)
Hello Torsten,
it seems that your objection is based on a missunderstanding of my explanation. So I hope
that enhancing my explanation will solve the problem.
The incompatible change in class three will, of course, be visible to a program A as soon as
this program A is syntax checked or activated. So there is no need to run the program in
order to realize incompatible changes like this.
Like (0)
Mohamad Syuhair Aug 2, 2007 12:46 AM (in response to Thomas Weiss)
Hi Thomas,
I think what Torsten meant is to prohibit new Class 3 (inactive version) from being
activated at all. A check is needed to ensure that the new Class 3 (inactive version)
can only be activated if all active programs, e.g. Program 1 are able to use it without
any errors.
Of course, after recompiling the existing Program 1, you will always get no error as
a check has already performed beforehand, which disallows the new Class 3
(inactive version) from being activated in the first place.
Just wonder if the above scenario is possible?
Appreciate your insight.
Like (0)
Torsten Hbsch Jun 9, 2007 5:37 AM
I don't see the advantage of ABAP in your example. if a change of a parameter in class three will arise
not before executing Programm one again I think it is a problem instead of a feature.
during activation of class three it should be checked which programms should be recompiled and than
only compilation of all objects (Program 1 and Class 3) should be allowed. In this case the syntax error
would pop up to the developer not allowing him to comile his class.
Could you please explain it again considering this scenario...?
Like (0)
Konstantin Milutin Apr 2, 2008 12:10 AM
Hello. I didn't understand how many instance of program stores in the database? I think there are 2
program - one active and one inactive, aren't it?