Session IDs

Siebel Web Server uses session IDs to track user sessions. Servers can be configured to send session IDs either in cookies or in URLs (form fields or query strings; this is the default configuration).

The example below shows an HTTP response header with a Set-Cookie header for a session ID. Session IDs in cookies are handled automatically by Silk Performer.

Siebel Session ID in a Cookie

HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Tue, 12 Mar 2002 17:26:01 GMT
Content-Language: en
Cache-Control: no-cache
Content-Type: text/html;charset=windows-1252
Content-Length: 3043
Set-Cookie: _sn=!1.428.556d.3c8e3a29; Version=1; Path=/sales

Siebel Session ID in a URL

This example shows a fragment of an HTML frameset with a frame that incorporates a session ID in a URL.

<frameset>
  <frame name="_sweclient">
  <frame name="_swe" src="http://lab61/sales/start.swe?
                          SWEFrame=top._swe&SWECount=1&
                          _sn=!1.6c0.447b.3ceccd1b
                          &SWECmd=GetCachedFrame">
</frameset>

The Silk Performer Web Recorder generates scripts that accurately handle such session IDs.

Fragments of a Recorded Script with Session IDs

This example shows fragments of a recorded script that handles the above session ID using the following techniques:

  • A variable gsSid is declared to hold the session ID.
  • A parsing function WebParseDataBoundEx is inserted before the function call WebPageLink for parsing of the session ID, which is included in the server response of the WebPageLink function (see example above).
  • The parsed result can be used wherever it is required. In this example, it is required for a form submission.
  • Informational comments enhance readability.
var
  gsSid : string; // !1.6c0.447b.3ceccd1b

// ...

WebParseDataBoundEx(gsSid, sizeof(gsSid), "&_sn=", 1,
                    "&", WEB_FLAG_IGNORE_WHITE_SPACE);
WebPageLink("replace", "Siebel Sales (#2)", 1, "_sweapp");

WebPageForm("http://lab61/sales/start.swe", 
            SALES_START_SWE003, "Unnamed page (#2)");

// ...

dclform
  SALES_START_SWE003 <ENCODE_CUSTOM> :
    "SWERPC"     := "1",
    "SWECount"   := "1",
    "_sn"        := gsSid,// value: "!1.6c0.447b.3ceccd1b"
    "SWEJSXInfo" := "false",
    "SWECmd"     := "InvokeMethod",
    "SWEService" := "SWE Command Manager",
    "SWEMethod"  := "PrepareGlobalMenu";