Browse Month by December 2015

PCS: Starting a process instance remotely

While implementing an Oracle Process Cloud Service PoC we had the requirement to allow users to start an instance using a form in their custom mobile application and also using the workspace.
We have a ‘Form Start Event’ so users can start the instance thought the workspace. We also added a ‘Message Start Event’ in order to publish it as a web service.
Having that process deployed, if we head to ‘Deployed Applications’ in workspace main page.

And click on the button in ‘Actions’ column.

We can see the web services exposed.

If we use that wsdl url in soapui we see that we have 2 operations, one for each of the start events.

Executing both, we can see that even using ‘Form Start Event’ we can start a process instance remotely as an operation is automatically created in the web service, so we can remove the ‘Message Start Event’ as we can meet both requirements just using the ‘Form Start Event’.

If we open aproval form in the workspace we can see that the data sent from soapui has been successfuly sent.

ADF: Display Map values in af:table

When we want to populate an af:table programatically we usually use a collection based on a java bean (e.g. List<MyObject>) but in this post of JDeveloper & ADF the developer required to populate the table with Map values.
First we need to create a Map in our bean and add the values that we are going to show in the table.

If we try to populate the table we can see tat we need to know the keys of the Map to get the values.

As you can see Value Columns displays the value in the Map for ‘Key 1’ key, but using this method we can not dynamically display all values.

To solve this issue we need to create an array in our bean where we will have all keys of the Map.

Now that we have created in our bean all that we need, we can start building the table structure.

On the table of the second image we need to make some changes. First, instead of using Map property, we have to use the key array we have just created as value property of the table.

And, as we have to access Map values, we have to add an af:iterator inside the table and add the columns we need inside this iterator. The value property of this iterator is the Map property in the bean.

This way, to retrieve keys we are going to use #{row} and to retrieve values asociated to a key we are going to use #{var[row]}.

Oce we have finished with the changes, if we run the application we can see that all the values of the Map are displayed in the table without the need of knowing the keys of the Map.

ADF: Switching between skins on runtime based on the url

Andrejus posted a couple of months ago how to switch between alta and skyros in ADF 12c. This is a cool way to start the migration from 11g to 12c and Alta UI. I am going to show you another way to use one skin or other based on the page you are.

Firstly we have to create a bean and a property inside it where we are going to store the current skin. We have to set this bean as sessionBean.

After that we have to set a bean property in skin-family in our trinidad-config so we can set the skin dynamicaly.

The next step is to create a filter. In doFilter we are going to evaluate the URL and set the skin based on that value. We also have to instantiate the bean and add it to sessionScope becasuse the first time it will be null.

Once we have the filter created we have to add it to web.xml

Now that we have all setup, having multiple pages, if we test it we can see that the the page “alta” will display AltaUI skin and “skyros” page wil dispklay Skyros skin,