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 created a Build Option "Exclude".
And when I used that Build Option to exclude the column from the Form, it just works as expected.
So lessons learned :
- Not every condition that's available to show or hide items on your Page will exactly work the same.
- Be careful with "Condtion = Never", make "Build Options" great again!