Oracle Fusion Application, referenced as Fusion, is one of the latest generation ERP applications. There are many Oracle ERP systems that are prime, popular and already have a good customer base. However, Fusion has its own advantages that help to establish a new sense of stability within the enterprise. In order to stay ahead of the competition, it is always required to adapt to the ever-changing technology norms. Enterprise Mobility is the buzzword in the ERP world. In this article, you will learn about how Oracle Fusion complements Enterprise Mobility.
Customize, Integrate and Extend
While some ERP systems already have their own mobile strategy, others include development tools and interfaces that can be leveraged to mobilize them. Oracle Fusion also, has its own interfaces and APIs that can be used to mobilize it.
There are multiple ways that a user can expose web services on Fusion to fetch the existing data and to enter data into the system. However, the documentation for each of this method is lengthy and time-consuming and that also, after you know where to find it. Listed below are some of the methods that are currently available in Fusion.
The above architecture model can be considered as a reference while integrating Fusion web services to a mobile or web application.
The web services from Fusion can be consumed ideally through a Middleware that can be Oracle’s Mobile Cloud Service (MCS), Oracle Service Bus (OSB) or good old Java Middleware. Integrating with MCS makes more sense from a cloud standpoint and also, when maintenance is concerned.
There are multiple reasons why having a Middleware in place is preferred:
- Converting Soap web services to Rest services.
- Converting base64 encoded BIP services to Rest services.
- To provide support in implementing features, such as push notifications in mobile.
- To implement an extra layer of security by encoding credentials required for BIP services.
- To implement queuing mechanisms to support HTML Simulation APIs.
- Single Sign On (SSO) implementation.
The custom connector is based on HTML simulation method and is required only, in the case where the Oracle seeded APIs fall short of meeting the requirements. This is discussed in detail in the coming section.
The simulation of Fusion can be achieved using Python or Java and the API created using this method can be deployed in a server accessible to the Middleware. This can be deployed on a Cloud or on an on-premises server.
Fusion Application Web Services
The most sought after or preferred method for extending Fusion is the use of documented seeded APIs that Fusion provides for each of its functionalities. The following link will provide the documentation for all the Rest and business object web services available in Oracle Fusion under each release.
Business Object Services
The Fusion soap web services are primarily the business object in a soap format. It contains all the data that is part of the business object. This means a typical Fusion GET API will fetch all the parameters that are part of the business object, whether we want it or not. With all SaaS applications, it is not possible to customize the seeded APIs according to our requirement.
This means GET APIs from Fusion tend to be rather bulky especially, if the API is using SOAP protocol.
However, for POST APIs, it is recommended that we use the seeded web services, primarily because the fusion web services will and should handle all possible scenarios that a custom web service cannot.
One must note that when using these web services, the user should have the required roles assigned to access specific web services, depending on the functionality.
The web services enable the access to the business objects which can be easily found by navigating to the Developer Connect in Oracle Fusion Application. This feature is available to those who have either of the following job roles: “FND_INTEGRATION_SPECIALIST_JOB, FND_APPLICATION_DEVELOPER_JOB, or ZCA_CUSTOMER_RELATIONSHIP_MANAGEMENT_APPLICATION_ADMINISTRATOR_JOB privilege.
Alternately, you can grant the ATK_WEB_SERVICE_INFO_ACCESS_PRIV entitlement to your custom role, and then grant the custom role to users who require access”.
Log in to the application, click on the Navigator and go to Tools > Developer Connect.
When it comes to Enterprise Mobility, Rest services are always preferred due to the fact that they are lightweight, perform better and can easily be integrated.
Oracle also, provides a set of Restful services that can be used for integration to external system. A complete list of these web services can be found in the link below:
As mentioned earlier, the Fusion business object web services are rather bulky and from a mobility standpoint, it can cause performance issues. Also, in case of Fusion web services, customizing data and performing data functions is not possible as the web service can only be used to fetch the entire business object. A work around for this is to make use of the in-built BI publisher for Fusion application to create reports that fetch the data according to our requirement. This report is in real time and the data is available as soon as it reaches the database.
- Fusion exposes a set of web services that can be used to validate a user, run or schedule BIP reports, etc. The details of these web services are available in the below link, ‘hostname’ being the host name of your Fusion instance.
- The runReport endpoint in the web service PublicReportService_v11, can be used to run a BIP report and fetch the output of the report as a base64 encoded string. But to do so, the output format of the report should be kept as xml only. This will enable the API to pass the output of the report in xml format which will then be base64 encoded. The input parameters can be setup under the Parameters tab in the data model used to create the report.
- However, the BIP data model only supports SQL statements and anonymous blocks. It cannot be used to do DML operations. Data can be passed as output from the anonymous block by using a REFCURSOR as an output bind variable.
- A user who is invoking the PublicReportService_v11 should have the BIConsumer duty role assigned to access the service.
Some of the latest modules incorporated into Fusion, such as OTL, still don’t have proper web services to extend it to other interfaces. But these web services are expected to be introduced in upcoming releases of Fusion. That being said, there are possible methods for extending functionalities which do not have web services. If HTML simulation appeals to you, then you can try it. The custom connectors are built based on HTML Simulation method and makes use of Python.
- In simple term, in the HTML Simulation method, what looks like a normal web service POST call would open a Fusion instance in a browser window on your server. Log in using the provided credentials, navigate to the required Fusion screen and enter the details that you provided in your mobile application into the Fusion screen and save or submit the details. Hence, we are simulating data entry from Fusion Application using a web service call.
- In our experience, we have found that a Python simulation deployed on cloud offers the best performance and success rate for this method. But the result and performance is solely based on the requirement and your Fusion instance. If the instance is facing issues such as session logout or is taking time to load, you can expect the same from the simulation API.
Also, depending on the number of concurrent web service calls, the server configuration needs to be scaled up.
- It is recommended to implement a queuing mechanism to service concurrent requests to improve the success rate of the APIs. MCS, having its own database can be leveraged to implement this. If OSB or Java is your Middleware, an extra database needs to be setup to achieve this.
- Another point to keep in mind in case of simulation is that, it is heavily dependent on the Fusion UI and any changes or customizations added to the UI will require similar effort on the API part as well.
The disadvantages of this method mentioned above is an acceptable trade-off considering the fact that this method can be used to mobilize any requirement in Fusion.
With robust out-of-the-box functionalities, Oracle Fusion is in the right path of providing flexibility in complementing Enterprise Mobility. As of today, we have the necessary web services and feasible workaround to achieve our requirements. With the right architecture and a proper UI design, any shortcomings or performance issue in the available APIs can be handled in the best suitable way. In future, we can expect to have more web services and lesser work around.
Anoop Ramachandran Vengalil
Senior Software Engineer, RapidValue