AVIO Consulting

Oracle BPM 11g Process Screens Without ADF

Jun 3, 2014 | ADF, BPM, Oracle

Since the initial release of Oracle BPM 11g, user task screen development has been tied to ADF. Even though ADF is a full featured framework that enables building complex enterprise applications, there are few resources on the market with strong development skills in ADF. In addition, most Oracle BPM 10g developers have not worked with ADF. This presents a problem as enterprises who have adopted Oracle BPM 11g are now required to add ADF to their product stack and train their resources on a new technology.

The AVIO BPM 11g Proxy was created to decouple user task screens from ADF, enabling developers to use any other framework or technology to build the UIs. In this way, enterprises have the chance to choose the best suitable UI technology to build their end user interfaces and are no longer forced to adopt and learn ADF.

The AVIO BPM 11g Proxy is written in Java and has main two components: the BPM proxy and the Adaptive Layer. The BPM proxy is a web application that exposes generic RESTful services that facilitate the interaction with the BPM engine. The adaptive layer is a library that provides an API to consume BPM proxy RESTful services, hiding the complexity of dealing with generic services and the specific payload type of each human task.


Reuse your skills

One of the main characteristics of the AVIO BPM 11g Proxy is flexibility. Even though it is written in Java, it can easily be adapted to other technologies by using the proper flavor of the adaptive layer.

Thus, enterprises and developers can choose a well-known technology to create process screens thus reducing costs, mitigating risks and facilitating easier maintenance.


Success Case

The first project using the AVIO BPM 11g Proxy was a large consumer electronics company. The main purposes of this BPM based solution are to provide a single point of access to register and update customer and suppliers, assign a unique identifier that is used throughout the whole company and create the corresponding entity into several legacy systems.

The UI application developed for this solution consists of server-side components written in Java (using frameworks such as Spring, Hibernate and Jersey) and client-side components built with AngularJS and Bootstrap.

Here are the main highlights of the UI application:


The application loads very fast. Not only beacuse we used lightweight components but also because, as the client side components are HTML, CSS and Javascript files, we utilized tools to compress and concatenate them into a single file. Another speed improvement has been posible by minimizing the roundtrips to the server. Since main data processing relies on the client side components, we only go to the server when it is absolutely neccesary.


Validations and error notifications

Performing complex validations and presenting the errors to the user have been really easy. We have created a validation framework that allows to easily validate any kind of field and present the error message. In addition, by clicking on an error message, the application takes you to the location where the invalid field is and highlights it.


Easy of use

The fact that application is not tied to a particular framework provided us a lot of flexibility to create a really easy to use interface. Since we chose AngularJS, we were able to implement very dynamic pages facilitating the interaction of the user with the application.

Look & Feel customization

Adjust to the customer look & feel requirement is not difficult since the application uses very simple CSS classes. Here we used a combination of Bootstrap classes and custom CSS classes we created.


Unit and Functional tests

Creating and running automatic tests with AngularJS is very easy. There are several libraries/frameworks on the web that help to create these kind of tests. In this oppportunity, we used ngMock, Protractor, Jasmine and Karma. It was a huge advantage to have automatic and funcional tests; this allowed us to significantly improve the quality of the application and minimize the UAT period, since we automated several user test cases.

Beyond the potential and flexibility of the components used in this application, the key advantages are that all of them are widely used in enterprise solutions, have been on the market for years and are well-known by the IT community.