OE ABL Referencef

Download OE ABL Referencef

Post on 22-Nov-2014

679 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

<p>PROGRESS</p> <p>OPENEDGE 10</p> <p>OpenEdge Development: ABL Reference</p> <p> 2009 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.</p> <p>These materials and all Progress software products are copyrighted and all rights are reserved by Progress Software Corporation. The information in these materials is subject to change without notice, and Progress Software Corporation assumes no responsibility for any errors that may appear therein. The references in these materials to specific platforms supported are subject to change. Actional, Apama, Apama (and Design), Artix, Business Empowerment, DataDirect (and design), DataDirect Connect, DataDirect Connect64, DataDirect Technologies, DataDirect XML Converters, DataDirect XQuery, DataXtend, Dynamic Routing Architecture, EdgeXtend, Empowerment Center, Fathom, IntelliStream, IONA, IONA (and design), Making Software Work Together, Mindreef, ObjectStore, OpenEdge, Orbix, PeerDirect, POSSENET, Powered by Progress, PowerTier, Progress, Progress DataXtend, Progress Dynamics, Progress Business Empowerment, Progress Empowerment Center, Progress Empowerment Program, Progress OpenEdge, Progress Profiles, Progress Results, Progress Software Developers Network, Progress Sonic, ProVision, PS Select, SequeLink, Shadow, SOAPscope, SOAPStation, Sonic, Sonic ESB, SonicMQ, Sonic Orchestration Server, SonicSynergy, SpeedScript, Stylus Studio, Technical Empowerment, WebSpeed, Xcalia (and design), and Your Software, Our TechnologyExperience the Connection are registered trademarks of Progress Software Corporation or one of its affiliates or subsidiaries in the U.S. and/or other countries. AccelEvent, Apama Dashboard Studio, Apama Event Manager, Apama Event Modeler, Apama Event Store, Apama Risk Firewall, AppsAlive, AppServer, ASPen, ASP-in-a-Box, BusinessEdge, Business Making Progress, Cache-Forward, DataDirect Spy, DataDirect SupportLink, Fuse, Fuse Mediation Router, Fuse Message Broker, Fuse Services Framework, Future Proof, GVAC, High Performance Integration, ObjectStore Inspector, ObjectStore Performance Expert, OpenAccess, Orbacus, Pantero, POSSE, ProDataSet, Progress ESP Event Manager, Progress ESP Event Modeler, Progress Event Engine, Progress RFID, Progress Software Business Making Progress, PSE Pro, SectorAlliance, SeeThinkAct, Shadow z/Services, Shadow z/Direct, Shadow z/Events, Shadow z/Presentation, Shadow Studio, SmartBrowser, SmartComponent, SmartDataBrowser, SmartDataObjects, SmartDataView, SmartDialog, SmartFolder, SmartFrame, SmartObjects, SmartPanel, SmartQuery, SmartViewer, SmartWindow, Sonic Business Integration Suite, Sonic Process Manager, Sonic Collaboration Server, Sonic Continuous Availability Architecture, Sonic Database Service, Sonic Workbench, Sonic XML Server, StormGlass, The Brains Behind BAM, WebClient, Who Makes Progress, and Your World. Your SOA. are trademarks or service marks of Progress Software Corporation or one of its affiliates or subsidiaries in the U.S. and other countries. Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. Any other trademarks contained herein are the property of their respective owners. Third party acknowledgements See the Third party acknowledgements section on page Preface11.</p> <p>December 2009</p> <p>Last updated with new content: Release 10.2B</p> <p>Product Code: 4496; R10.2B</p> <p>For the latest documentation updates see OpenEdge Product Documentation on PSDN (http://communities.progress.com/ pcom/docs/DOC-16074).</p> <p>ContentsPreface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Preface1 ABL Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1</p> <p>Widget Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1143 Handle Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1189 Handle Attributes and Methods Reference . . . . . . . . . . . . . . . . . . . . . . . 1271 Handle-based Object Events Reference. . . . . . . . . . . . . . . . . . . . . . . . . . 1827 Class and Interface Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1851 Class Properties and Methods Reference . . . . . . . . . . . . . . . . . . . . . . . . 1889 Class Events Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1953 Keyword Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1971 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Index1</p> <p>Contents</p> <p>Contents2</p> <p>Preface</p> <p>This Preface contains the following sections: Purpose Audience Organization Using this manual Typographical conventions Examples of syntax descriptions Example procedures OpenEdge messages Third party acknowledgements</p> <p>Preface</p> <p>PurposeThis book describes ABL (Advanced Business Language), which is the OpenEdge programming language for building business applications. It covers all ABL statements, functions, phrases, operators, preprocessor directives, special symbols, widgets, handles, classes, interfaces, attributes, methods, properties, and events.</p> <p>AudienceThis book is intended for programmers who develop applications using ABL and for anyone who needs to read and understand ABL code.</p> <p>OrganizationThis book consists of the following sections: A dictionary of ABL statements, functions, phrases, operators, preprocessors, and special symbols. A dictionary of ABL widgets. A dictionary of ABL handles. A dictionary of ABL attributes and methods (for handles). A dictionary of ABL handle-based object events. A dictionary of ABL classes and interfaces. A dictionary of ABL properties and methods (for classes). A dictionary of ABL class events and event methods An index of ABL keywords.</p> <p>Using this manualOpenEdge provides a special purpose programming language for building business applications. In the documentation, the formal name for this language is ABL (Advanced Business Language). With few exceptions, all keywords of the language appear in all UPPERCASE, using a font that is appropriate to the context. All other alphabetic language content appears in mixed case. For the latest documentation updates see the OpenEdge Product Documentation Overview page on PSDN: http://communities.progress.com/pcom/docs/DOC-16074.</p> <p>Preface2</p> <p>Preface</p> <p>References to ABL compiler and run-time featuresABL is both a compiled and an interpreted language that executes in a run-time engine. The documentation refers to this run-time engine as the ABL Virtual Machine (AVM). When the documentation refers to ABL source code compilation, it specifies ABL or the compiler as the actor that manages compile-time features of the language. When the documentation refers to run-time behavior in an executing ABL program, it specifies the AVM as the actor that manages the specified run-time behavior in the program. For example, these sentences refer to the ABL compilers allowance for parameter passing and the AVMs possible response to that parameter passing at run time: ABL allows you to pass a dynamic temp-table handle as a static temp-table parameter of a method. However, if at run time the passed dynamic temp-table schema does not match the schema of the static temp-table parameter, the AVM raises an error. The following sentence refers to run-time actions that the AVM can perform using a particular ABL feature: The ABL socket object handle allows the AVM to connect with other ABL and non-ABL sessions using TCP/IP sockets.</p> <p>References to ABL data typesABL provides built-in data types, built-in class data types, and user-defined class data types. References to built-in data types follow these rules: Like most other keywords, references to specific built-in data types appear in all using a font that is appropriate to the context. No uppercase reference ever includes or implies any data type other than itself. Wherever integer appears, this is a reference to the INTEGER or INT64 data type. Wherever character appears, this is a reference to the CHARACTER, LONGCHAR, or CLOB data type. Wherever decimal appears, this is a reference to the DECIMAL data type. Wherever numeric appears, this is a reference to the INTEGER, INT64, or DECIMAL data type.</p> <p>UPPERCASE,</p> <p>References to built-in class data types appear in mixed case with initial caps, for example, References to user-defined class data types appear in mixed case, as specified for a given application example.Progress.Lang.Object.</p> <p>Structure of reference entriesEach ABL element reference description includes some subset of the following information: Platform-restriction notations A purpose or description of the language element Block properties for all block statements Data-movement diagrams for all data-handling statements The syntax for the language element The options and arguments you can use with the language element Preface3</p> <p>Preface One or more examples that illustrate the use of the language element Notes that highlight special cases or provide hints on using the language element A See Also section that lists related language elements</p> <p>Platform-restriction notesSome language elements and features of ABL do not apply to all software platformsoperating systems, user interfaces, and database management systemsthat OpenEdge supports. The documentation tries to note each such platform restriction with the language element title. Some language elements apply to SpeedScript programming and some do not; the documentation indicates which language elements do not apply with a note in the language element description. You can consider a language element as supported for all interfaces, on all operating systems, and for SpeedScript unless otherwise indicated in the language element description. The platform restriction notes that appear in the documentation include the following: AppServer only The element or feature applies only to the OpenEdge AppServer. Character interfaces only The element or feature applies only to the character interfaces that OpenEdge supports. Graphical interfaces only The element or feature applies only to the graphical interfaces that OpenEdge supports. NT and UNIX only The element or feature applies only to the Windows and UNIX versions that OpenEdge supports. ORACLE only The element or feature applies only to the ORACLE versions that OpenEdge supports. UNIX only The element or feature applies only to the UNIX versions that OpenEdge supports. Windows only The element or feature applies only to the Windows versions that OpenEdge supports. Windows only; Graphical interfaces only The element or feature applies only to the graphical interfaces of the traditional OpenEdge GUI for the Windows versions that OpenEdge supports. Windows only; GUI for .NET only The element or feature applies only to the .NET forms, controls, or other .NET objects for the Windows versions that OpenEdge supports. Preface4</p> <p>Preface For a complete list of the software platforms that OpenEdge supports, see OpenEdge Getting Started: Installation and Configuration.</p> <p>Typographical conventionsThis manual uses the following typographical conventions:</p> <p>Convention Bold ItalicSMALL, BOLD CAPITAL LETTERS KEY1+KEY2</p> <p>Description Bold typeface indicates commands or characters the user types, provides emphasis, or the names of user interface elements. Italic typeface indicates the title of a document, or signifies new terms. Small, bold capital letters indicate OpenEdge key functions and generic keyboard keys; for example, GET and CTRL. A plus sign between key names indicates a simultaneous key sequence: you press and hold down the first key while pressing the second key. For example, CTRL+X. A space between key names indicates a sequential key sequence: you press and release the first key, then press another key. For example, ESCAPE H.</p> <p>KEY1 KEY2</p> <p>Syntax:Fixed width</p> <p>A fixed-width font is used in syntax statements, code examples, system output, and filenames. Fixed-width italics indicate variables in syntax statements. Fixed-width bold indicates variables with special emphasis. Uppercase words are ABL keywords. Although these are always shown in uppercase, you can type them in either uppercase or lowercase in a procedure. This icon (three arrows) introduces a multi-step procedure. This icon (one arrow) introduces a single-step procedure.</p> <p>Fixed-width italics Fixed-width bold UPPERCASE fixed width</p> <p>Period (.) or colon (:)</p> <p>All statements except DO, FOR, FUNCTION, PROCEDURE, and REPEAT end with a period. DO, FOR, FUNCTION, PROCEDURE, and REPEAT statements can end with either a period or a colon. Large brackets indicate the items within them are optional. Small brackets are part of ABL. Large braces indicate the items within them are required. They are used to simplify complex syntax diagrams.</p> <p>[][]</p> <p>{}</p> <p>Preface5</p> <p>Preface</p> <p>Convention {}</p> <p>Description Small braces are part of ABL. For example, a called external procedure must use braces when referencing arguments passed by a calling procedure. A vertical bar indicates a choice. Ellipses indicate repetition: you can choose one or more of the preceding items.</p> <p>| ...</p> <p>Examples of syntax descriptionsIn this example, ACCUM is a keyword, and aggregate and expression are variables: SyntaxACCUM aggregate expression FOR</p> <p>is one of the statements that can end with either a period or a colon, as in this example:</p> <p>FOR EACH Customer: DISPLAY Name. END.</p> <p>In this example, STREAM stream, UNLESS-HIDDEN, and NO-ERROR are optional: SyntaxDISPLAY</p> <p>[</p> <p>STREAM stream</p> <p>] [</p> <p>UNLESS-HIDDEN</p> <p>] [</p> <p>NO-ERROR</p> <p>]</p> <p>In this example, the outer (small) brackets are part of the language, and the inner (large) brackets denote an optional item: SyntaxINITIAL [ constant</p> <p>[</p> <p>, constant</p> <p>]</p> <p>]</p> <p>A called external procedure must use braces when referencing compile-time arguments passed by a calling procedure, as shown in this example: Syntax{ &amp;argument-name }</p> <p>Preface6</p> <p>Preface In this example, EACH, FIRST, and LAST are optional, but you can choose only one of them: SyntaxPRESELECT</p> <p>[</p> <p>EACH</p> <p>|</p> <p>FIRST</p> <p>|</p> <p>LAST</p> <p>]</p> <p>record-phrase</p> <p>In this example, you must include two expressions, and optionally you can include more. Multiple expressions are separated by commas: SyntaxMAXIMUM ( expression , expression</p> <p>[</p> <p>, expression</p> <p>] ...</p> <p>)</p> <p>In this example, you must specify MESSAGE and at least one expression or SKIP [ (n) any number of additional expression or SKIP [ ( n ) SyntaxMESSAGE</p> <p>], and</p> <p>] is allowed:</p> <p>{</p> <p>expression</p> <p>|</p> <p>SKIP</p> <p>[</p> <p>( n )</p> <p>] } ...</p> <p>In this example, you must specify {include-file, then optionally any number of argument or &amp;argument-name = "argument-value", and then terminate wit...</p>