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 December2015) 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:

  • PostBuild
  • PreBuild
  • SavePostChange
  • SavePreChange
  • Workflow

Component Record level events that are support are:

  • RowDelete
  • RowInit
  • RowInsert
  • RowSelect
  • SaveEdit
  • SavePostChange
  • SavePreChange

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 execute.

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 the %component and 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.

Limitations

  • 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 USERMAINT component and then call that component with a CI, your custom code will NOT trigger.
    • It looks like component interface should trigger the event mapping as long as you have a “menu” defined in the component interface definition. Check the CI properties and a menu can be assigned.

Additional reading

Article Categories
Author Info
Chris Malek

Chris Malek is a PeopleTools® Technical Consultant with two decades of experience working on PeopleSoft enterprise software projects. He is available for consulting engagements.

About Chris Work with Chris
Looking for pain-free PeopleSoft web services? 😀
PeopleSoft Simple Web Services (SWS)

Introducing a small but powerful PeopleSoft bolt-on that makes web services very easy. If you have a SQL statement, you can turn that into a web service in PeopleSoft in a few minutes.

Book
Integration Broker - The Missing Manual

I am in the process of writing a book called "Integration Broker - The Missing Manual" that you can read online.