Académique Documents
Professionnel Documents
Culture Documents
Gateway
a) Make sure the gateway is up and the connectors are loaded
1
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 Server
and the Default Local Node (in the case below it’s 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 below
was 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.html”
to be generated. This file provides additional troubleshooting information, and can
be found in the same directory as the errorLog.html
(<PS_HOME>\webserv\<PIA_DOMAIN>\applications\peoplesoft\PSIGW).
2
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 store
them.
NOTE: The screenshot below was taken from another environment than the previous screenshots.
3
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 select
the CI as shown below.
c) Click on the Review CI status.
4
d) If the Service and Service Operations don’t 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
6
7
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, it’s a good idea to open each
of the service operation(s), selecting the “User/Password Required” checkbox on the service operation’s
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 steps
below, 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 screenshot
below.
b) Select the checkbox next to the Service name and click Next.
8
c) Select the checkboxes next to the Service Operation names and click
“Next” 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
d) Press Next again
10
e) Press “Finish”. If you have a UDDI server already configured, you can
also publish to it.
11
f) The URL in the screenshot below can be used by 3rd party tools to
discover the web service and import the wsdl, etc.
NOTE: Some 3rd party tools may force you to include the message schema files in
the WSDL itself prior to importing the WSDL. If so, you’ll 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.
12
If you copy the above URL into a browser you should be able to view the wsdl. Here’s a
sample (on the next page).
13
NOTE: Prior to trying to open the wsdl in a browser as shown above open the
GETWSDL 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.
14
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 shown
below. Add Service Operation permissions to the appropriate Permission Lists
(sample shown below).
15
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 to
test.
16
Here’s a sample Find request from a PT 8.49 system
<?xml version="1.0"?>
<soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance/">
<soapenv:Header xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<wsse:Security soap:mustUnderstand="1"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsse="http://docs.oasis-
open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken>
<wsse:Username>PTDMO </wsse:Username>
<wsse:Password>PTDMO</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<Find__CompIntfc__STATE>
<COUNTRY>USA</COUNTRY>
<STATE>CA</STATE>
</Find__CompIntfc__STATE>
17
</soapenv:Body>
</soapenv:Envelope>
<?xml version="1.0"?>
<wsdl:definitions name="CI_STATE.1"
targetNamespace="http://xmlns.oracle.com/Enterprise/Tools/services/CI_STATE.1"
xmlns:M221555.V1="http://xmlns.oracle.com/Enterprise/Tools/schemas/M221555.V1"
xmlns:M500768.V1="http://xmlns.oracle.com/Enterprise/Tools/schemas/M500768.V1"
xmlns:M760694.V1="http://xmlns.oracle.com/Enterprise/Tools/schemas/M760694.V1"
xmlns:M953815.V1="http://xmlns.oracle.com/Enterprise/Tools/schemas/M953815.V1"
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://xmlns.oracle.com/Enterprise/Tools/services/CI_STATE.1"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsp="http://schemas.xmlsoap.org/ws/2002/12/policy">
<wsp:UsagePolicy wsdl:Required="true"/>
<plnk:partnerLinkType name="CI_STATE_PartnerLinkType">
<plnk:role name="CI_STATE_Provider">
<plnk:portType name="tns:CI_STATE_PortType"/>
</plnk:role>
</plnk:partnerLinkType>
<wsdl:types>
<xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:import namespace="http://xmlns.oracle.com/Enterprise/Tools/schemas/M760694.V1"
schemaLocation="M760694.V1.xsd"/>
<xsd:import namespace="http://xmlns.oracle.com/Enterprise/Tools/schemas/M953815.V1"
schemaLocation="M953815.V1.xsd"/>
<xsd:import namespace="http://xmlns.oracle.com/Enterprise/Tools/schemas/M221555.V1"
schemaLocation="M221555.V1.xsd"/>
<xsd:import namespace="http://xmlns.oracle.com/Enterprise/Tools/schemas/M500768.V1"
schemaLocation="M500768.V1.xsd"/>
</xsd:schema>
</wsdl:types>
<wsdl:message name="M760694.V1">
<wsdl:documentation>M760694</wsdl:documentation>
<wsdl:part element="M760694.V1:Find__CompIntfc__STATE" name="parameter"/>
</wsdl:message>
<wsdl:message name="M953815.V1">
<wsdl:documentation>M953815</wsdl:documentation>
<wsdl:part element="M953815.V1:Find__CompIntfc__STATEResponse" name="parameter"/>
</wsdl:message>
<wsdl:message name="M221555.V1">
<wsdl:documentation>M221555</wsdl:documentation>
<wsdl:part element="M221555.V1:Get__CompIntfc__STATE" name="parameter"/>
</wsdl:message>
<wsdl:message name="M500768.V1">
<wsdl:documentation>M500768</wsdl:documentation>
<wsdl:part element="M500768.V1:Get__CompIntfc__STATEResponse" name="parameter"/>
</wsdl:message>
<wsdl:portType name="CI_STATE_PortType">
<wsdl:operation name="CI_STATE_F">
<wsdl:documentation>CI_STATE_F</wsdl:documentation>
<wsdl:input message="tns:M760694.V1" name="M760694.V1"/>
<wsdl:output message="tns:M953815.V1" name="M953815.V1"/>
</wsdl:operation>
<wsdl:operation name="CI_STATE_G">
<wsdl:documentation>CI_STATE_G</wsdl:documentation>
18
<wsdl:input message="tns:M221555.V1" name="M221555.V1"/>
<wsdl:output message="tns:M500768.V1" name="M500768.V1"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="CI_STATE_Binding" type="tns:CI_STATE_PortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="CI_STATE_F">
<soap:operation soapAction="CI_STATE_F.V1" style="document"/>
<wsp:Policy wsu:Id="UsernameTokenSecurityPolicyPasswordOptional" xmlns:wsu="http://docs.oasis-
open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsp:ExactlyOne>
<wsp:All>
<wsse:SecurityToken wsp:Usage="wsp:Required" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-
200401-wss-wssecurity-secext-1.0.xsd">
<wsse:TokenType>wsse:UserNameToken</wsse:TokenType>
<Claims>
<SubjectName MatchType="wsse:Exact"/>
<UsePassword wsp:Usage="wsp:Optional"/>
</Claims>
</wsse:SecurityToken>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
<wsdl:input name="M760694.V1">
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="literal"/>
</wsdl:input>
<wsdl:output name="M953815.V1">
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="CI_STATE_G">
<soap:operation soapAction="CI_STATE_G.V1" style="document"/>
<wsp:Policy wsu:Id="UsernameTokenSecurityPolicyPasswordOptional" xmlns:wsu="http://docs.oasis-
open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsp:ExactlyOne>
<wsp:All>
<wsse:SecurityToken wsp:Usage="wsp:Required" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-
200401-wss-wssecurity-secext-1.0.xsd">
<wsse:TokenType>wsse:UserNameToken</wsse:TokenType>
<Claims>
<SubjectName MatchType="wsse:Exact"/>
<UsePassword wsp:Usage="wsp:Optional"/>
</Claims>
</wsse:SecurityToken>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
<wsdl:input name="M221555.V1">
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="literal"/>
</wsdl:input>
<wsdl:output name="M500768.V1">
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="CI_STATE">
<wsdl:documentation>CI_STATE</wsdl:documentation>
<wsdl:port binding="tns:CI_STATE_Binding" name="CI_STATE_Port">
<soap:address location="http://gsplas144.us.oracle.com:7061/PSIGW/PeopleSoftListeningConnector"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
19
6. Testing from SendMaster – We strongly recommend that you test using
SendMaster utility before integrating with the 3rd party system. This will help ensure
that 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.
<?xml version="1.0"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance">
<soapenv:Body>
<Find__CompIntfc__STATE xmlns="http://xmlns.oracle.com/Enterprise/Tools/schemas/M760694.V1">
<COUNTRY>USA</COUNTRY>
<STATE>CA</STATE>
</Find__CompIntfc__STATE>
</soapenv:Body>
</soapenv:Envelope>
<?xml version="1.0"?>
<soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance/">
<soapenv:Header xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<wsse:Security soap:mustUnderstand="1" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken>
<wsse:Username>PTDMO </wsse:Username>
<wsse:Password>PTDMO</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<Get__CompIntfc__STATE>
<COUNTRY>USA</COUNTRY>
<STATE>CA</STATE>
</Get__CompIntfc__STATE>
</soapenv:Body>
</soapenv:Envelope>
7. Start SendMaster. You can do this either by executing StartSendMaster.bat found
in <PS_HOME>\sendmaster folder or the one in the PIA domain directory. To use
the standalone version <PS_HOME>\sendmaster folder set the PS_HOME
environment varilable to the PeopleTools root installation directory. You can do this
in the command line used to start SendMaster (see example below).
20
8. Create a new Input File type SendMaster (File > New Project)
a) Server URL needs to point to the PeopleSoftServiceListeningConnector, and it
comes from the WSDL file. For example,
http://gsplas144.us.oracle.com:7061/PSIGW/PeopleSoftServiceListeningConnector
21
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. The
WSDL 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.
http://gsplas144.us.oracle.com:7061/PSIGW/PeopleSoftServiceListeningConnector
Header (second line comes from the wsdl file, and the end point URL come from wsdl
file). Note that the SOAPAction value also comes from the wsdl file.
22
Content-type: text/xml; charset=UTF8
SOAPAction:CI_STATE_F.V1
Request
<?xml version="1.0"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<Find__CompIntfc__STATE
xmlns="http://xmlns.oracle.com/Enterprise/Tools/schemas/M760694.V1">
<COUNTRY>USA</COUNTRY>
<STATE>CA</STATE>
</Find__CompIntfc__STATE>
</soapenv:Body>
</soapenv:Envelope>
Response
<?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body>
<Find__CompIntfc__STATEResponse
xmlns="http://xmlns.oracle.com/Enterprise/Tools/schemas/M953815.V1"><STATE><C
OUNTRY>USA</COUNTRY><STATE>CA</STATE></STATE></Find__CompIntfc
__STATEResponse></soapenv:Body> </soapenv:Envelope>
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 three
levels, None (Default), Header, and Header and Details. Below is a screenshot of
what the Routing definition would look like.
23
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
d) Note on monitoring SOAP requests: SOAP requests will go to an Error status if
an 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 see
whether 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 to
an Error status, while the other goes to a DONE status. So, it is important for the
calling application
25
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 of
the Monitor.
26
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.
27
</IBResponse>
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
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 that
PeopleSoft 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 your
web service client code needs to explicitly call certain functions/methods (provided
by the tool vendor) that will do this.
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 after
making changes to the CI and/or its underlying component.
28
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 or
deleted, 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 Server’s WSL port). If changes
were made to the component, it’s 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 CI’s 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.
29