Content deleted Content added
No edit summary Tag: Reverted |
No edit summary |
||
(20 intermediate revisions by 19 users not shown) | |||
Line 1:
{{Short description|Business application development language}}
{{Promotional|date=January 2023}}
{{Infobox
| name = OpenEdge Advanced Business Language (ABL)
| logo = File:OpenEdge_logo.png▼
| screenshot =
| caption =
| developer = [[Progress Software Corporation]]
| latest_release_version = OpenEdge 12.
| latest_release_date = {{start date and age|
| operating_system = [[Cross-platform]] (see below)
| genre = [[Relational database management system|RDBMS]]
| license = Proprietary
| website = {{URL|https://www.progress.com/openedge}}
▲| logo = File:OpenEdge_logo.png
}}
'''OpenEdge Advanced Business Language''', or '''OpenEdge ABL''' for short, is a business application development language created and maintained by [[Progress Software|Progress Software Corporation]]
OpenEdge ABL helps developers to develop applications optionally using its own integrated [[relational database]] and [[programming tool]]s. 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
* Microsoft Windows GUI (Graphical User Interface)▼
* WWW Programming (UNIX and Windows)▼
* CHUI (CHaracter User Interface) (UNIX and Windows)▼
* JSON and XML appserver programming (UNIX and Windows)▼
* as well background process programming (UNIX and Windows).▼
==History==
The original Progress 4GL was designed
==Syntax and semantics==
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 programming|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
==Examples==
===Hello
▲{{main|Hello world program}}
The following ABL code creates a window with the text "Hello, World!" and a button labelled "OK".
<syntaxhighlight lang="progress">
Line 50 ⟶ 42:
HEIGHT = 5
MESSAGE-AREA = FALSE
STATUS-AREA = FALSE.
CURRENT-WINDOW = w.
Line 71 ⟶ 63:
VIEW-AS ALERT-BOX INFO BUTTONS OK.
</syntaxhighlight>
The
<syntaxhighlight lang="progress">
DISPLAY "Hello ".
Line 108 ⟶ 100:
(Some assumptions have been made about indexing, locking and transaction scoping in order to keep this example simple.)
Record-based processing provides a fine-grained locking model, allowing the developer to apply different lock levels (e.g., EXCLUSIVE-LOCK, SHARE-LOCK, or NO-LOCK) when accessing records.
This approach can offer predictable memory usage, especially in environments using shared memory connections, where the application and database reside on the same host. In client-server (networked) deployments, however, each record or block of records fetched typically involves a network round trip. For example, with a default prefetch size of 50 records and a network latency of 50 ms, retrieving 1,000,000 records may result in up to 1,000 seconds of latency. This illustrates a potential drawback of record-by-record access in high-latency environments.{{Citation needed|date=August 2025}}
==Application areas==
Line 114 ⟶ 110:
The language is used in a wide variety of application areas, some examples:
*
* Rental
* Manufacturing ERP
* Wholesale
* Warehouse
* Transportation
* Commercial service force dispatching
* Security
* Gaming
OpenEdge can be used for:<ref>{{Cite web |date=2024-01-26 |title=Use Cases of Progress OpenEdge 2024 |url=https://www.trustradius.com/products/openedge/reviews?qs=product-usage |access-date=2024-06-26 |website=www.trustradius.com |language=en-US}}</ref>
==Notes==▼
▲* Microsoft Windows GUI (Graphical User Interface)
▲==Notes==
<references/>
==References==
* Sadd, J. ''OpenEdge Development: Progress 4GL Handbook'', Progress Software Corporation, {{ISBN|0-923562-04-4}}, {{ISBN|978-0-923562-04-5}}
* Kassabgi, G. ''Special Edition : Using Progress'', Que Publishing, {{ISBN|0-7897-0493-5}}
== External links ==
▲* [https://www.progress.com/openedge Official Website]
* [https://community.progress.com/community_groups/openedge_general OpenEdge Community]
* [https://docs.progress.com/category/openedge-information-hub OpenEdge Resource Hub]
Line 147 ⟶ 146:
[[Category:Articles with example code]]
[[Category:Database-related software for Linux]]
|