Tim Hall recently made a wonderful suggestion that the Oracle community
remember the much missed Joel Kallman on 11 October 2021.
My contribution doesn’t demonstrate APEX technical wizardry. Instead
it’s a short story from a real-life customer project implemented using
APEX. Just to avoid any potential law suits, this post isn’t about
Agile development either - more how APEX can be used to quickly
respond to changing customer requirements.
One particular post from Joel stuck with me about his attitude to
customer service which can be encapsulated in a single line:
‘Treat the customer (and really everyone) with respect and dignity’.
I work for Oracle in the UK and am currently working on an APEX
project for a customer. This APEX application uses corporate
single-sign-on (SSO) for authentication and a simple custom
authentication scheme that uses group membership to control access to
data (only members of the ‘Sales’ group can see ‘Sales’ reports).
Monday - 10:40
The program manager (not the project manager) sends me an email that
strikes fear deep into my soul:
‘Hey Norman, I need a quick Excel spreadsheet summarising the
current list of users and their groups’.
A few years ago, I probably would have done this in SQL*Plus or SQL
Developer and struggled to massage the output into the desired
format. Now my immediate thought was ‘This is a simple APEX report
with a control break’.
I quickly created a APEX report and clicked ‘Actions - Download’ to
quickly produce the Excel spreadsheet. I then had to waste time
transferring the file before finally emailing the spreadsheet to the
customer for review.
I had produced an Excel spreadsheet and it was undeniably ‘quick’ so I
had clearly met both requirements. Time to put the kettle on.
Monday - 11:57
‘That’s great. Thanks but I also see to see members of the ‘Admin’
A trivial addition to the WHERE clause and I was about to repeat the
whole tortuous process until I remembered we had already configured the
Email Delivery Service on OCI for a different requirement.
I checked the output and again clicked ‘Actions - Download’ but
checked the ‘Send as Email’ option.
As I simply love recursion, I sent the program manager a FAX to expect
an automated email from the APEX bot imminently.
A nice feature of ‘Send as Email’ is that the recipient gets a link to
the APEX report in addition to the Excel spreadsheet as a file
Monday - 15:32
‘That’s great. Thanks for the prompt turnaround’.
Tuesday - 09:17
‘Hey Norman - I shared this Group Membership report with Julie and
here’s a list of more people who need to be added to the Admin group
before the production deployment. Please send Julie and myself a
copy of the updated report’.
Again, I added the list of users to the Admin group and sent the email
adding Julie on ‘Cc:’.
Tuesday - 13:47
‘That’s fantastic. Julie has now shared the Membership report with
Graham from Operational Support and he was wondering whether you can
email this report to him daily from now until a month after
Again, APEX provides an out of the box solution for this called
Not so much ‘low code’ as ‘no code’. I simply added a ‘Subscription’
to the ‘Membership’ report and emailed it to Graham daily starting now
and ending on 30 November.