of 29
8/8/2019 Ib849ci Ws Setup[1]
1/29
1. Gateway
a) Make sure the gateway is up and the connectors are loaded
1
8/8/2019 Ib849ci Ws Setup[1]
2/29
b) Open the integrationGateway.properties file by clicking on Gateway
Setup Properties link on the Gateway page. Provide your credentials
when prompted. Make sure that both the Default Application Serverand the Default Local Node (in the case below its E881G20P) have an
entry containing the app server URL, UserId and Pwd, tools release,
etc. as shown in the screenshot below. Note that the screenshot belowwas taken from another system
c) Click on the Advanced Properties link on the above page to open the
integrationGateway.properties file (screenshot below). Locate the ig.log.level
setting, set the value to 5, and save the change. This will allow the msgLog.htmlto be generated. This file provides additional troubleshooting information, and can
be found in the same directory as the errorLog.html
(\webserv\\applications\peoplesoft\PSIGW).
2
8/8/2019 Ib849ci Ws Setup[1]
3/29
2. Service Configuration Page - Click on the Service Configuration Link and enter
the PeopleSoftServiceListeningConnector URL and save. Also avoid changing the
service and schema namespaces unless you have a valid location where you storethem.
NOTE: The screenshot below was taken from another environment than the previous screenshots.
3
8/8/2019 Ib849ci Ws Setup[1]
4/29
3. Expose the CI as a Web Service (part 1)
a) Navigate to PeopleTools > Integration Broker > Web Services > CI based
Services.
b) Enter the name of the CI you want to expose as a Web Service, and selectthe CI as shown below.
c) Click on the Review CI status.
4
8/8/2019 Ib849ci Ws Setup[1]
5/29
d) If the Service and Service Operations dont exist, press the Display
Selected Actions button, and the Service and Service Operations will be created.The screenshot below was taken after the Service and Service Operations were
created.
5
8/8/2019 Ib849ci Ws Setup[1]
6/29
6
8/8/2019 Ib849ci Ws Setup[1]
7/29
7
8/8/2019 Ib849ci Ws Setup[1]
8/29
3. The next step is to Provide the Web Service. To perform this step navigate to
PeopleTools > Integration Broker > Web Services > Provide Web Service as shown
below.NOTE: If you want to force the soap request to provide the Userid/password, its a good idea to open each
of the service operation(s), selecting the User/Password Required checkbox on the service operations
General tab, and saving the change before Providing the Web Service (steps below). Performing this step
prior to Providing the Web Service means that when the WSDL is generated at the end of the stepsbelow, the WSDL file will show this parameter to be required.
a) Enter the name of the Service and click Search. If the Service is found, it
will show up in the bottom portion (Search Results) as shown in the screenshotbelow.
b) Select the checkbox next to the Service name and click Next.
8
8/8/2019 Ib849ci Ws Setup[1]
9/29
c) Select the checkboxes next to the Service Operation names and clickNext as shown below. The Service Operations you select here will be make up
the WSDL file that is generated at the end of this task.
9
8/8/2019 Ib849ci Ws Setup[1]
10/29
d) Press Next again
10
8/8/2019 Ib849ci Ws Setup[1]
11/29
e) Press Finish. If you have a UDDI server already configured, you canalso publish to it.
11
8/8/2019 Ib849ci Ws Setup[1]
12/29
f) The URL in the screenshot below can be used by 3rd
party tools todiscover the web service and import the wsdl, etc.
NOTE:Some 3rd party tools may force you to include the message schema files inthe WSDL itself prior to importing the WSDL. If so, youll need to open the message
definitions associated with each of the Service Operations in the WSDL, and
copy/paste the schemas into the WSDL file.
Below is the text
Service: CI_STATE has been exported.
Inserted WSDL: CI_STATE.1 in the repository
Generated WSDL URL:
http://gsplas144.us.oracle.com:7061/PSIGW/PeopleSoftServiceListeningConnector/CI_S
TATE.1.wsdl
12
http://gsplas144.us.oracle.com:7061/PSIGW/PeopleSoftServiceListeningConnector/CI_STATE.1.wsdlhttp://gsplas144.us.oracle.com:7061/PSIGW/PeopleSoftServiceListeningConnector/CI_STATE.1.wsdlhttp://gsplas144.us.oracle.com:7061/PSIGW/PeopleSoftServiceListeningConnector/CI_STATE.1.wsdlhttp://gsplas144.us.oracle.com:7061/PSIGW/PeopleSoftServiceListeningConnector/CI_STATE.1.wsdl8/8/2019 Ib849ci Ws Setup[1]
13/29
If you copy the above URL into a browser you should be able to view the wsdl. Heres a
sample (on the next page).
13
8/8/2019 Ib849ci Ws Setup[1]
14/29
NOTE: Prior to trying to open the wsdl in a browser as shown above open theGETWSDL service operation (part of the IB_UTILITY service), make sure it is active,
and the Routing on the Routing tab (see below) is Active. If the routing is inactive,
activate it and save the setting.
GETWSDL Service Operation
Routing tab of the GETWSDL Service Operation
14
8/8/2019 Ib849ci Ws Setup[1]
15/29
4. Service Operation Security (see PeopleBooks for additional security options)a) If you want UserId and password to be required in the request, select the
User/Password checkbox to the right of the Operation Description.
b) Click on the Service Operation Security link to the right of the Operation
Alias edit box (in the above screenshot) to bring up a new window as shownbelow. Add Service Operation permissions to the appropriate Permission Lists
(sample shown below).
15
8/8/2019 Ib849ci Ws Setup[1]
16/29
5. Generating a SOAP template for initial testing To perform initial testing using
SendMaster utility you can generate a SOAP template by either (a) pressing the
Generate SOAP Template button on the last page of Providing the Web Service(see page 12 for a sample screenshot of that page); or (b) clicking on PeopleTools >
Integration Broker > Service Utilities and supplying the Service Name. Using either
(a) or (b) above should take you to the page shown below. Click on the Service
Operation link to get a sample SOAP request for the Service Operation you want totest.
16
8/8/2019 Ib849ci Ws Setup[1]
17/29
Heres a sample Find request from a PT 8.49 system
PTDMO
PTDMO
USA
CA
17
8/8/2019 Ib849ci Ws Setup[1]
18/29
Below is a sample of the WSDL file content
M760694
M953815
M221555
M500768
CI_STATE_F
CI_STATE_G
18
8/8/2019 Ib849ci Ws Setup[1]
19/29
wsse:UserNameToken
wsse:UserNameToken
CI_STATE
19
8/8/2019 Ib849ci Ws Setup[1]
20/29
6. Testing from SendMaster We strongly recommend that you test using
SendMaster utility before integrating with the 3rd party system. This will help ensurethat the PeopleSoft system is set up correctly. Below are two sample messages, one is
from a PT 8.48 system, and the second one is from a PT 8.49 system.
Below is a sample from a PT 8.48x system.
USA
CA
Below is a sample SOAP message from a PT 8.49x system.
PTDMO
PTDMO
USA
CA
7. Start SendMaster. You can do this either by executing StartSendMaster.bat found
in \sendmaster folder or the one in the PIA domain directory. To use
the standalone version \sendmaster folder set the PS_HOME
environment varilable to the PeopleTools root installation directory. You can do thisin the command line used to start SendMaster (see example below).
20
8/8/2019 Ib849ci Ws Setup[1]
21/29
8. Create a new Input File type SendMaster (File > New Project)
a) Server URL needs to point to the PeopleSoftServiceListeningConnector, and itcomes from the WSDL file. For example,http://gsplas144.us.oracle.com:7061/PSIGW/PeopleSoftServiceListeningConnector
21
http://gsplas144.us.oracle.com:7061/PSIGW/PeopleSoftServiceListeningConnectorhttp://gsplas144.us.oracle.com:7061/PSIGW/PeopleSoftServiceListeningConnector8/8/2019 Ib849ci Ws Setup[1]
22/29
b) Header Section Ensure that the SOAPAction is included in addition to the
Content-Type and charset settings. Unless you created an Alias for the Service
Operation the SOAPAction will default to the Service Operation name. TheWSDL file contains the SOAPAction entry for each Service Operation. Ensure
that the SOAPAction entry in SendMaster matches the entry in the WSDL file.
SOAPAction:CI_STATE_F.V1
c) Paste the sample SOAP request into the Input file window, press the format(right-most) button to ensure the XML is well formed. Below is a sample after
posting the request.
URL that youre posting to comes from the generated wsdl:
http://gsplas144.us.oracle.com:7061/PSIGW/PeopleSoftServiceListeningConnector
Header (second line comes from the wsdl file, and the end point URL come from wsdlfile). Note that the SOAPAction value also comes from the wsdl file.
22
8/8/2019 Ib849ci Ws Setup[1]
23/29
Content-type: text/xml; charset=UTF8
SOAPAction:CI_STATE_F.V1
Request
USACA
Response
USACA
9. If you want to view the synchronous inbound messages in the Message Monitor,do the following.
a) Open the Service operation, click on the Routing tab. On the Routing tab click on
the Routing definition link to open the Routing definition.
b) Specify the level of logging you want on the Routing definition. There are threelevels, None (Default), Header, and Header and Details. Below is a screenshot of
what the Routing definition would look like.
23
8/8/2019 Ib849ci Ws Setup[1]
24/29
c) Below is a screenshot of the Message Monitor showing one of the inbound
messages. The second screenshot below shows the Details page (result of clicking
on the Details link below).
24
8/8/2019 Ib849ci Ws Setup[1]
25/29
d) Note on monitoring SOAP requests: SOAP requests will go to an Error status ifan error occurs at the IB infrastructure level. Otherwise the request will go to a
DONE status. This is unlike typical Asynchronous messages, in which the DONE
status means that the transaction was successful. Using the Monitor to seewhether a request went to an Error or DONE status is inadequate. The calling
application needs to check the response message to determine whether the request
was successful or not. Below are two examples, one in which the request goes toan Error status, while the other goes to a DONE status. So, it is important for the
calling application
25
8/8/2019 Ib849ci Ws Setup[1]
26/29
i) Example of a request that went to an Error status The system could not
determine the CI name or method to be used. Below are two screenshots ofthe Monitor.
26
8/8/2019 Ib849ci Ws Setup[1]
27/29
ii) Below is an example of a request that went to DONE status even though the
request was not successful (logic error) The request attempted to create a
duplicate record.
Below is a copy of the response message:
SOAP-ENV:ServerComponent Interface API.
Integration Broker Response209149Row already exists with the specified keys. {STATE} (91,49)
USAMZ1
Integration Broker Response209161Failed to create the Component Interface
USAMZ1
27
8/8/2019 Ib849ci Ws Setup[1]
28/29
10. Notes on the new WSDLs The WSDLs in PT 8.48 and later, unlike the pre PT 8.48 WSDLs, reference external xsd (schema) files instead of including the
schemas in the WSDL. They also refer to WS-SecurityPolicy instead of explicitly
spelling out the specifics of the security portion of the soap header. It appears thatPeopleSoft uses and supports ws- security policy version 1.0. Given this you may not
see the username token automatically generated in the client stub code. In some cases
it may be simply a configuration change to get it generated, while in other cases yourweb service client code needs to explicitly call certain functions/methods (provided
by the tool vendor) that will do this.
The following is information provided by internal sources regarding .NET and
whether it supports WS-SecurityPolicy, etc. You'll want to do some additionalresearch and work with your vendor as well, even if youre not using .NET. If
using .NET, depending on the version of the .NET framework being used, .NET mayor may not be able to handle or simply ignore WS-SecurityPolicy references in the
WSDL. For example, if you're using .NET framework 2.0, it doesn't handle ws-
security policy. Later versions of .NET (3.0+) handle ws- security policy back to v.1.2 (not 1.0). .NET version 3.0+ generates policy assertion code in the client stub
code, and the client application still needs to invoke a certain function, which in turn
invokes the assertion code to include the username token. PeopleSoft uses ws-
security policy to describe the ws-security username token in the soap header. Thismeans that even even if the ws-policy is ignored by .NET (or another application
vendor when importing the WSDL), you're not really losing any functionality as faras the username token goes. Your client program still needs to call a specific .NETfunction (or other vendors function) to set the security credential if you want a
security token to be used when invoking the PeopleSoft web service. Below are a
couple of helpful links.
.NET v2.0 (with WSE v3) See
http://msdn.microsoft.com/en-us/library/aa528757.aspxNote: When the document in the above link refers to policy, it is specific to
Microsoft. It is not refering to WS-SecurityPolicy. Also see topic, "How to: Secure a
Client Without Using a Policy File".
.NET 3.0+ - See
http://msdn.microsoft.com/en-us/library/ms732362.aspx
Aso see topic "Message Security with a User Name Client"
11. Considerations when re-deploying the web service after making changes to the CI or
its underlying component The following are steps you usually need to peform aftermaking changes to the CI and/or its underlying component.
28
http://msdn.microsoft.com/en-us/library/aa528757.aspxhttp://msdn.microsoft.com/en-us/library/ms732362.aspxhttp://msdn.microsoft.com/en-us/library/ms732362.aspxhttp://msdn.microsoft.com/en-us/library/aa528757.aspxhttp://msdn.microsoft.com/en-us/library/ms732362.aspx8/8/2019 Ib849ci Ws Setup[1]
29/29
a. If changes were made to the component, ensure there are no validation errors
when opening or testing the CI. If records and/or field names were modified ordeleted, you will need to "re-synchronize" the component fields to the CI's
properties. Then test the CI using CI tester in 3-tier (where you log into
Application Designer through the Application Servers WSL port). If changeswere made to the component, its also a good idea to test the component online to
ensure it works as expected.
b. Delete Application Server cache, and restart the Application server. This is a
necessary step because the Application Server caches the CIs Meta Data.
c. You should delete the web service (service operations, service, WSDL, etc.).After this, expose the CI's methods again by going through the CI-Based
Service Wizard, and then re-generating the WSDL by going through the
Provide Web Service Wizard.