Progress continues being committed to improving the developer experience through tooling and language enhancements.

ABL enhancements

The ABL continuously evolves to support customer-requested features. In OpenEdge 12.2, the following language enhancements are available.

  • Package-level protection — New package-level access modes, PACKAGE-PRIVATE and PACKAGE-PROTECTED, are available. Access modes provide the ability to hide or expose class members to other parts of an application based on how the class member is defined. The new modes provide the ability to extend access outside of the class hierarchy to classes within the same package. A package is the directory structure, relative to the PROPATH leading up to the class itself, as specified in the CLASS statement. This directory path identifies the location of the file that defines a class, interface, or enumeration. PACKAGE-PRIVATE and PACKAGE-PROTECTED restrict access at the package level which is helpful for developers designing frameworks and reusable libraries.

    For more information, see the ABL Syntax Reference and Access modes in Develop Object-oriented ABL Applications for updates and default values for applicable class members. Progress Developer Studio for OpenEdge exposes these new access modes when defining and displaying class members, where applicable.

  • Require-return-values compiler option — A new compiler option is available, that helps ensure all logical code paths have RETURN value statements in user-defined functions, non-VOID methods, and property getters. Missing RETURN value statements may lead to incorrect behavior and code that is hard to debug. Using the option helps developers identify and fix problems, resulting in more robust code.

    For more information, see Require-return-values compiler option in Basic ABL.

  • Ability to use methods as callbacks for socket objects — Developers can now associate a method within a class with an ABL callback event for handle-based socket objects. This functionality is already part of other language elements such as ProDataSets, Buffers, and Queries. Before this release, only procedures could be used for socket object callback events. With this feature, developers can use procedures and both regular and static methods as the callback handler for a socket, allowing complete encapsulation of the client socket functionality into object-oriented ABL.

    For more information, see the SET-CALLBACK() method in the ABL Reference and Socket example using a method as a callback in OpenEdge Programming Interfaces.

Java and .NET Open Clients

Inner exception errors are now maintained when errors occur using the Java and .NET Open Client library. The goal of this change is to make error handling more accurate and to improve developer debugging experience.

.NET Open Clients

As of OpenEdge 12.2.11, you can control what happens to values in the ParamArray object when an error occurs while processing a request or response to or from the application server. For more information, see Set the input and output error reset policy for the paramater array in .NET Open Clients.

Host Language Call Interface

The Host Language Call (HLC) interface is now supported both by the single-threaded ABL client and the PAS for OpenEdge multi-session agent using a DLL (on Windows) or a shared object (on UNIX). Consequently, if you want to deploy an ABL procedure that contains the CALL statement to a PAS for OpenEdge instance, you must update the hlprodsp.c file to indicate whether or not your C source code is thread safe. You cannot build custom ABL client executables by statically linking C code.

For more information about the enhanced HLC functionality, see HLC and OpenEdge in OpenEdge Programming Interfaces.

Progress Developer Studio

Progress Developer Studio for OpenEdge Release 12.2 takes advantage of Eclipse version 4.13, and incorporates many of the feature enhancements included in this version of Eclipse.

For more information about Eclipse feature enhancements for version 4.13, see the Eclipse website.

The following list is a snapshot of the features included in Progress Developer Studio for OpenEdge Release 12.2:

  • Content assist for the workspace—This feature is applicable only in the workspace selection window. Press CTRL+Space to display the list of workspaces.
  • New project creation link—The Create a new OpenEdge project link is added in the Project Explorer panel. Click the link to open the New OpenEdge Project wizard. This link is visible only if there are no projects added in the Project Explorer.
  • New User filters tab—This tab is added to the Filters and Customization section. With this feature, you can create an added filter to hide all the files that have a specific extension in the Project Explorer view. To do this, add the extension in the User filters tab and click the checkbox to activate it.
  • New shortcut for Quick Search—Press ALT+CTRL+SHFT+L from anywhere in a workspace to launch the Quick Search wizard.
  • Ability to save files in the editor when the focus is on another panel—Save an open file by clicking Save from the File menu or by pressing the CTRL+S, even if the focus is on another panel and not on the editor.
  • New Show In option in the Project Explorer—Right-click a project or a file, and select Show In. Select Properties to open the Properties tab. Click the System Explorer, and the project or file location opens in Windows Explorer.
  • New Show Command Line button in the External Tools Configurations wizard—Click the Show Command Line button to view how the command is passed in the command line.

OpenEdge DevOps Framework

The OpenEdge DevOps Framework is comprised of a set of plugins that allows you to seamlessly transition between the development and integration environments when you build your ABL project outside of Progress Developer Studio for OpenEdge. This framework enables you to have the same environment setup for both your development and integration environments.

For more information about the configuration file, see Learn About the OpenEdge DevOps Framework in OpenEdge DevOps Framework.

Bundled third-party tool updates

In OpenEdge 12.2, the following third-party tools that are bundled with Progress Developer Studio for OpenEdge were updated. For more information about all third-party tools packaged with OpenEdge, see the OpenEdge Platform Compatibility Guide on the Progress Content Portal.

  • Infragistics controls update—The "OE Ultra Controls .NET" license ships "Infragistics Ultimate UI for Windows Forms". For OpenEdge 12.2, the version was updated to 19.2.20192.198.
  • Code Analyzer for ABL—The Code Analyzer for ABL (CABL) plugin is shipped with OpenEdge 12.2. The version is updated to 4.5.
  • Progress Compilation Tool—The Progress Compilation Tool (PCT) plugin is also shipped with OpenEdge 12.2. The updated version is 215.