Over the past twenty years I have mostly helped the work of business areas that were not merely users of enterprise software, but who, with their knowledge and will, also contributed themselves to creating a more efficient IT environment.
Custom software development is largely based on the paradigm that the user describes as precisely as possible to the developer what they need, but this cannot actually be achieved.
Since the design phase alone already consumes a great deal of time, not to mention implementation, handover and rollout, users often do not wait for these to be completed and, over the years, build up on their own a solution that effectively supports the company's daily work.
Of course, disregarding classic development principles can cause headaches in the long run, but today there are numerous low-code tools that make it possible, in the absence of expertise, for something other than a giant Excel spreadsheet to be created — instead a solution that can be built upon in the long term.
The Oracle Application Express that we use has already proven itself as a user-friendly, yet versatile framework capable of handling huge volumes of data, and one that is popular among business users as well. Because with little developer knowledge, fast and impressive results can be achieved that are accessible to the entire organization.
Soon, not only will individual regions, page elements and their properties be creatable without coding, but also the very SQL statements that gather the information.
Let's take a simple example:
We want to create a chart in our application that displays average salaries by organizational unit.
Let's launch the chart creation wizard.
Here we would need to provide an SQL statement, but instead let's phrase the following request:
"Show the employees' average salary by organizational unit".
The developer (who in our case may also be the user) can then generate the appropriate SQL statement by clicking the "APEX Assistant" button.
APEX sends the text to a Generative AI REST service, which — as shown in the example below — returns the result in the form of an Oracle SQL statement.
Instead of us starting to search for the right tables, joining them, and performing the appropriate operations, the APEX Assistant does this for us.
Of course, this can also work in a way where the user themselves types in what they want to see, instead of only being able to modify the results of an already existing report by clicking various buttons, as we have grown used to in a traditional BI tool.
So the process is as follows:
The developer — who in our case, due to the low-code approach, can also be the user themselves — creates a request (prompt).
The request is supplemented by the built-in RAG (Retrieval Augmented Generation) module with additional information — in our case from the Oracle database, which can include:- The names of the tables used in the APEX application- The tables' attributes together with their data types- The primary keys/identifiers of the tables- The foreign keys of the tables
The supplemented request (prompt) is sent to the LLM (Large Language Model) for processing
The response — in the form of an SQL statement — is returned to the APEX Assistant
Since in APEX applications every displayed element, page, user habit and setting — just like the data itself — is stored in the database and can be queried, nothing prevents the language model from giving even better answers to our questions over time.
All of this points toward a very exciting future not only for application development but also for how applications are used.
Using the APEX low-code framework, the line is increasingly blurring between developers and users, between vendors and customers, between IT and business areas; instead, a much closer collaboration is emerging that results in the most efficient IT solutions available for every company.
This article was created based on an Oracle blog post.


