Integration Broker has become a critical service for PeopleSoft applications. If you are new to Integration Broker or are having trouble with Integration Broker configuration, then take a look at this new Integration Broker course published by my friends at CGI consulting. The course consists of an 84 page instructional PDF and a couple of source files. The course covers everything from configuration to using SoapUI. Here are some highlights:
- Setting up Integration Broker
- Publishing a CI based service
- Testing a web service (CI or otherwise) with SoapUI
- Calling a service from PeopleCode
- Application Class PeopleCode handlers
- Routing transformations
- JDeveloper XSLT Mapper
- App Engine Service Operation handlers
- And much, much more
One item I noticed that is NOT covered is creating custom listeners and targets using the Integration Broker SDK. Not to worry, though because I cover creating custom targets in my book PeopleTools Tips & Techniques.
The CGI Integration Broker course is a great read. I recommend downloading and saving a copy for future reference.
Jim, I am sending through the IB form data from a pdf document. It comes in OK and I can process it, but the gateway is sending a response back with a content header text/xml; charset = UTF-8 and abobe is barking at it saying it cannot process this content type. Do you know of a way I can override this to say application/pdf. When I change HEADER properties on my node it still seems to pass text/xml; charset = UTF-8.
ReplyDeleteAny Thoughts?
@JCook, I have had the same frustration. I spoke with Integration Broker development about this a few years ago. In PeopleTools 8.52 REST services you will see a drop-down to select the response Content-Type, but it is limited to just the items in the list.
ReplyDeleteThe work-around I have employed is to change the response header in my Apache httpd reverse proxy (everyone should use a reverse proxy). I use mod_headers to update the content-type header. You can use the Location and LocationMatch directives to match your Integration Broker URL.
If you don't have a reverse proxy, then you can write a ServletFilter and register it with your PeopleSoft web server using a URL mapping that matches your Integration Broker URL.
Subject: How to use PeopleSoft Campus Solution Delivered Web Services??
ReplyDeleteJim, I’m new to PeopleSoft and getting multiple issues during the testing of PeopleSoft Campus Solution delivered web services (like SSR_COURSE, SSR_ENROLLEMENT …). I had tested these web services by soapUI and getting following errors: Any help in this regards would be greatly appreciated.
The default node is “PSFT_HR”
(Note: - I’ve used documents “Enrollment Web Services Users Guide” & “Enrollment Web Services Developers Guide” as a reference document)
Test 1:
Service Name = SSR_COURSE
Service Operation = SSR_GET_COURSE
Request in SoapUI:
INSTITUTION * = PSUNV
SSR_ALPHANUM =
SUBJECT = STATS
SSR_CRS_SRCH_MODE = D
ASOFDATE = 2011-05-27
Response in soapUI:
Fault code: Client
Fault string: An Error occurred processing this request (14098,286)
Default Title: Integration Broker Response
Message ID: 14732-6
Default Message: Error during Get Courses, Contact the Administrator
Security Message: E
Test 2:
Service Name = SSR_ENROLLMENT
Service Operation = SSR_GET_ ENROLLMENT
Request in SoapUI:
EMPLID = SR13454
ACAD_CAREER = UGRD
INSTITUTION = PSUNV
STRM = 0530
Response in soapUI:
Fault code: SOAP-ENV: Server
Fault string: null
IB Response type="error
Default Title: Integration Broker Response
Status Code: 20
Message ID: 974
Default Message: Integration Broker Sync Handler: OnRequest for message SSR_GET_ENROLLMENT could not run to completion on node PSFT_HR. (158,974)
Parameter: SSR_GET_ENROLLMENT
Parameter: PSFT_HR
@Imran, did you look at errorLog.html or msgLog.html? These files exist in the PSIGW web app's directory in your weblogic (or websphere) PeopleSoft domain directory. You can configure the log level in the integrationGateway.properties file or online in the Domain advanced configuration page. This Post tells you how to change the log level.
ReplyDeleteHello Jim,
ReplyDeleteI am testing a CI based web service using SoapUI. The CI is based on a delivered component. When I test the CI through app designer in 2-tier and 3-tier mode it is working fine. But when I expose the same CI as a web service, I get an error message (Error Saving Component Interface). I have given all the necessary permissions to the user to access the CI. Am I missing something?
@Narender, you might want to look in the app server log and also increase your IB log level and look at the msgLog.html and errorLog.html to see if there is more information regarding the error. The app server log should show why it can't save. It may have to do with data, and not security.
ReplyDeleteYou might also want to post this question on the OTN PeopleSoft General Discussion forum.
Hello Jim,
ReplyDeleteI configured the IB between HR 9.1 and CS9.0 after the CS-HR split.
Our org. decided to use Subscriber Only model,
So I configured the IB on both the systems CS 9.0 and HR 9.1 Local gateways, Local nodes and remote nodes, we often get the boomerang issues once in a week or once in two weeks, not sure how to fix this, Currently we are doing the following to fix it, we set up a notification, text message to cell phone and an email, we'll receive if we see a bunch of messages are transferring between the systems. And then we inactivate the Service operation and cancel the message that causes the boomerang issue, and activate the service operation.
Is there any better solution that i can follow, the solution that oracle gave in the document in the Feature Pack 4, has lot of configuration has to be done, So i am looking for a better solution,
Thank You
@Afjal, I am familiar with the CS/HR split, but I am not familiar with a boomerang issue. Messages coming into an Integration Gateway/Integration Broker instance are routed based on configuration. Normally, for each service operation, you will have a system of record (the publisher) and a subscriber. In the subscriber system, you will have an inbound routing. In the publisher system, you will have an outbound routing. The publisher should NOT have an inbound routing. The subscriber should NOT have an outbound routing.
ReplyDeleteIt is possible to have routings that send from one node to another, with no local subscription. This is common in a hub/spoke model, but it sounds like you are using a point-to-point model. If you have any hub/spoke node to node routings, then this may be causing your problem because it sounds like you intended to configure for point to point.
It really sounds like a routing configuration issue. Make sure only have the necessary routings configured. You shouldn't have any to local or local to local routings unless specifically identified by you or the configuration documents (for example, HR uses local to local routings to subscribe to worker and personnel messages).
Let me know if I misunderstood the issue.
Jim,
ReplyDeleteEach database has their own Local Gateway & Local nodes configured as per the oracle documentation, and I configured the IB for some of the service operations to go the messages both directions (As per Oracle terminology its called Subscriber Only model, We call as bidirectional), from CS to HR and HR to CS in the routing definitions., I am sure I did inactivated all the other Routing's are inactivated in the Routing Definitions. Only Routing's active are CS to HR and HR to CS.
Thank You
That is what I thought. For each service operation, a node should either be a publisher or a subscriber, not both. A node can be a publisher and a subscriber, but each service operation should be one or the other. It should not be both with the same service operation and the same nodes. You can configure it this way, but it is not a best practice.
ReplyDeleteThink of it this way, which system is the system of record for the PERSON_BASIC_SYNC message? It should be HCM, right? If that is the case, then HCM will ONLY have publish (outbound) routings for the PERSON_BASIC_SYNC service operation and every other system will only have inbound/subscribing routings for that same service operation.
Another common example is USER_PROFILE. If you allow each node to maintain and publish USER_PROFILE changes, then each node will be a publisher and a subscriber. You can do this, but it is not recommended. The best practice is to make one node the system of record and have publish (outbound) routings only. All other nodes have subscription (inbound) routings only.