The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.

Monday 1 August 2016

Adding your own custom logic without customizing the delivered people code

Yes you have read it right. With the release of People Tools 8.55, you could customize (append would be more appropriate term) the delivered application without having to touch (or customize) the Oracle delivered people code.

Customizing the delivered code was always a pain point when the application maintenance team is considering an upgrade or applying any patch provided by Oracle. The maintenance team always have to look at the code conflicts, apply patches/upgrade, re-customize the application, re-do the custom and delivered test cases and so on. Just a single line of custom code in the delivered application may force you to take through all these steps.

With People Tools 8.55, The Related Content Configuration setting is expanded to add a new tab labeled “Event Mapping” where in you could actually map your custom written people code to a delivered people code event. All this is done through PIA and the major point to highlight here is that this is not considered as a customization and the delivered code will execute as it is in addition to your custom code. This directly means you can now apply patches and upgrades with much simpler process.

Although it now allows you to map your people code before/after the execution of a delivered people code event, this won’t allow you to change/modify the actual delivered code. If you really have to do that, then you can append your people code which first reverses the delivered logic and then implements your logic. Another limitation to note here is that right now only select few events are available for extension. Having stated that, with the current capabilities alone, you will be able to remove customization of a major part of your customizations.

Let me move on to the technical implementation of the Event mapping. As the name suggests you will be mapping your people code to a delivered event. And how that is done is via a Related Content Definition of type Application Class. The step by step process of how this can be done is listed as below.

Step 1: Create an application class which implements the delivered app class PT_RCF:ServiceInterface

Step 2: Create a method name execute() and write your custom logic inside that method.

import PT_RCF:*;
class Hello_World extends PT_RCF:ServiceInterface
   method execute();

 method execute
   /+ Extends/implements PT_RCF:ServiceInterface.execute +/
WinMessage(“Hello World”,0);

Step 3: Create a Related Content Definition with Type Application Class and select the application class you have created now.

Main Menu > People Tools > Portal > Related Content Service > Define Related Content Service

Related Content Definition

Step 4: Go to Manage Related Content Service page and select the last Tab “Event Mapping”

Main Menu > People Tools > Portal > Related Content Service > Manage Related Content Service

Select the component to which your code need to be mapped by clicking on the hyperlink “Map the event of the Application pages” and select your component from the Tree Structure.

Step 5: Now you will see two grids on the Event Mapping page. The top grid will corresponds to Component Level people code events and the bottom grid corresponds to Component Record Level people code events.

For this example let me configure/add custom code to the Post Build event of the component. So I select the event “PostBuild” on the top grid and select the service ”HELLO” created in the previous steps. Now we have two options for the processing sequence which determines whether your code needs to be executed prior to the delivered code or after the delivered code.  I am selecting “Post Process” which means my custom code will be executed after the delivered people code on that event.

Related Events Mapping

Step 6: Test your application. Open the component and see your Hello World message popping up.

Customizing the delivered application code has become a less effort task now. This new feature allows you to add your own organization specific code while enjoying the benefits of the fixes and enhancements derived by the Oracle. This is completely a non-destructive approach and I believe this will add a lot of value to your organization as well.