ABL


Using .net user control with 4GL (adm2) container

The sample shows how a .net user control can be used with an ADM2 container. There is no specific support for ADM2 otherwise (links, etc) but it should be quite possible to modify the window super-proc to support automated display of date values in a date picker, f.ex, along the lines it's done for the JukeBox framework.

Components:

JBoxWrapWindowInForm.p:
Super proc for container that keeps track of control(s) in window, (re-)creates the window menu as .net menu and manages resize of control(s)

JBoxWrapperForm.cls:


Returning a generic ADO.Net dataset from ABL

I'm trying to call a .Net object method that returns an untyped-generic System.Data.Dataset result but I cannot figure out the syntax. Once I do, I'm not sure how to access the records.
My code looks like this:

{bo\DynamicQuery\DynamicQuery_ds.i}
DEF var hProc as handle.
DEF INPUT-OUTPUT Parameter dataset-handle hDS.

Run bo\DynamicQuery\DynamicQuery.r PERSISTENT SET hProc No-Error.
IF VALID-HANDLE(hProc) THEN DO:
RUN ExecuteByID IN hProc (input "UFM-Cfg-Insite", {&dataset-handle hDS}).
END.
ELSE DO:
Message "InSite Configurator: Unable to create Dynamic Query BO".


ABL-Adapter

Adapter to send and receive XML messages to and from an ESB. In this first version Sonic. Also usable to generate XSD's that can be used during a design phase.

Working on getting the source cleaned to put it here.


New position

Accepted a position in March 2011 with PNY Technologies in Parsippany NJ, as Sr. Programmer/Analyst. We are installing the Epicor 9 MRP system, the business logic of which is written in Progress ABL.

I'm doing various enhancements to the Business Objects to customize the system for PNY's needs. We will eventually install e9 in our facilities in France and Taiwan.

The GUI is written in .Net and all ABL is run on appservers. We are actually using a SQL-Server database and Progress DataServer for MSSQL.


Switching away from OpenEdge

Abe Voelker drafted a beautiful write-up about how to switch away from OpenEdge.
Cure for the Plague: A Theoretical Progress OpenEdge ABL Migration Plan

He suggests to use JRuby (or maybe Groovy, or Java), because they are OS and data-store independent, modern (i.e. OO), allow easy CRUD data-access, and support Web application development.

I admire his energy, the extended effort to research, and the kindness to share his insights with the world.

I am a bit surprised, though, by his dislike of the ABL. I L-O-V-E it!


Security of the ABL language

Upon reading the blogs at computerworld.com (or infoworld.com - I can't remember) I came across a PDF report on safe coding practices (which can be found here http://www.safecode.org/publications/SAFECode_Dev_Practices1008.pdf ).

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.


Progress (4GL / ABL) Procedure Editor Extensions

Description

Some Progress Editor extensions, to add convenience and robustness to the developer.
Supported by all versions \ OS \ Terminal environments.
Open Source.
Author: Yuval Papish
Homepage: http://www.yuvcom.com/ProgressEditorExtensions


ABL2UML - Modeling Existing ABL Systems with UML

Overview
Given the need to enhance or transform a large existing ABL application, one is often hampered in the task by limited or out of date documentation. This project seeks to create a tool set that will read existing ABL code and the corresponding database to build a UML model of the application. This model can then be used for analysis and potentially can serve as the basis for future changes.

This project will consist of three stages:
1. Defining a UML "Profile" for ABL so that there are appropriate UML stereotypes to express the structural realities and relationships of ABL code and the corresponding dictionary.
2. Creating a tool for loading Progress dictionary information into a UML modeling tool using these stereotypes.
3. Creating a tool which will read and analyze ABL code and then load this information into a UML modeling tool using the stereotypes of the Profile.


Stage 1: UML Profile for ABL

This stage is directed at defining a UML Profile for ABL Code and Progress dictionary information. The goal is to arrive at an open standard since there will be far greater potential synergy if all people working on UML modeling are using a common vocabulary. This stage will occur in three phases:


Syndicate content