• • • • • • • • • •

What is a CI ? How it works ? Why use CI ? CI Architecture How to create a CI ? Setting CI security Testing a CI Sample PeopleCode Building APIs Runtime considerations

What is a Component Interface ?
Used to integrate PeopleSoft with another PeopleSoft application or with external systems

How does a CI work ?
• Enables exposure of a PeopleSoft component for synchronous access from another application ( PeopleCode, Java, C/C++, COM, or XML) • “Black boxes" that encapsulate PeopleSoft data and business processes, and hide the details of the underlying page and data

Why use CI ?
• Loading data using CI mimics online data entry  • The data entered confirms to all PeopleSoft online validations and edits

CI Architecture
• Component • Component interfaces • Component interface API

CI Architecture

How to create a CI ?
CI is a PeopleSoft definition that can be created in PeopleSoft Application Designer

Creating a new CI definition
• File -> New -> Component Interface Prompts for the component name on which this CI defn. will be based • CI properties may/may not be based on the default properties of the underlying component • Standard methods Cancel, Find, Get, and Save - automatically created. • Create method - available only if the underlying component supports the ‘Add’ mode

Comparing CI & Component

Component (Search record) • • • Search key fields Search key fields & Alternate Search key fields Physical key (provided the component has add-mode permissions)

• • •

Get keys Find keys Create keys

CI Definitions and Views

• Methods

A function that performs a specific task on a component interface at runtime Standard methods - Find, Get, Save, and Cancel methods The Create method for components that have the “Add” action enabled User-defined methods - Functions that are made accessible through the component interface. Each function maps to a user-defined method

Properties and Collections
• Properties - fields • Collections - Scroll Standard properties InteractiveMode, GetHistoryItems, and EditHistoryItems

Enabling and Disabling Standard Methods

Creating User-Defined Methods

Setting Component Interface Security
Open the Permission list – Component Interface

Validating the Component Interface
Validation ensures that a component interface definition has not deviated from its source component To validate a component interface Open the component interface in Application Designer Select Tools, Validate for Consistency Keys that no longer synchronize with their associated components are marked with an X icon

• • •

Test in interactive mode. • Retrieve history items. • Test the standard, custom, and collection methods.

Testing the Component Interface

Component Interface Tester

Testing the Component Interface

Programming CI in PeopleCode
Generating a PeopleCode Template

• Open the desired component interface definition in Application Designer. • Insert the component interface into a project. • Save the project. • Open the PeopleCode editor. • You can associate component interface PeopleCode with a record, a component, an application message, or Application Engine. • Select the component interface from the project workspace. • Drag and drop the object from the project into the PeopleCode editor. • Make any necessary changes to the PeopleCode in the PeopleCode editor window.

Generate PeopleCode template for CI

Sample PeopleCode template • &oSession = %Session;
• • • • • • • • • • • • • • • • • &oSession.PSMessagesMode = 1; &oHcompinterface = &oSession.GetCompIntfc(CompIntfc.HCOMPINTERFACE); If &oHcompinterface = Null Then errorHandler(); Exit; End-If; &oHcompinterface.InteractiveMode = False; &oHcompinterface.GetHistoryItems = True; &oHcompinterface.EditHistoryItems = False; If Not &oHcompinterface.Get() Then errorHandler(); Exit; End-If; rem <*> = &oHcompinterface.EMPLID; rem &oHcompinterface.EMPLID = <*>; rem <*> = &oHcompinterface.NAME; rem &oHcompinterface.NAME = <*>;

Sample PeopleCode template= • rem &oHskillsetCollection
• • • • • • •

&oHcompinterface.HSKILLSET; rem For &<*> = 1 To &oHskillsetCollection.Count rem &oHskillset = &oHskillsetCollection.Item(&<*>); rem <*> = &oHskillset.HSKILLSET; rem &oHskillset.HSKILLSET = <*>; rem <*> = &oHskillset.RATING_SCALE; rem &oHskillset.RATING_SCALE = <*>; rem End-For;

• /*If Not &oHcompinterface.Save() Then • errorHandler(); • Exit; • End-If;*/ • /*If Not &oHcompinterface.Cancel() Then • errorHandler(); • Exit; • End-If;*/

Building APIs for C++ ,Java, COM
To build the component interface bindings
• • Open any component interface definition in Application Designer. Select Build, PeopleSoft APIs.

Runtime Considerations
• • • Win Message() is unavailable -> Use MsgGet() function Email From a Component Interface To use a component interface to send email, use TriggerBusinessEvent PeopleCode event, not ‘Send Mail’.

Runtime Considerations Infinite Processing Loops
A component interface should not call itself in any of the PeopleCode included within its component definition which may result in an infinite loop A component interface also should not call itself from a user-defined method

• Multiple Instances of a Component Interface Because of potential memory conflicts, COM or C++ applications shouldn’t create multiple, simultaneous instances of the same component interface, either within a single procedure, or in both a “parent” and a “child” procedure.

• CI is a powerful integration tool • Exposes a PS component for access from other third party applications (Java, C++,COM) • Data load using CI mimics online data entry

Sign up to vote on this title
UsefulNot useful