Code, discussions, and whitepapers related to the use of object-oriented techniques in coding ABL applications.


abljsonabljsonJSON Parser for Progress ABL is a "wrapper" for the cJSON parser - ultra-lightweight, portable, single-file, simple-as-can-be ANSI-C compliant JSON parser.

The reader object can be used to load and parse a JSON string from either a file on the file system or from a character, longchar or memptr variable.

Introduction to the parameter object

I'm reading Martin Fowler's refactoring and will work out some of his methods (which also apply to building new software) in this blog. Read this to get some background info:


Below a simple daterangeparameter object, and therebelow a procedure using the daterange object.

Using Object Oriented Programming For Custom Programming In A SaaS Application

In the SaaS world, often customers will want their own customizations into the source code specific to how they want to do business with your software.

Here is a point where object oriented programming stands out. By crafting your programming in such a way that basic functionality is enhanced - you can use different classes specific to particular customers for enhanced implementation.

Since we are going to potentially be using one of multiple classes, we need to have an interface describing the methods available in the class.

OOP Mail Classes in Progress ABL/4GL Available

A new library of Amduus Classes I am putting together includes some code for sending email in Progress 10.1a or better programs.

Example call in HTML with embedded images and an attachment.

define variable M as com.amduus.mail.MailBySendmail no-undo.
define variable HTML as character no-undo.

M = new com.amduus.mail.MailBySendmail().

M:ToEmail = "sauge@localhost".
M:FromEmail = "root@localhost".
M:BCCEmail = "root@localhost".
M:Subject = "Test 1".

HTML = "<html><body>"
+ 'This is a <b>test</b> <img src="cid:y1"> email'

Book on object oriented programming available

I have a book on object oriented programming in the ABL language available at http://www.lulu.com/content/paperback_book/discussions_of_object_oriente...

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.

OO classes in subversion

I've just uploaded the OO class stuff into subversion, so all the changes and enhancements that are coming can be integrated ;)

The subversion link is svn://oehive.org/oosockets/trunk

Let's see all those updates ...

OO Sockets in OpenEdge

A set of classes and programs to allow you to use client and server sockets in the Openedge ABL

OO Socket Sample Code

Using sockets with the 4gl and classes is an "interesting" exercise. This book contains examples of how to use classes and sockets for a client and server system. There are examples of how to use the client to connect to a web page and download the source. There is also a client / server system that uses XML to pass messages between the server and clients.

General Principles

Syndicate content