Monday, March 18, 2024

How to customize the BPM Notifications in Oracle Fusion Cloud

In this post we learned about customizing Workflow Notifications using BIP templates and in this post we learned about customizing the pages using Sandboxes.

Now, let's learn about customizing some BPM Notifications using Sandbox option. 

But before we begin, let's understand Why is this option needed ? This is because there are many BPM Notifications which do not have a BIP component associated with them. In such cases, we cannot customize a BIP template to add our customizations and that's why we need to use Sandboxes to enter and customize such BPM notifications. So let's see how it can be done.

- First, we need to create a Sandbox

- Navigate to Configuration -> Sandboxes

- Create Sandbox

- Select Page Composer tool, give a suitable name for the Sandbox and click Create and Enter

- Now click on the Bell icon (Notifications) and click on Show All button

- Now, click on Worklist button

- This will open the BPM Worklist page

- Navigate to Administrative Tasks option

- Now, lets select 'Any' Option under Status and click Advanced option under Search

- Now, find the BPM task you want to customize, select it and click Ok

- Click Search

- This will show all the notifications matching the search criteria

- Let's click on one of the notifications

- Locate the Edit option on top right corner and click on it

- This will load a new page that provides us the access to customize this BPM Notification

- Let's click on Structure tab

- Now, lets assume we want to add a custom static text in Recommended Actions section

- Let's click on Recommended Actions Section and then click on + sign in the Right Pane

- Click on Components

- Let's select Text component and click Add and then click Close

- Now, we will see a new Text box has been added to this section

- Now, navigate to Add Content tab

- Now, click on Edit Text option under the newly created Text box

- Enter the custom text message in the box and click Done Editing

- Now click on Close button

- This will take us back to the list of all the BPM Notifications based on our search

- Let's click on any of the notifications in this list

- A pop-up will show this notification and we will be able to see our changes are reflecting under Recommended Actions section

- Now, we have successfully incorporated the BPM Notification customization but it's still not available to any other user in this environment since the Sandbox has not been published

- Let's close the BPM Worklist page and click on our Sandbox name in left top corner and click on Publish

- This will show a pop-up asking for confirmation. Click Yes

- This will take us to the Sandbox details Page where we will be able to see the Page Composer under the Active Tools section and we will also see the actual Page (.jspx file) that we modified by doing the BPM Notification Customization

- Let's click on Publish. This will ask us the final confirmation because this action cannot be undone. Click on Yes to publish these changes so that the customized BPM Notification is available to all the users in this environment

That's it. With these steps, we have successfully customized a BPM Task Notification using Sandbox feature.


Friday, March 1, 2024

How to integrate Fusion Cloud REST APIs into Excel using VBCS

In earlier posts, we have seen how the REST APIs in Fusion Cloud work and how we can leverage them for various use cases. Normally we invoke REST APIs either via integration layers like Oracle Integration Cloud (OIC) or some other cloud platforms like Azure, APEX etc.

But, what if there's a requirement to fetch the Fusion Cloud data into an Excel sheet ? Well, technically in some cases we can use ADFDI to achieve some part of this but it's not a desired option as it also opens options like inserting or updating new data into Fusion Clous. What if the requirement is only to provide an option to the users where they can refresh/fetch the latest Fusion data into Excel sheet with just one click ? Well, we can achieve this by using Oracle Visual Builder Excel add-in. Let's see how we to do this.

- Download Oracle Visual Builder Add-in for Excel from here

- Install the Add-in on your machine

- Once installed, you will be able to see the Add-in in Excel options as shown below. Make sure it's enabled.

- Open a new workbook in Excel

- Now we will see a new option named 'Oracle Visual Builder' in Excel menu

- Let's click on Designer option

- This will bring up a pop-up asking the Web Address of the Fusion REST API

- We have to enter the Web Address as Instance Link/ followed by REST API endpoint followed by 'describe'

- For example, let's assume we want to invoke Get All Suppliers REST API to fetch all suppliers from Fusion Cloud.
Get All Suppliers API:

- Now, the Add-in will try to connect to your Fusion Instance and you will be asked to provide Login credentials for a valid Fusion user.

- After successful login, you will be shown all the business objects provided by the REST API

For example, for our Supplier REST API, we will see Business Objects pertaining to Suppliers, Business Classifications, Contacts, Sites etc.

- Select the business object you would like to populate in the Excel and click Next. Let's select Suppliers for our use case

- Select Table Layout on the next screen and click Next

- Now, we will be asked to select any Optional business objects on next screen. Let's not select any in our use case and click Next.

- Click Finish

- Once done, you will see a new Sheet named Suppliers has been created and you will also see Layout Designer section on the right side

- To avoid performance issues, Oracle restricts the download of bulk data. So we have to mention at least some search criteria. This is very much like the Standard Suppliers page/form.

Under Query, we must enter at least one search criteria. Once done, click on the Download Data option under the Add-in menu.

let's add a search criteria for Supplier name containing 'xyz'

-  Click on Download Data button

- Once download is completed, you will see the Status details in a new section on the right side and actual data on left side. In our case, it extracted 5 Suppliers from the REST API.

- As we can see, by default, it shows all the fields provided by REST API under business object. So let's remove additional fields and keep only the ones we need.

To do so, let's navigate to Columns section in Layout Designer, select the columns we want to remove and click Delete button.

- Now, let's click on Download Data option again and this time it will download all the eligible Suppliers based on our search criteria and will generate the sheet with only our selected columns.

So, this way we can leverage Visual Builder Excel Add-in to provide flexibility to users by creating some excel sheets to show certain information from Fusion Cloud. This can also be used to create or update information in Fusion Cloud, depending on which REST API we use and base on the user account selected to invoke the REST API.


Thursday, February 1, 2024

How to create a Progressive Web App (PWA) in Oracle APEX

Alright, we all know the capabilities and benefits of Universal theme in Oracle APEX and the seamless user experience it delivers whether the application is accessed from a Desktop browser or a Smartphone browser. Due to its responsive nature, it certainly provides a native app like UI when accessed from a smartphone.

But what if we want to deliver an App to users which they can install and use just like a Native app on their phone as well as provide them additional benefits that come with a Native app such as Push notifications, some offline capabilities etc. ?

Well, look no further. Progressive Web App is here to solve all these problems. Let's take a look at that.

- Create a new Application

- Navigate to Shared Components

- Under 'User Interface' section, go to Progressive Web App option

- On PWA Settings page, we will need to enable below two options:

  - Enable Progressive Web App

  - Installable

- We can also set various other options which help us decide how the App should behave once it's installed on the Device.

Display: We can decide if the App should be displayed in a Standalone or Fullscreen mode etc.

We can even decide what should be the Orientation of the App on the mobile device. For example, if the App should operate in Landscape orientation or Portrait. 'Any' option will let you use the App baed on Device's orientation.

We also have iOS specific setting to set the Status Bar Style on iOS Device -

- Now, let's upload a sample screenshot in the PWA definition. The screenshots uploaded at this place are shown to the end users when they try to install the App. This is very similar to a App Store listing that we see on iOS App Store or Android Play Store.

- Let's upload a sample screenshot that shows how the App will look like

- Click Create

- Apply Changes

- Now our App is enabled for PWA. That means, the app can be 'Installed' on a smartphone and it will operate independently like other apps on the device.

- All we need to do is to open the App URL once in the mobile device's browser and we should be able to install the App from there.

- Here is the list of supported OS and their Browsers through which we can install a PWA app on a mobile device:

- Now, let's open the App URL on the smartphone browser and Sign In. I'm using Chrome browser on an Android phone but the same can be done using above listed browsers based on which OS you are using.

- Once we login, we can see an icon in top right corner that looks like a Cloud with a Download sign.
Let's Tap on that.

- Now, you will see below Pop Up offering you to install the App on your device.
Tap Install

- You will see a message that tells us the installation has begun

- Followed by a confirmation message

- Now, let's close the browser and go back to Home screen on our smartphone. We will see our newly installed App over here.

- Now, we can simple open the app like any other native app on our device. This not only eliminates the need of accessing the Apex app via a web-browser but also enables many native app specific features, which we will see in next few blogs.