Using WSDL Binding for Component Interfaces

This chapter provides an overview of the PeopleSoft implementation of the WSDL (Web Services Description Language) specification for the set of SOAP (Simple Object Access Protocol) transactions exposed for component interfaces, and covers:

Note. This chapter assumes that you are familiar with web architecture concepts, XML, web services, WSDL, and SOAP.

See Also

http://www.w3.org/TR/wsdl12-bindings

Click to jump to top of pageClick to jump to parent topicUnderstanding WSDL and Component Interfaces

SOAP is a simple protocol used for exchanging structured information in a distributed network. WSDL defines the XML grammar for describing network services as collections of communication endpoints capable of exchanging messages.

WSDL service definitions provide documentation for distributed systems and serve as a model for automating the processes involved in applications communication.

You can use both of these technologies with component interfaces.

Note. If a component interface has no authorized methods, WSDL will not be generated for it.

Click to jump to top of pageClick to jump to parent topicSetting Up Integration Broker

To set up Integration Broker for use with WSDL and component interfaces, you’ll need to do the following:

Click to jump to top of pageClick to jump to parent topicEnsuring That the SOAPTOCI Message Is Active

To check that the message is active:

  1. Open PeopleSoft Application Designer.

  2. Select File, Open.

  3. In the Definition field, select Message and enter SOAPTOCI for the Name.

  4. Click Open.

  5. Select File, Definition Properties, select the Use tab, and make sure that the Status Active check box is selected.

Click to jump to top of pageClick to jump to parent topicVerifying the Message Channel

To verify that IB_CHNL is running:

  1. Open the PeopleSoft Application Designer.

  2. Select File, Open.

  3. Select Message Channel from the Definition field.

  4. Enter IB_CHNL for the name and click OK.

  5. Select File, Definition Properties.

  6. Check that Message Channel Status is set to Run on the Use tab.

Click to jump to top of pageClick to jump to parent topicModifying the Local Gateway

You must configure the properties used by the gateway to connect to the application server. To do this, you must have a valid PeopleSoft user ID and password.

Each PeopleSoft environment that uses WSDL binding for the component interface must have its own Integration Broker running. Enter the following local default server information in this file.

See Managing Integration Gateways.

Configuring the Local Gateway

To modify the local gateway properties:

  1. Open the PeopleSoft Internet Architecture.

  2. Select PeopleTools, Integration Broker, Configuration, Gateways.

  3. Open the Gateway ID named LOCAL.

  4. Enter the gateway URL: http://machinename:port/PSIGW/PeopleSoftListeningConnector.

    In this case, machinename:port is the machine name and port, host name, or IP address of the web server hosting the gateway. You need to enter a port number for a machine only if the machine is listening on a port other than 9000.

    Note. The URL is case-sensitive.

  5. Click Save.

  6. Click Load to load the connector information.

  7. Click OK.

Editing the Gateway Properties File

To access the Gateway Properties page, click the Gateway Setup Properties link on the Gateways page and enter or change the password to sign on to the

See Accessing the integrationGateway.properties File.

  1. On the PeopleSoft Node Configuration page, click the link to access the Advanced Properties page.

  2. Edit the lines for ig.isc.*

    ig.isc.serverURL

    Set server URL.

    ig.isc.userid

    Set user ID.

    ig.isc.password

    Set user ID password. Make sure to use the encrypted value of the password.

    ig.isc.toolsRel

    Set Tools release.

    For example,

    ig.isc.serverURL=//MYSERVER:9000 ig.isc.userid=PTDMO ig.isc.password= SQmYC3cuW0= ig.isc.toolsRel=8.46

  3. Click OK.

See Using the integrationGateway.properties File.

Click to jump to top of pageClick to jump to parent topicCreating the Third-Party Message Node

The third-party message node represents the system that will be making the SOAP requests to PeopleSoft.

To create a third-party message node:

  1. Open the PeopleSoft Internet Architecture.

  2. Select PeopleTools, Integration Broker, Node Definitions.

  3. Select Add New Value.

  4. Enter a Node Name

  5. Click Add

  6. Enter node information on the Node Info page.

    See Configuring Nodes.

  7. Click Save.

  8. Select the Transactions tab.

  9. Click Add Transactions.

    Enter the following information:

    Transaction Type

    Select Inbound Synchronous.

    Request Message

    Select SOAPTOCI.

    Request Message Version

    Select VERSION_1.

  10. Click Add.

  11. Select the Messages tab.

    Enter the following in the Response Message group box:

    Name

    Set to SOAPTOCI.

    Version

    Set to VERSION_1.

  12. Click Save.

Click to jump to top of pageClick to jump to parent topicAdding Security to PeopleSoft Objects

This section covers:

Adding Security to a Component Interface

Make sure to check the following items:

Note. PeopleTools does not support custom methods for WSDL generation.

See Setting Up Permission Lists.

Adding Security for SOAPTOCI Web Library

To verify permissions for SOAPTOCI web library:

  1. Select PeopleTools, Security, Permission Lists, and select the appropriate permission list.

  2. Select Web Libraries, and verify that WEBLIB_SOAPTOCI web library is listed; if not, add it.

  3. Enter WEBLIB_SOAPTOCI in the Web Library Name field.

  4. Verify that the Access Permissions are set to Full Access for the web library functions.

See Setting Up Permission Lists.

Adding Security Access for WSDL Discovery

To enable WSDL discovery, the user profile must have access to WEBLIB_soaptoci.WEBLIB_soaptoci.WSDLSUMMARY.FieldFormula.IScript_WSDLDiscovery.

In addition, that user profile also needs to have security access for any of the component interfaces that are going to be discovered.

Click to jump to top of pageClick to jump to parent topicGenerating WSDL for a Component Interface

The two approaches for generating the WSDL for a component interface are:

Generating WSDL Using PeopleSoft Search Capabilities

Access the Published EIPs page:

To generate WSDL, using the PeopleSoft search capability:

  1. Select PeopleTools, Integration Broker, Web Services, Published EIPs.

  2. Select Component Interface.

  3. Click Search to display a list of component interfaces in the system that the given user is authorized to use.

    You can also enter the component interface name in the Web Service field and click Search to display an individual component interface.

    Note. Starting with the 8.46 release, the message node is now available for component interfaces. If you have defined SOAPTOCI against multiple nodes, a row for each node appears for each component interface.

  4. Click the WSDL link to open a new window displaying the text of the WSDL.

  5. If you have access to the methods of the component interface, they appear under the Methods column.

Note. If your web service supports uploading .wsdl files, you can copy and paste the WSDL into a .wsdl file. You can also save the file using the File, Save functionality in your browser.

Generating WSDL by Directly Accessing the iScript

To access the WSDL directly through a URL string, the user ID and password must be sent in the soap header with the tags userid and pwd. In addition, the nodename is now required.

Use the following URL format:

http://servername:port/psc/ps/PORTAL_NAME/LOCAL_NODE/s/WEBLIB_SO APTOCI.WSDLSUMMARY.FieldFormula.IScript_WSDLDiscovery?&disconnect=y&postDataBin=y&APIName= CI_NAME Nodename

For example:

http://MyServer:80/psc/ps/EMPLOYEE/PT_LOCAL/s/WEBLIB_SOAPTOCI.WSDLSUMMAR Y.FieldFormula.IScript_WSDLDiscovery?&APIName=IB_GATEWAY_CI&nodeName=QE_IBTGT

Click to jump to top of pageClick to jump to parent topicSending a SOAP Message to a PeopleSoft Application

The following code is an example of the Find request for SOAPTOCI.

<SOAP-ENV:Envelope xmlns:SOAP-ENV=" http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC=" http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" SOAP-ENV: encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Header> <Security xmlns="http://schemas.xmlsoap.org/ws/2002/xx/secext"> <UsernameToken> <Username>string</Username> <Password>string</Password> </UsernameToken> </Security> </SOAP-ENV:Header> <SOAP-ENV:Body> <Find__CompIntfc__CIName > <Key1>String</Key1> <Key2>String</Key2> </Find__CompIntfc__CIName> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Note. Passwords will be stripped off unless the log level in integrationgateway.properties file is set to 5.

Note. PeopleSoft does not support namespace prefixes in the body of the SOAP document.

Click to jump to top of pageClick to jump to parent topicUnderstanding SOAP Considerations

This section covers SOAP considerations.

Username and Password Considerations

The username and password for the security request portion of the SOAP document cannot refer to the same user that is specified for the integration gateway user. This user must have proper security access to the component interface that you plan to execute, and access to all the SOAPTOCI web library functions.

SOAPAction Header and URL

The WSDL specifies the URL and SOAPAction for sending the SOAP document to a PeopleSoft application. For reference they are shown here:

SOAPAction Header

The SOAPAction HTTP header uses this form:

http://peoplesoft.com/SOAPTOCI/TESTNODE

In this example, TESTNODE is the name of the requesting node.

See Creating the Third-Party Message Node.

URL

The SOAP Document should be sent to the following URL:

http://servername:port/PSIGW/HTTPListeningConnector

Click to jump to top of pageClick to jump to parent topicTesting SOAP to Component Interface by Using Send Master

To test the SOAP document:

  1. Verify the URL by entering it into your browser.

    The URL form is:

    http://server_name:port/PSIGW/HttpListeningConnector

  2. Locate Send Master in PS_HOME\webserver\<domain_name> .

  3. Run the batch file StartSendMaster.bat to start SendMaster test program.

  4. Start a new project, enter a project name (SOAPTOCI), then click OK.

  5. Enter the HttpListeningConnector URL in the ServerURL field.

    The URL form is:

    http://server_name:port/PSIGW/HttpListeningConnector

  6. Enter the following headers in the Headers field:

    Content-Type:text/xml http://peoplesoft.com/SOAPTOCI/THIRDPARTYNODE

    where THIRDPARTYNODE represents the name of the external third-party node that you defined earlier.

  7. Enter your SOAP request message in the Input Information field.

    You can use a program such as XML Spy to generate the SOAP request based on the generated WSDL.

  8. Click Post to post the SOAP to PeopleSoft.

  9. View the response in the Output Information box.

See Also

Using the Send Master Utility

Click to jump to top of pageClick to jump to parent topicViewing an Example of a Find SOAP Request

The following is an example of a Find SOAP request for component interface SDK_BUS_EXP:

<?xml version="1.0"?> <SOAP-ENV:Envelope xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Header> <Security> <UsernameToken> <Username>QEDMO</Username> <Password>QEDMO</Password> </UsernameToken> </Security> </SOAP-ENV:Header> <SOAP-ENV:Body> <Find__CompIntfc__SDK_BUS_EXP> <SDK_EMPLID>80</SDK_EMPLID> </Find__CompIntfc__SDK_BUS_EXP> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

The response from PeopleSoft is:

<?xml version="1.0"?> <SOAP-ENV:Envelope xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Header/> <SOAP-ENV:Body> <Find__CompIntfc__SDK_BUS_EXPResponse> <SDK_BUS_EXP> <SDK_EMPLID>8001</SDK_EMPLID> <SDK_NAME>Schumacher,Simon</SDK_NAME> <SDK_LAST_NAME_SRCH>ASD</SDK_LAST_NAME_SRCH> </SDK_BUS_EXP> <SDK_BUS_EXP> <SDK_EMPLID>8052</SDK_EMPLID> <SDK_NAME>Avery,Joan</SDK_NAME> <SDK_LAST_NAME_SRCH>AVERY</SDK_LAST_NAME_SRCH> </SDK_BUS_EXP> </Find__CompIntfc__SDK_BUS_EXPResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>