Neolane - JavaScript API - v6.1.0

Unknown
SoapService

Enables you to perform SOAP calls on a Web service.

Blocking calls
The following is a typical example of use: You must first create a connection then a service using this connection then finally declare the SOAP methods for this this service. The SOAP method is exposed in the form of a JavaScript method of the service object.
var cnx = new HttpSoapConnection("http://localhost/nl/jsp/soaprouter.jsp", "utf-8", 0)
var session = new SoapService(cnx, "xtk:session")
session.addMethod("GetOption", "xtk:session#GetOption",
	["token", "string", "name", "string"],
	["value", "string", "type", "byte"])

var result  = session.GetOption("admin/", "NmsBroadcast_DefaultProvider")
var value   = result[0]
var type    = result[1]
logInfo("Value = " + value)
logInfo("Type = " + type)
Non-blocking calls
It is possible to perform non-blocking (asynchronous) calls, i.e. to run a SOAP query to a server and to continue executing the script without waiting for the result.

The mains differences with the blocking mode are:

  • The connection must be created in asynchronous mode
  • Use the start function.
  • Define a complete function on the service, to be called upon when the response is received.
  • The SoapService.wait function is used to wait for the end of processing for a set of queries.

The following example script makes a series of 'GetOption" SOAP calls to a Neolane server by opening 3 connections simultaneously.

var list = [
      "XtkDatabaseId",
      "XtkKey",
      "WdbcTimeZone",
      "NmsServer_URL",
      "NmsBroadcast_DefaultProvider"]

var requests = []

function complete(service, result, context, status)
{
  if( status == "success" )
    logInfo("option " + context + ": value = " + result[0])
  else if( status == "fault" )
    logInfo("option " + context + ": fault = " + result.message)
  else
    logInfo("option " + context + ": " + status)

  sendNext(service)
}

function createService()
{
  // Create the connection
  var cnx = new HttpSoapConnection("http://localhost/nl/jsp/soaprouter.jsp", "utf-8", 0, true)

  // Create the service
  var service = new SoapService(cnx, "xtk:session")
  service.addMethod("GetOption", "xtk:session#GetOption",
    ["token", "string", "name", "string"],
    ["value", "string", "type", "byte"])

  // Change the timeout to 5 seconds
  service.timeout = 5000

  // Setup the callback function
  service.complete = complete

  return service
}

function sendNext(service)
{
  if( list.length == 0)
    return

  // Pick an item from the list
  var name = list.shift()

  // Use the name as context
  var context = name

  // Send the request
  var req = service.start(context, "GetOption", "admin/", name)

  // Add the request to the wait queue
  requests.push(req)
}

// Open 3 connections and start a request on each one
sendNext(createService())
sendNext(createService())
sendNext(createService())

SoapService.wait(requests)
logInfo("Done.")
      
Methods
SoapService Creates a service to call the functions of a Web service.
addMethod Declares a function on the service.
dispose Frees the resources used by the object.
start Launches a query in asynchronous mode.
wait Waits for the end of a list of asynchronous SOAP queries.
Properties
complete Function to call up when an asynchronous query is finished.
header A character string verbatim copied in the SOAP header.
timeout Maximum wait time in milliseconds in case of an asynchronous query. If this parameter isn't defined, the wait time is 5 minutes.
Features
Available in:
  • Content management
  • Delivery properties
  • Delivery message
  • Typology rule
  • Import
  • JSSP
  • SOAP Method
  • WebApp
  • Workflow

Table of contents

previous page start next page