Oracle APEX - Plug-ins Explained

Plug-ins enable you to extend your APEX applications with custom functionality that is not available natively in the platform.

Oracle APEX plug-ins are add-ons that extend the functionality of the popular low-code application platform. They allow developers to easily incorporate additional features and functionality into their APEX applications in a reusable way without the need for coding in each page or application they wish to deploy that functionality.

Once set, you can manage them like regular parts of APEX. Plug-Ins are packaged and managed independently of the APEX application and therefore may be transported across applications and also, if you wish, shared with the community.

Plug-in types

There are eight types of APEX plug-ins in the latest version (23.1 at the moment of writing this post):

  1. Authentication Scheme: This less common plug-in type allows you to create a new Authentication scheme base on a pre-configured scheme of your own. While it was once widely utilised for Social Sign-in, its popularity has waned with the native support for this feature in Oracle APEX.
  2. Authorization Scheme: Similar to the above, an authorization scheme type plug-in allows you to create a pre-configured authorisation scheme.
  3. Dynamic Action: This plug-in type extends the functionality of dynamic actions within APEX applications. It can be used to perform custom actions when an event occurs on a page or to implement an external JavaScript library.
  4. Item: Item type plug-ins allow developers to create custom input fields and display controls within APEX applications. They can be used to create complex form controls, such as range date pickers, sliders or file upload fields. Similar to the authentication scheme type, these become less important as more built-in features are added over time.
  5. Process: This type of plug-in allows you to create code blocks to be reused across your applications and offer support for the following component types: Page Processes, Automation Actions, Task Definition Actions.
  6. REST Data Source: This plug-in type allows you to implement your own REST Data Source Type.
  7. Region: Region plug-ins allow developers to create custom regions within APEX applications. Regions are a fundamental building block of APEX pages and are used to organise content on a page. Region plug-ins can be used to create custom regions with unique functionality or styling.
  8. Template Components: This plug-in type is the newest and was introduced in APEX 23.1. It allows developers to construct reusable UI components in Page Designer. They come equipped with functionality for actions, menus, and custom attributes. These versatile components can be independently displayed as regions, showcasing either single or multiple data rows, and can also be integrated into reports as partials within a column.

Even though Oracle has been incorporating more and more native functionality into APEX over the last couple of years, plug-ins are still very much in use and a very popular way of streamlining development.

If you have any external libraries that you use on multiple pages or may need to in the future, you should probably consider moving the code to an APEX plug-in.

💡
A plug-in will make your code easier to reuse, and having one centralised place to maintain your code is a big advantage

Ready to start creating plug-ins?

Getting started with Oracle APEX plug-ins can be a bit challenging at first. Considering this, it may be advisable to begin by exploring some existing plug-ins first, especially those of the type you want to create. By taking a closer look at these pre-made examples, you can gain valuable insights into how they work, their structure, and the best practices involved. In short, there is a learning curve, but one that can lead to more efficient and effective development, ultimately enhancing your ability to tailor Oracle APEX applications to your specific needs.

As a starting point you can also use Daniel Hochleitner's templates for three of the most common types (regions, items and dynamic actions). These may be a bit outdated but still relevant and can be found here.

Naming

But... before you start creating a plug-in it might be worth thinking about naming. Consider the following Oracle warning and it will be clear why:

⚠️
To insure the internal name is a globally unique name worldwide, it is recommended that your organization domain name be used as a prefix to internal plug-in names. For example, a domain name of mycompany.com prefixed to a plug-in named Slider, would result in an internal name of COM.MYCOMPANY.SLIDER.

Documentation

Once the naming problem has been addressed, we might recommend reviewing the API documentation here. It describes the data types and global constants used in the APEX_PLUGIN package, an essential part of plug-ins.

Compatibility

Finally, it's crucial to note that APEX plug-ins are forward compatible but not backward compatible. This means that plug-ins made in a lower version of APEX can usually be brought into and used in a later version. However, the opposite, importing a plug-in from a higher APEX version into a lower one, may not work because the older version might not support the features or changes introduced in the newer version.

To make sure everything works smoothly, it's usually a good idea to create plug-ins in a lower version of APEX that you intend to use them in. This way, you can be confident that your plug-ins will seamlessly import and function in APEX environments with the same or higher versions, avoiding any complications.

Looking for APEX plug-ins?

There is no doubt that one of the best things about this popular low-code platform is its community. Not surprisingly, the plug-in directory is hosted by the community site Apex.World.

There you will find a fairly updated list of plug-ins, including both open-source/free and commercially supported ones, alongside their descriptions, author information, supported versions, and links to demo applications or Git repositories.

⚠️
NOTE: It is highly recommended to check plug-ins from a security perspective before implementation 

In summary

Using APEX plug-ins is a smart way to make your work easier and faster. You can keep all your code in one place and use it on many different pages in your project. The best thing is that you can also use the same plug-ins in your future projects, which saves you time and effort.

As noted before you can even share these helpful plug-ins with the community, so others can benefit from them too. Who knows, your plug-in might even become a part of Oracle APEX in the future, making it available to a wider audience and contributing to the APEX ecosystem.

Find out more about our APEX services