By Chris Malek | 10 March 2011
How to Change Search Records in Component Interface
There are times when coding with Component Interface that you need a different search record that the one defined on the component. For example, you may have an application engine that is run by some “batch” user id that may not have the appropriate row level security to access to component data. Alternatively, you may have some code that calls a component interface where the user who is in context may not normally have access to the data. However, the the code behind the scenes at save time needs to update the data as the user. For example, let’s you have have an student who performs some action in the database and you need to log that action to the 3C component which has pretty stringent row level security.
You can’t change the search records at the component interface definition. This is how I normally get around that in PeopleSoft.
- Change the search record on the component to your desired Search Record.
- Open the CI definition and look for any red "x"s over the properties on the right hand side.
- Delete those as needed.
- This could potentially break other pieces of code using this CI so be sure to do your research on where this is used and if possible use the same properties names on the new search record properties to minimize the impacts.
- On all menus where that component is placed, put a menu level search record override back to the original with row level security search record.
The end result is that the code calling the CI will result in your desired behavior (No Row Level Security) but any online web users will still have the row level security functionality.