News

GXPublic Applets

CodeReviewr, Neptuno.net, KVCVSP, version control, GXLGenerator, KBQuery: small applications that use GXpublic for GeneXus 9; listed by Marcos Crispino in this post.

GXPublic Applets

Although it's true that GeneXus X makes it useless, for those of us who still use GeneXus 9.0, GXpublic is still a valuable tool (with GXpublic you can't open GeneXus X KBs. To open them you can create GeneXus Extensions or use the MSBuild tasks).
Throughout the years, needs have arisen that are difficult or impossible to meet using only GeneXus, so we've developed small applications (the applets mentioned in the title) that use GXpublic and are useful for development tasks.
Some of these applications are public and can be downloaded from GXOpen, and some others are internal developments that have never been published. A few of them could also be needed in GeneXus X, while others either are integrated, do not need to be integrated, or have been replaced by another alternative.
Below is a list of the ones I use more often:

KBQuery

KBQuery is an application that lets you run SQL queries on a GeneXus KB.

I have already written about this tool here, so I won't say much more about it except that I find it very useful.

GXLGenerator


In the development cycle that we use at Concepto, all the changes in programming that we make are associated with a request and, in turn, each request is associated with a GXL with the modified objects.
The name of the application is very self-explanatory; what it does is generate a text in GXL format from a list of object names and types. In addition, it makes sure that the object exists in the KB so that no non-existent objects are left.




KVCVSP – Version Control (unpretentious)

This application is part of the KBTools. It has a graphic interface, but it's not useful for big KBs because it takes too long.

What this application does is distribute, during the night hours (using a scheduled batch process), all the objects modified since the last distribution, leaving the XML in a certain directory.

All the generated files are named using the same structure: type_name_date.xml, for example, PRC_Test_200904201534.xml.

In this way, you can have the entire history of changes for all objects. Using the distributes comparer included in GeneXus 9.0 you can easily compare the current version of an object with a previous version.

Obviously, it isn't necessary in GeneXus X because it .

Neptuno.net

I don't know the origin of this application's name because the original version is not mine. Neptuno was developed with GeneXus/Visual Basic and worked with GeneXus 8.0. Neptuno.net is a variation of the original program and it's written entirely in C#.

What this program does is display a "call tree" from a given object, highlighting in red those objects that perform commit or rollback.

The objective is to find transactional integrity problems using an object, something which is very tedious to do manually.

The things it takes into account are:

• That the program has commit or rollback in the code
• That it has the commit on exit property and makes some change to the database (processes the corresponding sp0)
• If it executes in a new UTL it assumes that it's correct.

It has many features that could be improved, such as the user interface, its performance, or the lack of a button that runs through the tree and stops in the first node with problems. However, considering that it's a first version, it does its job and is very useful.



CodeReviewr

This one is the latest addition to the list and I'm still trying to figure out whether it's useful or not...
Its purpose is to do a code review of the latest changes (objects changed yesterday) made by the entire development team.
The program searches for the objects in the KB using the date in which they were modified, and uses the distributes generated by the version control (KBCVSP) to compare the current version of the object with the nearest previous version, using the distributes comparer included in GeneXus 9.0.

The code revision is not something we do systematically, but in the tests I've run it has detected some things...




*Poste by Marcos Crispino in his Blog de Marcos Crispino.