[ PEG Home ]

PEG Utilities Page

Java Utilities

JPJVM by Joanju Software 23 Feb 2006
Rather than doing an OS-COMMAND every time you want to run a Java function from the 4GL, you can instead use JPJVM to load the VM once into memory, and then make function calls into classes loaded by the VM. Not only is this far more efficient, but you also gain the ability to use Java objects which persist between calls.

BETA Utilities

Xref To TT Utility by Tim Kuehn 27 Jan 2005
As a standalone, this program takes an XREF / STRING-XREF pair of files and returns: For the beta program I've included some other code to test the standalone SP, and related tools the SP needs to do it's thing. The file "README.txt" has information on setting the program up, checking for problems, and contact information.

ADM2 Enhancements 5 nov 2000

Tools

xmlspreadsax.p by Tom Bergman 26 Nov 2007
xmlspreadsheet.p by Tom Bergman 21 May 2006
XMLSpreadSAX.p / XMLSpreadsheet.p is program that will create an Excel XML spreadsheet from a temp-table. It works great for what I've used it for so far but like everything else, should probably be considered a work in progress (no pun intended). It supports styles, hyperlinks, column sizing and a bunch of other stuff documented in the comments at the top of the program.
XMLSpreadSAX.p requires the SAX writer, so it must be V10.1+. If you're on V9, or V10.0, use XMLSpreadsheet.p. Of course, if you have a version of ABL with the SAXwriter object, it is much faster.
This will, of course, run on any OS as it does not use Excel at all.

Procedure Manager by Tim Kuehn, TDK Consulting Services 08 Feb 2007
The procedure manager was written to enable writing and controlling

Query Manager by Tim Kuehn, TDK Consulting Services 18 Sep 2006

The query manager was created to abstract commonly-performed life-cycle management of static and dynamic queries, and browses into a standard block of 4GL / ABL code.

The query manager provides support for:

Session Variable Manager by Tim Kuehn, TDK Consulting Services 20 Apr 2005
The variable manager is a super procedure which can replace the functionality usually provided by SHARED and GLOBAL-SHARED variables, as well as adding functionality such as access permissions.

Browser Builder by Stefan Houtzager 14 Mar 2005
This is a dynamic browserwindow, fed from a minimal repository to get the UI and query. It should compile starting from 9.1D as it makes use of the CALL object. The browser uses the famous arrow-bitmaps to indicate asc and desc sorts, but contains more suprises for keen eyes. ;-) You can easily maintain the repository with the "browserbuilder" utility that I have put in this package also.

Directory Tools by Tim Kuehn 11 Jan 2005
dir-tools.p can be used to work with files and directories and: A sample program is included to demonstrate how to use the toolset.

ProgressDynamics21PCaseXML.zip by Veli-Matti Korhonen 10 Apr 2004

ProgressDynamics21PCaseXML.zip contains an XML file which can be imported to a new PCase project. It includes Dynamics 2.10A01 Database definitions, relations and sub-views similar to the views in Dynamics Repository Reference.

Please notice that this version of XML does not inclulde field r-positions. As you import this XML to PCase the r-positions will not have same values as the ones in Dynamics repository (ICFDB). IAP has a procedure available where you can fix update r-positions by connecting to Dynamics repository (ICFDB) after importing the project.

Normally developers should not make changes to the Dynamics repository, so this should not be a problem.

There is also a style sheet for the XML so it can be directly viewed as a report without PCase (only XML and stylesheet is needed).

You can also view the XML directtly from the PEG website.

becom.zip by Yuriy Setko 13 Nov 2003
BECOM - BEtter COde Maker - is a group of programs written on P4GL and available in source-codes, which suppose to make your P4GL code looking better, more clear, readable and understandable. View the readme file .

ZXdb8to9 by John Heggie 14 Sep 2001
For Progress users that are in the process of migrating their existing version 8 database to version 9, ZXdb8to9 can take the guess work out of defining storage areas, area names, area numbers, records per block and extent sizes. Creates the database structure and data definition files automatically for your new version 9 database.

Linux xterm PROTERMCAP entry by Dave Records 17 jan 2001
This is a setup for protermcap that works well. Only problem has been the Delete key, for some reason I can't seem to get it to recognize it. You could put this in your home directory, just point PROTERMCAP to this file if you can't add it to the $DLC/protermcap file. TERM should be set to xterm, and there may be an existing xterm in the protermcap file that you should rename.

Database Blocksize Optimization Spreadsheet by Bill Landin 27 apr 2000
Prior to version 8, you didn't have any choice in selecting the database record blocking. Version 8 allowed 4 choices: 1K, 2K, 4K, and 8K and version 9 allows 35 combinations of blocksize and numbers of records per block.

Since Progress uses variable size records, it was thought that trying to calculate the "best" blocking for a specific database was too difficult. The best advice was to try d&l into each then select the best or since the database overhead was about the same for each blocksize, to use the 8K blocksize. (I fell for this one and have regretted it ever since.)

After a lot of research and experimentation, I've developed a spreadsheet that will help you determine the optimum blocksize for your specific database. It's really easy to use, just plug-in the numbers from a "tabanalys" and examine the "best" choices (both for V8 and V9). It is limited in scope -- it can't tell you how big your database will be after the d&l, it doesn't predict the space required for the index blocks, and it can't tell you what the best size will be in 6 months. You will still need your own judgment and experience for selecting the final choice, but it sure beats spending days doing d&l (especially with V9).

ProBuddy by ZX Systems, Inc.
ProBuddy is a tool that displays the Progress database layout in a more robust presentation. All your databases along with it's tables, fields, indexes and data content are easily accessible. Use ProBuddy to help your developers better understand the database and data content they are developing the programs for. A helpful 'where used' utility to show all the tables and indexes using a specific field in all the databases. Instant sorting of fields by field name, data type , format, order, description, label, help description and extent. A useful scratch pad to paste in field names, tables, indexes, and custom find statements. Download a trial version today.

Adam Backman's UNIX DBA Scripts by Adam Backman
Adam has made his unix DB Mgmt scripts available. There is a README file and a README.registery which you should read and understand before moving forward on the scripts. The programs gunzip into a backman.tar file, which untars into a scripts directory. There is also an on-line script browser for the curious. If you need some format other than gnu zip, let me know.

JProgress by Brad Long
JProgress allows connectivity from Java to a Progress DB (versions 7 or above). It runs on any platform with a JVM (NT, UNIX etc.).
JProgress is a middleware software solution written 100% in Java. This means that it will run on any platform running a JVM. It allows Java code to connect to a Progress DB. Progress database versions 7 and above are supported. The Java code can be an applet, application, or servlet. JProgress provides an n-tier software architecture which is excellent for running software over a LAN, WAN, and Internet. JProgress can run in standard mode or blast mode. Blast mode is a new operating mode that provides fast connection management for Progress DBs. Blast mode options are a superset of standard mode options (standard mode exists for ease of use and backward compatibiem). The unregistered version of JProgress is free. The current version is an alpha version of a new release.

PPlist by Koen.Dejonghe@origin-it.com
Here's a program that might make your programming life a little easier. Pplist is a tool that scans a Progress source code for all subprograms/includes and does this recursively until the bottom line has been reached. It searches for programs in all directories declared in $PROPATH. For more information see the HTML help file.

Tom Bascom's Profiliing Utility by Tom Bascom
Tom Bascom's Profiling Utilities

ScanDB by Peter de Jong
Scandb will scan any Progress V6, V7 and V8 database, calculate the dbkey and compare this dbkey with the one found in each database block. Can be run while database is online.

cmtzap.c
A utility written in C to remove comments from PROGRESS source code. Useful for Y2K investigations.

Inc by Brad Long
inc scans Progress files for included files and programs. The current version is 4.0 which was released May 27, 1999. The prior version was inc.c V3.0.

PROGRESS Application Profiler Zip package
This is the Application Profiler everyone's been talking about. A readme file contains a bit of additional information you may find useful. The utility is unsupported, so you'll have to address any questions you have to the progress-list peg@peg.com.

PROGRESS ATM Benchmark Zip package Updated 03 may 2000
This is a zip file contains the unsupported PSC ATM Benchmark. The zip archive appears to have been created under DOS, so you'll want to unzip -aL atm.zip if you're running unzip on UNIX. the ATM Benchmark Source in tar file

EMACS PROGRESS MODE package by Dave Eddy
For EMACS users, progress-mode.el. Also available in gzip and bandwidth wasting full text format
PROGRESS Code

_md5.i by Andrew Brooman - Courtesy of Ultramain Systems, Inc. 29 Aug 2006
Sample implementaion procedure

Include.zip by Alan Saunders 20 Mar 2003
See the read me file.

Temp Table Expositor V1.1 Updated 03 Oct 2003 by Jeff Pilant
The temp-table expositor produces various outputs for temp-tables on demand. The latest release adds support for adds Sylk and DF output formats. Read the doc

ComHandles.zip by Alan Saunders
Monitor Com Handle assignments I have not reviewed this package -- pegmgr

WhatIs.zip by Cherian George and Alex Cupiers
The code attaches itself to the Progress Code editor and allows the programmer to type in a table name and press F10 to lookup the list of field names for the table. Read the DOC (Word)

XRefAnal.w by Matt Verrinder (mtv@enterprise.net)
Matt Verrinder has made available his Xref Analysis routines. He writes, It's been written and tested using Progress 8.3 in Win32, but it should work on other platforms."

HTML Dictionary Reports Updated 08 dec 2005 revised by Patrick Tingen and Gerben Wieringa based on prior work done by Jeff Pilant and Tom Bascom

HtmlDict is a metaschema web page creator that is compatible with V8, V9 and V10 databases and with Progress development versions V8.2+.

These programs allow you to map some or all connected databases into a series of web pages. The top page shows all processed databases, the next level shows all tables within a database, and the last level shows all fields within a table. All table pages are linked to the Next and Previous page, and back to the level above. Additionally, a field cross index, a sequence list and an area overview is generated and linked to the database and table pages.

This set of pages is an easy way to see all the fields, tables, and databases with all relevant details for coding, without switching to the data dictionary.

HtmlDict is based on the updated version from 3 oct 2002 from Jeff Pilant, which, in turn, was based on the original version from Tom Bascom, dated 11 jan 1996. Many thanks go to these guys for the basic idea.

Code Changer by David K. James (djames@ibm.net)
Version update as of Sep 14, 2001
Some years ago, before I knew beauty.p existed, I wrote a program called code-chg.w. (As suggested by the name, it wasn't written as a code beautifier, but rather a way to handle PSC's language changes in early V7, particularly as regards the BROWSE widget.)
I'm attaching a copy for your entertainment/use. I still use the program when I come across a badly-blocked module. It was written in the NetWare GUI environment, but it also runs under unix.

Equation Solver by Jacob George
Sometime ago I developed this program which returns the result of a mathmatical equation entered by a user. Anyone who wishes to use this is welcome.

Hex <==> Decimal Conversion by Greg Higgins svn
Someone was looking for a hex converter and that got me started. Here are my routines, complete with a necessary hex.i include file.
Unlike most utilities written in/for PROGRESS, this hex decimal converter doesn't stop with small positive integers. (Of course, I haven't really proved that 9876543210987654321098 equals 0x21768922A39830993CA.
If you're packaging up functions for other folks to use, you'll find the include file instructive.

HP Barcode Printing Routine
This procedure creates HP (PCL) ESC-sequences for a bar-code-stringcode in Code39 format. The printer cursor position is restored after printing.

Math Library Submitted by Michael Carroll
Former V6 Math Library re-written as V8+ Functions and packaged as a UIB compatible Method Library

Universal Smart Panel by Andrey Kobernik
Read USP Help
This zip archive appears to have been created under DOS, so you'll want to unzip -aL uni.zip if you're running unzip on UNIX.

Windows Utilities

APO Timer by A+ Open Systems
An APO Timer is used to send timer interrupts to your PROGRESS applications. APO Timers only run under MS-Windows based systems, and can't be used in UNIX, VMS, CTOS, or AS400 environments. You must be running at least V7 for an APO Timer to be of use to you.
The APO Timer is a replacement for the previously used PEGTimer. Unlike the PEGTimer, the APO Timer does not force a window to be visible while the timer runs. It may also prove to be better supported.
For information about using the APO Timer for commerical purposes contact Bill Prew.

mldttm.dll  PC Date/Time Routines by Matrix Link, Ltd.
This DLL can be use to set the date and time on a PC, and can be used to syncronize a PC to a remote PROGRESS host. There is also an example routine mldttm.p.

ED 4 Windows by Soft As It Gets P/L
This is a 45 day trial version of ED for Windows, a programmers editor favored by a number of PROGRESS programmers. The full version is comercially available.

Commercial Utilities

HADEs By Hand Made Software zane@HandeMadeSoftware.com
HADEs is the Hand Made Software Application Development Environment
Add Color Syntax highlighting, bookmarks and more to the UIB. HADEs turns the UIB into a fully featured and easy to use programmer's editor .

Tools4Progress by IAP GmbH info@tools4progress.com
The IAP GmbH offers trial versions of the Tools4Progress products for download:
PEG members receive a 20% discount.