Upload
marvie123
View
219
Download
0
Embed Size (px)
Citation preview
8/12/2019 OpenEdge Advanced Business Language
1/5
OpenEdge Advanced Business Language, or OpenEdge ABLfor short, is a business application
development language created and maintained byProgress Software Corporation(PSC). The language,
typically classified as afourth-generation programming language,uses an English-like syntax to simplify
software development.[1]
The name was changed in 2006 to OpenEdge Advanced Business Language
(OpenEdge ABL), by PSC, from PROGRESS, also known as Progress 4GL, in order to overcome a
presumed industry perception that 4GLs were less capable than other languages.[2]The language was
called PROGRESS or Progress 4GL prior to the release of version 10.0. A subset of the language,
called SpeedScript, is used in the development of web applications.[3]
OpenEdge ABL helps developers to develop applications optionally using its own integrated relational
databaseandprogramming tool.These applications are portable across computing systems and allow
access to various popular data sources without having to learn the underlying data accessmethods. This
means that theend-userof these products can be unaware of the underlying architecture.
By combining a fourth generation language and relational database, OpenEdge ABL allows the use of
theRapid Application Development(RAD) model for developing software. A programmer and even end
users can dorapid prototypingusing the integrated and GUI tools of the development environment.
Contents
[hide]
1 History
2 Syntax and semantics
3 Examples
o 3.1 Hello World
o 3.2 SQL SELECT equivalent
o 3.3 SQL UPDATE equivalent
4 Notes
5 References
History[edit]
1984
First Commercial Release
1989
Version 5
1990
Version 6
1993
Version 7
1995
Version 8
http://en.wikipedia.org/wiki/Progress_Softwarehttp://en.wikipedia.org/wiki/Progress_Softwarehttp://en.wikipedia.org/wiki/Progress_Softwarehttp://en.wikipedia.org/wiki/Fourth-generation_programming_languagehttp://en.wikipedia.org/wiki/Fourth-generation_programming_languagehttp://en.wikipedia.org/wiki/Fourth-generation_programming_languagehttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-p2-1http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-p2-1http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-p2-1http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-introABL-2http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-introABL-2http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-introABL-2http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-webspeedcomplete-3http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-webspeedcomplete-3http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-webspeedcomplete-3http://en.wikipedia.org/wiki/Relational_databasehttp://en.wikipedia.org/wiki/Relational_databasehttp://en.wikipedia.org/wiki/Relational_databasehttp://en.wikipedia.org/wiki/Relational_databasehttp://en.wikipedia.org/wiki/Programming_toolhttp://en.wikipedia.org/wiki/Programming_toolhttp://en.wikipedia.org/wiki/Programming_toolhttp://en.wikipedia.org/wiki/Data_accesshttp://en.wikipedia.org/wiki/Data_accesshttp://en.wikipedia.org/wiki/Data_accesshttp://en.wikipedia.org/wiki/End-userhttp://en.wikipedia.org/wiki/End-userhttp://en.wikipedia.org/wiki/End-userhttp://en.wikipedia.org/wiki/Rapid_Application_Developmenthttp://en.wikipedia.org/wiki/Rapid_Application_Developmenthttp://en.wikipedia.org/wiki/Rapid_Application_Developmenthttp://en.wikipedia.org/wiki/Rapid_prototypinghttp://en.wikipedia.org/wiki/Rapid_prototypinghttp://en.wikipedia.org/wiki/Rapid_prototypinghttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Languagehttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Languagehttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Languagehttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#Historyhttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#Historyhttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#Syntax_and_semanticshttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#Syntax_and_semanticshttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#Exampleshttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#Exampleshttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#Hello_Worldhttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#Hello_Worldhttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#SQL_SELECT_equivalenthttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#SQL_SELECT_equivalenthttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#SQL_UPDATE_equivalenthttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#SQL_UPDATE_equivalenthttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#Noteshttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#Noteshttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#Referenceshttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#Referenceshttp://en.wikipedia.org/w/index.php?title=OpenEdge_Advanced_Business_Language&action=edit§ion=1http://en.wikipedia.org/w/index.php?title=OpenEdge_Advanced_Business_Language&action=edit§ion=1http://en.wikipedia.org/w/index.php?title=OpenEdge_Advanced_Business_Language&action=edit§ion=1http://en.wikipedia.org/w/index.php?title=OpenEdge_Advanced_Business_Language&action=edit§ion=1http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#Referenceshttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#Noteshttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#SQL_UPDATE_equivalenthttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#SQL_SELECT_equivalenthttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#Hello_Worldhttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#Exampleshttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#Syntax_and_semanticshttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#Historyhttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Languagehttp://en.wikipedia.org/wiki/Rapid_prototypinghttp://en.wikipedia.org/wiki/Rapid_Application_Developmenthttp://en.wikipedia.org/wiki/End-userhttp://en.wikipedia.org/wiki/Data_accesshttp://en.wikipedia.org/wiki/Programming_toolhttp://en.wikipedia.org/wiki/Relational_databasehttp://en.wikipedia.org/wiki/Relational_databasehttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-webspeedcomplete-3http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-introABL-2http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-p2-1http://en.wikipedia.org/wiki/Fourth-generation_programming_languagehttp://en.wikipedia.org/wiki/Progress_Software8/12/2019 OpenEdge Advanced Business Language
2/5
1998
Version 9
December 10, 2002
Progress Dynamics 2.0 announced - the application environment for the OpenEdge business
platform[4]
February 17, 2004
OpenEdge 10 announced[5]
2005
OpenEdge Studio packages[6]
Progress Version 9
Progress WebClient
Progress Dynamics Version 2.1
February 8, 2006
OpenEdge 10.1 announced - addition of object-oriented extensions to ABL, and new auditing
service[7]
February 13, 2007
OpenEdge 10.1b announced - adds support for 64-bit data formats[8]
April 15, 2008
OpenEdge 10.1c announced - first business application development platform to support IPv6[9]
November 3, 2008
OpenEdge 10.2A announced -New OpenEdge GUI for .NET that allows developers to create
modern WinForms-style UI's without leaving the OpenEdge environment.
December 2009
OpenEdge 10.2B release providing improved OpenEdge GUI .Net Integration and additional
online database features.
December 2011
OpenEdge 11.0 releaseintroducing patent-
pending multi-tenancy, multi-Cloud
deployment options and extended platform
support.
June 2012:
OpenEdge 11.1 releaseproviding
performance and productivity tools for the
development of SaaS (software as a service)
and Cloud applications. It also delivers
stronger security coupled with simplified user
authentication.
http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-4http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-4http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-5http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-5http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-5http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-6http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-6http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-7http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-7http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-8http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-8http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-8http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-9http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-9http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-9http://www.progress.com/en/inthenews/progress-software-un-48648.htmlhttp://www.progress.com/en/inthenews/progress-software-un-48648.htmlhttp://www.progress.com/en/inthenews/progress-software-an-62602.htmlhttp://www.progress.com/en/inthenews/progress-software-an-62602.htmlhttp://www.progress.com/en/inthenews/progress-software-an-62602.htmlhttp://www.progress.com/en/inthenews/progress-software-un-48648.htmlhttp://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-9http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-8http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-7http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-6http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-5http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language#cite_note-48/12/2019 OpenEdge Advanced Business Language
3/5
February 2013:
OpenEdge 11.2 releaseprovided enhanced
mobility capabilities through: visual designer
and UI toolkit for phone and tablet
applications, REST support for the
OpenEdge application server, JavaScriptData Binding support libraries, and write-
once, run anywhere support for iOS and
Android;
Summer 2013:
OpenEdge 11.3 release
Syntax and semantics[edit]
Progress ABL is a strongly typed, late-
bound, English-like programming language.
Although initially designed as a procedurallanguage, 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 be said to 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 programatically; or programmers can
use the provided tools to build one.
Examples[edit]
Hello World[edit]
Main article:Hello world program
The following ABL code creates a window
with the text "Hello, World!" and a button
labelled "OK".
DEFINEVARIABLEw ASHANDLENO-
UNDO.
CREATEWINDOWwASSIGN
WIDTH=50
http://www.progress.com/en/inthenews/new-progress-softwar-65552.htmlhttp://www.progress.com/en/inthenews/new-progress-softwar-65552.htmlhttp://en.wikipedia.org/w/index.php?title=OpenEdge_Advanced_Business_Language&action=edit§ion=2http://en.wikipedia.org/w/index.php?title=OpenEdge_Advanced_Business_Language&action=edit§ion=2http://en.wikipedia.org/w/index.php?title=OpenEdge_Advanced_Business_Language&action=edit§ion=2http://en.wikipedia.org/w/index.php?title=OpenEdge_Advanced_Business_Language&action=edit§ion=3http://en.wikipedia.org/w/index.php?title=OpenEdge_Advanced_Business_Language&action=edit§ion=3http://en.wikipedia.org/w/index.php?title=OpenEdge_Advanced_Business_Language&action=edit§ion=3http://en.wikipedia.org/w/index.php?title=OpenEdge_Advanced_Business_Language&action=edit§ion=4http://en.wikipedia.org/w/index.php?title=OpenEdge_Advanced_Business_Language&action=edit§ion=4http://en.wikipedia.org/w/index.php?title=OpenEdge_Advanced_Business_Language&action=edit§ion=4http://en.wikipedia.org/wiki/Hello_world_programhttp://en.wikipedia.org/wiki/Hello_world_programhttp://en.wikipedia.org/wiki/Hello_world_programhttp://en.wikipedia.org/wiki/Hello_world_programhttp://en.wikipedia.org/w/index.php?title=OpenEdge_Advanced_Business_Language&action=edit§ion=4http://en.wikipedia.org/w/index.php?title=OpenEdge_Advanced_Business_Language&action=edit§ion=3http://en.wikipedia.org/w/index.php?title=OpenEdge_Advanced_Business_Language&action=edit§ion=2http://www.progress.com/en/inthenews/new-progress-softwar-65552.html8/12/2019 OpenEdge Advanced Business Language
4/5
HEIGHT=5
MESSAGE-AREA=FALSE
STATUS-AREA=FALSE.
CURRENT-WINDOW=w.
DEFINE BUTTONbtnOK LABEL"OK"
SIZE12BY1.2.
FORM
"Hello World!"VIEW-ASTEXTAT
COL20ROW2
btnOKATCOL20ROW4
WITHFRAMEf SIZE50BY5NO-BOX
THREE-D.
VIEWFRAMEf.
ENABLEbtnOKWITHFRAMEf.
WAIT-FOR"CHOOSE"OFbtnOK.
DELETE OBJECTw.
A message-box can be used to achieve the
same effect:
MESSAGE"Hello World!"
VIEW-ASALERT-BOXINFO
BUTTONS OK.
Also, you can
use ERRORand WARNINGinstead of INFOtochange the message icons.
The simplest "Hello, World" program,
though, is this:
DISPLAY"Hello World!".
SQL SELECTequivalent[edit]
The SQL statement:
SELECT*FROMcustomer;
(along with your chosen language display
procedure) can be expressed in Progress /
ABL as:
FOREACHcustomerNO-LOCK:
DISPLAY
SQL UPDATEequivalent[edit]
The SQL statement:
http://en.wikipedia.org/w/index.php?title=OpenEdge_Advanced_Business_Language&action=edit§ion=5http://en.wikipedia.org/w/index.php?title=OpenEdge_Advanced_Business_Language&action=edit§ion=5http://en.wikipedia.org/w/index.php?title=OpenEdge_Advanced_Business_Language&action=edit§ion=5http://en.wikipedia.org/w/index.php?title=OpenEdge_Advanced_Business_Language&action=edit§ion=6http://en.wikipedia.org/w/index.php?title=OpenEdge_Advanced_Business_Language&action=edit§ion=6http://en.wikipedia.org/w/index.php?title=OpenEdge_Advanced_Business_Language&action=edit§ion=6http://en.wikipedia.org/w/index.php?title=OpenEdge_Advanced_Business_Language&action=edit§ion=6http://en.wikipedia.org/w/index.php?title=OpenEdge_Advanced_Business_Language&action=edit§ion=58/12/2019 OpenEdge Advanced Business Language
5/5
UPDATEcustomer
SETsalesman ='Fred'
WHEREcustno =14;
can be expressed in Progress / ABL as:
FORcustomerWHERE
customer.custno =14EXCLUSIVE-
LOCK:
ASSIGNcustomer.salesman =
'Fred'.
END.
(Some assumptions have been made about
indexing, locking and transaction scoping in
order to keep this example simple.)