Invoking Web Services on the Siebel Mobile Web Client

This article has been submitted by Vinay Ganji explaining how to use Siebel Mobile Web Client to test Siebel Web Services in Siebel 8.1.


The Siebel Mobile Web Client can serve the same Web services as deployed on the Siebel Server, while protecting access through simple authentication. This allows developers to integrate external applications with Siebel Business Applications, and test their integrations, without having to install an entire Siebel Enterprise.

The Web service functionality is an extension of the Siebel Mobile Web Client, and runs as a separate siebel.exe process. This second siebel.exe process is started by the Siebel Mobile Web Client as its child process. The child process listens on the specified port for all Web service requests. The Web service requests are processed and sent to the EAI Inbound Dispatch Service, and then the response is sent back to the Siebel Mobile Web Client. The child process exits when the Siebel Mobile Web Client exits.

The Siebel Mobile Web Client provides the same Web service support as an EAI-enabled Siebel Server, with the following exceptions:

  • The Web service consumer, such as soapUI, must be on the same computer as the Siebel Mobile Web Client.
  • HTTPS is not supported.
  • The Stateless, Stateful, and ServerDetermine session types are not supported. Only the None session type is supported.
  • Concurrent requests are not serviced in parallel. There is only one siebel.exe process that serves Web services, so concurrent requests are queued.

NOTE: When multiple Siebel Mobile Web Client instances are running, there will not be multiple processes serving Web services. However, if the port number is modified in the application configuration file, then with the next Siebel Mobile Web Client instance a new siebel.exe process will start and listen to requests on the new port specified in the configuration file.

  • Anonymous Web service requests are not supported.
  • Chunked HTTP requests and responses are not supported.
  • User authentication is the same as for the Siebel Mobile Web Client. The following authentication formats are supported:
    • Username and password in the URL
    • Username and password inside the SOAP header
    • Username and password inside the Web Services-Security (WS-Security) header
  • The following authentication formats are not supported:
    • Single sign-on (SSO)
    • Stateful Web services using separate login and logout requests
    • Stateless Web services using a SessionToken

Enabling Web Services on the Siebel Mobile Web Client

Two new parameters have been added to the application configuration file to enable the Web service functionality: EnableWebServices and WebServicesPort.

To enable Web services on the Siebel Mobile Web Client

  • Set the following parameters in the [Siebel] section of the application configuration file, such as uagent.cfg:
Parameter Value
EnableWebServices TRUE
WebServicesPort Port number on which to listen. The default is 2330.

The next time the Siebel Mobile Web Client starts, it will start the siebel.exe child process. After the process has started, it can send requests and receive responses.

Starting the siebel.exe Process From the Command Line

When it is not required to start a Siebel Mobile Web Client instance, you can start the siebel.exe process independently using the command line.

To start the siebel.exe process from the command line

  • Enter the following command:
    • SIEBEL_CLIENT_ROOT\bin\siebel.exe /l <language_code> /c <configuration_file> /u <username> /p <password> /d <datasource_in_cfg> /webservice <port_number>
    • For example: C:\Siebel\80\client\bin\siebel.exe /l enu /c enu\uagent.cfg /u SADMIN /p SADMIN /d Sample /webservice 2330

NOTE: To stop a siebel.exe process started from the command line, you must end the process from the Windows Task Manager.

Confirming that the siebel.exe Process is Listening

You can use the netstat utility from the DOS prompt to determine whether the siebel.exe child process is listening for Web service calls.

To confirm that the siebel.exe process is listening

  1. From the DOS prompt, type the following:
    • netstat -a -p TCP
  2. Examine the output for the port number you set in the application configuration file, for example:
    • TCP mycomputer:2330 mycomputer.mycompany.com:0 LISTENING

LISTENING indicates that the siebel.exe process is listening for Web service calls.

Invoking Web Services on the Siebel Mobile Web Client

You can invoke Web services by passing credentials in the URL, in the SOAP header, or in the WS-Security header.

Example of Passing User Credentials in the URL

The URL format is:

http://<host>:<port>?SWEExtSource=WebService&Username=<username>&Password=<password>

For example:

http://localhost:2330?SWEExtSource=WebService&Username=<username>&Password=<password>

The following is an example of a request:

soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:asi=”http://siebel.com/asi/”>

<soapenv:Header/>

<soapenv:Body>

<asi:SiebelAccountQueryById>

<PrimaryRowId>99-28B0A</PrimaryRowId>

</asi:SiebelAccountQueryById>

</soapenv:Body>

</soapenv:Envelope>

 

Example of Passing User Credentials in the SOAP Header

The URL format is:
http://<host>:<port>?SWEExtSource=WebService&WSSOAP=1

For example:
http://localhost:2330?SWEExtSource=WebService&WSSOAP=1

The following is an example of a request:

soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:asi=”http://siebel.com/asi/”>

<soapenv:Header>

<UsernameToken xmlns=”http://siebel.com/webservices”>SADMIN</UsernameToken>

<PasswordText xmlns=”http://siebel.com/webservices”>SADMIN</PasswordText>

<SessionType xmlns=”http://siebel.com/webservices”>None</SessionType>

</soapenv:Header>

<soapenv:Body>

<asi:SiebelAccountQueryById>

<PrimaryRowId>99-28B0A</PrimaryRowId>

</asi:SiebelAccountQueryById>

</soapenv:Body>

</soapenv:Envelope>

Example of Passing User Credentials in the WS-Security Header

The URL format is:
http://<host>:<port>?SWEExtSource=SecureWebService&WSSOAP=1

For example: http://localhost:2330?SWEExtSource=SecureWebService&WSSOAP=1

The following is an example of a request:

<soapenv:Envelope xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema” xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:asi=”http://siebel.com/asi/”>

<soapenv:Header>

<wsse:Security xmlns:wsse=”http://schemas.xmlsoap.org/ws/2002/07/secext”>

http://schemas.xmlsoap.org/ws/2002/07/secext

<wsse:UsernameToken xmlns:wsu=”http://schemas.xmlsoap.org/ws/2002/07/utility”>

<wsse:Username>SADMIN</wsse:Username>

<wsse:Password Type=”wsse:PasswordText”>SADMIN</wsse:Password>

</wsse:UsernameToken>

</wsse:Security>

</soapenv:Header>

<soapenv:Body>

<asi:SiebelContactQueryById soapenv:encodingStyle=”http://schemas.xmlsoap.org/soap/encoding/”>

<PrimaryRowId xsi:type=”xsd:string”>04-LLSQ5</PrimaryRowId>

</asi:SiebelContactQueryById>

</soapenv:Body>
</soapenv:Envelope>

 


Please share you comments and feedback!!

One Response to Invoking Web Services on the Siebel Mobile Web Client

  1. HI Experts,

    Can anyone please clarify below quires

    1)Real time Inbound Web Service records limitations

    For example: for every five minutes i am getting 5000 records from external systems. in this case can we go for real time or batch integration?

    Web Service is capable to process these many records

    Thanks in advance

    Regards

Leave a Reply

Contribute