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?
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.
David.
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.
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. :)
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.