[Progress Communities] [Progress OpenEdge ABL] Forum Post: xref-xml issue with RUN PERSISTENT ON SERVER

Status
Not open for further replies.
D

dbeavon

Guest
As many Progress OE customers probably do, we have a home-grown code analysis tool that helps us find references to ABL programs. It is used whenever a programming interface is changed and we need to find all the client references and update them for consistency. Our home-grown tools rely on "xref-xml" which Progress ABL can generate during compile. Unfortunately there are no Progress code analysis tools to make use of the outputs. (see kb knowledgebase.progress.com/.../000044671 ) I'm having trouble with the xref-xml and I'm wondering if someone can confirm that this is a bug in the way the xref is generated. Supposing I have the following line of code, the xref reference is generated (see xml immediately following the ABL RUN statement): RUN aaa/xreftest/Callee.p PERSISTENT SET v_Handle. rQokBdTNnZdDFCBSKGZdIw 1 10 36 PERSISTENT false false Notice that the Object-identifier points to the name of the program being run, and the Object-context provides additional context to say that the program is run persistently ("PERSISTENT"). For databases that support XML and selective indexes on xpath expressions, it is fairly easy to load this into a database and search for the object identifier. That will find all references to the "Object-identifier" in calling programs. Things go wrong when we make this just slightly more interesting. Below I run the same program on a server handle. DEFINE VARIABLE v_Handle AS HANDLE NO-UNDO. DEFINE VARIABLE v_ServerHandle AS HANDLE NO-UNDO. CREATE SERVER v_ServerHandle. v_ServerHandle:CONNECT ( "-URL MyUrl -sessionModel Session-free", "user", "pass", "extra") NO-ERROR. RUN aaa/xreftest/Callee.p PERSISTENT SET v_Handle ON SERVER v_ServerHandle. rQokBdTNnZdDFC9ShDjrnQ 1 10 14 REMOTE false false See that the purpose of the Object-context is now changed and it contains the word "REMOTE" but not "PERSISTENT". It no longer cares about the fact that the program was run persistently. Worse than that, however, is the fact that the "PERSISTENT" modifier is now added into the Object-identifier attribute thereby screwing up our selective indexes and related xpath queries. Is there anyone who can comment on whether this is a bug? I suspect the Object-identifier should remain the *same* regardless of whether the program is run normally, as PERSISTENT, or as PERSISTENT ON SERVER. I suspect those modifiers shouldn't be affecting the Object-identifier but should be annotated somewhere else (eg in the Object-context). Any feedback would be appreciated. I would guess that any third-party developer tools would be facing the same challenge with this malformed xref-xml. If I can get some confirmation that this behavior is probably a bug then I will open a ticket with Progress. We are running OE 11.7.3 in development/PDSOE. We are not in the business of writing ABL developer tools, and would rather Progress create both the xref-xml *and* the tools to analyze it. But until that happens we need more meaningful xref-xml output for analysis.

Continue reading...
 
Status
Not open for further replies.
Top