Code Quality & Improvement

Tools for assessing the quality of existing code and/or for modifying it to comply to standards or other changes in structure or technique.

Database Activity Monitor

A ChUI Database Activity Monitor that asks you to select a database connection. Database activity for that connection is then displayed in a browses - there is a Table view and an Index view. Reads / Creates / Updates by Table or Index. The activity is read from _UserTableStat and _UserIndexStat VSTs. There is a one minute auto-refresh, or it can be refreshed manually by pressing the space bar. There is a hotkey to display the stack trace for the connection, but statement caching must be enabled for this to work. There is an option to reset all stats to Zero.

Justus OpenEdge Tools

Justus is a toolset for Progress 4GL that helps developers to increase quality of your projects. Justus includes a simplified 4GL parser and a test coverage tool to identify gaps on Test phase.
Future releases also include a search tool, white-box tests and dependency checker.

** Looking for Volunteers **

Application performance profile viewer

This profiler identifies performancebottlenecks in your application by analysing the logfile you create with the log-manager. ProfilerProfiler

Memoryleak inspector

Identifies possible memory leaks and their source by extracting those lines from logmanager output that point at created objects that are not deleted later on or allocated space that is not (fully) deallocated.
This analyser goes a bit further than and can handle OE 10.2A extra's

Include Unit Code at the bottom of your class files

One of the important things in software development is to do unit testing - that is a set of tests the programmer can do on a piece of code to be assured it is most likely working the way one wants it to.

Surprisingly it is rare to find unit test code as part of a source code file. If it is created at all (horror), it is usually tucked away on some developers disk someplace or simply thrown away!

What I have found helpful for myself as well as others working the same code, is to place a comment at the end of the program with the unit test code.

A simple tool to help generate webspeed code.

There are times when you create a web page with many html inputs. Creating the get-value() and variables for the logic of the program can be tedious and time consuming. This routine can help you generate the code automatically.

Simply feed it the HTML page (javascript and speedscript doesn't mean anything to it) and the output file you want the code to be contained in.

See attached file as code is maligned by the wiki.

Security of the ABL language

Upon reading the blogs at (or - I can't remember) I came across a PDF report on safe coding practices (which can be found here ).

While the PDF has some ideas on management oriented safe practices, it does delve a little into safe practices regarding technology. What it doesn't is how it applies to ABL coding.


John has started some initial work on a Java/Eclipse variant of Prolint. This variant of Prolint has the advantage of easy access to ProRefactor's output - especially its symbol tables and scoping information.

Questions about getting the original Prolint into Eclipse, and other "project direction" type questions, are completely unanswered. It's all very open for you to dive in, write some code, and help determine how best to make Prolint an integral part of working with 4GL/ABL in Eclipse and OpenEdge Architect.


Prolint is a tool for automated source code review of Progress 4GL code. It reads one or more sourcefiles and examines it for bad programming practice

Prolint is a tool for automated source code review of Progress 4GL code. It reads one or more sourcefiles and examines it for bad programming practice

When you are interested Prolint, you are encouraged to subscribe to this group where you find the on-line tools to collaborate and discuss Prolint. There is a discussion forum, you can submit issues (for bugs and enhancement requests), you can modify the on-line documentation. So subscribe, and then don't forget to go to your subscription details to enable the e-mail notification!

Profiler Control tool

The Profiler Control tool can be used to perform profiler analysis of a Progress based application. The Profiler Control tool is designed to simplify the profiling and analysis of the performance data that the Progress run-time executable generates. This tool is a complete rewrite of the performance profiling tool that ships with some version of Progress. This tool includes a GUI for simplifying the launching and stopping of procedures. It has the ability to detect whether Progress Dynamics is running and allow the launching of dynamic containers as well as static smart objects and other procedures. It includes all of the same information, but removes much of the complexity of the previous tool by removing the requirement for a database and the timing consuming loading of profile data. In addition to previous execution statics, more information has been added. This tool also includes added functionality that gives the user the ability to perform side-by-side compares and exporting of data to external programs. Refer to the included Profiler_Readme.doc for a complete description.

Syndicate content