Categories
CRM Peoplecode Peoplesoft PeopleTools

PeopleSoft CRM 9.1 Case Corruption from My Cases Pagelet

There is a nasty bug in PeopleSoft CRM 9.1 that can lead to case data being overwritten by data from another case.

Just open two different cases from the My Cases pagelet. Each opens in a new window but they have identical URLs apart from the CASE_ID. The effect of this is that changes made to one case result in the component globals such as CASE_ID being overwritten on the second tab. If that tab is then saved, then incorrect data is written back to the database. Insidious little bug.

The bug is caused by the fact that the CREF_Transfer function in FUNCLIB_RB_MKT.MARKET.FieldFormula fails to open the new case in a new “window” e.g. _1, _2

There is a “fix” in CR 9.2 Update Image 005. All the fix does is add a global window number to the above PeopleCode and then for the My Cases pagelet only, it increments this value and does a Replace() on the link URL to add a unique _1, _2 window number.

See Oracle support bug 18349623 for more details.

WARNING!!! The above fix does not necessarily fix the issue completely. As it uses a global to keep track of the window number to use in the generated URL it is only safe if ALL links to the RC_CASE component on the home page use this function. If any of them use the PeopleCode Transfer() function e.g. the RC_RELATIONSHIP case link, then there is a real risk of the two window number ranges overlapping. If that happens, the same data corruption can and will occur. The reality is you should ensure all linkes to the RC_CASE component use a consistent approach – CREF_Transfer() or PeopleCode Transfer() function – don’t mix them! 

 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.