How to update a custom public theme in Oracle APEX

In the last post I showed how you can upload a custom theme to the instance repository so that all your developers can choose that theme within the create application wizard. And more importantly, subscribe that theme from the theme repository.

Now the next question is how to update that public theme so that all applications can inherit the changes.

My first attempt was to simply go to Instance Administration – Manage Instance – Public Themes and look for an update button. But that one doesn’t exist. Re-creating the public theme creates a copy and thus you can’t update your apps with those changes.
Duplicate public themes
It seems to me that someone forgot to implement that crucial functionality.

That actually didn’t stop me, on the contrary it tempted me even more to find a (legal) solution.

So let’s look at the public theme listing. Especially that column “Workspace 11 Application” caught my interest.
Public Theme - Workspace 11
Is there even a Workspace with ID 11? Absolutely, and it’s name suggests it *is* the instance repository.
SELECT Workspaces
And it also contains an app with the ID mentioned in the public theme.
Workspace 11 Applications
Well then let’s create a user for that workspace and log on to update that app. Unfortunately this isn’t possible, because that workspace can’t be selected in the create user dialog.
Create User - Workspace missing
Too bad, but we can solve that: we create a workspace user through the APEX import API.
Create user with API
And there it is, so let’s give that user a new password.
User for Workspace 11
And log on to the repository workspace.
Log on to Workspace 11
I need to warn you at this point, that you probably shouldn’t be doing this. Since we couldn’t create a user for that workspace the legal way, this probably means we are not supposed to log on to that workspace. There is a good chance we could break something, right?

Anyway, I’m just showing you what to expect, so that you don’t have to do it ;-)

There is our application, it’s completely empty except for the theme and templates. Now we can edit the templates and the theme to our liking.

Application Builder in Workspace 11

After we are done with template changes let’s log out of that workspace and never come back. Instead log on to an application workspace and go to one of the applications which uses our public theme. Navigate to Shared Components -> Themes and open the theme.

Edit Theme in new application

Now hit the verify button, where you’ll see the changed templates. All you need to do now is click refresh and you are done.

Verify Subscribed public Theme Subscription verification results

Alright, that’s all. Please don’t break anything and lets all hope that APEX will provide better support for custom public themes in the future.

One thought on “How to update a custom public theme in Oracle APEX

  1. Hi, thanks for the tutorial! I was wondering here… did it work or not? I mean, can I really edit a public theme?

    That’s quite awful. I really wanted a master application for all workspaces…

Leave a Reply

Your email address will not be published. Required fields are marked *