I'm wondering whether this is a bug, so I'm going to post it here for comment first.
I just found out that you can do the following:
- Working on a project under source control (WizSource)
- Application object not checked out
- Open some other object, and make a change to the Global Variables through that object
- Save: you get prompted twice that "application object is not checked out, OK to save?" or words to that effect, but the change is indeed saved.
- If I do a Show Differences on the application object, the change to the global variables is shown.
- But the application object is still not checked out.
So obviously at that point, if I do check out the application object, the change will be lost, since a checkout does a Get Latest Version. And also at that point (after the check out), my other object that requires the change to the globals will not compile.
And finally, if I check in my change to the other object that requires the change to the globals, that won't work for other users, since they don't have my change, since the application object was not checked out and checked in with the change.
I have noticed before that any change to the regular code of a global function object (with no change to the global variables), when the application object isn't checked out, gives those same verification questions, twice, as mentioned above. So I have learned to ignore those questions, since it's obvious that changes to the code of global functions shouldn't be changing the application object (and thus shouldn't be prompting with those questions?).
So is my conclusion that I should only change global variables when the application object is checked out?
And does this appear to be a bug, that you can override the fact that the application object isn't checked out, when changing global variables from another object?
FWIW: technically, PB apps should never have more than one GV and, that should never ever change. That is, if the PB apps are written properly.
The problem around this aspect today is that no one (including Sybase & SAP) taught the BOOA Course (Building Object Oriented Applications) any more. This course developed by the University of Texas really showed developers how to code OO properly with PB.
If you look at my framework, you'll see how to properly use GV's without using GV's. ;-)
Regards ... Chris