Sunday, 16 June 2013

Fusion Apps New Flexfield -Extensible Flexfields

An Extensible Flexfield (EFF) is similar to a descriptive flexfield(DFF), but with the added ability for customers to add as many context-sensitive segments to a flexfield as they need.
Another feature of extensible flexfields is that you can have more than one context associated with any particular row of data, and a row can have multiple occurrences of the same context. That is, extensible flexfields support a one-to-many relationship between the entity and its extended attribute rows.

Now let's go through this process of configuring an EFF. In order to do that you need to first find whether EFF exists in a Page. Below are the steps to find that. We can not use Administration -> Highlight Flexfield to mark an EFF. Here we have to use Page Composer to do that.

I have taken example for Managing Locations in HCM.

So Navigate to Nagigator -> Workforce Management -> Workforce StructureSelect Manage Locations from Locations Task Pane and search a Location e.g. Sample Location EFF
This is what you will see. This Page has an EFF and that can be seen from the next figure

The area marked in RED is where EFF has been plugged in (as delivered by Oracle).
Now we need to know the details of this EFF. So open the page through page composer (Administration --> Customize Workforece Structure Pages). When prompted select Site as the layer. We are not going to modify anything in the page. We will just be checking the details of the EFF

This will open the page in Source view. If it has not then select View -> Source from the top left corner.

Select View-> Source Position -> Left from the top left corner. This will give you larger space to go through the source structure.

Now in the page, if you select the area where EFF exists then the corresponding node in the structure will be automatically highlighted. Check the region names (take the mouse pointer on the region and it will display the Task Flow name). Find names which has EFF in it as shown.

Once you click on that it will take you to another view. Next figure shows that.When Prompted for Edit confirmation accept that.

Now in the new view you will again see some regions. Check the region which has name EFFContextsPageContainerFrag.jsff. This is the region which display the EFF in the page.
Click on Edit from the menu bar. That will open a Pop up as shown in the next picture.

Click on Flexfield Properties.

This displays the EFF Name and code. Here the EFF name is Location Information EFF. Copy the name and code and close this pop up by clicking Cancel button.
Then click on Close located at the top right corner.

Now at this point we have EFF name and code details. We will configure this EFF and add custom Contexts and context sensitive segments to it.

To configure the EFF we have to use FSM (Setup and Maintenance) task Manage Extensible Flexfields and search that.
Click on Go to Task and search the Location Information EFF.

Click on Action -> Edit.

In this screen you see EFF details along with a section named Category.
Extensible flexfields also enable implementers to combine the contexts into groups known as pages, which serve to connect the contexts so they will always be presented together in the application user interface. Hierarchical categories for can be defined for extensible flexfields, and implementers associate any combination of contexts with a given category. For example, the Electronics and Computers category hierarchy might include a Home Entertainment category, which in turn might include an Audio category and a TV category, and so on. The Home Entertainment product might have contexts that specify voltage, dimensions, inputs and outputs. Contexts are reusable within a given extensible flexfield. For example, the dimensions context could be assigned to any category that needs to include dimensional information.

As can bee seen from the above it has a Single category. Most Fusion Apps EFF are supplied with a single category. Some EFFs (e.g CRM Application) have Multiple categories and they have category hierarchy. As it has one, let's create a Context and associate it with the category. To create context click on Manage Context button

Select any existing context and then click Actions -> Edit  to see the details of the segments.

For our exercise we will create a custom Multi Row Context as shown in the next figure.

Give it a name and code. Specify Behavior is Multiple Rows. This will allow user to enter multiple rows into a Context inside a category.

Select Usage of the context as Location Information EFF. Basically a context may be reusable which means it can be used in multiple EFFs.

Select View Privilege and Edit Privilege. Then in the Context Sensitive Segments section select Actions --> Create to create segments in the given context

Enter all the Name, Code, Data Type, Table Column, Value Set, Required Display Prompt etc and then Click Save and Close.

You can click Detach the table to float the table and get extra display area.

Now for Multiple Rows Context if you do not specify an Unique Segment, then you try to save the values you will get this error. So go back and mark one segment as Unique.

You can set the Unique Segment as shown.

Now after creating all the segments and associating Table Columns and Value Sets with each of the them, you Save and Close the Context and then go back to the EFF screen. You now need to associate these custom Contexts with the EFF Category. So select HcmLocationsCategory in the Category Panel and then scroll down

Now select on Associated Contexts Tab and Click on Actions->Select and Add

This is what you will see. Search the contexts and click on Apply and Ok sequentially. In this case I have created a multi row and another as single row.

So you have now associated Custom Contexts with the Category. Click on Save. Now we want to club all the contexts and display them together. To do that we need to associate these two contexts with the existing Page which is displaying others. You can create a new Page by grouping your own custom contexts. But here we will put our contexts inside the existing Page. So click on Page Tab.
As you can see that it has one page and five contexts associated with that sequentially. You can change the sequence.

Select Actions --> Select and Add from Location Information: Associated Context Details. Search the Custom contexts and add them. You can also specify the sequences as shown.
Click on Save and Close.
From Actions select Validate Flexfield. This validate the Flexfield and displays errors if the EFF has any. You can deploy it to the instance itself by selecting Deploy Flexfield or you can deploy it to Sandbox. Sandbox is a container where you can put all your customization and then migrate the same to other instances. Also if you want to test the EFF before publishing it to the user community then you can do this by deploying it to Sandbox. 

Normally we create Sandbox first then we active it and do all customizations inside that. You create Sandboxes using Administration --> Manage Sandboxes and after creating it you can make it Active.

But here in case of EFF, if you select Deploy Flexfield to Sandbox

From the pop up box you can see that it is going to create a Sanbox, deploy the flexfield to it and then make it current active session sandbox. Click on Ok and then it displays the deployment details as shown in the next picture.

As can be seen that it has failed during deployment. Expand the Deployment Details to see the error. As it errored out I will not be able to show the EFF on the locations Page. 

I did check HCM Domain EM and found the error message that states oracle.jbo.NoDefException: JBO-25058 error. Then the MOS document Fusion PIM: Item Extensible Flexfields Deployment Ends In Error [ID 1536436.1] provided me the hint -'Attributes that were defined as Text Box and Text Area do not have height or width defined'. 

I checked my attributes and found that attributes were not having Height specified. After fixing that I redeployed the EFF and this time it was successful.
Let's go to Manage Locations task in FSM and search Sample Location EFF location. Below are the pictures which shows both Multi Row and Single Row Contexts
Multi Row Context

Single Row Context

This covers how to

  • Find Extensible Flexfield in a page ??
  • Configure the EFF through FSM ??
  • Deploy the EFF ??
  • Verify the results ??
Similarly you can follow the same process for Category Hierarchy having multiple categories.

Do let me know if you face any issue.


1 comment:

  1. Hi Mehabub Sheikh,

    Thanks for such a nice post. Your passion for knowledge sharing helps in a great way. Appreciate your hard work on this blog.

    Hope to see more of this kind of posts on HCM Fusion.

    Thanks & Regards,
    Sivakumar P