This year again the APEX connect conference spans over two days onsite in Berlin, with mixed topics around APEX, like JavaScript, PL/SQL and much more.
After the welcome speech and the Keynote about “22.2, 23.1, and beyond” by the Oracle APEX Team, I decided to attend presentations on following topics:
– How should we design a database? You decide!
– IoT and APEX to reduce gas
– Automated APEX application deployment with Liquibase and Jenkins
– Low Code Testing (LCT) Testing APEX apps is just as easy as creating them
– Templates – Next Generation: Dynamic Templates in 23.1
– Multi language application in APEX – really ease?

I also had the chance to give some presentation about ORDS 22.x and the changes it introduces.

22.2, 23.1, and beyond:

The APEX Team was growing very fast lately (with taking over FOEX for example) to be more than 80 people now. This shows that APEX is on the heart of Oracle strategy, also internally for the Global Business Units (GBO).
A quick overview of APEX 22.2 new features was given but more interesting, details about APEX 23.1 new features which are not yet available for download:
– Declarative push notifications
– Template components
– Refreshed Object Browser
– SQL Developer Web integration
– Refreshed items (Rich Text Editor, Color Picker)
– Administrator Diggest
– REST Source discovery based on Swagger/Open AI
– Invoke API for REST Data Sources
– Background execution of Page Processes
It all looks promising and I’m looking forward for it to being released outside of apex.oracle.com

How should we design a database? You decide!

We the example of creating an application to manage international games with the final target to show some league results, based on 2 tables (country, games) some design decisions had to be made and consequences were analyzed.
Outcome:
– Use natural keys (like ISO country code) only when codes are standardized. If not use surrogate keys.
– Use check constraints if fixed and small number of values. For all other cases use lookup tables.
– Use columns to store limited number of data of same type related to main entry (e.g. score). For other cases use a separate table.
– Use NULL when no data is stored rather than a default value which could be a valid data for final result (i.e. 0 for the score until the game was played).
In order to eas developer’s work, design guidelines should be created. SQL Developer Data Modeler can be used with Design Rules feature, to do so.

IoT and APEX to reduce gas

With expanding CO2 emissions, we need to reconsider our way of consuming fossil energies. The war in Ukraine and the impact it has on the gas price makes it visible on the bill also.
Analog gas counters are using magnets to show progress which can be used to add IoT based detection and turn it into digital equipments with traceability features. Thanks to magnet sensor coupled with Raspberry pi pico and some Python software consumption data can be exported in csv files.
Those csv files can then be imported into an APEX application which is used to do some dashboarding and cost analysis quite easily.
This way some experiments can be done on the heating settings to see how best savings can be done.

Automated APEX application deployment with Liquibase and Jenkins

Liquibase allows to manage and track deployments on databases based on Change Logs and Change Sets. Structure of scripts used to do the changes must be adapted with for example:
– Pre DDL
– DDL
– Post DDL
scripts to cover all aspects.
Beside the DB code, APEX application code can be managed in GIT and commit to master branch used to trigger deployment with Jenkins.
The link between GIT and Jenkins can be done over web hook based on some specific plugins.
Authentication needs to be managed carefully as changes might be required on different databases within the same release.

Low Code Testing (LCT) Testing APEX apps is just as easy as creating them

LCT is a tool developed in APEX to test APEX applications.
The tool is managing test cases within Worksheets and Test Suites where the definitions are based on the APEX metadata, which makes it very intuitive.
It is only testing the UI, not the PL/SQL code.
Compared to other testing tools, it is able to handle the context of modal pages and record all states of the application during the test run for later analysis.
Based on Docker containers, it’s footprint is rather small for simple applications. But it also allows to scale up easily to up to 256 containers if required for big applications and multiple parallel testings. It is worth have a look into it if you want to do automated testing of your APEX application.

Templates – Next Generation: Dynamic Templates in 23.1

With APEX 23.1, a new plugin type was introduced: Template components
It supports template directives, CSS, JavaScript, declarative images and CLOB.
It can be used as:
– Partial region
– Report region
– Interactive Report column
Most of it’s setup is declarative which doesn’t require any PL/SQL and almost no JavaScript, depending how far you want to personalize it.
Some new APPLY WITH feature even allows to combine different plugins within themselves, which makes it even more powerful.

Multi language application in APEX – really ease?

APEX is supporting multi language applications. It is based on translations of the text found in the application but this excludes any data in LOVs or Read Only items. So that multi language should be integrated in the tables design (at least for lookup tables).
APEX allows to export the static text to be translated in XLIF format so it can be given to a specialized service for processing. But, NO CHANGE must be done to the APEX application while the translation file is processed, unless issues will show-up when the translated text will be imported again.
Multi language applications are not that strait forward and require some design thoughts from the beginning and attention during development.