Applicable Versions: 2.01.0152 Onwards


If you use Progress ABL business logic functions for calculated fields in a freeform subject (see "Can I create a calculated field based on some Progress ABL Business logic?"), or to create business logic subjects (see "Can I create a query that runs a Progress function on the server to retrieve data?"), by default you will need to restart all of the AppServer agents each time you make a change to your business logic.


The following steps describe how to implement an activate procedure so any changes to your business logic is automatically recognised by the AppServer agent before any call is made, and reflected in the super procedure stack. This means any changes are instantly available to DataPA without having to restart the AppServer agents. The referenced programs are downloadable below.

  1. Create a new directory that is readable for the AppServer agents. 
  2. Copy any business logic procedures you will use for DataPA into that directory.
  3. Download PABLManager.p and save it somewhere in the PROPATH of your AppServer.
  4. Open PABLManager.p in your code editor.
  5. In the definitions section of PABLManager.p, change the initial value of the cBLPath variable to be the path of the directory you just created that contains your business logic.
  6. In the definitions section of PABLManager.p, change the initial value of the lRunSource variable to be TRUE if you want the AppServer to run source code (.p's) versions of your business logic, or FALSE if you want your AppServer to run r-code (.r's) versions of your business logic.
  7. In the definitions section of PABLManager.p, change the initial value of the lDebugMessages variable to be TRUE if you want debug messages in the AppServer log file, otherwise false.
  8. If you already have a startup procedure defined for your AppServer (see "Can I create a query that runs a Progress function on the server to retrieve data?"), remove any code that is already running your business logic procedures.
  9. Create a new startup procedure, or edit an existing one, to run PABLManager.p persistently, add it to the super procedure stack, then call the RefreshBL procedure. (See startup.p).
  10. Create a new activate procedure, or edit an existing one, to run RefreshBL. (see activate.p)
  11. In Progress OpenEdge Explorer, edit the definition of your AppServer to include the startup and activate procedures
  12. Restart your AppServer.

Now, every time DataPA makes any request to the AppServer, PABLManager.p will make sure the latest version of any business logic in your directory is loaded into the super-procedure stack of the AppServer agent.