Appendix: Integrating a Case with Third-Party Systems

This appendix provides an overview of the Case Enterprise Integration Point (EIP) and discusses how to:

Click to jump to parent topicUnderstanding the Case EIP

The Case EIP integrates the PeopleSoft CRM case with third-party systems. The Case EIP is developed generically for PeopleSoft Support, HelpDesk, HelpDesk for Human Resources, Service Center for Higher Education, and all PeopleSoft CRM verticals. The Case EIP enables you to:

This is a guide for technical users, installers, system administrators, and programmers who implement, maintain, or develop Case EIP.

Click to jump to parent topicDefining Case EIP Functionality

This section discusses:

Note. Some of the EIPs and business projects described in this section are also available as business processes, or BPEL (Business Process Execution Language), which are described in an appendix in this PeopleBook.

The case web service uses PeopleTools web service and service operation technology, and it has a similar process flow to the case EIP.

See Also

Delivered Web Service and Service Operations

Click to jump to top of pageClick to jump to parent topicAssumptions About the Case EIP

When considering the Case EIP, you must be aware of the following:

Click to jump to top of pageClick to jump to parent topicCase EIP Functionality

The Case EIP provides a bi-directional EIP in PeopleSoft CRM for PeopleSoft Support, HelpDesk, HelpDesk for Human Resources, Service Center for Higher Education, and all PeopleSoft CRM verticals. It provides a transactional framework that enables your call center to send and receive case information to and from any third-party applications.

This diagram illustrates the Case EIP process flow:

Case EIP process flow

Click to jump to top of pageClick to jump to parent topicDelivered EIPs

The following EIPs, as shown in the previous diagram, are provided:

Note. If the request contains a case ID, a new case is not created. The existing PeopleSoft CRM case is updated with the pertinent information supplied in the request. If the case ID passed in is invalid, no case is updated and an error message is sent back.

Warning! When you create a case, make sure the value of the CASE_ID field in the request message is empty or 0. When you update a case, make sure the CASE_ID value is a valid value that exists in the CRM RC_CASE table.

Case Synchronous EIP

The third-party application sends a request to CRM to create or update a case and waits for the response. Once the system processes the case in CRM, confirmation information is sent back to the third-party application.

This EIP has one web service (RC_CASE_REQUEST_SYNC), which contains one service operation (RC_CASE_REQUEST_SYNC) with two messages:

The processing details are as follows: when a request message is received, the on request event calls an appropriate case component interface (CI) to process information from the request message and saves the information into the Case component. The system sends a response message back to the third-party system with confirmation information. The response message may contain information that CRM populates, such as case ID, assigned provider group, and agent.

Since the third-party system is waiting for the response from CRM, the system processes only one case per message.

Case Asynchronous EIP

The third-party system sends a request to create or update a case, and it is not waiting for the response. Once the case is created or updated, CRM publishes confirmation information back to the third-party.

This EIP has two web services:

The processing details are as follows: when CRM receives the request, it calls the appropriate case CI to create or update a case and then publishes case information back to the third party.

Since the third-party system is not waiting for the response from CRM, the request message may include information from multiple cases in one message. CRM processes them one by one. The system issues a commit at the end of each successful case.

Request Case Information EIP (Synchronous)

The third-party system sends a request to CRM to find case information. The request may contain multiple cases. CRM processes the request and sends the information for the case or cases back to the third-party system.

This EIP has one web service (RC_CASE_INQUIRY_REQ_SYNC), which contains one service operation (RC_CASE_INQUIRY_REQ_SYNC) with two messages:

The processing details are as follows: the request message may have one or more Case IDs, the on request event is triggered, and the CRM system processes the rowset of the message to populate case information, one by one. The system uses a direct SQL query instead of a CI.

Click to jump to top of pageClick to jump to parent topicTechnical Process Flows

The logic of EIP #1 (Case Synchronous EIP) and #2 (Case Asynchronous EIP) are the same except for the way in which they are initiated.

EIP #1 is triggered from an OnRequest event. The system generates a sync response message and returns it to the third-party system.

EIP #2 is triggered from an OnNotify event. The system publishes a response message for the third-party application.

EIP #1 and #2 share the same PeopleCode function, ProcessCaseEIP is defined in the FUNCLIB_RC_EIP.CASE_EIP field formula.

The following diagram illustrates the technical process flow for both EIP #1 and EIP #2:

Process flow for EIP #1 and EIP #2

This list indicates where you are in the process flow diagram:

1. The third-party sends an XML request to CRM by way of the integration gateway by using a web service.

3. If integration broker (IB) does not recognize the format, the message is trapped in integration broker.

The process fails (this is standard integration broker functionality).

See Enterprise PeopleTools 8.50 PeopleBook: Integration Broker.

See Enterprise PeopleTools 8.50 PeopleBook: Integration Broker Administration.

4. OPRID, which is required, is used to validate whether the user has access to the requested case.

Once the user passes security checking, the system creates a case or updates it through integration broker. The integration broker user ID is used to create or update a case. This is the user ID that is used to start the application server.

5. If the user passes the security check, the system obtains a session for component interface processing.

6. When creating a case, BUSINESS_UNIT is required.

The system automatically assigns the next new CASE_ID. If BUSINESS_UNIT is not supplied when creating a case, CRM uses the default business unit from user preferences. When updating a case, only CASE_ID is required since it is a unique identifier.

7. Based on the Case ID value, the system decides whether to insert or update a case.

When no Case ID is provided, CRM creates a case by calling the create() method of CI. When the Case ID is provided, CRM checks whether the Case ID exists in CRM. If it exists, the case is updated by calling the get() method; otherwise, the system does not do any case processing. The system generates a response message with CASE_EIP_STATUS = 1 (failed) and CASE_EIP_ERROR_MSG - Update failed. Case 123 does not exist in CRM. PeopleCode function IsCaseExist in FUNCLIB_RC_EIP. The CASE_ID FieldFormula checks if the case exists.

8. If the create() or get() method fails, the system generates an error message in RC_CASE_EIP_ERR for the response message.

The system cancels the CI to reset the instance (process 11), and sends the response message with the error message back to the third-party (process 12).

9. Once the create() or get() method passes successfully, CRM sets the CI properties as supplied in the request message.

When the third-party application sends a request to create a support case or a Higher Education case for a company contact or consumer, CRM requires customer and contact information.

For customer information, the third-party application can either provide CUST_ID or BO_ID_CUST.

If BO_ID_CUST is provided, CRM uses it directly to create a case.

Conversely, if only CUST_ID is provided, CRM uses the RD_COMPANY table to derive BO_ID_CUST in order to create a case.

The function to get BO_ID_CUST is based on CUST_ID is the PeopleCode Function GetCustBObyID in FUNCLIB_RC_EIP.CASE_ID FieldFormula.

For contact information, the third-party application can either provide the PERSON_ID or BO_ID_CONTACT.

When BO_ID_CONTACT is provided, CRM uses it directly; otherwise, contact PERSON_ID is used to derive BO_ID_CONTACT from the RD_PERSON table.

The function to get BO_ID_CONTACT is based on PERSON_ID, the PeopleCode Function GetPersonBObyID in FUNCLIB_RC_EIP.CASE_ID FieldFormula.

Considerations for HelpDesk or HelpDesk for Human Resources Cases, or for Service Center for Higher Education Case for Worker

The third-party application must provide employee information when it sends a request to create a help desk case. To create a case, the third-party application must also supply the EMPLID, as CRM uses it to derive appropriate BO_ID_CUST with ROLE_TYPE_ID_CUST.

BO_ID_CUST and ROLE_TYPE_ID_CUST need to be populated internally for a case.

Note. Tip: When creating a support case for a customer, make sure BO_ID_CUST (or CUST_ID), ROLE_TYPE_ID_CUST, BO_ID_CONTACT (or CONTACT_PERSON_ID), ROLE_TYPE_ID_CNTCT is provided. When creating a HelpDesk case for an employee, make sure the EMPLID is provided. The POI (person of interest) is supported for PeopleSoft HelpDesk for Human Resources cases only. Third-party vendors must pass a valid worker for creating an IT help desk case, and a valid worker or POI for creating a HelpDesk for Human Resources case. Higher Education cases support company contact, consumer, and worker. When creating a Higher Education case, provide either customer or employee information based on what type of case you want to create.

15. If the setting of a CI property for a field fails, the system traps an error message in the &PSMessage object with information on which field caused the error.

The following diagram illustrates the technical process flow for EIP #3:

Process flow for EIP #3

1. The third-party application sends an XML request to CRM by way of the integration gateway.

2. If the integration broker (IB) does not recognize the format, the request is trapped in integration broker.

The case process fails.

See Enterprise PeopleTools 8.50 PeopleBook: Integration Broker.

See Enterprise PeopleTools 8.50 PeopleBook: Integration Broker Administration.

3. When a message is passed in from integration broker, the PeopleCode process begins.

The system checks if the case ID exists in PeopleSoft CRM. If the case does not exist in PeopleSoft CRM, the system sends back a response message with an error message (process 5).

4. If the case exists in CRM, PeopleSoft CRM checks if the user has access to the case component based on the market and vertical, and the system gathers market and vertical information.

If a user does not have access, a response message is sent back immediately with the access denied error message (process 5).

The function to check access permission is:

IsUserAuthorized in FUNCLIB_RC_EIP.CASE_ID FieldFormula.

5. Once the user passes the security check, the system executes a direct SQL query to get all case related information and send it back to the third party (process 8).

Click to jump to top of pageClick to jump to parent topicError Handling

When a required field contains an invalid value in a request message, or the save event fails, the process fails. The system copies the request message over to response message, and the response message is sent back to the third party with an error message.

When a non-required field contains an invalid value, the system ignores that field and case processing continues. The system sends back a warning message.

Here are some tips:

Click to jump to parent topicImplementing Case EIP

This section discusses:

Click to jump to top of pageClick to jump to parent topicCode Processing for Case EIP

For Case EIP #1 (Case Synchronous Message), the entry point is in the service operation RC_CASE_REQUEST_SYNC OnRequest handler. It calls ProcessCaseEIP function in FUNCLIB_RC_EIP.CASE_EIP FieldFormula.

For Case EIP #2 (Case Asynchronous Message), the entry point is in service operation RC_CASE_REQUEST_ASYNC, onNotify handler. It calls the same ProcessCaseEIP function as EIP #1.

For Case EIP #3 (Request Case Synchronous Message), the entry point is in service operation RC_CASE_INQUIRY_REQ_SYNC OnRequest handler. It calls ProcessCaseInquiry function in FUNCLIB_RC_EIP.CASE_EIP FieldFormula.

Click to jump to top of pageClick to jump to parent topicSetup Configuration

The two setup options for case EIP are:

Number of Notes for a Case

The Max # of Notes in Web Service field indicates the maximum number of notes to return in the request EIP. The case component can contain an unlimited number of notes. This setup affects Case EIP performance when trying to process hundreds or thousands of notes for a case. Based on your business requirements, you can set the upper limit number for Case EIP.

Note. This setting is only applied to response messages. Request messages process all notes that a third party sends.

For instance, the customer sets the default number of notes for the response message at five. When the request message contains more then five notes, the system processes all the notes that are saved into the case. When a case contains more than five notes and a third party is requiring case information, then the system returns only the five most recent notes in the response message.

This page shows the Max # of Notes in Web Service field on the Call Center Definition - Options page:

Default Value for Source Web Service

A customer can define the source value to use when creating a case using the Case EIP. It can be a different source value from the cases that are created online.

This example shows the Case Defaults page:

Note. The source EIP web service options are driven by business unit.

Case EIP Setup

Activate these service operations along with their handlers and routings:

As delivered, PeopleSoft service operations are inactive. In both your PeopleSoft CRM and your third-party application, you must:

See Also

Enterprise PeopleTools 8.50 PeopleBook: PeopleSoft Integration Broker Testing Utilities and Tools

Enterprise PeopleTools 8.50 PeopleBook: Integration Broker

Enterprise PeopleTools 8.50 PeopleBook: Integration Broker Administration