xref-xml to database

Posted by Tim Kuehn on 02-Mar-2018 12:14

The "compile" statement can generate XML, and I have an use-case for turning this data into a searchable database.

Has anyone done this already? 

All Replies

Posted by David Abdala on 02-Mar-2018 12:38

I did that (among other things) for the ABLaUML project (on OEHive).

The ABL2UML project uses as input the data generated by a tool I don't remember right now. In ABLaUML I changed that input for the output of compile -xref.

I don't have it at hand right now, but it shouldn't be hard to extract that logic for other purposes (I presume).

Take at look at it and let me know if that is what you are looking for.


Posted by Thomas Mercer-Hursh on 02-Mar-2018 12:53
Posted by dbeavon on 02-Mar-2018 13:35

You can also just put it straight into a database like SQL Server that has advanced XML capabilities.  Then you can use xpath queries to find your results.  SQL allows you to create "selective" xml indexes to quickly find references to schema, procedures, classes, or whatever.  This is very fast.  Here is a link: docs.microsoft.com/.../selective-xml-indexes-sxi

I have some fairly simple .Net-based tools that use this approach.  (or at least the concept is simple)

This is yet another opportunity for improvement in the Progress tooling.  It is amazing how many such features are missing in PDSOE.  (I was looking for "compiler listings" in PDSOE the other day, and that is something that we apparently still don't have either.  I think getting "compiler listings" for PDSOE also involves finding a third party solution .. eg purchasing OEDT)

I am a bit spoiled by the .Net ecosystem where developers do not have to invent their own tools to solve a problem that is common to every other developer in the world.  When we asked tech support what the purpose of the xml-xref's was, they basically said it was so that they could shirk and let third parties build independent development tools .  FYI, Here is the KB that explains why these xml xrefs exists:  knowledgebase.progress.com/.../000044671

IMHO you should be asking Progress to fill this need.  The OpenEdge ABL language isn't such an easy platform for developing applications if you consider that you have to first build all your own tools for common development activities.

Posted by Jeff Ledbetter on 02-Mar-2018 13:42

FWIW, all Roundtable TSMS GUIs have searchable and navigation-friendly views of xref data.  We also have menu options for viewing compile and debug listings. :)

Posted by Patrick Tingen on 02-Mar-2018 14:31

I just thought you'd never ask ....

Check github.com/.../xref

I query it with my DataDigger, which is actually more than enough as reporting. Filling can be done in one sweep, or gradually, by compiling a program and replacing the existing references for it.

At the basis is a 6-table database (with a create script in the db folder) but of these 6 tables, all of your queries can be done in 1 table.

This thread is closed