Set APEX application name for Dev, Test and Prod environment in the same database

In case you have a small application where development, test and maybe also production environment are on the same database and your applications in this environment distinguish only by the application IDs. To setup a custom application name based on the ID you could do like this:


We assume our application name is "Training room app" defined in the "Shared Components" > "User Interface Attributes"


To differentiate the environments I add a dynamic action "Page (more...)

Copy and Paste to clipboard

Well I had the requirement to copy the content of a textarea into the clipboard. There are two ways to do that:

1. Build a dynamic action with custom Javascript code:
Copy Text to Clipboard

Code example - with dynamic action on "Click" and "Execute Javascript Code":
/* Select the text field */
$('#P1_APEX_ITEM').select();

/* Copy the text inside the text field */
document.execCommand("copy");



2. Use an APEX plugin:
Copy to Clipboard (v1. (more...)

I’ll be at APEX Meetup Munich: Thu 19 Jul 2018

Just a quick note I'll do two presentations at the APEX Meetup in Munich on Thursday, July 19th 2018.

In the first presentation I'll bring you to a virtual and augmented world, entirely build in Oracle Application Express (APEX). There are 30 Google Cardboards available to make the experience complete. Fun guaranteed! :)


At KScope I was also interviewed by Bob Rhubart on my talks over there, which the AR/VR presentation was one (more...)

My top 5 APEX 18.1 Plugins

With every new version of Oracle Application Express (APEX) new features are added and the life of a developer is made even easier. If the feature set is not enough or you see you need to build the same functionality more often, you can always extend APEX with plug-ins.

There are six different types of plugins: dynamic action, item,  region, process, authentication scheme and authorization scheme.

Plug-ins are absolutely fantastic to extend the native functionalities (more...)

In the British APEX Community? Then UKOUG Tech18 is where you need to be!


In 2003, even before Oracle APEX had a real name (even before HTML DB), I had the good fortune of presenting APEX at the UKOUG Tech conference in Birmingham, England.  I was with my good friend Sergio Leunissen, the original Product Manager of APEX.  Tom Kyte had kindly given us a few minutes on stage during his session to present Project Marvel.  We were able to demonstrate marvel.oracle.com, a (more...)

Automatically capture all errors and context in your APEX application

Let me start this post with a conversation between an end-user (Sarah) and a developer (Harry):

End-user: "Hey there, I'm receiving an error in the app."
Developer: "Oh, sorry to hear that. What is the message saying?"
End-user: "Unable to process row of table EBA_PROJ_STATUS_CATS.  ORA-02292: integrity constraint (XXX.SYS_C0090660) violated - child record found"
Developer: "Oh, what are you trying to do?"
End-user: "I'm trying to delete a category."
(more...)

How to Export to Excel and Print to PDF in Oracle APEX? The answer…

Two questions that pop-up a lot when I'm at a conference or when doing consulting are:
  • How can I export my data from APEX to Excel?
  • How can I print to PDF? Or how can I get a document/report with my data?
The reason those questions are asked every time again is that although those features exist to a certain extent in APEX, what you actually want, is not shipped with Oracle Application Express (APEX), at (more...)

Enable save button on form change

Today I had the requirement that the save button should stay disabled until a form item changed.

After digging around I found a quite easy solution which worked well until now.

Save Button
Static ID: saveBtn
Custom Attributes: disabled

Dynamic Action
Event: Page Load
Execute Javascript Code:
$('#wwvFlowForm').on('input change', function() {
    $('#saveBtn').attr('disabled', false);
});



Simple but effective.

Working with the APEX tree

Out of a coincidence I haven't used the APEX tree region for years. Now I got the task to create a customizable tree in my application. Since APEX 5 there is a new tree type called "APEX tree" which supports some really cool functions.

Anyway I had to look around to find out what the APEX tree is actually capable of. First of all start with the APEX "Sample Trees" application which you find in (more...)

Error!?! What’s going in APEX? The easiest way to Debug and Trace an Oracle APEX session

There are some days you just can't explain the behaviour of the APEX Builder or your own APEX Application. Or you recognize this sentence of your end-user? "Hey, it doesn't work..."

In Oracle APEX 5.1 and 18.1, here's how you start to see in the land of the blinds :)

Logged in as a developer in APEX, go to Monitor Activity:


 From there go to Active Sessions:



You will see all active (more...)

Kscope18 flashback

After a few nights of good sleep (that means more than the average 4 to 5 hours at Kscope), it is time to sit back and evaluate what happened last week. I arrived on Thursday night before the event, just in time to catch Danny Bryant at the bar for "just one last beer" (I don't know how often I heard, and used, that phrase last week).
The whole Friday was filled with an all (more...)

Jürgen Schuster: APEX Distinguished Community Member



I just got back from the ODTUG Kscope18 conference in Orlando, Florida where, once again, the global APEX community descended.  During the Sunday Symposium at this conference, I had the privilege of honoring Jürgen Schuster, who has been the catalyst and engine for so many positive things in this wonderful APEX community.

For the past few months, I was unsure of what words I could use to introduce this award to Jürgen, which (more...)

Check inside your APEX application if debug mode is enabled

Sounds like a simple task but whenever I have the requirement to add a region and make it conditional to check if APEX is running in debug mode. I always search for half an hour finding the right solution.

Search example on Google: "Oracle APEX check debug mode conditional PL/SQL"
Trying this or 30 different other ways it always ends up with the wrong results.

But it is so easy - Conditional PL/SQL Expression:
APEX_APPLICATION. (more...)

Facebook, Google and Custom Authentication in the same Oracle APEX 18.1 app

Oracle APEX 18.1 has many new features, one of them is called Social Login.

On the World Cup 2018 Challenge, you can see the implementation of this new feature. The site allows you to sign-up or login with Facebook, Google, and your own email address.


It's even nicer that if you register with your email, but later decide to sign-up with Google or Facebook, it will recognize you as the same user if (more...)

The World Cup 2018 Challenge is live… An app created 12 years ago to showcase the awesome Oracle APEX


Since 2006 it's a tradition... every two years we launch a site where you can bet on the games of the World Cup (or Euro Cup). This year you find the app at https://www.wc2018challenge.com

You can read more about the history and see how things look like over time, or you can look on this blog at other posts in the different years.

The initial goal of the app was to showcase what (more...)

Safely Upgrading to Oracle APEX 18.1

Oracle Application Express (APEX) 18.1 has been out now for a couple of days.

I typically don't wait long before doing the upgrade, as with every new release you get many new features I want to use. Also if you want to stay on top of the game, you just want to move as fast as you can. I typically start testing the Early Adopter releases and then when apex.oracle.com gets updated, I (more...)

Checking if the current user is logged into Application Builder

If you want conditional logic in your PL/SQL dependent on whether the current user is also logged into the APEX Application Builder, this can be achieved by reference to:

APP_BUILDER_SESSION

e.g. v(‘APP_BUILDER_SESSION’)

 

This will have a value if the user is logged into APEX Application Builder, otherwise it will be null.

Related documentation: https://docs.oracle.com/database/apex-18.1/HTMDB/understanding-substitution-strings.htm#GUID-62FE6E65-265A-4BE4-B04B-F90BDA317328

Is APEX Suitable for an Enterprise Setting?

The APEX 18.1 release has significant new capabilities to consume a variety of remote data sources, from ordinary REST data feeds to ORDS-based Remote SQL.  Up until APEX 18.1, database links were the predominant way to access remote data sources, and of course, database links don't exist in the cloud.  Improvement in this area has been a core focus of ours for APEX 18.1. 

A long-time Oracle tools (more...)

Behind the scenes of an all APEX organized conference

Recently we held the very first edition of the “APEX Alpe Adria” conference in Graz, Austria (see this old post about how it started). This conference is meant for everyone in the Adriatic Region, and everyone willing to travel there.

With more than 180 attendees it was a huge success for the first edition. Today I want to share how we managed the conference, website, call for papers, selection, name tags, and so (more...)

The top 3 reasons to attend malagAPEX!


The explosion and adoption of Oracle APEX continues across the globe, and clear evidence of this is the introduction of not one but two new all-APEX conferences.  At the end of May 2018 is the latest APEX conference, malagAPEX.  If you're looking for an opportunity to get connected with the growing APEX community, this is an excellent place to start.

Here are the top 3 reasons why you should consider attending malagAPEX:

  1. The (more...)