Customizing taskflows: Adding parameters to WebCenter taskflows

In a previous post I explained the basics about customizing taskflows in WebCenter. This post goes one step further and will explain how we can add input parameters to WebCenter taskflows and use those parameters to drive the taskflows.

As an example we will customize the profile taskflow from the Peoples Connection services by adding parameters so we can decide which parts of the profile we want to display.
You can download the application with the customization here.

Oracle Open World 2012 wrap-up

My second open world has come to an end and I can look back with a good feeling. It was a great conference.

Open World is not all about getting your brain washed by Oracle PM's and sales reps. It's also about networking and catch up with partners or customers. I have to say, I had a great time doing both. My brain is now fully washed and I caught up with some lovely chaps.

Read more to find an overview of all the events and presentations I attended. Comments are more than welcome.

Adding a runtime picker to a taskflow parameter in WebCenter

In a previous post I have explained how you can create a LOV for an input parameter in WebCenter.
You can go a step further by creating a popup to allow the user to select items or do more complex things. The picker for an input parameter is a simple taskflow so you can make it as complex as you want to meet all your requirements.

I will use the same technique to build a more useful example. Instead of adding a picker for a custom taskflow, I will create a picker for an out of the box taskflow from WebCenter.

In this example I will create a picker for the features Off parameter of the document explorer. This parameter allows you to customize the document explorer by disabling certain features. The problem with this parameter is that you have to know the exact name of the feature which few people actually know.

That's why I have decided to create a picker so you can easily check a checkbox for the features you want to disable.

Adding a runtime LOV for a taskflow parameter in WebCenter

For a while I have wondered how we can customize the parameters tab for a taskflow in WebCenter.
Some OOTB taskflows like document manager and content presenter have these nice LOV's for certain input parameters. At first I thought this was not documented but I finally found how to do this.

I thought it would require some configuration on the taskflow definition but that's not the case. It is an extension on the Oracle composer so we have to define the LOV's on the composer level and not on the taskflow level. That's probably why I never found the documentation. I was looking in the wrong place...

You can find the official documentation about how to do this here.

The examples are quite simple so I was thinking in making a more useful example. In this post I will create an employees taskflow which will take the department as an input parameter. The user will be able to select the department from a LOV in the parameters tab.

Working with Customization Classes in WebCenter

In WebCenter each customization that you do is stored in a layer in the MDS. This is nicely explained in the ADF Documentation.

WebCenter uses this functionality quite heavily. Almost everything you do at runtime is stored as such a layer on top of your basic application.

Most people who have been working with WebCenter for a while understand this part but not many people know or understand how to manipulate the layer selection. You can control in which layer those customizations are stored or which layer to display depending on your own business logic.

ADF Tutorial Chapter 3: Creating a Master-Detail taskflow

In chapter 2 we have build a data model in the data layer. Now it's time to make the data layer work for us.

This chapter is all about the view layer. We are going to use the data control to build the pages so users can update the reference data like Country and Category. These forms are quite basic so it will be an easy part.

Chapter 4 will be bigger as we will create LOV's for the reference data.

This is an overview of what you will learn in this chapter:

  • What is a taskflow
  • What is a Data Control
  • Introduction to the binding layer
  • Create data aware forms

ADF Tutorial Chapter 2: Basics of ADF Business Components

In Chapter 1 I have explained what we will build and how the data model looks like. Now it's time to do something with that data model and make it work for us!

Business Components allow us to easily map the database object and extend on it with business logic, validation and so on.

The idea behind Business Components it to abstract the data layer from the view layer. This is a key concept in the MVC pattern. Business Components will expose the interface to the view layer by using an Application Module which contains View Object. Those view objects will contain a specific usage of the data layer.

If this explanation sounded a little abstract, no worries. I will explain this later on with some examples and everything will become clear.

If you didn't start with chapter 1, please have a look at it because you need to the data model to be able to follow this tutorial.

In this chapter you will find answers to following questions:

  • What are entity objects
  • What are view objects
  • What is an application module
  • How do we create business components from tables
  • How to use the application module to test and populate the data model.

WebCenter Portal Tutorial Part 7: Integrating Discussions and Link service

By now you should be familiar with creating pages, managing the navigation, integrating content and so on.

When we talk about an Enterprise 2.0 portal, it's not just about content and having the ability to create pages at runtime. One of the important aspects of an Enterprise 2.0 portal is allowing users to collaborate with each other. This can be done by writing a wiki, connecting to each other and having discussion forums available.

In the next few sections we will be adding discussion services to our portal. I will show you how you can use the Jive software to create categories so you can manage the forums and how we manage them in the portal.

We will also use the link service from WebCenter which will allow us to link documents to existing discussions. By doing so, we can create a direct link from the details page of a training to the discussion about that training. This gives a better user experience for the user and provides a much more intuitive interface.

Adding parameters to taskflows in the resource catalog

Everybody who works with WebCenter knows about the Resource Catalog. It allows you to provide the users with a catalog of components so they can customize the page by adding these components.

The resource catalog can take taskflows, portlets, folders, documents and much more. Most of us will know how to manage the resource catalog by adding these components and arranging them in folders.

There is one nice feature that is not that well know but can provide powerful functionality. It often happens that a taskflow or portlet has to be reused in different pages with the exact same set of input parameters. Most of the time people put these taskflows on the page and provide the parameters for each instance.

The resource catalog provides us with functionality to preset certain parameters of the taskflow or portlet. These are called URL Parameters and are provided in the bottom section of the component.

Customizing taskflows in WebCenter Portal

A lot of questions on the OTN forums are about customizing the out of the box taskflows for WebCenter. Although the documentation from Oracle is quite straight forward and complete, it lacks proper examples and use cases. It just explains the very basic concept on how to customize taskflows.

Therefore I am going to focus a little more on customizing these taskflows. This will be the first of many posts about customizing taskflows.

In this post I will describe the basic concept for customizing taskflows in a WebCenter Portal application. Later on, I will explain how to do the same thing in WebCenter Spaces.

For this post we are going to change the Content Presenter taskflow. More specific, we are going to add an Update Metadata link on the single item display of the content presenter. We will only change a specific section of the content presenter so I will explain the process on how to know where to find the files and update them.

Finding the correct file and section in the file is the most difficult part about customizing the taskflow. Therefore I will explain the process in this post.

ADF Tutorial Chapter 1: Introduction

As said in the introduction, this tutorial is to provide back-end functionality for our VIE portal that we are building in the WebCenter Tutorial.

Our online education agency requires some back-end system to manage subscriptions, students, teachers and so on. Some of these features require WebCenter but this tutorial will only focus on ADF which means that we are going to build a separate application and integrate this in WebCenter later on in the other tutorial. So don't expect to see much WebCenter in this tutorial. Business Components, Security, taskflows, managed beans and so on, this is what this tutorial is all about.

ADF Tutorial

Next to the WebCenter Tutorial I came up with the idea of writing an ADF tutorial. One of the reasons why I create this separate tutorial is that ADF is just too big to cover in a single section in the WebCenter tutorial. During WebCenter trainings I gave I noticed that people know WebCenter but often miss the basic concepts about ADF like business components, taskflows, binding layer, data control and so on. Because of this I believe it will be helpful for the WebCenter developer to understand ADF better. ADF is the foundation of WebCenter so it is really important for every WebCenter developer to understand the concepts and this is often missing in their skill set. I hope this tutorial will reduce this gap. Because this tutorial is a spin off from the WebCenter tutorial, we will work in the same domain which means that we will be building a back-end system for the VIE portal where people can manage subscription for courses, basic HR management from teachers and so on. We will also be using and integrating these functionalities in the WebCenter tutorial but this will be a section dedicated to the integration in a section in the WebCenter tutorial. I will also mainly focus on the topics that are important for the WebCenter developer. Therefore I will not use JDeveloper 11g R2 but I will stick to JDev 11g R1 in order to comply for WebCenter.

Updating metadata in a WebCenter Content Presenter template

I already made some post explaining that a content presenter template can do more than just present the content. You can add pagination or a read more link but you can also add real functionality that can be useful for the content owner or administrator.

For example in this post I will explain how we can add a link to the content presenter that will open a popup where we can update the metadata of the content.

Updating metadata of the content will be done by using RIDC which is the native API for connecting to WebCenter Content where the content is stored.

In this post I will not only show how to build this template but also how to use RIDC and reuse the connection defined in JDeveloper or Enterprise Manager.

Inter-Component-Communication between Taskflows in ADF and WebCenter

In my Inter Component Communication series I explain how we can allow components to communicate with each other. I already explained how portlets can communicate with each other by using parameters and how you can pass parameters from a portlet to a taskflow.

In this post I will explain how we can allow two taskflows to communicate with each other by using contextual events. This is a concept introduced by the ADF framework. I have to admit, when I develop ADF application I seldom use contextual events but when developing taskflows for WebCenter, it suddenly gets really important. The reason for this is that a portal requires its components to be able to communicate with other components without knowing about these component in advance.

From a portlet this has been standardized by the JSR 286 standard. When working with taskflows we need something similar and this is contextual events. This is the same principle as triggering and consuming events from a portlet. So basically Oracle introduced a portal concept in its ADF framework which is a good thing.

Configuring WebCenter Content for WebCenter Spaces PS5

WebCenter PS5 has been released for a while now and people who have done some extensive testing probably know that there are some issues with content integration.

When Oracle releases a patch set, it releases it for all of the products within a stack. This means that at the same time of the WebCenter Portal PS5, WebCenter Content got his patch set as well. That patch set replaced the folders_g component with the FrameworkFolders component which has more benefits over the folders_g. Especially when it comes to performance.

There is just one slight problem with this change and that is that WebCenter Portal/Spaces is not yet ready for this change. it still uses services that are only available in the folders_g component and not in the FrameworkFolders component.

Best practices for using ADF Business Components in WebCenter

ADF Fusion web Applications and WebCenter Portal applications are two different types of applications. Although WebCenter Portal is based upon ADF it works a little different than a regular fusion web application.

For instance it is a good practice to separate the development of your portal and your taskflows. The reason for this is that you can reuse the taskflows in other portals or you can easily plug them into WebCenter Spaces.

When you are building a portal, you probably have to write some transactional taskflows that will connect to a custom database. A portal is not just about collaborative services or integrating external applications. Most of the time you have to build some functionality and include it into the portal.

Because WebCenter is using ADF, it is a wise decision to build those functionalities with ADF Business Components as your data layer.

When building Business Components for a portal there are a few best practices that I would like to recommend. They help to minimize the integration effort and maximize the reusability of your components which is one of the key features of a proper designed portal.

Using pagination in the WebCenter Content Presenter

A lot has been written about the content presenter and many people say it is a very powerful tool to integrate content from WebCenter Content into your portal. I fully agree with this but sometimes the content presenter lacks functionality that you would think would be out of the box.

One of those functionalities is having pagination when you have a lot of items to display. Suppose that you want to display the contents of a folder or the result of a query and the number of results can be very large, how will you display this in a proper way to your users? Simple, use pagination! But the content presenter does not support this so we will have to build it ourselves.

In this post I will explain how we can create pagination for the content presenter by building a custom content presenter template.

WebCenter 11g PS5 has been released

It's update time again... This time Oracle has released the second patch set for the new WebCenter Portal suite. It is PS5 but we all know that PS3 was a very big update and introduced completely new concepts in WebCenter. So, PS5 is the second patch set after this major update.

In this post you can find a small overview of the changes since PS4. I haven't seen or tested everything yet so I will add more when I encounter more valuable items.

Using dynamic queries in the Content Presenter

In the past I already talked a lot about the Content Presenter. It is very powerful to display content in all sorts of way. It can interact with Site Studio elements and it is easy to use by using its wizard.

One of the hidden gems of the content presenter is not the wizard but the plain old input parameters you would expect from a taskflow. The wizard everybody uses to configure the content presenter is just a facade to hide the complexity of those input parameters. In most cases this is sufficient but when you want to do more complex things, you would soon bump into issues by using the wizard.

Suppose that you want to display a list of news items from different categories and display a filter so the user can select their preferred category. There is no way of doing this by using the normal way. You would need to introduce a parameter in the query of the content presenter.

In this example I will explain how it is done

WebCenter Portal Tutorial part 6: Building a taskflow and consuming it in WebCenter Portal

It's been a while since I wrote my last part of this tutorial so it's about time I continued with it. Meanwhile I got some great ideas for additional content of this tutorial so keep supporting it and I will keep posting it!

In this part I will show you how we can build a taskflow in a separate application and then import that taskflow into our WebCenter portal application. The taskflow will display a simple form so people can register themselves to our portal. The form will contain a username and password field. We will do simple checks like password and password confirmation check and display a message when the user already exist.

Before we begin, a small disclaimer: the code provided to create a user will only work to create a user in the default security realm of a WebLogic server. If you are using OID or any other external provider, the code provided in this tutorial will no longer work. The aim of this tutorial is to show how to separate the taskflows from your portal and how to include them into your portal application.

That said, let's get to work.


Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer