‎2008 May 12 8:55 AM
Can anybody tell me what are the differences between inactive and active ABAP objects?
In my opinion, an active object is compiled and system wide available, that means the system do not have to compile the program again before run or use the object. While An inactive object is not system wide available and every time you run an inactive object, firstly the abap runtime will have to generate a tempory runtime object and this inactive object can not seen by others.
Am I right? Can anybody kindly tell me other differences?
‎2008 May 12 8:58 AM
Hi,
"When it is inactive, it is like it would not exist at all:" no - it's like it only exists to you
"If we just saved that one means it is stored in application server not in database": no - the inactive version is also stored in the database. You can log off and log on and it will still be there, in its inactive status.
"Only active objects can be executed.": no - inactive objects can be executed by you
When you create or modify a program, it is inactive until you activate it.
With a change, there are two versions of the program stored in the database - the active version (as it was before you made your change), and the inactive version. If you attempt to run the program, you'll run the inactive version - the one with your changes. Everyone else on the system will run the active version.
In this way, you can make changes without affecting anyone else.
Once you activate your program, then the inactive version becomes the active version.
With a create, there is no active version, until you hit the activate button. This means ONLY you can run the program.
An additional benefit of this model, is that if you make a change, save it, and then change your mind without activating, you can recover the active version into the editor, using version management.
A downside is that sometimes you have to activate your change before you can test it, if it interacts with other, active, programs.
Regards,
Kumar
‎2008 May 12 8:58 AM
Hi,
"When it is inactive, it is like it would not exist at all:" no - it's like it only exists to you
"If we just saved that one means it is stored in application server not in database": no - the inactive version is also stored in the database. You can log off and log on and it will still be there, in its inactive status.
"Only active objects can be executed.": no - inactive objects can be executed by you
When you create or modify a program, it is inactive until you activate it.
With a change, there are two versions of the program stored in the database - the active version (as it was before you made your change), and the inactive version. If you attempt to run the program, you'll run the inactive version - the one with your changes. Everyone else on the system will run the active version.
In this way, you can make changes without affecting anyone else.
Once you activate your program, then the inactive version becomes the active version.
With a create, there is no active version, until you hit the activate button. This means ONLY you can run the program.
An additional benefit of this model, is that if you make a change, save it, and then change your mind without activating, you can recover the active version into the editor, using version management.
A downside is that sometimes you have to activate your change before you can test it, if it interacts with other, active, programs.
Regards,
Kumar
‎2008 May 13 3:34 AM
Thanks. Can you explain why an inactive program can not be debugged?
‎2008 May 13 3:38 AM
Hi Freddy,
Debugging is something which you can do while executing the program. Since only active object can be executed you can not debug a inactive program.
Hope I answered you.
Thanks,
Arun