Execute ABL code
- Last Updated: May 20, 2026
- 4 minute read
- OpenEdge
- Version 13.0
- Documentation
Now that you have configured your OpenEdge project and set up the Windsurf development
environment, you are ready to execute ABL procedures efficiently. This topic introduces
multiple ways to run your code, from simple keyboard shortcuts, ABL commands provided by
the Riverside extension to automated task configurations, so you can test, debug, and
deploy with ease. Whether you are launching teletypewriter (TTY)-based applications
using _progres.exe or graphical user interface (GUI)-based applications
with prowin.exe, Windsurf provides flexible options to streamline
execution. You also learn how to bind custom shortcuts, define reusable task files, and
manage startup parameters for real-world scenarios.
Use keyboard shortcuts
| Shortcut | Action |
|---|---|
F2 |
Runs the current procedure using _progres
-b. Utilizes the configured PROPATH
and database connections. |
CTRL+SHIFT+P → ABL: Run with
prowin |
Executes the procedure using prowin.exe.
|
prowin.exe execution to the F2
key:- Open File → Preferences → Keybinding Shortcuts or select the Configure Keybinding icon.
- Delete the existing
F2binding and assign it to ABL: Run with prowin.
Use the ABL execution commands
The Riverside plugin adds the following ABL execution commands to Windsurf:
• ABL: Run with _progres -b—Compiles and executes your ABL code in non-interactive batch mode. No character or graphical UI is displayed. After running the program, switch to the Output panel (ABL Batch) to view the ABL output.
• ABL: Run with _progres—Starts an interactive character (ChUI) session. You can view the terminal-based ABL output in the Terminal panel.
• ABL: Run with prowin—Runs the current ABL procedure using prowin.exe and launches the output in GUI mode.
These commands are intended for quick testing and validation and require no additional configuration.
Automate ABL code execution with external tasks
Windsurf supports external task definitions stored as JSON files to automate the launching of both TTY-based and GUI-based OpenEdge applications directly from Windsurf. These tasks can be version-controlled and shared across teams.
TTY application startup task:
To run a TTY-based OpenEdge application using _progres.exe:
- Create a file named
.vscode/tasks.jsonin your project directory. This file defines how Windsurf should launch your OpenEdge application using specific parameters like:- Database connection:
-db,-H,-S - Procedure file to run:
-p test2.p - Environment variables:
DLC,PROPATH - Executable path:
_progres.exefor TTY,prowin.exefor GUI
- Database connection:
-
Define the TTY task configuration in tasks.json. Here is an example configuration:
{ "version": "2.0.0", "tasks": [ { "label": "My TTY Application", "type": "process", "command": "/path/to/nowhere", "args": [ "-basekey", "INI", "-ininame", "conf/empty.ini", "-db", "sports2020", "-H", "localhost", "-S", "12345", "-cpinternal", "1252", "-p", "test2.p" ], "windows": { "command": "C:\\Progress\\OpenEdge\\bin\\_progres.exe" }, "presentation": { "reveal": "silent", "panel": "new", "focus": true }, "options": { "env": { "DLC": "C:\\Progress\\OpenEdge", "PROPATH": "rcode,C:\\Progress\\OpenEdge\\tty\\netlib\\openedge.net.pl, C:\\Progress\\OpenEdge\\tty\\openedge.core.pl" } }, "problemMatcher": [] } ] }Note: This example assumes your workspace includes anaconfdirectory containing an empty INI file namedempty.ini. - Open a Proenv terminal in Windsurf and navigate to your database directory:
cd C:\Workspace\myProject\db - Start the database broker:The database broker starts on port
startDb.bat12345. - To update project configuration, remove the
-RO(read-only) option from the database connection inopenedge-project.json. Removing-ROallows the application to write to the database, which is required for tasks that modify data. After you have removed this option, restart the ABL language server to apply changes. - From the Terminal menu, select Run Task and
choose the configured task.
A new terminal opens with your
_progresapplication running.
Note: If you remove theQUITstatement fromtest2.p, executing the task launches the Procedure Editor, similar to running from the command line.
GUI application startup task
prowin.exe:- Create a file named
.vscode/tasks.jsonin your project directory. - Define the GUI task configuration in tasks.json. Here is an example
task configuration:
{ "label": "My GUI Application", "type": "process", "command": "/path/to/nowhere", "args": [ "-basekey", "INI", "-ininame", "conf/gui.ini", "-db", "sports2020", "-H", "localhost", "-S", "12345", "-cpinternal", "utf-8", "-p", "test2.p", "-nosplash" ], "windows": { "command": "C:\\Progress\\OpenEdge\\bin\\prowin.exe" }, "presentation": { "reveal": "silent", "panel": "new", "focus": true }, "options": { "env": { "DLC": "C:\\Progress\\OpenEdge" } }, "problemMatcher": [] }Note: This example assumes your workspace includes anHere is an example of the gui.ini file:aconfdirectory containing an INI file namedgui.ini.[Startup] V6Display=no DefaultFont=MS Sans Serif, size=8 DefaultFixedFont=Courier New, size=8 DLC=C:\Progress\OpenEdge Use-3D-Size=Yes PROPATH=rcode,C:\Progress\OpenEdge\tty\netlib\openedge.net.pl,C:\Progress\OpenEdge\tty\openedge.core.pl UseSourceEditor=yes -
Update the conf/gui.ini file to reflect the correct paths for
DLCandPROPATH. - From the Terminal menu, select Run
Task and choose the configured task.
A new terminal opens with your
prowinapplication running.
CTRL+1returns focus to the Editor view from the Output view.- Store task configurations in your code repository to share across teams.
- Refer to the full Windsurf documentation for advanced task setup and environment configuration.