New 8.55 Feature - Assigning Application Class PeopleCode to Component Events
By Chris Malek | Tue, Dec 8, 2015
I was reading through the 8.55 PeopleTools release notes (GAed December 2015) and noticed a feature that only had a small mention. However, the functionality has the potential to drastically reduce the number of customizations to delivered PeopleCode objects where you need to customize the behavior of delivered components.
If this new functionality works as described, I could re-implement many customizations I have made to delivered components using this new method instead. This would reduce cost of ownership during upgrades. It also is more configuration based.
As of 8.55, there is a new feature that is part of the “Related Content Framework” (RCF) that allows you to attach/map custom Application Class code to component events.
Said another way, you can “inject” code into those component events but have the code live in another place that is completely a “bolt-on” object.
According to PeopleBooks, you can “map”/“attach” custom code to these component events:
Component Record level events that are support are:
It looks like you can choose to run this code either before or after any
code that may exists in the event you are attaching to. It says the
application class must implement
PT_RCF:ServiceInterface and define a
single method named
What I am unclear at this point just from reading the documentation
is if the custom application class has full access to the component
buffer just as if the code was running inside the component event.
There is some example code in the Creating Application Class Service
Definitions peoplebook section that seems to show that the class does
have access to the full buffer as in that example there is some usage of
getRow() functions and they are also manipulating
the buffer data.
I have not personally tested this yet so I am
exercising some caution.
Update Jan 4, 2016 - It looks like the guys over at psadmin.io
got an 8.55 instance running and verified my questions. Checkout their
8.55 – Reduce your Customizations! post. They verified that this code does have full access to the buffer.
I would say at least 50% of the customization to delivered components could be replaced by this method and the upgrade impacts would be reduced.
It looks like in 8.55, any injected code into a component will NOT trigger in the context of a Component Interface. For example, if you have injected some code into a delivered component like @USERMA