Skip to main content

Posts

Showing posts from December, 2018

Adding items to your Interactive Grid Toolbar

The APEX Interactive Grid uses the Toolbar widget to create the default Toolbar showing the Search box, Actions menu, Save button etc. And since quite a while there is a nice Plugin "Extend IG Toolbar" by Marko Goricki that makes it very easy to add additional buttons to the Toolbar.

But what if you need more than a button? 
Inspecting the contents of widget.toolbar.js, you can easily spot there can be added more to the Toolbar than just a button: The type of control, available values:
"STATIC", "TEXT", "SELECT", "BUTTON", "MENU", "RADIO_GROUP", "TOGGLE".
The first example will show a way to easily switch from one filter to another. Of course we could use the standard functionality and create two different Report views, but using a Radio Group on the Toolbar gives a more "Tab" like user experience.

So how can we create a Radio Group that looks like a switch in the Toolbar?
In the Javascript Code …

Startup your ORDS container after your Oracle DB container is ready

If you are using multiple containers to set up your Oracle Development (or Test or Production) environment - as I described here - you probably ran into the issue that your ORDS container was started before the Database was started up. This results in an ORDS container that is not working - at least not as you need to.

Using Docker Compose you can specify a depends_on option, for instance in the ORDS container configuration you specify (where "oracle" refers to the container that holds the Oracle database) : depends_on : - oracle but this only means the ORDS container will start after the "oracle" container has been started. That does not mean the Oracle database inside the container is started and available!

So how do we tell the ORDS to configure itself in one container to wait for the database in another container is ready to use?
Step 1: Start the Oracle database (container), connect to it and enable a port - in this example 8080 - in the Oracle database 
begin   d…

Some conditions are more equal than others ...

Imagine you have a nice APEX application, but on a certain day your client asks you to remove a column from the application. So after a thorough dependency analysis it appears that that column is only used in two pages : One Interactive Report and one Form. 

So you go ahead and start with the hard work and delete the column from the table. Now you only have to fix the application, right? So - just in case of "you never know whether the client will change his mind again" - you decide to set the "Server Side Condition" of the column in both the Report and the Form to "Never". That should do the trick!
Of course you do test, and fire up the report. Works as expected, the column is not shown on the report anymore. Then you click the little pencil link to open the Form. 
And an error pops up:
WTF? I was pretty sure I set the Condition to Never! So why is it still trying to fetch that column?
Luckily there are more ways to not show an Item on a Page, so I creat…