Building or adopting a Component Interface is an exercise in reverse-engineering how a component behaves online before writing a single line of PeopleCode. Skipping the online analysis phase is the single most common cause of failed CI projects.
Before opening Application Designer, log into PIA and manually key 5 to 10 representative transactions into the target component (both Add a New Value and Update/Display):
SETID or BUSINESS_UNIT controls valid values on a downstream field, your CI code will need to set those properties in the exact same order.Open the target Component in Application Designer and inspect its internal structure:
Add, Update/Display, Update/Display All, Correction).ComponentChanged(), DoSaveNow(), WinMessage(), Transfer(), or %CompIntfcName branches.
Never build a custom Component Interface without first checking whether Oracle already delivers one for the component. Right-click the Component definition in Application Designer and select Find Object References.
For example, running Find Object References on the USERMAINT component returns two delivered Component Interfaces: USER_PROFILE and USER_PROFILE_SYNC.
*SYNC Component Interfaces: Many components have multiple delivered CIs, including *SYNC variants (such as USER_PROFILE_SYNC on USERMAINT) built specifically for Integration Broker EIP message synchronization. If you open USER_PROFILE_SYNC, you will find it exposes only two read-only properties (OPRID and OPRDEFNDESC) and none of the collections or methods needed to create or maintain a user. Always inspect the exposed properties, collections, and custom methods of every delivered candidate before choosing one.
By contrast, inspecting the delivered USER_PROFILE Component Interface reveals all the Level 0 properties, the EmailAddresses, IDTypes, and Roles collections, and four custom PeopleCode methods (ResetPassword, ResetPassword_AlphaNum, SetPassword, SetUserDescription):
If no delivered CI fits your requirements, create a new Component Interface in Application Designer (File > New > Component Interface), select the target Component, and click Yes when prompted to default the properties from the underlying component.
Auto-defaulting exposes every field on every page of the component, which creates a bloated and brittle interface. Immediately clean up the new CI definition using these five rules:
DERIVED or *_WRK records, check whether FieldEdit or SaveEdit PeopleCode validates them. On USERMAINT (USER_GENERAL page), typing a password into PSOPRDEFN.OPERPSWD fires FieldEdit PeopleCode that compares it against the confirm-password work field PSUSRPRFL_WRK.OPERPSWDCONF. If you delete OPERPSWDCONF from your CI, you will never be able to set a user’s password through properties.
USERMAINT exposes five collections (PSOPRALIAS, PSOPTIONS, PSROLEUSER_VW, RUN_CNTLLDAP, PSUSEROTHER_VW), including RUN_CNTLLDAP, which comes from a hidden grid at the bottom of a page that is never used during normal user maintenance. Delete unused collections and properties so your API surface stays small and readable.
Long fields: Application Designer does not automatically expose Long Character (Long / LONG VARCHAR) fields when defaulting a CI. If your integration needs to populate a comments or long description field, drag it manually from the component tree (left pane) into the CI properties (right pane)._1 property names: Because CI property names must be unique within a scroll level, Application Designer automatically appends _1, _2, etc. whenever the same field name appears on multiple records at the same level (for example, DERIVED.EMPLID becomes EMPLID and PERSON.EMPLID becomes EMPLID_1, or PSROLEUSER_VW.ROLENAME becomes ROLENAME_1 because a work field on the same scroll already claimed ROLENAME). Always rename cryptic _1 properties to clear, self-documenting names, and consider renaming collections to friendly business names (just as USER_PROFILE renames PSUSEREMAIL to EmailAddresses and PSROLEUSER_VW to Roles).
Find (or Create) if callers should only ever retrieve or update known keys. Reducing allowed methods tightens security and prevents accidental wildcard searches.Every Component Interface—even when called from an Application Engine batch program or Integration Broker handler—checks whether the current runtime user (%OperatorId) has Permission List authorization for the specific CI method being invoked (Get, Create, Save, Cancel, Find, and any custom methods).
To grant access, navigate to PeopleTools > Security > Permissions & Roles > Permission Lists, open the appropriate Permission List, go to the Component Interfaces tab, add the CI name, click Edit, click Full Access (All), click OK, and click Save.
PSAUTHBUSCOMP): Adding a Component Interface row to the Component Interfaces tab on a Permission List and clicking Save does nothing by itself! You must click the Edit link on that row, set the individual method permissions (Get, Create, Save, Cancel, Find, and custom methods) to Full Access, click OK, and then save the Permission List. Until you click Edit and grant method-level access, no rows are written to PSAUTHBUSCOMP (or AUTHORIZEDACTIONS remains 0), and runtime calls will fail with Not Authorized (90,6).Look up any record, field, page, or component, audit security, and monitor Integration Broker across every database — in seconds.
A web console built for the PeopleSoft community — operational monitoring, security auditing, and metadata browsing in one tool.
On-demand security and operational reports for your PeopleSoft environment — no client install required.
Research any PeopleSoft object and monitor system health from a single browser tab — no App Designer, no SQL.
Chris Malek is a PeopleTools® Technical Consultant with over two decades of experience. He is available for consulting engagements.
Work with ChrisSWS turns SQL into production REST APIs — ready for AI, modern apps, and partner integrations. One install, unlimited potential.
A powerful PeopleSoft bolt-on that makes REST web services easy. You bring the SQL, SWS handles the rest.
Traditional PeopleSoft web services cost $3,600–$13,000 each to develop. SWS deploys production REST APIs in under 5 minutes through configuration alone.
Turn PeopleSoft data into clean REST APIs for AI integrations, modern applications, and vendor data feeds. Configuration-driven — no PeopleCode required.