PeopleSoft’s Component Interface (CI)#PeopleSoft’s Component Interface (CI) is a common way to abstract Peoplesoft’s Component by encapsulating data and implementation. Typically a CI exposes component properties and provides system defined and user defined methods. Peopletools IDE provides a nice framework to develop CIs. CIs can be used in App Message, any Peoplecode and App Engines. CIs are heavy weight objects carrying artifacts like validations. Though a more lightweight object model called Application Message (popularly called as AppMessage) is now-a-days more popular among Peoplecode developers, many of the legacy applications are still exposed as CIs. Moreover, it is easier to expose a Component as a CI.
Thus, exposing CIs as WebServices provides a quick way to expose existing PeopleCode based applications to SOA world. Though versions earlier to Peopletools 8.48 supported a basic mechanism to do the same, Peopletools 8.48 provides much easier and richer framework. In Pre-8.48 world, CI to WebService was via SOAPTOCI and exposed one method as a webservice.
Service Designer in Peopletools 8.48 is a web-based designer to discover, create, publish/consume, and monitor services. One can use the designer to expose CI as a webservice with select a CI by navigating to Integration Broker->Web Services ->CI-Based Service. Providing a webservice to an existing CI is as simple as selecting operations to be exposed and generating a service.
Should I be using a component interface?#If you need to insert/update/delete data through PeopleCode, and your PeopleCode will require replicating a lot of existing business logic that already exists in a component then a component interface is the best approach. Once you learn how to use them, they will be the fastest and most robust solution for such cases.
If you are performing simple changes, then using a CI becomes overkill as there is an overhead to using a CI on both the system and on development time. Similarly, large amounts of batch processing may be too much for a CI to handle or may be considerably slower using a CI.