We have a mix of procedural and OO code, some of which is .net. We have a set of classes which when changed cause us problems in our procedural code if it is not also compiled at the same time as the procedural code instantiates objects from our OO side.
I need a way of flagging up compiles that need to be made when a class changes. This is somewhat similar to when an include file changes and it results in several programs needing compilation. We do this currently using the "INCLUDE" indicator in the xref.
How can I do the same thing with .cls file change such that we get a list of .p, .w and .cls files which must also be compiled.
I've looked briefly at the documentation but there doesn't seem to be an easy way of picking this up.
Roundtable TSMS does a great job of tracking and maintaining these relationships. Our smart compile feature uses this data to compile what has been affected. Our impact analysis views also enable you to easily visualize this data and navigate your application as well. Cool stuff.
While Mike's approach should give you a mechanism in your workflow, you should be able to get the information you need from http://www.oehive.org/ABL2DB . In fact, I am looking at providing some post compile validation of things like procedure signatures for .p code similar to what is provided automatically for methods.
Thanks for all of your responses. The reason for asking this is that we have legacy parts of our system which are being rendered in an embedded window in .net. The hooks for doing some things are done by passing down the window handle as a variable.
I need to know if a variable is defined which point to an object can be detected in an xref. Try putting one line in a .p (shown below) and compiling it with xref.
DEF VAR oWindow AS Some.Object.Reference no-undo
Of course you'll need Some/Object/Reference.cls in the propath. You get nothing that tells you oWindow is an object. If however you change Some/Object/Reference.cls, the existent r-code for you .p won't run at all. Hence my dilemma. I was looking for something in the rcode-info initially thinking that the dependent classes or something similar could have been worked out.
I am not currently capturing variable definitions in ABL2DB, although capturing shared variable use is certainly on the roadmap ... but that isn't going to help you. But, drop me a line at thomas at cintegrity dot com and I'll keep the requirement in mind as I explore extensions.
Note, while I'm not going to catch merely defining the variable, I *am* currently capturing the reference to the object, so that should tell you whereever the object is actually *used*.
Finding class references is possible through PDS OE 11.4 feature Find references. When you ask for class references, it will list all references including variables declared as class objects.
However this is going to be available in coming 11.4 release. Not there in 11.3.