We’re excited to announce the 20th release of the FOEX Enterprise Framework. It’s a significant milestone for us and fittingly we decided to align with APEX version numbering. From this version forwards, the framework will match the latest version of APEX that it supports.
Why has it taken us so long to release 20.2?
There were some security changes made in v20 of APEX that affected our “Single Page Application (SPA)” design. We needed to come up with a number of design changes to cater for this change in behaviour, which took a considerable amount of time & effort. The APEX team are always improving the security of APEX and we ride on the back of that. We ensure that each release of our framework conforms with the existing APEX security.
What you’ll find in our latest release is the following:
FOEX Execute PLSQL Code
This new dynamic action plug-in introduces some enhancements that are missing from the existing “Execute PL/SQL Code” dynamic action that APEX provides. These additional features include:
- Providing a processing icon whilst optionally masking the background either at the region or page level
- Declarative Success & Error Notifications
- Submitting and returning CLOB data using page items or Javascript variables
- Returning the execution results to a Javascript variable
- Optionally suppressing the change event on page item values that are returned
Advanced Usage
We have also extended the “Execute PL/SQL Code” capabilities to return additional instructions to the browser, allowing you to perform additional actions after your PLSQL has been executed and avoiding the need for creating additional dynamic actions. Things like hiding/showing items & regions, refreshing them, returning item errors, and more. Using these advanced instructions can save you the overhead of creating many actions.

Widgets in Grid Columns
You can now add button menus and sparkline charts to your grid. You simply need to provide a colon delimited list of values for the chart data source (i.e. the column in your SQL query) and provide some additional config in the “FOEX Config” dialog for the grid column e.g.
"xtype": "widgetcolumn", "widget": { "xtype": "sparklineline", "bind": "{record.MY_COLUMN_ALIAS}" }

Conditional Checkbox Selection
By adding a specific column to your grid query named “FXSELECT” with a Y/N value you can control whether or not the checkbox is shown to enable/disable selection of particular rows.
Showing Text in Row Actions
We have added an enhancement to row actions that allows you to add text values in addition to the existing icon functionality. To add text values you need to adjust your row action JSON to use “text” and “textCls” attributes.
Save the Path of the Selected Node and Expand back to it
We have updated the Tree Grid so in addition to saving the current row selection(s), you can save their path(s) and expand the tree to these nodes on tree reload.
This is the ideal solution when you have searched and found a record that matches your search, and you want to clear the search and expand to this node in the tree on reload. This is especially useful for large datasets where you want to locate a particular record and look at their children, since their children are excluded from search results.
How do I enable this functionality? Simply add an extra page item to the track selections attribute and we’ll do the rest
e.g.

Set Column Value on Column Change
We have updated the Grid & Tree Grid, “Set Column Value on Column Change” action to allow you to return a JSON encoded string to set multiple column values using a key:value mapping
e.g.
{"COMPANY_NAME": "GameStop","MARKET_CAP": 10000000000}
Documentation App Improvements
We have made a couple of usability improvements to the documentation app:
Copy Links to Clipboard
We have added the ability to copy demo URL links to the clipboard by a simple link click. This link will open the main cookbook page i.e. 30 and then automatically content load the demo page in question. e.g.
Preview Settings
You can now preview the page setup in a page designer styled previewer window/dialog. This allows you to check the page setup and plugin settings without having to login to the page designer. This will hopefully save you some valuable time. Note: it’s not 100% the same as the page designer, but it’s pretty close

Renaming the Framework
We also decided to tweak the naming of the product from the “FOEX Plugin Framework” to the “FOEX Enterprise Framework” for APEX. The reason being is that now with 170+ plugins and the Single Page Application design style, the framework is best suited for large complex applications and the majority of our customers are building ERP type systems with it.
In Summary
This is our 20th release and our best release yet, you can see our recent history of release features here. With APEX 20.2 support you can get the best out of APEX and the best out of FOEX. With functionality like realtime live editing capability using websockets, declarative single page application design capability, drag & drop, master detail support between any region, editable lists, report generation, and many other features specifically for data centric applications. You have the tools and support you need to build enterprise level applications in a timeframe that you would have previously thought was impossible.
Congratulations on your latest release! I see some very nice new functionality in here.
Oddly, I wonder if the enhancements that will get the *most* use will be what you did for the Documentation App so we can preview settings and save references to specific pages! 🙂
I’m looking forward to the enhancements provided by the “FOEX Execute PLSQL Code” dynamic action. Thanks very much for including the “FOEX Execute PLSQL Code” dynamic action in the 19.2 hotfix, since we’ll need to update our FOEX applications that work around that Apex 19c issue.