OpenEdge Advanced Business Language
Business application development language From Wikipedia, the free encyclopedia
Business application development language From Wikipedia, the free encyclopedia
OpenEdge Advanced Business Language, or OpenEdge ABL for short, is a business application development language created and maintained by Progress Software Corporation. Typically classified as a fourth-generation programming language, it utilizes an English-like syntax to simplify software development.[1] The language was called PROGRESS or Progress 4GL up until version 9, but in 2006, PSC changed the name to OpenEdge Advanced Business Language (OpenEdge ABL), in order to overcome a presumed industry perception that 4GLs were less capable than other languages.[2]
Developer(s) | Progress Software Corporation |
---|---|
Stable release | OpenEdge 12.8
/ January 21, 2024 |
Operating system | Cross-platform (see below) |
Type | RDBMS |
License | Proprietary |
Website | https://www.progress.com/openedge |
This article contains promotional content. (January 2023) |
OpenEdge ABL helps developers to develop applications optionally using its own integrated relational database and programming tools. These applications are portable across computing systems and allow access to various popular data sources without having to learn the underlying data access methods. This means that the end-user of these products can be unaware of the underlying architecture.
By combining a fourth-generation language and relational database, OpenEdge ABL allows the use of the Rapid Application Development (RAD) model for developing software.
The original Progress 4GL was designed in 1981 as an architecture-independent language and integrated database system that could be used by non-experts to develop business applications by people who were not computer scientists but were knowledgeable in their business domain. At that time, business applications were often written in COBOL (for machines like corporate IBM mainframes) and sometimes in C (for departmental minicomputers running the UNIX operating system). When the IBM PC became popular, it developed a need for business software that could be used on those and other inexpensive computers. The Progress system was created to be used on both IBM PC machines running DOS and on a variety of computers that could run UNIX and minicomputer operating systems such as OpenVMS.
Progress ABL is a strongly typed, late-bound, English-like programming language. Although initially designed as a procedural language, starting with version 10.1 it was enhanced with object-oriented grammar elements, which can be mixed with the original procedural style. A block of code may have a transaction scoped to it, in which case database changes will be committed when it completes. An error raised within such a block will undo these changes. These defaults may be overridden by the programmer.
Simple programs run without a Graphical User Interface, but there is syntax to create one programmatically, or programmers can use the provided tools to build one.
The following ABL code creates a window with the text "Hello, World!" and a button labelled "OK".
DEFINE VARIABLE w AS HANDLE NO-UNDO.
CREATE WINDOW w ASSIGN
WIDTH = 50
HEIGHT = 5
MESSAGE-AREA = FALSE
STATUS-AREA = FALSE.
CURRENT-WINDOW = w.
DEFINE BUTTON btnOK LABEL "OK" SIZE 12 BY 1.2.
FORM
"Hello World!" VIEW-AS TEXT AT COL 20 ROW 2
btnOK AT COL 20 ROW 4
WITH FRAME f SIZE 50 BY 5 NO-BOX THREE-D.
VIEW FRAME f.
ENABLE btnOK WITH FRAME f.
WAIT-FOR "CHOOSE" OF btnOK.
DELETE OBJECT w.
A message-box can be used to achieve the same effect:
MESSAGE "Hello World!"
VIEW-AS ALERT-BOX INFO BUTTONS OK.
The INFO
parameter controls the message icons, and can be replaced with ERROR
or WARNING
for different looks.
The most basic "Hello, World" program is:
DISPLAY "Hello ".
SELECT
equivalentThe SQL statement:
SELECT * FROM customer;
(along with your chosen language connection and display procedures) can be expressed in Progress / ABL as:
FOR EACH customer NO-LOCK:
DISPLAY customer.
END.
UPDATE
equivalentThe SQL statement:
UPDATE customer
SET salesman = 'Fred'
WHERE custno = 14;
(again, along with your chosen language connection and display procedures) can be expressed in Progress / ABL as:
FOR EACH customer WHERE customer.custno = 14 EXCLUSIVE-LOCK:
ASSIGN customer.salesman = 'Fred'.
END.
.. (Some assumptions have been made about indexing, locking and transaction scoping in order to keep this example simple.)
Data access in the ABL is record based as opposed to result-set based processing in traditional SQL-based languages. In SQL operations work on a set of records, in the ABL, the operation is applied to a record at a time - much like using a cursor in SQL. Record-based processing provides a clean and reliable locking mechanism which allows the developer to EXECUTIVE-LOCK, SHARE-LOCK or NO-LOCK a record when accessed by the application.
The language is used in a wide variety of application areas, some examples:
OpenEdge can be used for:[3]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.