What Is an Extension?

Extensions are what you use to deliver new capabilities into Oracle Cloud Applications. Those capabilities may take the form of customizations you make to the App's user interface, or your extension may include things like App UIs, to deliver new pages or resources to your Oracle Cloud Applications instance.

An App UI is simply an application that includes a user interface component in the form of Visual Builder pages and flows. Some App UIs are created by Oracle—like certain Oracle Cloud Applications—but you can build your own App UIs and deploy them as peers alongside Oracle’s App UIs in your Oracle Cloud Applications ecosystem, as shown here: Description of extensionconcepts.png follows
Description of the illustration extensionconcepts.png

A single extension can contain:

  • Configurations you make to one or more Oracle Cloud Applications, and/or;
  • One or more App UIs that you create, and/or;
  • One or more resources that you want to contribute to the Oracle Cloud Application ecosystem, like a service connection, image, CSS (Cascading Style Sheets), or JavaScript function.

Note:

While technically an extension can contain all of the above, in practice it is cleaner to keep all the work for a single Oracle Cloud Application in its own extension. Likewise, each App UI that you create is better deployed in a dedicated extension as well.

Let's examine each of these options in a bit more detail.

A configuration to an App UI can be as simple as just hiding certain fields in a dynamic form or table for certain audiences, to displaying brand new content through the use of a dynamic container. You control what’s displayed at runtime on a page through the use of display logic, which you configure through rule sets. Suppose you want to configure a dynamic table in the CX Sales App UI so that certain columns are hidden and others are added when the user viewing the page is a manager. You’d create a rule that checks for the user’s role and, if the user is indeed a manager, apply the layout you’ve created that contains the desired columns. All non-managers would see the page with the default layout applied. The figure above shows these customizations for the CX Sales App UI, which are applied at runtime. You can learn more about display and layouts in Work With Layouts in Your Extension.

When would you create your own App UI? Suppose you’ve just created a custom object in App Composer, and now want to allow your users to interact with that object through a brand new set of pages. In other words, you want to create a fully functioning app, just as Oracle did when it created Digital Sales, Help Desk, and others. You’ve got the same tools that Oracle has—namely, VB Studio and JET—so you can accomplish this task in the exact same way: After creating an extension (using the None option in the Create Workspace dialog), you use the Designer to create a new App UI, then add all the pages, page flows, and all the other functionality you need. You could keep these pages as a standalone app for your end users—even make them available from the central landing page—or you could enable end users to seamlessly navigate between the pages of an Oracle-created app and your custom app simply by adding a navigation action between pages.

When might you use an extension to provide access to a commonly needed resource? Suppose you know that the team who plans to customize the Connections App UI at your site will need access to confidential employee information provided by a REST API that is usually tightly controlled. To prevent each developer from having to request access to this REST API, you create a service connection to this data in an extension, thereby allowing each person who needs the data to gain access to it simply by adding the extension as a dependency.

You may also notice that this figure contains something called a project. In VB Studio, you will likely belong to one or more projects, each of which is devoted to a discrete software effort. For example, you might have one project for all the configurations pertaining to the CX Sales App UI, and another project for the team building a new time tracking app for use by your own department. It’s important to understand what a project does because, among other things, it contains the Git repository where the work on your extension is stored. See What Is a Project? for more.

Note:

After you deploy your extension to your Oracle Cloud Apps environment, you manage the extension using the environment’s Deployment tab; you don’t manage the constituent App UIs individually. If it’s important to manage a particular App UI individually, you could create a branch in your Git repo for just that App UI and publish it separately.