Creating a badge list query in Universal Theme

It sounds like an easy task, but it took me a while to get a badge list query working. Just to be clear, I’m talking about the query you have to define when creating a dynamic list in Shared Components. You can then create a list region on a page based on that list. Here is a working example query:

select null as lvl,
       'My Amazing Label' as label,
       'javascript:void(0);' as target,
       null as attribute1,
       null as attribute2,
       null as attribute3,
       null as attribute4,
       42 as attribute5,
       'custom-list-class' as attribute6,
       'custom-a-tag-attr' as attribute7
from dual

Continue reading

Working with Region Display Selectors in APEX 5.0

The Region Display Selector component includes a couple of new features since version 5.0 of Application Express. This article gives an overview of the features that have been introduced and I’ll also mention some useful JavaScript code snippets to gain extra control over a Region Display Selector component. Let’s start with the new declarative, out-of-the-box functionalities. The properties mentioned below can all three be found under the Attributes page of a RDS component.

Continue reading

UTL_HTTP and a multipart/form-data request body

A customer had a requirement to invoke a REST web service that is designed to accept a multipart/form-data request body. I could not get it to work with the APEX_WEB_SERVICE API package, so I reverted to using the good old UTL_HTTP package. That package provides the required flexibility when composing a multipart/form-data request. Here’s the code fragment I ended up with and its resulting debug output.

Continue reading

The MoviePick game

A couple of colleagues and I decided to join ODTUG’s APEX Gaming Competition. The first challenge was to come up with a great idea for an addictive game. We had some creative people sitting around the table and after some brainstorming we ended up with a simple yet interesting concept: a movie guessing game based on a movie database web API.

Now, when you read “movie database”, the first thing you probably think of is IMDb. It came as a surprise to me that they don’t publish an (official) API. IMDb only distributes plain text data files, and that’s not really what we were looking for. In our search for an alternative, we came across TMDb (https://www.themoviedb.org/). It perfectly fitted our needs: an extensive movie database, well documented and reliable.

Continue reading

Calling a SharePoint web service from PL/SQL

This post is a quick outline on how to consume a Microsoft SharePoint web service from within the Oracle Database. The SharePoint instance I was dealing with had NTLM authentication enabled. The support for this type of authentication in PL/SQL is pretty much non-existent. The magnificent Alexandria PL/SQL Utilities library, however, includes the NTLM_HTTP_PKG package which does all the heavy lifting for you in this area. I simply installed the Alexandria library in a separate database schema and granted execute privileges to my APEX application’s parsing schema. A great example on how open source initiatives can make a big difference.

Continue reading

Expert Oracle Application Express, 2nd Edition

Expert Oracle APEX book cover

The second edition of the Expert Oracle Application Express book is available to purchase since August 13. You can order it from the Apress or Amazon website. The book has been updated for APEX 5.0 and includes 15 chapters, written by 14 different authors. Good for a total of over 620 pages. All revenues of the Expert Oracle Application Express book go to charity. See below a listing of the book’s chapters and their respective writers.

Continue reading

Password encryption in the Liquibase Maven plugin

The Liquibase Maven plugin requires us to specify the password of the database schema for which we want to execute a series of database scripts. It seems that the password attribute in the configuration section of the Maven plugin only accepts plain-text passwords. This is absolutely not desirable in enterprise environments. Luckily, we can take advantage of Maven’s standard solution for password encryption, a feature that was introduced in Maven 2.1.0. Follow the six steps below to encrypt the database schema passwords in your POM build files.

Continue reading