Defining Message and Service Operation
This section provides discusses how to:
Define Integration Broker message.
Define service operation.
Page Name |
Definition Name |
Usage |
---|---|---|
Message Definition |
IB_MESSAGE_BUILDER |
Define a message. |
Services |
IB_SERVICEDEFN |
Define or update a service. |
Service Operation Definition - General |
IB_SERVICE |
Define or update a service operation. |
Service Operation Definition - Handler |
IB_SERVICEHDLR |
Specify handler name, the handler type, and the implementation method for the handler. |
Handler Details |
IB_SERVICEHDLR_SEC |
Click the Details link on the Service Operation Definition - Handler page. Specify the handler details. |
The Integration Broker message created for EMC needs to be a rowset-based message that includes the EMC records listed in this table:
Record |
Level |
Description |
---|---|---|
EOAWEMC_HDR |
0 |
Header record for EMC. |
EOAWEMC_TXNDATA |
1 |
Transactional data record for EMC. |
EOAWEMC_PROMPTS |
1 |
Prompting record for EMC. Application will add records for the specific prompt action. |
EOAWEMC_ERRORS |
1 |
Error record for EMC. |
The application transaction record structure is added at level 2 under EOAWEMC_TXNDATA.
This example shows the Record Only view for a message created to approve expense reports. In this example, the application records that contain transactional data start with EX_EMC.
Image: Records Only view of a message used for EMC
This example illustrates the fields and controls on the Records Only view of a message used for EMC. You can find definitions for the fields and controls later on this page.
![Records Only view of a message used for EMC](img/i-1de106ban-7f0c.png)
All service operations must be associated with one or more services. You can create a new service operation for an existing service or create a new service with which to associate your service operation.
See PeopleTools: PeopleSoft Integration Broker, Managing Services, Adding and Configuring New Service Operations for Services.
You will need to create an asynchronous one-way service that uses the EMC message structure.
Note: The service operation must have the same name as the message.
See PeopleTools: PeopleSoft Integration Broker, Managing Service Operations, Adding Service Operation Definitions.
You will also need to create an application class that will to process the EMC form, to be used as the handler.
The application class created to process inbound subscriptions needs to extend the EOAW_EMC:API:emailFormManager and EOAW_EMC:utils classes.
When creating this object, you will need to pass it 2 parameters:
Your full instantiated and populated service operation.
The language code of the user(s) that will receive this email.
Note: EMC engine will handle transaction of things like field labels , however you will need to translate any values contained within your message yourself.
See Understanding EMC Classes.
EMC Runtime-Inbound
EMC inbound processing takes all the values retrieved from the user's submission and merges them with the values sent out to the user (overriding outbound values with inbound values). It then inserts those values into the same service operation used to define your form, and publishes it. You will need add a piece of subscription code to catch the published message and process the data.
Using the utils class method getErrorCodesRS(), you can get a list of error codes inserted by the EMC engine while the inbound message was being processed. The list of codes is as follows:
Error Code |
Description |
---|---|
0 |
No Error. |
1 |
Duplicate Response Received - The user submitted the form more than once. |
2 |
Sent-To Check Failed - The user to whom the email was sent is not the user from whom the response was received. Keep in mind when dealing with this error that some users have more than one email alias. |
3 |
Invalid date value error. |
4 |
Invalid number value error. |
The fields in the error codes rowset are ERROR_CODE, ROW_PATH, RECNAME, FIELDNAME, and RECEIVED_VALUE. Not all fields are used for all errors, though. ROW_PATH, RECNAME and FIELDNAME for instance are only used when an invalid date or number value is received.