Siebel Portal Framework Guide: November 2008
Siebel Portal Framework Guide: November 2008
Copyright 2005, 2008, Oracle. All rights reserved. The Programs (which include both the software and documentation) contain proprietary information; they are provided under a license agreement containing restrictions on use and disclosure and are also protected by copyright, patent, and other intellectual and industrial property laws. Reverse engineering, disassembly, or decompilation of the Programs, except to the extent required to obtain interoperability with other independently created software or as specified by law, is prohibited. The information contained in this document is subject to change without notice. If you find any problems in the documentation, please report them to us in writing. This document is not warranted to be errorfree. Except as may be expressly permitted in your license agreement for these Programs, no part of these Programs may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose. PRODUCT MODULES AND OPTIONS. This guide contains descriptions of modules that are optional and for which you may not have purchased a license. Siebels Sample Database also includes data related to these optional modules. As a result, your software implementation may differ from descriptions in this guide. To find out more about the modules your organization has purchased, see your corporate purchasing agent or your Oracle sales representative. If the Programs are delivered to the United States Government or anyone licensing or using the Programs on behalf of the United States Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS. Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the Programs, including documentation and technical data, shall be subject to the licensing restrictions set forth in the applicable Oracle license agreement, and, to the extent applicable, the additional rights set forth in FAR 52.227-19, Commercial Computer Software--Restricted Rights (June 1987). Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065. The Programs are not intended for use in any nuclear, aviation, mass transit, medical, or other inherently dangerous applications. It shall be the licensee's responsibility to take all appropriate fail-safe, backup, redundancy and other measures to ensure the safe use of such applications if the Programs are used for such purposes, and we disclaim liability for any damages caused by such use of the Programs. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. The Programs may provide links to Web sites and access to content, products, and services from third parties. Oracle is not responsible for the availability of, or any content provided on, third-party Web sites. You bear all risks associated with the use of such content. If you choose to purchase any products or services from a third party, the relationship is directly between you and the third party. Oracle is not responsible for: (a) the quality of third-party products or services; or (b) fulfilling any of the terms of the agreement with the third party, including delivery of products or services and warranty obligations related to purchased products or services. Oracle is not responsible for any loss or damage of any sort that you may incur from dealing with any third party.
Contents
16 17
19
Configuring Business Components to Handle External Data Displaying External Content Within an Applet 20 Displaying External Content Outside of an Applet 20
21
Defining the External Host 21 Defining Web Applications 22 Defining Symbolic URLs 22 Defining Symbolic URL Arguments 24 Configuring Multiple Symbolic URLs and Hosts for Alternative Execution Locations Defining Content Fixup 27
26
28
Contents
29
Review the Login Form 29 Define the External Host 30 Define the Symbolic URL 31 Define Symbolic URL Arguments 32 Define User Login Credentials 32
33 33
37
Siebel AOM and Web Server Configuration and Markup Determination Connecting to the XML Web Interface XML Request Structure
Query String 44 XML Command Block
44
45
52
XML Error Response 52 XML Response 52 XML Response Syntax 57 HTML Response 59 WML Response 59
Common Operations
59
60
Contents
Navigating Within a Screen Querying Items 61 Modifying Records 64 Deleting Records 66 Picking Records 68
61
SWE API
70
84 91
92
Index
Contents
Table 1. Topic
Whats New in Siebel Portal Framework Guide, Version 8.1 Description Added a note to recommend using Secure Sockets Layer protocol with symbolic URLs. Changed the setting of the Log Level parameter value to None when enabling the SWE log file. Added a note about using SWEPostnApplet in a toggle cycle.
Defining Symbolic URLs on page 22 Reviewing the SWE Log File on page 33 SWE Commands on page 71 SWE Methods on page 75
This chapter provides an overview of Oracles Siebel Portal Framework and summarizes the technologies that make up the Portal Framework. This chapter contains the following high-level topics: Portal Framework Overview on page 9 Portal Framework Architecture on page 10
Portal Agents
Portal Agents provide you with a mechanism to retrieve content from a non-Siebel source and display it in the Siebel user interface. The Portal Agent retrieves content on behalf of the user, logging on to the external application using the users credentials and retrieving only the content that is targeted for the user. Portal Agents provide single sign-on capability and a profile tracking mechanism. See About Portal Agents on page 11 for more information about Portal Agents.
10
This chapter provides an overview of Portal Agents. It covers the configuration and administration tasks necessary to display external content in the Siebel user interface. It also includes a reference section that lists all the commands available for use with Portal Agents. This chapter contains the following high-level topics: About Portal Agents on page 11 Creating Portal Agents on page 16 Determining the Login Requirements on page 17 Portal Agent Configuration on page 19 Portal Agent Administration on page 21 Defining End-User Login Credentials on page 28 Example Portal Agent on page 29 Reviewing the SWE Log File on page 33 Portal Agent Command Reference on page 33
11
Symbolic URLs, with Multiple Disposition Types. Allows content to be displayed in different ways, such as in a new browser window, inline with the other content, in an <iframe> tag, or as an ActiveX object embedded in the Siebel application Web page. See About Disposition Types on page 12 for more information. Session Proxy. For content integrated using a disposition type of Inline, the Siebel Server manages the interactions with external applications on behalf of the user. For more information about the Inline disposition type, see Inline on page 13. Symbolic URL Commands. Commands that direct the Portal Agent to assemble the URL for the external application in a number of ways. These include dynamically referencing the user's login and password, retrieving stored login and password values, retrieving data from the user's personalization profile, establishing the size of an <iframe> tag, and determining whether to set the browser cookies from the application server's login page. For a complete list of commands, see Portal Agent Command Reference on page 33. NOTE: Portal Agents do not integrate data at the data layer or integrate business logic. Other mechanisms in the Siebel Portal Framework, such as Integration Objects and Virtual Business Components, are designed to meet those types of integration needs. See Overview: Siebel Enterprise Application Integration for more information about EAI.
12
IFrame on page 13 Web Control on page 14 Form Redirect on page 14 The procedure for defining Symbolic URLs is covered in Defining Symbolic URLs on page 22.
Inline
With a symbolic URL disposition type of Inline, the Siebel Server receives content sent by an external application. It combines the external content with Siebel-produced content and composes a single HTML page, which it then sends to the client browser for display to the user. Optionally, links in the aggregated content are rewritten so they reference the Siebel Server (proxy), rather than referencing the external application server directly. This allows the Siebel Server to handle links in the aggregated content in such a way that it appears to the user as one integrated application rather than from different application servers. The inline disposition type supports Session Management. The Siebel Server uses Session Management to manage session cookies and automatically relogin to an external application after a time out occurs. The inline disposition type is an appropriate option when the page you trying to integrate is a simple HTML page with simple JavaScript. If the page you are trying to integrate has complex JavaScript or references frames, then the Inline disposition type will not work and you should try the IFrame disposition type. The Inline disposition type supports the GET method only. Also, the number of characters that can appear in the URL is limited to 2048 characters.
IFrame
Use this disposition type when aspects of the external application do not allow content to be aggregated with other Siebel content. See Portal Agent Restrictions on page 14 for more information about when this may occur. The IFrame disposition type uses the <iframe> tag to create an Internal Frame as part of the page generated by the Siebel Server. It allows the Portal Agent to retrieve content to populate the Internal Frame. This content does not pass through the Siebel Server, but is directly requested by the client and sent by the application server to the user's browser. Although this disposition type is not as preferable as the Inline disposition type, in most cases, it is the method that works. The IFrame disposition type supports JavaScript and Frames. Therefore, if the Inline disposition type does not work, the IFrame option is the best option. The IFrame disposition type also supports the Session Keep Alive feature. However, it does not support Session Management. The IFrame disposition type will work in many cases. However, it does not work when frames displayed within the <iframe> tag refer to top-level JavaScript objects. If frames in the page you are trying to integrate refer to top-level JavaScript objects, then try the Web Control disposition type. NOTE: The IFrame disposition type is supported on Internet Explorer 5.5 and above.
13
Contextual Navigation Between Siebel Business Applications and Oracle Business Intelligence Pages
When an Oracle Business Intelligence (Oracle BI) page is integrated with a Siebel application through the portal framework and the portal content is dependent on the Siebel record, any change or update of the record in the Siebel application must also be reflected in the portal content. For example, an Oracle BI applet embedded in a view with the Account List applet will have its content dynamically changed at the same time the content is changed within the Account List applet. To enable this behavior, you must do the following. Define a symbolic URL. For information, see Defining Symbolic URL Arguments on page 24. Set parameters for the symbolic URL. For more information, see Portal Agent Command Reference on page 33
Web Control
Use the Web control disposition type when IFrame or Inline disposition types do not work. Typically this is because of hardcoded references to specific frame names in the external application's HTML. See Portal Agent Restrictions on page 14 for more information. The Web Control disposition type embeds an Internet Explorer ActiveX object in the Siebel page and provides it to the external application. In the Web Control disposition type, similar to the IFrame type, the external application sends content directly to the user's browser, bypassing the Siebel Server. The external application then behaves as if the ActiveX IE instance is an independent Web browser. NOTE: The Web Control disposition type is supported for Internet Explorer 4.0 and above.
Form Redirect
In the Form Redirect scenario, the Siebel Web client submits a request to the Siebel Server. The Siebel Server creates a form with the necessary authentication information in it, and then sends the form back to the browser. The browser loads the form and then submits it to the external host for processing. The external host sends back the results, which the browser displays in a new window. The Form Redirect disposition option is usually displayed in a new window, rather than inline with other Siebel applets. The Form Redirect disposition type is not commonly used with Siebel business applications.
14
The use of frames by an external application may not be amenable to inline aggregation methods. Specific frame references in the returned content referring to global frames (_NEW, _TOP, .parent()) may not be amenable to inline aggregation methods. Reliance on JavaScript functions defined in (assumed) external frames may not be amenable to inline aggregation methods. URLs that are created dynamically by JavaScript may not be amenable to any fixup techniques, as the URLs would not be easily parsed on the HTML content. For these reasons, an Inline disposition type does not work often. However, if you control both the Siebel application instance as well as the external application, and can resolve some of these issues, you should be able to get the Inline disposition type to work correctly. For more information about the Inline disposition type, see Inline on page 13. If you do not have control over the external application, the IFrame disposition type is the most likely method that will provide satisfactory results. It works with about 80% of the form-based application sites tested. For more information about the IFrame disposition type, see IFrame on page 13.
Table 2.
Disposition Type Summary Benefits Inline integration into the Siebel user interface. Session Management, including managing session cookies and automatic re-login after time out. Drawbacks Only works in very few cases. Will not work with complex JavaScript. Will not work if there are reference to frames. Supports the GET method only. URL limited to 2048 characters.
15
Table 2.
Disposition Type Summary Benefits Inline integration into the Siebel user interface.Supports complex JavaScript. Supports references to frames. Session Keep Alive supported. Works for most cases. Drawbacks No session management. Only supported by IE5.5 and higher. Does not support frames that reference top-level JavaScript objects.
Web Control
Supports frames that reference toplevel JavaScript Objects, because JavaScript does not refer to objects outside of the Web control.
No session management. Browser functionality, such as the back button, is only available by rightclicking in the Web control. ActiveX objects that contain other objects are reset if you change tabs and then return to the Web control. Web control requires more system overhead than IFrame. Only supported for IE4 and higher.
1 2 3
Determining the Login Requirements on page 17. Configuring Business Components to Handle External Data on page 19. Complete one of the following: Displaying External Content Within an Applet on page 20. Displaying External Content Outside of an Applet on page 20.
4 5 6 7
Defining Web Applications on page 22. Defining Web Applications on page 22. Defining Symbolic URLs on page 22. Defining Symbolic URL Arguments on page 24.
16
2 3
If the external application uses form-based authentication, view the login pages HTML using your browsers view source command. Identify the form on the login page that asks for user credentials (often the form will ask for other information as well) and identify the input fields in this form used to authenticate users. It is usually best to strip out all non-form lines of HTML and to isolate the <input> tags. That is, remove lines previous to <form> and after </form> and remove lines not part of the <input> tags.
Determine if the method attribute of the form tag is POST. If it is POST, you will need to define the PostRequest command as an argument of the symbolic URL. See Defining Symbolic URL Arguments on page 24 and PostRequest on page 36 for more information. If it is GET, you do not need to define a symbolic URL command, because the default method of symbolic URLs is GET.
17
Determine the target of the forms action attribute, which is usually specified as action ="some string". If the target of the action attribute is an absolute URL, one that begins with http, or a forward slash (/), use this URL as the base of the Portal Agent. If it is a relative address, you also need to determine where the root of the URL is defined. It could be defined relative to the URL of the login page itself (most common), in a <codebase>tag (rare), or in JavaScript (hard to determine). The target URL is defined using the Host Administration View and the Symbolic URL Administration view. See Defining the External Host on page 21 and Defining Symbolic URLs on page 22 for more information.
Determine any argument values defined in the target URL. These are the characters after the "?" character. Usually these are simple field-value constants. The exception is when a field or a value is a session identifier that is dynamically assigned by the external application server and is only valid for a period before it times out. In this case, it may not be possible to configure a Portal Agent. You will define any argument values contained in the target URL as symbolic URL arguments. See Defining Symbolic URL Arguments on page 24 for more information on how to do this.
Identify each of the forms <input> tags and determine which ones are necessary to send to the external application for authentication. Often there are <input> tags in the form with a type attribute of hidden that are not evident when interacting with the application. Determining whether hidden fields are optional or required is often process of trial and error. Some <input> tags will not have values identified. Either these fields are awaiting input to be entered by the user (for example, login name or password), or they are hidden fields with no values. If the input field is specific to the user (it asks for the user's login name and password), you can use UserLoginId and UserLoginPassword commands to instruct the Portal Agent to retrieve the users credentials from the user's My Logins view. See Defining End-User Login Credentials on page 28 for more information. If there are hidden fields with no values, when you enter them as symbolic URL arguments, make sure that the Required Argument column is not checked. If it is checked, and the input field has no value, the Portal Agent will not send this request to the target application server because there is no value to put in its place. You will need to define the input fields and values as symbolic URL arguments. See Defining Symbolic URL Arguments on page 24 for more information.
NOTE: The Mozilla browser includes a page info command (^I) that analyzes forms on a page and displays the method, input fields, and so on.
18
19
2 3 4 5
Add a new control or list column to the applet. Associate the control or list column with a calculated field on the business component that is configured to represent the external data. Set the control or list columns Field Retrieval Type property to Symbolic URL. Set the control or list columns HTML Type property to Field.
NOTE: The Symbolic URL is mapped to the calculated field defined for the business component.
20
21
22
In the Symbolic URL Administration list view, enter a new record. Some fields are defined in the following table: Field URL Description Use the URL field to enter a URL for the external application. A best practice is to substitute the hosts Virtual Name, the one that you defined in the Host Administration view, for the hosts actual name. Doing this makes administering host names easier, because you may have many symbolic URLs pointing to one host. If the host name changes, you only need to change it in the Host Administration applet rather than having to change it in several Symbolic URL definitions. For example, https://Virtual_Host/path... NOTE: Use the Secure Sockets Layer protocol (SSL) with symbolic URLs to ensure that communication is secure. For more information about using SSL, see Siebel Security Guide. For applications that use form-base authentication, the URL is identified by the action attribute of the Form tag. See Determining the Login Requirements on page 17 for more information. Host Name Fixup Name The Virtual Name of the host defined in the Host Administration view. Name of the fixup type defined in the Fixup Administration view. The fixup type defines how links embedded in the external HTML content are rendered. For example: Default. Use this fixup type with the IFrame disposition type. Link fixup is inside the view. This fixup does not affect any of the links. The links (relative or absolute) remain as they are with the content being passed back in its original form. InsideApplet. This fixup converts all of the relative links to absolute links and any links using a host defined in the Host Administration view are proxied in order to maintain SWE context. OutsideApplication. This fixup converts all of the relative links to absolute links using the host and path of the parent URL. No links are proxied. Multivalue Treatment Determines how arguments are handled. Possible values are: Comma Separated. Instructs SWE to insert a comma between the values defined in the Symbolic URL arguments when appending the arguments to the URL. It inserts a comma after the value in the first Argument Value field and the first value in the second Argument Value field. The second Argument Value field is simply a text string entered by the user. Separate Arguments. Instructs SWE to enter separate arguments for each value defined in the two Argument Value fields. Use First Record Only. Uses the first record in the current record set.
23
Description The value selected in this field determines how the HTTP request is constructed and sent and how the external content is rendered in the user interface. Possible values are: Inline. Proxies the request through the Siebel Server and displays content inline with other applets on a view. IFrame. Uses the <iframe> tag to display content inline with other applets on a view. Web Control. Uses an ActiveX control to display content inline with other applets on a view. Browsers displaying symbolic URLs of type Web Control must be set to handle ActiveX controls. For more information about browser security settings, see Siebel Security Guide. Form Redirect. SWE constructs a form which it sends back to the browser, which the browser then sends to the external host. The content received is displayed in a new window. Server Redirect. SWE sends the browser a 302 Response with the value of the external hosts URL in the header. The browser is redirected to the external host. The content received is displayed in a new window. Note that for Server Redirect there is a required Symbolic URL argument. See Portal Agent Restrictions on page 14 for a description. See About Portal Agents on page 11 for detailed descriptions of each Disposition Type.
Associates a Web Application with this Symbolic URL. For more information about Web Applications, see Defining Web Applications on page 22.
24
Symbolic URL Arguments also allow you to implement commands which you use to define the behavior of Portal Agents. See Portal Agent Command Reference on page 33 for usage descriptions of available commands.
Argument Type
25
Description The value of the argument varies depending on the Argument Type. Descriptions of possible values for each argument type are described below. If the Argument Type is: Constant. The Argument Value is the second part of the attribute-value pair that is appended to the URL. Field. The Argument Value defines a field name from the current business component. The data from this field is the second part of an attribute-value pair that is appended to the URL. Profile Attribute. The Argument Value defines a field name on the Siebel personalization business component. The data from this field is the second part of an attribute-value pair that is appended to the URL URL Argument. The Argument Value defines the name of the argument on the incoming SWE request. Language Value. The Argument Value is left null. Command. The Argument Value typically defines the name of the command. See Portal Agent Command Reference on page 33.
Although this field is rarely used, it can be used to identify additional arguments. When this field is checked (default), the value is added as a URL argument on the outgoing request. If this field is not checked, the value will be substituted in the text of the outgoing URL. Determines the sequence of the arguments. In some cases the target host requires arguments in a particular order.
Configuring Multiple Symbolic URLs and Hosts for Alternative Execution Locations
You can configure multiple symbolic URLs and symbolic URL hosts, to execute applications in alternative locations (for example, for testing or demonstration purposes). The following topics describe how to do this: Configuring Alternative Symbolic URLs on page 27 Configuring Alternative Symbolic URL Hosts on page 27 NOTE: When you use an alternative symbolic URL host, all symbolic URLs in the application that are configured to use that host will use the alternative host name. In contrast, when you use alternative symbolic URLs, each symbolic URL used in the application must have its own alternative symbolic URL. Therefore, you can reduce the effort required to execute the application in an alternative location by using an alternative symbolic URL host rather than a symbolic URL.
26
27
Enter a new record and define the fields. Some of the fields are described in the following table: Field Link Context Comments Select one of the following values: Do Nothing. This fixup does not affect any of the links. The links (relative or absolute) remain as they are with the content being passed back in its original form. Outside Application. This fixup converts all of the relative links to absolute links using the host and path of the parent URL. No links are proxied. Inside Application. This fixup converts all of the relative links to absolute links and any links using a host defined in the Host Administration view are proxied in order to maintain SWE context. After the user clicks a link, this fixup type renders HTML in the view, using the entire view for display. Inside Applet. This fixup handles links the same way as the Inside Application fixup type. However, in this case, when a user clicks a link, it renders HTML within an applet. The other applets remain present on the view. Context View Name Link Target Name of view that will display the link. This is optional. Specifies the name of a specific target frame of the link. For example, _blank for a new browser window or AnyName to open a window of that name. This option is not often used.
28
In the SSO Systems list, enter a new record and define the following: Field System Name Symbolic URL Name Description Name of the external Web application. Select the name of the Symbolic URL that interacts with the external Web application. The symbolic URL must be configured with the UserLoginId and UserLoginPassword commands as arguments. These arguments instruct the symbolic URL to pass the stored login credentials when authenticating with an external Web application. Description Enter a description of the Web application.
If you are defining login credentials on behalf of end users, in the SSO System Users list enter end-user login names and passwords.
1 2 3 4 5 6
Review the Login Form. Define the External Host. Define the Symbolic URL. Define Symbolic URL Arguments. Define User Login Credentials. Testing the Integration.
Each of these steps is covered in the following sections. NOTE: This example assumes the underlying objects are already configured to support the symbolic URL. See Portal Agent Configuration on page 19 for information on how to do this.
29
<input type="hidden" value="ON" name="FreeText"> <input type="image" src="/images/nav/button/bttn_form_arrow.gif" NAME="Action" border="0"/ alt="Submit Search"></td> <input type="text" name="username" size="18"> <input type="password" name="password" size="18"> <input type="image" src="/images/nav/button/bttn_form_arrow.gif" border="0" name='login' /> <input type="checkbox" name="remember" checked/> <span class="bdDkGray">Remember my Login<br></span </form> From the action attribute of the form tag you can determine that the target URL is relative to the root of the login pages URL. Therefore the target URL is: www.siebel.com/index.shtm You can also determine that the method attribute of the form tag is post: method="POST" After reviewing the <input> tags, you can determine that the required arguments are: username password NOTE: Notice that not all input fields are necessary for login. For more information about reviewing login forms, see Determining the Login Requirements on page 17.
30
Figure 1.
Figure 2.
Symbolic URL
For more information about defining Symbolic URLs, see Defining Symbolic URLs on page 22.
31
Figure 3.
For more information about Symbolic URL arguments, see Defining Symbolic URL Arguments on page 24. For more information about Symbolic URL commands, see Portal Agent Command Reference on page 33.
32
Under the [SWE] heading in the .cfg file, set the Log Level parameter value to None.
EncodeURL
Use the EncodeURL command to specify whether or not the symbolic arguments should be encoded when appended to the URL. By default the URL is encoded. However, some servers do not recognize standard encoding, in which case you can use this command to not encode the URL.
33
Argument Value
IFrame
Use the IFrame command to define additional HTML attributes for the <iframe> tag. Define the fields in the Symbolic URL Arguments applet, see Table 4.
Symbolic URL Arguments Value Any Name IFrame [attribute] - [value] IFrame Height=100 Width=500 Example
Argument Value
Disposition Types Use the IFrame command with the IFrame disposition type.
IsRecordSensitive
Use the IsRecordSensitive command to turn on or off the record sensitive feature. This command is turned off by default. If you require this feature, set this argument value to TRUE in the Symbolic URL arguments configuration. Define the fields in the Symbolic URL Arguments applet, see Table 5.
Argument Value
34
NoCache
Use the NoCache command to instruct SWE not to cache Inline responses on the server. This command is only valid for the Inline disposition type. Define the fields on the Symbolic URL Arguments applet, see Table 6.
Argument Value
NoFormFixup
Use the NoFormFixup command to Instruct SWE not to fix up a form by putting proxy SWE arguments into links that appear on the page. Define the fields in the Symbolic URL Arguments applet, see Table 7.
Argument Value
PreLoadURL
Use this command to specify a preloaded URL. Use this command when the external application gathers information from a preloaded cookie on the client machine. Use this command with disposition types of IFrame and Web Control. Define the fields in the Symbolic URL Arguments applet, see Table 8.
Argument Value
35
PostRequest
Use PostRequest to configure the Portal Agent to use the POST method instead of the GET method, which is the default. Use this command when the method of the action attribute is POST. This method avoids displaying user information on a Web page or browser status bar. Use this command with disposition types of IFrame and Web Control only. Define the fields in the Symbolic URL Arguments applet, see Table 9.
Argument Value
UserLoginId
Use the UserLoginId command to send the stored user login ID for a particular Web application. The command gets the users Login ID from the My Login Credential business component. See Defining End-User Login Credentials on page 28 for more information about how user login IDs are entered into this business component. Define the fields in the Symbolic URL Arguments applet, see Table 10.
Argument Value
UserLoginPassword
Use the UserLoginPassword command to send the stored user password for a particular Web application. The command gets the users password from the My Login Credential business component. See Defining End-User Login Credentials on page 28 for more information about how user passwords are entered into this business component.
36
Define the fields in the Symbolic URL Arguments applet, see Table 11.
Argument Value
UseSiebelLoginId
Use the UseSiebelLoginId command to retrieve the users Siebel login ID from the stored set of credentials. Define the fields in the Symbolic URL Arguments applet, see Table 12.
Argument Value
UseSiebelLoginPassword
Use the UseSiebelLoginPassword command to retrieve the users Siebel password from the stored set of credentials. Define the fields in the Symbolic URL Arguments applet, see Table 13.
Argument Value
WebControl
Use the WebControl command to define additional HTML attributes for Portal Agents with a disposition type of Web Control.
37
Define the fields in the Symbolic URL Arguments applet, see Table 14.
Symbolic URL Arguments Value Any Name WebControl [attribute] - [value] WebControl Height=100 Width=500 Example
Argument Value
38
This chapter describes how to use the XML Web Interface to deliver content to external portal frameworks and Web application environments. The XML interface provides industry-standard integration to third-party development environments, such as ASP and JSP, as well as providing a model consistent with emerging Web technologies. The XML interface can be used across all Siebel business applications, although some specialized applets may have limited support for this interface. Developers can configure Siebel Business Applications to support different markups, such as cHTML and xHTML, by combining the XML interface with XSL style sheets and the EAI XSLT business service. This chapter contains the following topics: Overview of the XML Web Interface on page 39 Accessing Siebel XML on page 40 Siebel AOM and Web Server Configuration and Markup Determination on page 40 Connecting to the XML Web Interface on page 41 XML Request Structure on page 44 XML Response Structure on page 52 Common Operations on page 59 SWE API on page 70 Document Type Definition on page 84 Manipulating Siebel XML with XSL Style Sheets and XSLT on page 91
39
40
Inbound request, SWESetMarkup="XML, WML or HTML". This is an optional inbound request parameter that can be used to override the User Agent Service and Server configuration. Valid values for this are XML, WML, or HTML. The User Agent Service and server configuration are not used to determine the markup when the SWESetMarkup parameter is defined on the inbound request. User agent service. This service is used to determine the markup based on the device or browser that generated the request. The service will take information from the request header and look up the designated markup in the device table. The resulting markup is passed to the next step. Note, if no match is found in the device table the default markup is HTML. Dynamic markup comparison. Assuming that no markup is specified by the inbound request SWESetMarkup parameter, the markup from the user agent service is compared to the server default configuration to determine what markup will be generated. The server default markup is designated by the SWEMarkup parameter in the OM .cfg file.
Table 15 shows a summary of the markup that will be generated for a given request based on the intersection of the server configuration markup and the markup from the user agent service.
Table 15.
Markup Summary User Agent Markup Value HTML WML HTML WML XML XML XML XML XML
41
Query String
You can send HTTP requests to SWE using a query string. For example, the following code sample illustrates an Active Server Page that uses MSXML to make an HTTP request. The request logs in to the Siebel application and navigates to the Account List View. The XML response from SWE is transformed into HTML using XSLT. NOTE: See Sample XSLT on page 99 for code snippets that demonstrate transforming an XML response from SWE into HTML. <% @LANGUAGE="VBScript" %> <% '---------------------------------------------'Open HTTP connection and send XML command req '---------------------------------------------strURL = "http://" & Request.form ("swe") & "/ start.swe?SWECmd=ExecuteLogin&SWEDataOnly=1&SWEUserName=sadmin&SWEPassword=sadmin& SWESetMarkup=XML ZOSet xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP") xmlhttp.open "GET", strURL, False xmlhttp.send () Set ologinXmlDoc = xmlhttp.responseXML strCookie = xmlhttp.getResponseHeader ("Set-Cookie") On Error Resume Next If strCookie = "" Then Response.Write ("Unable to connect to Siebel Web Server. Name, Password, and Siebel Web Server URL") Response.End
End If strSessionId = mid(strCookie,inStr(strCookie,"!"),inStr(strCookie,";")inStr(strCookie,"!")) strURL = "http://" & Request.form ("swe") & "/ start.swe?SWECmd=GotoView&SWEView=Account+List+View&SWESetMarkup=XML&SWEDataOnly=1 " & "&_sn=" & strSessionId Set xmlhttp = Nothing Set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP") xmlhttp.open "GET", strURL, False xmlhttp.send () Set oXmlDoc = xmlhttp.responseXML '----------'Session Var '----------Session ("SWESessionId") = strSessionId Session ("swe") = Request.form ("swe")
42
'----------'Prepare XSL '----------sXsl = "acctresponse.xsl" Set oXslDoc = Server.CreateObject("Msxml2.DOMDocument") oXslDoc.async = false oXslDoc.load(Server.MapPath(sXsl)) %> <HTML> <HEAD> <TITLE>My Portal</TITLE>... <BODY> ... <TD colSpan=2><%Response.Write (oXmlDoc.transformNode(oXslDoc))%> ... </BODY> </HTML> </TD>
43
socket
toServer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream())); in = socket.getInputStream(); payload = FULL_XML_PROC_STR + request; toServer.println("POST " + url.toString() + " HTTP/1.0"); toServer.println("Cookie: " + sessionID); toServer.println("Content-Type: text/xml"); toServer.print("Content-Length: "); toServer.println(payload.length()); toServer.println(""); toServer.println(payload); toServer.flush(); fromServer = new BufferedReader(new InputStreamReader(in)); // read the response while ((line = fromServer.readLine()) != null) { . . . } fromServer.close(); toServer.close(); socket.close(); } } catch (Exception ex) { System.err.println(ex.toString()); }
Query String
To construct a request using a query string, you append SWE commands and arguments to a URL. Each command or argument and its value is separated by an &. For example:
44
SWECmd=ExecuteLogin&SWEDataOnly=1&SWEUserName=sadmin&SWEPassword=sadmin&SWESetMark up=XML For a list of commonly used SWE commands and arguments see SWE API on page 70.
XML Tags Description The root tag for each command that you want to send to the SWE. The <EXEC> tag encloses the <CMD> and <ARG> tags. This tag represents a single command. This tag indicates the SWE command that you want to access and encloses all arguments for the command. This tag indicates the object on which the command is to be executed and any additional parameters that are required. Unlike the <EXEC> and <CMD> tags, which are used only once in a command block, you can have multiple arguments within a command block.
<CMD> <ARG>
For example, using the information from Table 16, a valid syntax format for an XML command block is as follows: <EXEC> <CMD NAME=SWEcmd VALUE=command name> <ARG NAME=argumentName>argument1Value</ARG> <ARG NAME=argumentName>argument2Value</ARG> ... <ARG NAME=argumentName>argumentNValue</ARG> <ARG NAME="SWESetMarkup"> XML | HTML </ARG> <ARG NAME="SWEDataOnly"> TRUE | FALSE </ARG> <ARG NAME="SWESetNoTempl"> TRUE </ARG> </CMD> </EXEC>
45
Each <EXEC> tag encloses a complete command block. The <CMD> and <ARG> tags are enclosed within the <EXEC> tag, and their attributes and values specify which commands are executed by the SWE. A valid XML command block must conform to a specific structure. It must have a valid execute tag followed by a command tag that encloses the arguments. The syntax of the name-value pairs and the attributes that accompany the XML tags within a command block must follow a specific format. This section details the syntax of each XML tag. For the DTD for the inbound XML document, see Inbound DTD on page 85.
EXE Tag
The Execute tag is the root tag for each command that you want to execute.
Description Think of the Execute tag as a container. Each container represents a single SWE command or screen action. Enclosed within an Execute tag are the commands, arguments, and information required to complete a single command. There should be only one <EXEC> tag for each command that you want to execute. The PATH attribute is the only attribute used by the <EXEC> tag, although it is not required.
Attributes Table 17 lists the attribute used with the Execute tag:
EXEC Tag Attribute Description The PATH attribute is used to indicate the location of the SWE object manager. By default, the SWE XML application looks in its root directory for the SWE object manager. If you want to specify an object manager for the Web application to use, you must indicate its location using the PATH attribute.
Example The following example uses the Execute tag to enclose the login command. <?xml version="1.0" encoding="UTF-8"?> <EXEC PATH="/callcenter/start.swe"> <CMD NAME="SWECmd" VALUE="ExecuteLogin"> <ARG NAME="SWEUserName">jdoe</ARG> <ARG NAME="SWEPassword">jdoepassword</ARG> <ARG NAME="SWESetMarkup">XML</ARG> <ARG NAME="SWEDataOnly">TRUE</ARG>
46
CMD Tag
The Command tag is required for each command block and is used to indicate the SWE command that you want to execute.
Description Like the Execute tag, the Command tag also acts as a container. Enclosed between the open and close Command tags are the arguments required to complete a command. There should be only one <CMD> tag for each command block that you want to execute.
Attributes Table 18 lists the attributes that are used with the Command tag:
CMD Tag Attributes Description The NAME attribute should always be set to "SWECmd". This indicates that the type of command you want to execute is a SWE command. The VALUE attribute specifies which SWECmd you want to execute. Listed below are the SWE commands most commonly used with Business: ExecuteLogin GotoPageTab InvokeMethod LogOff
Example Using the information from the table above, the following example illustrates how to use the Command tag to execute a login command: <?xml version="1.0" encoding="UTF-8"?> <EXEC PATH="/callcenter/start.swe"> <CMD NAME="SWECmd" VALUE="ExecuteLogin"> <ARG NAME="SWEUserName">jdoe</ARG> <ARG NAME="SWEPassword">jdoepassword</ARG> <ARG NAME="SWESetMarkup">XML</ARG>
47
ARG Tag
A command block can contain multiple Argument tags. Each Argument tag indicates an additional command parameter required to complete the action specified in the command block.
Description The Argument tag uses name/value pairs to send command parameters to the SWE. A command will not execute without having all the appropriate parameters passed to the SWE.
48
Attributes Table 19 lists the attributes that are used with the Argument tag.
ARG Tag Attributes Description This is the only attribute used by the Argument tag. The NAME attribute is used to indicate an argument, or the name of a parameter, for which you are sending additional information. The parameters value is entered between the open and close Argument tags. Listed below are the parameter names most commonly used with Business: SWEApplet SWEDataOnly SWEMethod SWEPassword SWEScreen SWESetNoTempl SWESetMarkup SWESetRowCount SWEStyleSheet SWEUserName SWEView Table 20 lists the values that are most commonly used with these parameter names.
Example For each argument name that you include in a command block, you must also indicate a value for the argument. For example, to use the InvokeMethod command, you must indicate which method you want to invoke. Additionally, if the method is one that requires parameters, as is the case with the WriteRecord, you must send those parameters to the SWE. With the WriteRecord method, you need to indicate the view and the applet you are working with. You also need to indicate the column to which you want to write the record, and finally you need to indicate what information you want to write. The following example illustrates how to use Argument tags to send the required parameters for a WriteRecord method: <?xml version="1.0" encoding="UTF-8"?> <EXEC PATH="/callcenter/start.swe"> <CMD NAME="SWECmd" VALUE="InvokeMethod">
49
<ARG NAME="SWEMethod">WriteRecord</ARG> <ARG NAME="SWEView">Account List View</ARG> <ARG NAME="SWEApplet">Account List Applet</ARG> <ARG NAME="Lot Name">65 metal car</ARG> <ARG NAME="Starting Price">3.00</ARG> <ARG NAME="SWESetMarkup">XML</ARG> <ARG NAME="SWEDataOnly">TRUE</ARG> <ARG NAME="SWESetNoTempl">TRUE</ARG> </CMD> </EXEC>hr Required Arguments The following three arguments are required for each command block sent to the SWE: <ARG NAME="SWESetMarkup">XML | HTML | WML</ARG> <ARG NAME="SWEDataOnly">TRUE | FALSE</ARG> <ARG NAME="SWESetNoTemp">TRUE</ARG> SWESetMarkup. The SWE returns a response for each command block it receives. You can use the SWESetMarkup attribute to indicate whether a response is returned as XML, HTML, or WML. You can also set the response markup format by allowing the User Agent (UA) service to retrieve the default markup from the UA device table, or by setting the SWESetMarkup property in the appropriate Siebel Server configuration file. The SWESetMarkup tag is not required in the payload when you use one of these alternatives. NOTE: The examples in this chapter specify the response markup format using the SWESetMarkup attribute in the payload. SWEDataOnly. In addition to specifying the type of markup language for a SWE response, you must also indicate whether the response should include data only or data and user interface information, such as non-data controls (anchors and navigation controls). You can set the SWEDataOnly attribute to TRUE to indicate that only data should be returned, or you can set it to FALSE to indicate that both data and user interface information should be returned. NOTE: If the SWEDataOnly parameter is not included, the default is FALSE.
50
SWESetNoTempl. By default, Siebel Business XML uses a server-side Web template to filter specific items and controls from SWE responses. When using XML, you can control whether a response will return all the information related to the request or a subset of it dictated by the Web template. Setting the attribute to TRUE makes sure that the Web template is not used and that the SWE response contains all the necessary information to complete an action. When a SWESetNoTempl attribute is set to FALSE, the Web template is used and the page items and controls specified in the template are filtered from the response. NOTE: If the SWESetNoTempl parameter is not included, the default is FALSE.
Common Name-Value Pairs Table 20 lists commonly used argument name-value pairs.
Table 20.
Applet name
TRUE FALSE
SWEMethod
SWEUserName SWEView
NOTE: When determining what arguments to define, it is a good idea to look at the XML Response. The response will include what arguments are expected.
51
XML Response
When the SWESetMarkup attribute in a command block is set to XML, the response payload from the Siebel Business XML Web server is returned in XML format. The payload consists of an XML declaration followed by the core XML tags that contain and describe the data. Each XML tag represents an object from a Siebel Business XML application screen that you requested. The attributes within each tag are read-only and represent the properties of the object.
52
Table 21 lists the major XML tags that are returned in a response in which the SWEDataOnly attribute is set to TRUE. NOTE: The response tags described in this appendix are a subset of the tags that can be returned by the SWE.
XML Response Tags Description and Attributes The root tag for each response that is returned from the SWE. The <APPLICATION> tag encloses all the XML response data. Attribute: NAME. This attribute indicates the name of the application from which the response is generated. For XML requests, the application name in the response will always be Siebel XML.
<APPLICATION>
<SCREEN>
This tag identifies the Siebel Business Application screen that is the result of, or is accessed by, the command in your request. The <SCREEN> tag also encloses all of the XML tags that identify the data within the Siebel Business Application screen. Attributes: CAPTION. This attribute indicates the caption of the Siebel Business Application screen. ACTIVE. A value of TRUE indicates that the Siebel Business Application screen is active. A value of FALSE indicates that the Siebel Business Application screen is inactive. NAME. This attribute indicates the Siebel Business Application screen name, which is used to identify the Siebel Business Application screen.
<VIEW>
This tag identifies the view that is the result of, or is accessed by, the command block in your request. This tag also encloses all of the XML tags that identify the data within the view. Attributes: TITLE. This attribute indicates the title of the view. ACTIVE. A value of TRUE indicates that the view is active. A value of FALSE indicates that the view is inactive. NAME. This attribute indicates the view name, which is used to identify the view.
53
XML Response Tags Description and Attributes This tag identifies the applet that is the result of, or is accessed by, the command block in your request. It also encloses all of the XML tags that identify the data within the applet. Attributes: ROW_COUNTER. This attribute indicates how many records out of the entire set of records are currently displayed. The ROW_COUNTER attribute is a string of the form, 1 - n of N. NO_DELETE. A value of TRUE indicates that the records in the applet cannot be deleted. A value of FALSE indicates that the records in the applet can be deleted. NO_EXEC_QUERY. A value of TRUE indicates that a query cannot be executed in the applet. A value of FALSE indicates that a query can be executed in the applet. NO_UPDATE. A value of TRUE indicates that the records in the applet cannot be updated. A value of FALSE indicates that the records in the applet can be updated. MODE. Indicates the mode of the applet, which can be one of the following: Base, Edit, New, Query, Sort. TITLE. This attribute title of the applet. NO_INSERT. A value of TRUE indicates that records cannot be inserted into the applet. CLASS. Indicates the class being used by the applet. NO_MERGE. A value of TRUE indicates that records in the applet have not been merged. A value of FALSE indicates that the records in the applet have been merged. ACTIVE. A value of TRUE indicates that the applet is active. A value of FALSE indicates that the applet is inactive. ID. This attribute indicates the applet ID, and can be used to identify the applet. NAME. This attribute indicates the applet name, which is used to identify the applet.
<APPLET>
<LIST>
This tag encloses the table of records that is returned from your request. The following two tags and their subordinate tags are enclosed within the <LIST> tag: <RS_HEADER> <RS_DATA> There are no attributes associated with the <LIST> tag.
54
XML Response Tags Description and Attributes This tag encloses all the header information about the columns in a list that your request returns. The <COLUMN>, <METHOD>, and <ERROR> tags can be enclosed within this tag. A response can return multiple <COLUMN> tags. Each <COLUMN> tag within an <RS_HEADER> tag indicates another column within the parent list. Attributes: NUMBER_BASED. A value of TRUE indicates that the data in the column are numeric. A value of FALSE indicates that the data are not numeric. CALCULATED. A value of TRUE indicates that the data in the column are calculated from other values, as opposed to being input. A value of FALSE indicates that the data are not calculated. LIST_EDITABLE. A value of TRUE indicates that the data in the column are editable. A value of FALSE indicates the data are not editable. HTML_TYPE. This attribute is used to indicate the type of object that is represented in the column. SCALE. A value of TRUE indicates that the data in the column are scaled. A value of FALSE indicates that the data are not scaled. FIELD. This attribute indicates the field name associated with the column. The value in the field name is the same as the column name. HIDDEN. A value of TRUE indicates that the data in the column are hidden on the Siebel Business Application screen. A value of FALSE indicates that the data are visible on the screen.
<RS_HEADER>
<COLUMN>
55
XML Response Tags Description and Attributes DATATYPE. This attribute indicates the Siebel data-type of the data in the column. DISPLAY _NAME. This attribute indicates the text string that would appear in the user interface. TEXT_LENGTH. This attribute indicates the maximum length of field entries in the column. TYPE. This attribute is used to indicate the type of object that is represented in the column. ID. This attribute indicates the unique ID of the column. TEXT_BASED. A value of TRUE indicates that the data in the column is text based. A value of FALSE indicates that the data is not text based. NAME. A value of TRUE indicates that the data in the column are hidden on the Siebel Business application Siebel Business Application screen. A value of FALSE indicates that the data are visible on the screen. REQUIRED. A value of TRUE indicates that the data in the column are required. A value of FALSE indicates that the data are not required. READ_ONLY. A value of TRUE indicates that the data in the column are read-only and cannot be modified. A value of FALSE indicates that the data are editable.
<COLUMN>
<RS_DATA>
This tag encloses table rows that are returned from your request. The <RS_DATA> tag encloses the <ROW> tag and the <ROW> tags subordinate tags.
56
XML Response Tags Description and Attributes A response can return multiple <ROW> tags. Each <ROW> tag within an <RS_DATA> tag indicates another record within the table. The <ROW> tag encloses the <FIELD> tag. Attributes: SELECTED. This attribute indicates whether the current row is selected. A value of TRUE indicates that the row is selected. A value of FALSE indicates it is not. ROWID. This attribute is used to identify the row.
<FIELD>
A response can return multiple <FIELD> tags. Each <FIELD> tag within a <ROW> tag indicates another item of data within the record. The fields value is entered between the open and close <FIELD> tags. Attributes: VARIABLE. This attribute indicates the column to which the field is associated. The value of the VARIABLE attribute should coincide with the NAME attribute of a column. NAME. This attribute is used to identify the field. In most cases, the field name is identical to the column name.
57
TEXT_LENGTH="255" TYPE="Field" TOTAL_REQUIRED="TRUE | FALSE" ID="N" TEXT_BASED="TRUE | FALSE" NAME="Accept Less" REQUIRED="TRUE | FALSE" READ_ONLY="TRUE | FALSE"/> </RS_HEADER> <RS_DATA> <ROW SELECTED="TRUE | FALSE" ROWID="id number1"> <FIELD VARIABLE="column name" NAME="field name1">
field value1
</FIELD> ... <FIELD VARIABLE="column name" NAME="field nameN">
field valueN
</FIELD> </ROW> ... <ROW SELECTED="TRUE | FALSE" ROWID="id number1"> <FIELD VARIABLE="column name" NAME="field name1">
field value1
</FIELD> ... <FIELD VARIABLE="column name" NAME="field nameN">
field valueN
</FIELD> </ROW> </RS_DATA> </LIST> </APPLET> </VIEW> </SCREEN></APPLICATION>
58
Common Operations
HTML Response
When the SWESetMarkup attribute in a command block is set to HTML, the response payload from the Siebel Business Application Web server is going to be in HTML format. The HTML option allows you to display the returned data in a read-only mode. The HTML response includes all the data and navigation controls that are exposed in the user interface.
WML Response
When the SWESetMarkup attribute in a command block is set to WML, the response payload from the Siebel Business Application XML Web server is going to be in WML format.
Common Operations
There are various combinations of XML commands you can use to execute an action in a Siebel Business XML application. Each section below offers one solution for executing a Siebel Business Application action. TIP: To get a better understanding of the objects available on a specific screen, you can use a Web browser to access the user interface by navigating to the following URL: http://<machine name>/ callcenter/start.swe. <machine name>. This is the Web server where the Siebel Business Application is installed.
Logging In
Logging in is required to start a new Siebel XML session. The first command block of a new session should always be an ExecuteLogin command. Detailed below is an example of how to construct a login command block for XML: <?xml version="1.0" encoding="UTF-8"?> <EXEC PATH="/callcenter/start.swe"> <CMD NAME="SWECmd" VALUE="ExecuteLogin"> <ARG NAME="SWEUserName">user name</ARG> <ARG NAME="SWEPassword">users password</ARG> <ARG NAME="SWESetMarkup">XML</ARG> <ARG NAME="SWEDataOnly">TRUE</ARG> <ARG NAME="SWESetNoTemp">TRUE</ARG> </CMD> </EXEC>
59
Common Operations
Logging Off
The last command block of a session should always be a Logoff command. Detailed below is an example of how to construct a logoff command block for XML: <?xml version="1.0" encoding="UTF-8"?> <EXEC PATH="/callcenter/start.swe"> <CMD NAME="SWECmd" VALUE="Logoff"> <ARG NAME="SWEUserName">user name</ARG> <ARG NAME="SWESetMarkup">XML</ARG> <ARG NAME="SWEDataOnly">TRUE</ARG> <ARG NAME="SWESetNoTemp">TRUE</ARG> </CMD> </EXEC>
Navigating to a Screen
You use the GotoPageTab command to navigate to a specific screen. The Web application returns either an XML or HTML response containing data about the screens views and applets. For a complete list of the screen names to which you can navigate, see Table 21. <?xml version="1.0" encoding="UTF-8"?> <EXEC PATH="/callcenter/start.swe"> <CMD NAME="SWECmd" VALUE="GotoPageTab"> <ARG NAME="SWEScreen">screen name</ARG> <ARG NAME="SWESetMarkup">XML</ARG> <ARG NAME="SWEDataOnly">TRUE</ARG> <ARG NAME="SWESetNoTemp">TRUE</ARG> </CMD> </EXEC>
60
Common Operations
Querying Items
To successfully perform a query, you must first navigate to a screen that allows queries. You must then send two separate requests to the SWE XML application. The first request executes the Create New Query action, and the second executes the Execute Query action.
NewQuery
<?xml version="1.0" encoding="UTF-8"?> <EXEC PATH="/callcenter/start.swe"> <CMD NAME="SWECmd" VALUE="InvokeMethod"> <ARG NAME="SWEMethod">NewQuery</ARG>
61
Common Operations
<ARG NAME="SWEView">view name</ARG> <ARG NAME="SWEApplet">applet name</ARG> <ARG NAME="SWESetMarkup">XML</ARG> <ARG NAME="SWEDataOnly">TRUE</ARG> <ARG NAME="SWESetNoTemp">TRUE</ARG> </CMD> </EXEC>
ExecuteQuery
In the ExecuteQuery command block, you must include an <ARG> tag. The tag must include a NAME parameter to identify the column (the field you want to search), and a value to indicate the search criteria. <?xml version="1.0" encoding="UTF-8"?> <EXEC PATH="/callcenter/start.swe" <CMD NAME="SWECmd" VALUE="InvokeMethod"> <ARG NAME="SWEMethod">ExecuteQuery</ARG> <ARG NAME="SWEView">view name</ARG> <ARG NAME="SWEApplet">applet name</ARG> <ARG NAME="column name">search criteria</ARG> <ARG NAME="SWESetMarkup">XML</ARG> <ARG NAME="SWEDataOnly">TRUE</ARG> <ARG NAME="SWESetNoTemp">TRUE</ARG> </CMD> </EXEC> The auction items that match the query are returned in the response. The returned payload contains complete lot names and IDs for each item. TIP: Each row (or record) within a response contains an ID that uniquely identifies it. You can use a row ID as a parameter in a query to selectively single out a record so that you can modify or delete it.
Adding Records
To successfully add a record to a list, you must first navigate to a screen that allows records to be inserted. Then, you must send two separate requests to the SWE XML application. The first request executes the New Record action. The second executes the WriteRecord action.
62
Common Operations
NewRecord
In a NewRecord command block, you use <ARG> tags to indicate the view and applet to which you want to add the NewRecord. <?xml version="1.0" encoding="UTF-8"?> <EXEC PATH="/callcenter/start.swe"> <CMD NAME="SWECmd" VALUE="InvokeMethod"> <ARG NAME="SWEMethod">NewRecord</ARG> <ARG NAME="SWEView">view name</ARG> <ARG NAME="SWEApplet">applet name</ARG>< ARG NAME="SWESetMarkup">XML</ARG> <ARG NAME="SWEDataOnly">TRUE</ARG> <ARG NAME="SWESetNoTemp">TRUE</ARG> </CMD> </EXEC>
WriteRecord
In a WriteRecord command block, you must include an <ARG> tag for the row id of the record (SWERowID) and another <ARG> tag to indicate that the row id is required for the operation (SWEReqRowId). <?xml version="1.0" encoding="UTF-8"?> <EXEC PATH="/callcenter/start.swe"> <CMD NAME="SWECmd" VALUE="InvokeMethod"> <ARG NAME="SWEMethod">WriteRecord</ARG> <ARG NAME="SWEReqRowId">1</ARG> <ARG NAME="SWEView">view name</ARG> <ARG NAME="SWERowId">row id of record to be saved</ARG> <ARG NAME="SWEApplet">applet name</ARG> <ARG NAME="SWESetMarkup">XML</ARG> <ARG NAME="SWEDataOnly">TRUE</ARG> <ARG NAME="SWESetNoTemp">TRUE</ARG> </CMD> </EXEC>
63
Common Operations
Modifying Records
To successfully modify a record using XML, you must first navigate to a screen that allows records to be modified. Then, the following four requests must be sent separately to the SWE XML application:
1 2 3 4
Activate a new query. Execute the query. Activate the edit record method. Write the record.
NOTE: When modifying a record, you should use a primary key (such as a row ID) as the parameter for the query. This makes sure that only one record is returned and selected in the response. If you do not use a primary key to perform the query, several records may be returned in the response. There is a chance that the record you want to update is not the one selected.
NewQuery
When you modify a record, you must first execute a query to find the record you want to modify. The records that are returned as a result of the query are then accessible through XML. <?xml version="1.0" encoding="UTF-8"?> <EXEC PATH="/callcenter/start.swe"> <CMD NAME="SWECmd" VALUE="InvokeMethod"> <ARG NAME="SWEMethod">NewQuery</ARG> <ARG NAME="SWEView">view name</ARG> <ARG NAME="SWEApplet">applet name</ARG> <ARG NAME="SWESetMarkup">XML</ARG> <ARG NAME="SWEDataOnly">TRUE</ARG> <ARG NAME="SWESetNoTemp">TRUE</ARG> </CMD> </EXEC>
ExecuteQuery
When you use the ExecuteQuery command block in an effort to modify a record, you must include an <ARG> tag that identifies the primary key of the record you want to modify. This makes sure that the query returns only one record, which is automatically selected. You can then use the EditRecord command to update the selected record. <?xml version="1.0" encoding="UTF-8"?> <EXEC PATH="/callcenter/start.swe">
64
Common Operations
<CMD NAME="SWECmd" VALUE="InvokeMethod"> <ARG NAME="SWEMethod">ExecuteQuery</ARG> <ARG NAME="SWEView">view name</ARG> <ARG NAME="SWEApplet">applet name</ARG> <ARG NAME="primary key column name">primary key value</ARG> <ARG NAME="SWESetMarkup">XML</ARG> <ARG NAME="SWEDataOnly">TRUE</ARG> <ARG NAME="SWESetNoTemp">TRUE</ARG> </CMD> </EXEC>
EditRecord
After executing the query the screen is populated with the record you want to modify. You use the EditRecord to access the record. NOTE: If you do not use a primary key to perform the query, several records may be returned in the response. <?xml version="1.0" encoding="UTF-8"?> <EXEC PATH="/callcenter/start.swe"> <CMD NAME="SWECmd" VALUE="InvokeMethod"> <ARG NAME="SWEMethod">EditRecord</ARG> <ARG NAME="SWEView">view name</ARG> <ARG NAME="SWEApplet">applet name</ARG> <ARG NAME="column name1">field value</ARG> <ARG NAME="column name2">field value</ARG> ... <ARG NAME="column nameN">field value</ARG> <ARG NAME="SWESetMarkup">XML</ARG> <ARG NAME="SWEDataOnly">TRUE</ARG> <ARG NAME="SWESetNoTemp">TRUE</ARG> </CMD> </EXEC>
65
Common Operations
WriteRecord
In a WriteRecord command block, you must include an <ARG> tag for the row id of the record (SWERowID) and an argument to indicate the row id is required for the operation (SWEReqRowId). <?xml version="1.0" encoding="UTF-8"?> <EXEC PATH="/callcenter/start.swe"> <CMD NAME="SWECmd" VALUE="InvokeMethod"> <ARG NAME="SWEMethod">WriteRecord</ARG> <ARG NAME="SWEReqRowId">1</ARG> <ARG NAME="SWEView">view name</ARG> <ARG NAME="SWERowId">row id of record to be saved</ARG> <ARG NAME="SWEApplet">applet name</ARG> <ARG NAME="SWESetMarkup">XML</ARG> <ARG NAME="SWEDataOnly">TRUE</ARG> <ARG NAME="SWESetNoTemp">TRUE</ARG> </CMD> </EXEC>
Deleting Records
To successfully remove a record from the database, you must first navigate to a screen that allows records to be deleted. Then, the following three requests must be sent separately to the SWE XML application:
1 2 3
Activate a new query. Execute the query. Delete the selected record.
NOTE: When deleting a record, you should use a primary key (such as a row ID) as the parameter for the query. This makes sure that only one record is returned and selected in the response. If you do not use a primary key to perform the query, several records may be returned in the response. There is a chance that the record you want to delete is not the one selected.
NewQuery
When you delete a record, you must first execute a query to find the record you want to delete. You should use search criteria, such as a primary key, to make sure that the query returns only one record. <?xml version="1.0" encoding="UTF-8"?>
66
Common Operations
<EXEC PATH="/callcenter/start.swe"> <CMD NAME="SWECmd" VALUE="InvokeMethod"> <ARG NAME="SWEMethod">NewQuery</ARG> <ARG NAME="SWEView">view name</ARG> <ARG NAME="SWEApplet">applet name</ARG> <ARG NAME="SWESetMarkup">XML</ARG> <ARG NAME="SWEDataOnly">TRUE</ARG> <ARG NAME="SWESetNoTemp">TRUE</ARG> </CMD> </EXEC>
ExecuteQuery
When you use the ExecuteQuery command block in an effort to delete a record, you must include an <ARG> tag that identifies the primary key of the record you want to delete. This makes sure that the query returns only one record, which is automatically selected. You can then use the DeleteRecord command to delete the selected record. <?xml version="1.0" encoding="UTF-8"?> <EXEC PATH="/callcenter/start.swe"> <CMD NAME="SWECmd" VALUE="InvokeMethod"> <ARG NAME="SWEMethod">ExecuteQuery</ARG> <ARG NAME="SWEView">view name</ARG> <ARG NAME="SWEApplet">applet name</ARG> <ARG NAME="primary key column name">primary key value</ARG> <ARG NAME="SWESetMarkup">XML</ARG> <ARG NAME="SWEDataOnly">TRUE</ARG> <ARG NAME="SWESetNoTemp">TRUE</ARG> </CMD> </EXEC>
DeleteRecord
You use <ARG> tags to indicate the view and applet that contain the selected record you want to delete.
67
Common Operations
<?xml version="1.0" encoding="UTF-8"?> <EXEC PATH="/callcenter/start.swe"> <CMD NAME="SWECmd" VALUE="InvokeMethod"> <ARG NAME="SWEMethod">DeleteRecord</ARG> <ARG NAME="SWEView">view name</ARG> <ARG NAME="SWEApplet">applet name</ARG> <ARG NAME="SWESetMarkup">XML</ARG> <ARG NAME="SWEDataOnly">TRUE</ARG> <ARG NAME="SWESetNoTemp">TRUE</ARG> </CMD> </EXEC>
Picking Records
To pick a value from a pick list and save the value in the database, first you need to navigate to a screen and then submit three requests:
1 2 3 4
Navigate to a screen. Get a pick list. Get the RowId of the record to pick. Write the record to the database.
GotoPageTab
First you need to navigate to a screen. For example: <EXEC PATH="/callcenter/start.swe"> <CMD VALUE="GotoPageTab" NAME="SWECmd"> <ARG NAME="SWEScreen">Accounts Screen</ARG> <ARG NAME="SWENeedContext">false</ARG> <ARG NAME="SWEBID">-1</ARG> </CMD> <INFO NAME="SWEC">12</INFO> </EXEC>
68
Common Operations
EditField
To return the pick list using the EditField method, you must define arguments that identify the applet, view, and field on which the pick list is based. For example: <EXEC PATH="/callcenter/start.swe"> <CMD VALUE="InvokeMethod" NAME="SWECmd"> <ARG NAME="SWEApplet">Account Entry Applet</ARG> <ARG NAME="SWEW">0</ARG> <ARG NAME="SWEView">Account List View</ARG> <ARG NAME="SWERowId">1-6</ARG> <ARG NAME="SWEField">Currency</ARG> <ARG NAME="SWEDIC">true</ARG> <ARG NAME="SWENeedContext">true</ARG> <ARG NAME="SWEH">0</ARG> <ARG NAME="SWEReqRowId">1</ARG> <ARG NAME="SWESP">true</ARG> <ARG NAME="SWEMethod">EditField</ARG> </CMD> <INFO NAME="SWEC">9</INFO> </EXEC>
PickRecord
The PickRecord method returns the RowId of the record to be picked. For example: <EXEC PATH="/callcenter/start.swe"> <CMD VALUE="InvokeMethod" NAME="SWECmd"> <ARG NAME="SWEApplet">Currency Pick Applet</ARG> <ARG NAME="SWEView">Account List View</ARG> <ARG NAME="SWERowId">0-5129</ARG> <ARG NAME="SWENeedContext">false</ARG> <ARG NAME="SWEReqRowId">1</ARG> <ARG NAME="SWEP">14_Account Entry Applet9_EditField3_1-68_Currency1_1</ARG> <ARG NAME="SWEMethod">PickRecord</ARG>
69
SWE API
</CMD> <INFO NAME="SWEC">1</INFO> </EXEC> NOTE: The value for the SWEP argument can be found in the XML response from EditField method.
WriteRecord
The WriteRecord method writes the record to the database. For example: <EXEC PATH="/callcenter/start.swe"> <CMD VALUE="InvokeMethod" NAME="SWECmd"> <ARG NAME="SWEApplet">Account Entry Applet</ARG> <ARG NAME="SWEView">Account List View</ARG> <ARG NAME="SWERowId">1-6</ARG> <ARG NAME="SWENeedContext">true</ARG> <ARG NAME="SWEReqRowId">1</ARG> <ARG NAME="SWEMethod">WriteRecord</ARG> </CMD> <INFO NAME="SWEC">2</INFO> </EXEC>
SWE API
This section contains reference information about SWE commands, methods, and arguments.
70
SWE API
SWE Commands
Table 22 provides a list of commonly used SWE Commands.
Table 22.
SWE Commands Short Format C Required Args (with Description) SWEMethod - name of the method. Optional Args (with Description) SWEService - name of the business service to check whether the method can be invoked. SWEBusComp - name of the business component to check whether the method can be invoked. SWEApplet - name of the applet to check whether the method can be invoked.
Supported Values CanInvokeMethod For a list of commonly used methods, see Table 23.
Description Checks whether a method can be invoked on an applet, a business service, a buscomp, or the SWE application. Called only when OM is in High Interactivity mode. The optional SWEService, SWEBusComp, and SWEApplet arguments are used to specify the Siebel object that the method should be invoked on. If none of these are specified, SWE will check the CanInvokeMethod state of the method on the SWE application object, which currently supports a limited set of InvokeMethod, such as Logoff, SortOrder, SaveQuery, and SaveQueryAs.
ExecuteLogin
Xlg
None
GotoPage
Gp
Goes to a Siebel Web page (this is the Web page object defined in Siebel Tools).
None
71
SWE API
Table 22.
SWE Commands Short Format Gt Required Args (with Description) SWEScreen name of the screen. SWEView name of the view. Optional Args (with Description) None
Description Goes to a Siebel screen. Will show the default view for the screen. Goes to a Siebel view. If the SWEPostnApplet and SWEPostnRowId arguments are specified, it will execute a search for the specified rowId in the specified applet. NOTE: If the queried applet is part of a toggle cycle, SWEPostnApplet should be set to the default (top) applet in the toggle cycle or the application will display an error, View: %1 does not contain applet: %2. For more information about applet toggles, see Configuring Siebel Business Applications. If SWEQMApplet and SWEQMMethod arguments are specified, it will invoke the method after going to the view.
GotoView
Gv
SWEKeepContext - if TRUE, keeps the current business object context, when requesting to a view based on the same business object. SWEPostnApplet name of the applet on which the search should executed. SWEPostnRowId row Id to search for. SWEQMApplet - name of the QueueMethod applet. This is the applet where the method (as specified in SWEQMMethod) should be invoked after going to the view. SWEQMMethod name of the QueueMethod method to be invoked. You can invoke only one method. SWEQMArgs arguments of the QueueMethod method.
72
SWE API
Table 22.
SWE Commands Short Format Inv Required Args (with Description) SWEMethod - name of the method. Optional Args (with Description) SWEService - name of the business service to invoke the method. SWEBusComp - name of the business component to invoke the method. SWEApplet - name of the applet to invoke the method. SWEView - name of the view to invoke the method
Supported Values InvokeMethod For a list of commonly used methods, see Table 23.
Description Invokes a method on an applet, a business service, a business component, or the SWE application. The optional SWEService, SWEBusComp, and SWEApplet arguments are used to specify the Siebel object on which the method should be invoked. If none of these are specified, SWE will invoke on the SWE application object, which currently supports a limited set of InvokeMethod such as Logoff, SortOrder, SaveQuery, and SaveQueryAs.
LoadService
None
None
Login
Lg
Loads the login view or login page. SWE first looks at the Acknowledgment Web View property of the application object in the repository for the login view to show. If not specified, the default is the "Acknowledgment Web Page" property to show the login page.
None
73
SWE API
Table 22.
SWE Commands Short Format Bye Required Args (with Description) None Optional Args (with Description) None
Description Executes the database logoff, then shows the logoff view or page. SWE first looks at the Logoff Acknowledgment Web Page property of the application object in the repository for the login page to show. If none is specified, SWE will show the login view or login page, depending on how you log in. Reloads personalization info. SWE loads the initial personalization on startup, and when the personalization rules are changed, SWE does not update the info automatically since there is cost in performance, so SWE provides this command to reload the info.
ReloadCT
None
None
None
NOTE: The SWEAC command is an auxiliary command that allows the login manager to string two SWE commands in a single request. For example the following URL does a SWECmd=ExecuteLogin, and then a SWEAC=GotoPageTab. SWECmd=ExecuteLogin&SWEUserName=joe&SWEPassword=passwd&SWEAC=SWECmd=GotoPageTab&SWEScr een=Accounts+Screen&SWEReloadFrames=1.
74
SWE API
SWE Methods
The InvokeMethod command allows you to invoke methods on a applet, business component, business service, or application. Table 23 lists SWE methods commonly used with the InvokeMethod SWE command.
Table 23.
SWE Methods Description Used in a tree control to collapse an expanded item on the tree. Required Args (with Description) SWETreeItem: Specify the path of the item relative to root. The path is a string of the form n.n.n.nwhere n is an index of an item within its level. The index starts from 1. Example: 1.1.2. SWEView: Name of the view. SWEApplet: Name of the applet. None Optional Args (with Description) None
CopyRecord
Performs initialization, then calls CopyRecord on the business component. Performs initialization, then calls NewRecord on the business component. Deletes a named query.
None
CreateRecord
None
None
DeleteQuery
SweNamedQueries: Specify the name of the named query to be deleted. None SWEField: Specify the name of the applet field that you want to drilldown on. The drilldown information is specified in the repository.
None
DeleteRecord Drilldown
Deletes a record. Drills down on the field as specified in the argument SWEField.
None None
75
SWE API
Table 23.
SWE Methods Description Changes the Applet Web Template from base mode to edit mode, so the record can be edited. Use EditRecord with applets running in Standard Interactivity. For applets running in High Interactivity (HI), it is not necessary to change the Applet Web Template mode to edit the record. For HI applets, use WriteRecord. Executes a query. The query specification of the fields is specified in the list of arguments. Executes a predefined query (PDQ) on the current view. Use with Standard Interactivity (SI) applications. Used in a tree control to expand an item on the tree. Required Args (with Description) SWESeq: Specify the sequence number of the Edit template. You can have many Edit templates for an applet in Siebel Tools, each identified by the sequence number. Optional Args (with Description) List of arguments with name and value, where the name specifies the field name and the value specifies the field query specification. Will set field query specification before executing the query.
ExecuteQuery
None
None
ExecuteNamedQuery
None
ExpandTreeItem
SWETreeItem: Specify the path of the item relative to root. The path is a string of the form n.n.n.nwhere n is an index of an item within its level. The index starts from 1. Example: 1.1.2. SWEView: Name of the view. SWEApplet: Name of the applet. None
None
GotoFirstSet
Goes to the first set of records. The number of rows in a set is specified in the repository. Goes to the last set of records.
None
GotoLastSet
None
None
76
SWE API
Table 23.
SWE Methods Description Goes to the next set of records. Goes to the previous set of records. Goes to a Siebel view. If the SWEPostnApplet and SWEPostnRowId arguments are specified, will execute a search for the specified rowId in the specified applet. NOTE: If the queried applet is part of a toggle cycle, SWEPostnApplet should be set to the default (top) applet in the toggle cycle or the application will display an error, View: %1 does not contain applet: %2. For more information about applet toggles, see Configuring Siebel Business Applications. If SWEQMApplet and SWEQMMethod arguments are specified, will invoke the method after going to the view. Required Args (with Description) None None SWETargetView - name of the view. Optional Args (with Description) None None SWEKeepContext if TRUE, keeps the current business object if going to a view that uses the same business object. SWEPostnApplet name of the applet that the search should be executed on. SWEPostnRowId rowId to search for. SWEQMApplet name of the QueueMethod applet. This is the applet where the method (as specified in SWEQMMethod) should be invoked after going to the view. SWEQMMethod name of the QueueMethod method. The method to be invoked. You can invoke only one method. SWEQMArgs arguments of the QueueMethod method.
Indent
For a hierarchical applet, moves the current record down the hierarchy by one level.
None
None
77
SWE API
Table 23.
SWE Methods Description For a hierarchical applet, moves the current record down the hierarchy within the same level. For a hierarchical applet, moves the current record up the hierarchy within the same level. Begins a new query. If the applet has an association applet, shows the association popup applet. Otherwise, creates a new record. Used in a tree control to scroll the tree to the next set of record. Required Args (with Description) None Optional Args (with Description) None
MoveUp
None
None
NewQuery NewRecord
None None
None None
NextTreeItem
SWETreeItem: Specifies the path of the item relative to root. The path is a string of the form n.n.n.nwhere n is an index of an item within its level. The index starts from 1. Example: 1.1.2. SWEView: Name of the view. SWEApplet: Name of the applet. None
None
Outdent
For a hierarchical applet, moves the current record down the hierarchy by one level. Makes sure the parent applet field has nothing picked from the pick applet. Picks the current row in a pick applet.
None
PickNone
None
None
PickRecord
None
None
78
SWE API
Table 23.
SWE Methods Description Positions the record as specified in the list of required arguments. Required Args (with Description) SWEView: Name of the view. SWEApplet: Name of the Applet. SWERowId: The Row ID of the desired record. SWESetRowCnt: Sets the number of rows to be returned for XML requests. When used during PositionOnRow, the specified number of rows are returned, and the selected row remains highlighted. SWEReqRowId: Indicates that the row is required in the operation. None Optional Args (with Description) None
PostChanges
Sets the field values as specified in the list of arguments to the record being created or edited.
List of arguments with name and value where the name specifies the field name and the value specifies the field value. Will set these field values before committing the record. None
PreviousTreeItem
Used in a tree control to scroll the tree to the previous set of records.
SWETreeItem: Specify the path of the item relative to root. The path is a string of the form n.n.n.nwhere n is an index of an item within its level. The index starts from 1. Example: 1.1.2. SWEView: Name of the view. SWEApplet: Name of the applet. None
RefineQuery
None
79
SWE API
Table 23.
SWE Methods Description Saves the current query as a named query. The name is specified in the argument _SweNamedQueries. Used in a tree control to select an item of the tree. Required Args (with Description) SweNamedQueries: Specify the name to save the query as. Optional Args (with Description) None
SelectTreeItem
SWETreeItem: Specifies the path of the item relative to root. The path is a string of the form n.n.n.nwhere n is an index of an item within its level. The index starts from 1. Example: 1.1.2. SWEView: Name of the view. SWEApplet: Name of the applet. SWEField: Specifies the name of the applet field that you want to sort in ascending order. SWEField: Specifies the name of the applet field that you want to sort in descending order. SWESeq: Sequence number of the toggle applet to toggle to. None SWERowId: Is the Row ID of the record to be saved. SWEReqRowId: Indicates that the Row ID is required in the operation.
None
SortAscending
Sorts the field as specified in the argument SWEField in ascending order. Sorts the field as specified in the argument SWEField in descending order. Toggles to a different toggle applet. Undoes a record that is being created or edited. Commits a record that is being created or edited.
None
SortDescending
None
ToggleTo
None
UndoRecord WriteRecord
None None
80
SWE API
Swe Arguments
Table 24 lists some commonly used SWE arguments.
Table 24.
SWE Arguments Short Format None Description Formerly known as SWEAuxCmd. Allows login manager to string two SWE commands in a single request. Used to indicated that a URL is a bookmarked URL. It is retrieved in the UI by using the Get Bookmark URL command. Dynamically generates an index number for each hyperlink for the purpose of bookmarking each request. Discards all UI content (including anchors) if set to TRUE. Uses the commaseparated UI element names specified as the value of the parameter to exclude UI elements from appearing in the output document. Usage SWECmd=ExecuteLogin, and then a SWEAC=GotoPageTab. Examples SWECmd=ExecuteLogin &SWEUserName=joe&SW EPassword=passwd&SW EAC=SWECmd=GotoPage Tab&SWEScreen=Accou nts+Screen&SWEReloa dFrames=1. None
SWEBU
None
SWECount
SWEDataOnly
None
SWEDataOnly={TRUE | FALSE}<ARG NAME=SWEDataOnly> TRUE|FALSE</ARG> SWEExclude=list of names. Names can be MENU, SCREENBAR, TOOLBAR, THREADBAR, PAGEITEM, VIEWBAR.<ARG NAME=SWEExcludet>l ist of names</ARG>
SWEDataOnly=TRUE <ARG NAME=SWEDataOnl y>TRUE</ARG> SWEExclude=MENU, SCREENBAR<ARG NAME=SWEExclude > MENU,SCREENBAR </ARG>
SWEExclude
None
81
SWE API
Table 24.
SWE Arguments Short Format F Description Specifies the name of the applet field. Forces a full refresh of the Siebel Web Client. Used by the High Interactivity client to send a SWE command to load the High Interactivity client completely. Typically used for session interleaving from a non-Siebel session to the Siebel High Interactivity client application. This parameter is used to filter the outbound XML document so only the applet named as the value of the parameter will be allowed in the output. All other document content will be discarded. Discards all XML content and returns only PDQ list when set to TRUE. Usage SWEField=<field name><ARG NAME=SWEField>field name</ARG> SWEFullRefresh={TRUE | FALSE}<ARG NAME=SWEFullRefresh >TRUE|FALSE</ARG> Examples SWEField=Revenue< ARG NAME=SWEField>R evenue</ARG> SWEFullRefresh=TRU E<ARG NAME=SWEFullRefre sh>TRUE</ARG>
SWEFullRefresh
None
SWEGetApplet
None
SWEGetPDQ
None
None
82
SWE API
Table 24.
SWE Arguments Short Format Kx Description Keeps the current business object if going to a view that uses the same business object, if set to TRUE. Skips restoring the state of the view, applet, busobj, and buscomp when going back to a previously viewed page, if set to FALSE. Default is TRUE for a view or applet and FALSE for a Web page. Usage SWEKeepContext={TRU E | FALSE}<ARG NAME=SWEKeepContex t>TRUE|FALSE</ARG> Examples SWEKeepContext=TR UE<ARG NAME=SWEKeepCon text>TRUE</ARG>
SWENeedContext
Nct
SWENoAnchor
None
Discards all anchors if set to TRUE. Forces the reloading of all HTML frames when set to TRUE. Needs to position to the row specified in the argument SWERowI, if set to TRUE. Specifies the number of rows to be used as an attribute of an HTML frameset.
SWENOAnchor={ TRUE | FALSE }<ARG NAME=SWENoAnchor >TRUE|FALSE</ARG> SWERF={TRUE|FALSE}, or <ARG NAME="SWERF">TRUE | FALSE</ARG> SWEReqRowId={ TRUE | FALSE }<ARG NAME=SWEReqRowId >TRUE|FALSE</ARG>
SWENoAnchor=TRUE <ARG NAME=SWENoAncho r>TRUE</ARG> SWERF=TRUE, or <ARG NAME="SWERF">TRU E</ARG> SWEReqRowId=TRUE <ARG NAME=SWEReqRowI d>TRUE</ARG>
SWEReloadFrames
RF
SWEReqRowId
Rqr
SWERows
Rs
83
Table 24.
SWE Arguments Short Format R Description The rowId of the record to position to. A string specifying the rowId of the parent buscomps. Usage SWERowId=<rowid><A RG NAME=SWERowId> rowid</ARG> SWERowIds=<string of rowids><ARG NAME=SWERowId> string of rowids</ARG> Examples SWERowId=12XI46FG<ARG NAME=SWERowId> 12-XI46FG</ARG> SWERowIds=SWERo wId0%3d1261W25L<ARG NAME=SWERowId> SWERowId=1261W25L</ARG> SWESetMarkup=HTM L<ARG NAME=SWESetMark up>HTML</ARG>
SWERowIds
Rs
SWESetMarkup
None
Temporarily sets the markup language to use in the output document. Disables the use of templates during the generation of the outbound document. Temporarily sets the workset size or row number of list applets in the view. Specifies the name of the XSLT style sheet to use to perform the XSLT on the XML output document.
SWESetMarkup=<name of the markup language><ARG NAME=SWESetMarkup >markup language</ ARG> SWESetNoTempl={TRUE | FALSE}<ARG NAME=SWESetNoTemp l>TRUE|FALSE</ARG>
SWESetNoTempl
None
SWESetRowCnt
None
SWESetRowCnt=<numb er of list rows><ARG NAME=SWESetRowCnt >number of list rows</ ARG> SWEXslStyleSheet=<sty lesheet name>. The style sheet needs to be in the applications webtempl directory.<ARG NAME=SWEXslStyleShe et>name of the XSLT stylesheet</ARG>
SWESetRowCnt=50< ARG NAME=SWESetRowC nt>number of list rows</ARG> SWEXslStyleSheet=ui .xsl<ARG NAME=SWEXslStyle Sheet>ui.xsl</ARG>
SWEXslStyleSheet
None
84
Inbound DTD
DTD for the inbound documents used with the XML Web Interface <!-- Copyright (c) 2001 Siebel Systems, Inc. --> <!ELEMENT <!ATTLIST ATTR PATH TARGET > <!ELEMENT <!ATTLIST NAME VALUE > <!ELEMENT <!ATTLIST NAME > <!ELEMENT <!ATTLIST NAME > EXEC EXEC CDATA CDATA CDATA CMD CMD CDATA CDATA ARG ARG CDATA INFO INFO CDATA #REQUIRED #REQUIRED (#PCDATA) > #REQUIRED (#PCDATA) > #REQUIRED #IMPLIED #IMPLIED #IMPLIED (ARG*) > (CMD, INFO*) >
Outbound DTD
DTD for the outbound documents used with the XML Web Interface <!-- Copyright (c) 2001 Siebel Systems, Inc. --> <!ELEMENT <!ATTLIST NAME > <!ELEMENT <!ATTLIST MARKUP TYPE > <!ELEMENT APPLICATION APPLICATION CDATA USER_AGENT USER_AGENT CDATA CDATA NAVIGATION_ELEMENTS #REQUIRED EMPTY> #REQUIRED #IMPLIED (MENU*, TOOL_BAR*, (ERROR*, (USER_AGENT?, NAVIGATION_ELEMENTS*, (SCREEN | APPLET | FORM | PDQ_BAR)* ), ERROR*) >
85
SCREEN_BAR*, THREAD_BAR*, VIEW_BAR*, PAGE_ITEM*) > <!ELEMENT <!ATTLIST NAME > <!ELEMENT <!ATTLIST MENU MENU CDATA MENU_ITEM MENU_ITEM (MENU_ITEM | ERROR)* > #REQUIRED (#PCDATA | ANCHOR | MENU_ITEM | ERROR)* > #IMPLIED #IMPLIED #IMPLIED ((CMD, INFO*) | ERROR*) > #IMPLIED IMPLIED #IMPLIED (ARG*) > #REQUIRED #REQUIRED (#PCDATA) > #REQUIRED (#PCDATA) > #REQUIRED (TOOL_ITEM | ERROR)* > #REQUIRED #IMPLIED (#PCDATA | ANCHOR | ERROR)* >
NAME CDATA ENABLED (TRUE | FALSE) TYPE CDATA > <!ELEMENT <!ATTLIST ATTR PATH TARGET > <!ELEMENT <!ATTLIST NAME VALUE > <!ELEMENT <!ATTLIST NAME > <!ELEMENT <!ATTLIST NAME > <!ELEMENT <!ATTLIST NAME PATH > <!ELEMENT <!ATTLIST ANCHOR ANCHOR CDATA CDATA CDATA CMD CMD CDATA CDATA ARG ARG CDATA INFO INFO CDATA TOOL_BAR TOOL_BAR CDATA CDATA TOOL_ITEM TOOL_ITEM
86
(SCREEN_TAB | VIEW_BAR | ERROR)* > (#PCDATA | VIEW_BAR | ANCHOR | ERROR)* > #REQUIRED "FALSE" #IMPLIED (THREAD | ERROR)* > (#PCDATA | ANCHOR | ERROR)* > #REQUIRED (VIEW_TAB | ERROR)* > #IMPLIED #IMPLIED #IMPLIED (#PCDATA | ANCHOR | ERROR)* > #REQUIRED "FALSE" #IMPLIED (#PCDATA | ANCHOR | ERROR)* > #REQUIRED #IMPLIED #IMPLIED #REQUIRED (VIEW | ERROR*) > #REQUIRED "FALSE" #IMPLIED
NAME CDATA ACTIVE (TRUE | FALSE) CAPTION CDATA > <!ELEMENT <!ELEMENT <!ATTLIST TITLE > <!ELEMENT <!ATTLIST MODE SCREEN TYPE > <!ELEMENT <!ATTLIST THREAD_BAR THREAD THREAD CDATA VIEW_BAR VIEW_BAR CDATA CDATA CDATA VIEW_TAB VIEW_TAB
NAME CDATA SELECTED (TRUE | FALSE) TITLE CDATA > <!ELEMENT <!ATTLIST NAME ATTR CAPTION TYPE ><!ELEMENT <!ATTLIST PAGE_ITEM PAGE_ITEM CDATA CDATA CDATA CDATA SCREEN SCREEN
NAME CDATA ACTIVE (TRUE | FALSE) CAPTION CDATA > <!ELEMENT <!ATTLIST VIEW VIEW
87
NAME CDATA ACTIVE (TRUE | FALSE) CATEGORY CDATA TITLE CDATA > <!ELEMENT <!ATTLIST APPLET APPLET CDATA CDATA CDATA CDATA CDATA (TRUE | (TRUE | (TRUE | (TRUE | (TRUE | CDATA CDATA
#REQUIRED "FALSE" #IMPLIED #IMPLIED (FORM | CONTROL | CALENDAR | TREE | (LIST | (RS_HEADER, RS_DATA)) | SORT_FIELD | APPLET_TOGGLE | ERROR)* >
NAME ACTIVE CLASS ID MODE NO_DELETE NO_EXEC_QUERY NO_INSERT NO_MERGE NO_UPDATE ROW_COUNTER TITLE > <!ELEMENT <!ATTLIST NAME ACTION ATTR METHOD TARGET > <!ELEMENT <!ATTLIST FORM FORM CDATA CDATA CDATA CDATA CDATA
#REQUIRED #IMPLIED #IMPLIED #IMPLIED #IMPLIED "FALSE" "FALSE" "FALSE" "FALSE" "FALSE" #IMPLIED #IMPLIED
((CONTROL | CALENDAR | TREE | (LIST | (RS_HEADER, RS_DATA)) | SORT_FIELD | APPLET_TOGGLE | PDQ_BAR | SUB_VIEW_BAR)* | ERROR*) >
#IMPLIED #IMPLIED #IMPLIED #IMPLIED #IMPLIED (#PCDATA | IMG | ANCHOR | PICK_LIST | ERROR)* > CDATA CDATA (TRUE CDATA CDATA (TRUE CDATA CDATA (TRUE CDATA CDATA CDATA (TRUE (TRUE (TRUE #REQUIRED #IMPLIED "FALSE" #IMPLIED #IMPLIED "FALSE" #IMPLIED #IMPLIED "FALSE" #IMPLIED #IMPLIED #IMPLIED "FALSE" "FALSE" "FALSE"
CONTROL CONTROL
NAME ATTR CALCULATED CAPTION DATATYPE ENABLED FIELD FORMAT HIDDEN HTML_TYPE ID MAX_LENGTH NUMBER_BASED READ_ONLY REQUIRED
| FALSE)
| FALSE)
| FALSE)
88
REQUIRED_INDICATOR SCALE TEXT_ALIGN TEXT_BASED TYPE VARIABLE > <!ELEMENT <!ATTLIST NAME ATTR VALUE > <!ELEMENT <!ATTLIST PICK_LIST PICK_LIST CDATA CDATA CDATA OPTION OPTION
(OPTION | ERROR)* > #IMPLIED #IMPLIED #IMPLIED (#PCDATA | ERROR)* > #IMPLIED "FALSE" ((RS_HEADER, RS_DATA) | ALERT | ERROR*) > (METHOD | COLUMN | ERROR)* > (ROW | ERROR)* > (#PCDATA | ANCHOR)* >
CAPTION CDATA SELECTED (TRUE | FALSE) > <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST LIST RS_HEADER RS_DATA METHOD METHOD
NAME CDATA CAPTION CDATA FIELD CDATA > <!ELEMENT <!ATTLIST COLUMN COLUMN CDATA (TRUE CDATA CDATA CDATA CDATA (TRUE CDATA CDATA CDATA (TRUE (TRUE (TRUE CDATA CDATA | FALSE)
#REQUIRED #IMPLIED #IMPLIED (METHOD | ERROR)* > #REQUIRED "FALSE" #IMPLIED #IMPLIED #IMPLIED #IMPLIED "FALSE" #IMPLIED #IMPLIED #IMPLIED "FALSE" "FALSE" "FALSE" #IMPLIED #IMPLIED
NAME CALCULATED DISPLAY_NAME DATATYPE FIELD FORMAT HIDDEN HTML_TYPE ID LIST_EDITABLE NUMBER_BASED READ_ONLY REQUIRED SCALE TEXT_ALIGN
| FALSE)
89
"FALSE" #IMPLIED "FALSE" #IMPLIED (#PCDATA | FIELD | ERROR)* > #REQUIRED "FALSE" (#PCDATA | PICK_LIST | ANCHOR | ERROR)* > #REQUIRED #IMPLIED (ITEM | ERROR)* > #REQUIRED (#PCDATA | ACTION | ITEM | ERROR)* >
ROWID CDATA SELECTED (TRUE | FALSE) > <!ELEMENT <!ATTLIST FIELD FIELD
NAME CDATA VARIABLE CDATA > <!ELEMENT <!ATTLIST NAME > <!ELEMENT <!ATTLIST ATTR CAPTION PATH SELECTED TYPE > <!ELEMENT <!ATTLIST ATTR TYPE > <!ELEMENT <!ATTLIST TITLE > <!ELEMENT <!ATTLIST TREE TREE CDATA ITEM ITEM CDATA CDATA CDATA (TRUE | FALSE) CDATA ACTION ACTION CDATA CDATA CALENDAR CALENDAR CDATA SORT_FIELD SORT_FIELD
#IMPLIED #IMPLIED #REQUIRED "FALSE" #IMPLIED (#PCDATA | ANCHOR)* > #IMPLIED #REQUIRED EMPTY> #IMPLIED (PICK_LIST | ERROR)* > #REQUIRED #IMPLIED
90
(TOGGLE_ITEM | ERROR)* > #IMPLIED (#PCDATA | ANCHOR | ERROR)* > #REQUIRED #IMPLIED "FALSE" (VIEW_TAB | ERROR)* > (PDQ | ERROR)* > (#PCDATA | ANCHOR | ERROR)* > #REQUIRED "FALSE" (#PCDATA) > #IMPLIED #IMPLIED (#PCDATA | ERROR)* (#PCDATA) > >
NAME CDATA SELECTED (TRUE | FALSE) > <!ELEMENT <!ATTLIST ALT SRC > <!ELEMENT <!ELEMENT IMG IMG CDATA CDATA ERROR ALERT
91
Attributes Two attributes are used with the XSLT style sheet: name. Specifies the name of the style sheet. mode. You can set the mode to either process or embed. When set to process, SWE performs XSLT processing on the XML output and sends the transformed document as the response back to the client. When set to embed, SWE inserts an XML processing instruction in the beginning of the XML document for external XSLT processing.
Example The following example illustrates how to specify the attributes for a style sheet. <swe:xsl-stylesheet name= table.xsl mode= process/>
92
<!-- This style sheet process the XML output for both the Splash screens and standard views--> <!-- ====================== Root Document Processing ========================--> <!-- Document Root--> <xsl:template match="/"> <xsl:apply-templates select="//APPLICATION/SCREEN/VIEW/APPLET"></xsl:applytemplates> </xsl:template> <!-- ============================ View Processing ===========================--> <!-- List Base mode Template--> <xsl:template match="APPLET"> <HTML> <BODY> <b> <!-- Applet Title Label--> <xsl:value-of select="CONTROL[@ID='1']"/> <!-- for calendar title --> <xsl:value-of select="CALENDAR/@TITLE"/> </b> <br></br> <!-- XML No Record found and other alerts --> <xsl:if test="string-length(ALERT)>0 and @CLASS='CSSFrameCalRerouteBase'"> <xsl:value-of select="ALERT"/> <br></br> </xsl:if> <!-- Search and Title with data or other links --> <xsl:apply-templates select="CONTROL[@ID=2 or @ID=3 or @ID=4 or @ID=5 or @ID=6 or @ID=7 or @ID=8 or @ID=9]"/> <!-- Separator line --> <xsl:apply-templates select="CONTROL[@ID=1000]"/> <!-- Display fields for list of records here-->
93
<xsl:apply-templates select="LIST"></xsl:apply-templates> <xsl:if test="string-length(@ROW_COUNTER)>0"> <xsl:value-of select="@ROW_COUNTER"></xsl:value-of> <br></br> </xsl:if> <!-control link for New, Main Menu, etc.. -->
<xsl:apply-templates select="CONTROL[@ID>=40 and @HTML_TYPE='Link']"/> </BODY> </HTML> </xsl:template> <!-- ================= Control and Link Processing ===================--> <xsl:template match="CONTROL"> <xsl:choose> <xsl:when test="@HTML_TYPE='Link'"> <xsl:call-template name="build_simple_link"></xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="."></xsl:value-of><br></br> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="build_simple_link"> <xsl:variable name="link"> <xsl:apply-templates select="ANCHOR"></xsl:apply-templates> </xsl:variable>
94
<br/> </xsl:template> <!-- ============================ List processing ==========================--> <!-- LIST Template builds a list of records -->
<xsl:template match="LIST"> <!-- first get the URL from the RS_HEADER element--> <xsl:variable name="link"> <xsl:apply-templates select="RS_HEADER/METHOD[@NAME='Drilldown']"/> </xsl:variable> <!-- capture the URL before the SWERowId parameter--> <xsl:variable name="link-prefix"> <xsl:value-of select="substring-before($link,'R=')"/> </xsl:variable> <!-- capture the URL after the SWERowId parameter--> <xsl:variable name="link-suffix"> <xsl:value-of select="substring-after($link,'R=')"/> </xsl:variable> <!-- capture the field with the drilldown enabled - use later to build drilldown --> <xsl:variable name="drilldowncontrol"> <xsl:value-of select="RS_HEADER/METHOD[@NAME='Drilldown']/@FIELD"></ xsl:value-of> </xsl:variable> <!-- loop through the rows in the RS_DATA element --> <xsl:for-each select="RS_DATA/ROW"> <!-- pickup the Row Id for the Row so we can rebuild the SWERowId URL parameter-> <xsl:variable name="rowid"> <xsl:value-of select="@ROWID"/> </xsl:variable> <!-- loop through each field and control in the Row -->
95
<xsl:for-each select="FIELD|CONTROL"> <xsl:choose> <!-- if the field is the drilldown field then create a link on the display data--> <xsl:when test="@NAME = $drilldowncontrol"> <xsl:element name="A"> <xsl:attribute name="HREF"> <xsl:value-of select="concat(normalize-space($link prefix),'R=',$rowid,$link-suffix)"/>&F=<xsl:value-of select="@VARIABLE"/ > </xsl:attribute> <xsl:value-of select="."></xsl:value-of> </xsl:element> </xsl:when> <!-- otherwise just display the data as is--> <xsl:otherwise> <xsl:value-of select="."></xsl:value-of> </xsl:otherwise> </xsl:choose> <!-- need a break if field is not empty --> <xsl:variable name="empty_field"> <xsl:value-of select="."/> </xsl:variable> <xsl:if test="string-length($empty_field)!=0"><br></br></xsl:if> </xsl:for-each> </xsl:for-each> <!-- Show separator line only if has one or more record --> <xsl:variable name="row_data"> <xsl:value-of select="normalize-space(RS_DATA/ROW)"/> </xsl:variable> <xsl:if test="string-length($row_data)>0">
96
<xsl:text>- - - -</xsl:text><br></br> </xsl:if> <!-- show More link only if there is next record set --> <xsl:variable name="more_link"> <xsl:value-of select="normalize-space(RS_HEADER/METHOD[@NAME='GotoNextSet']/ @CAPTION)"/> </xsl:variable> <xsl:if test="string-length($more_link)>0"> <xsl:element name="A"> <xsl:attribute name="HREF"> <xsl:apply-templates select="RS_HEADER/METHOD[@NAME='GotoNextSet']"> </xsl:attribute> <xsl:value-of select="$more_link"></xsl:value-of> </xsl:element> <br></br> </xsl:if> </xsl:template> <!-- =================== Anchor URL Processing =======================--> <!-- ANCHOR Template builds the URL for drilldowns and links --> <xsl:template match="ANCHOR"> <xsl:text>start.swe?</xsl:text> <xsl:apply-templates select="CMD|INFO"/> </xsl:template> <xsl:template match="CMD"> <xsl:value-of select="@NAME"/>=<xsl:value-of select="@VALUE"/> <xsl:apply-templates select="ARG"/> </xsl:template> <xsl:template match="ARG"> <xsl:variable name="arg"> <xsl:if test="string-length(normalize-space(.)) >0">
97
<xsl:variable name="argstring"> <xsl:choose> <xsl:when test="@NAME='Pu' or @NE='R' or @NAME='Rs'"> <xsl:value-of select="translate(normalize-space(),'%2B','+')'"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="normalize-space()"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:value-of select="$argstring"/> </xsl:if> </xsl:variable> <xsl:text>&</xsl:text> <xsl:value-of select="@NAME"></xsl:value-of>=<xsl:value-of select="$arg"></ xsl:value-of> <!--<xsl:text>&</xsl:text>--> <!--<xsl:value-of select="@NAME"/>=<xsl:value-of select="translate($arg,'%2B','+')'"/>--> </xsl:template> <xsl:template match="INFO"> <xsl:variable name="info"> <xsl:if test="string-length(normalize-space(.)) >0"> <!--<xsl:value-of select="."/>--> <xsl:value-of select="normalize-space(.)"/> </xsl:if> </xsl:variable> <xsl:text>&</xsl:text> <xsl:value-of select="@NAME"/>=<xsl:value-of select="$info"/> </xsl:template> </xsl:stylesheet>
98
Sample XSLT
The following example shows how XSLT code snippets transform an XML response from SWE into HTML. The XSLT snippets are based on the XML response generated from the Query String example described in Connecting to the XML Web Interface on page 41. <xsl:template match="/"> <TABLE bgcolor="#CCCCFF" width="100%" cellpadding="2" cellspacing="0" Border="0" > <TBODY> <xsl:apply-templates select="//APPLET/LIST"/> </TBODY> </TABLE> </xsl:template> <xsl:template match="LIST"> <xsl:apply-templates select="RS_HEADER"/> <xsl:apply-templates select="RS_DATA"/> </xsl:template> <xsl:template match="RS_HEADER"> <TR> <xsl:for-each select="COLUMN"> <xsl:if test="@NAME='Name'"> <TD colspan="3" bgcolor="#CCCCFF" class="sub2viewon" width="60%"> <B><xsl:value-of select="@DISPLAY_NAME"/></B </TD> </xsl:if> <xsl:if test="@NAME='Location'"> <TD bgcolor="#CCCCFF" class="sub2viewon" width="40%"> <B><xsl:value-of select="@DISPLAY_NAME"/></B> </TD> </xsl:if> </xsl:for-each> </TR> </xsl:template> <xsl:template match="RS_DATA"> <xsl:for-each select="ROW"> <TR> <xsl:for-each select="FIELD"> <xsl:if test="@NAME='Name'"> <TD bgcolor="#FFFFFF"> <xsl:element name="IMG"> <xsl:attribute name="SRC"> portal_files/w.gif </xsl:attribute> <xsl:attribute name="height"> 1 </xsl:attribute> <xsl:attribute name="width"> 3 </xsl:attribute> </xsl:element>
99
</TD> <TD bgcolor="#FFFFFF" valign="top"> <xsl:element name="IMG> <xsl:attribute name="SRC"> portal_files/dot.gif </xsl:attribute> <xsl:attribute name="height"> 6 </xsl:attribute> <xsl:attribute name="width"> 6 </xsl:attribute> </xsl:element> </TD> <TD bgcolor="#FFFFFF" align="left" valign="top" width="60%"> <xsl:choose> <xsl:when test="string-length(normalize space(.))> 0" <xsl:choose> <xsl:when test="@NAME='Name'"> <xsl:call-template name="link"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="."/> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:otherwise> <xsl:text> </xsl:text> </xsl:otherwise> </xsl:choose> </TD> </xsl:if> <xsl:if test="@NAME='Location'"> <TD bgcolor="#FFFFFF" align="left" valign="top" width="40%"> <xsl:choose> <xsl:when test="string-length(normalize-space(.)) < 0"> <xsl:choose> <xsl:when test="@NAME='Name'"> <xsl:call-template name="link"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="."/> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:otherwise> <xsl:text> </xsl:text> </xsl:otherwise> </xsl:choose> </TD>
100
</xsl:if> </xsl:for-each> </TR> <tr> <td colspan="4" width="40%"></td> </tr> </xsl:for-each> </xsl:template>
10 1
102
HTTP provides several means to allow Web Servers to obtain information from the browser. The most familiar example is when a user enters data into a form on a Web page and the data is sent to the Web Server, which can access the value of each form field. This example illustrates sending form field parameters to the Web Server with a POST method. In general, a browser can send cookies, headers, query string parameters, and form field parameters to the Web Server. Web Servers can also respond to the browser with cookies and custom headers. The Web Engine HTTP TXN Business Service (BS) allows Siebel business applications to retrieve or set cookies, headers, and query string and form field parameters. The Web Engine HTTP TXN Business Service can be invoked by scripts or by workflow. The inbound HTTP request to the Siebel Web Engine (SWE) is parsed and the business service returns property sets containing cookies, headers, or parameters. In addition, server variables, which are not a part of the HTTP request header, can also be retrieved. The business service can also set a custom cookie or header in the HTTP response header generated by the SWE. The business gives complete control over the request header received and response header sent by the SWE. This chapter contains the following topics: Web Engine HTTP TXN Business Service API on page 103 Example of Using the Web Engine HTTP TXN Business Service on page 106
GetAllRequestHeaders
Retrieves all request headers sent from the client to the server.
10 3
Web Engine HTTP TXN Business Service API Description Retrieves all request parameters sent from the client to the server. Retrieves all response cookies sent from the server to the client. Parameters InputArguments: Ignored. OutputArguments: Property Set containing the HTTP Parameter name-value pairs. InputArguments: Ignored. OutputArguments: Property Set hierarchy. Each cookie is a child Property Set with the TYPE property set to the cookie name. InputArguments: Ignored. OutputArguments: Property Set containing the HTTP Header namevalue pairs. InputArguments: Ignored. OutputArguments: Property Set containing the Server Variable name-value pairs. InputArguments: Ignored. OutputArguments: Property Set containing certificate name-value pairs. Currently only returns Common Name (CN) property of the certificate. InputArguments: Property Set containing the cookie names to retrieve. OutputArguments: Property Set hierarchy. Each cookie is a child Property Set with the TYPE property set to the cookie name. InputArguments: Property Set containing the header names to retrieve. OutputArguments: Property Set containing the HTTP Header namevalue pairs.
GetAllRequestParameters
GetAllResponseCookies
GetAllResponseHeaders
Retrieves all response headers sent from the server to the client. Retrieves all server variables.
GetAllServerVariables
GetClientCertificate
GetRequestCookies
GetRequestHeaders
104
Web Engine HTTP TXN Business Service API Description Retrieves the request Web Session, Headers, Cookies, Parameters and Client Certificate information in one call. Parameters InputArguments: Ignored OutputArguments: Property Set hierarchy. Each section is a child Property Set with the TYPE property set to 'Headers', 'Cookies', 'Parameters' or 'ClientCertificate'. The Web Session information is simply stored as properties of OutputArguments. InputArguments: Property Set containing the parameter names to retrieve. OutputArguments: Property Set containing the HTTP Parameter name-value pairs. InputArguments: Property Set containing the cookie names to retrieve. OutputArguments: Property Set hierarchy. Each cookie is a child Property Set with the TYPE property set to the cookie name. InputArguments: Property Set containing the header names to retrieve. OutputArguments: Property Set containing the HTTP Header namevalue pairs. InputArguments: Ignored. OutputArguments: Property Set hierarchy. Each section is a child Property Set with the TYPE property set to 'Headers' or 'Cookies'. Content Type and Status are simply stored as properties of OutputArguments. InputArguments: Property Set containing the server variable names to retrieve. OutputArguments: Property Set containing the Server Variable name-value pairs.
GetRequestInfo
GetRequestParameters
GetResponseCookies
GetResponseHeaders
GetResponseInfo
GetServerVariables
10 5
Web Engine HTTP TXN Business Service API Description Retrieves the client's Web session information. Parameters InputArguments: Ignored. OutputArguments: Property Set containing the Web session namevalue pairsSessionName; Cookie Name; SessionId; Web Session ID; SessionFrom (Value is 'URL' or 'COOKIE'). InputArguments: Property Set hierarchy. Each cookie is a child Property Set with the TYPE property set to the cookie name. The PERSISTENT property determines whether the cookie will persist between sessions. If the value is Y, the cookie persists between browser sessions. Otherwise, the cookie exists for one session at a time. OutputArguments: Ignored.
GetWebSessionInfo
SetResponseCookies
SetResponseHeaders
InputArguments: Property Set containing the HTTP Header namevalue pairs. OutputArguments: Ignored. InputArguments: Property Set hierarchy. Each section is a child Property Set with the TYPE property set to 'Headers' or 'Cookies'. Content Type and Status are simply stored as properties of InputArguments. OutputArguments: Ignored.
SetResponseInfo
106
To add sample code for displaying results of Web Engine HTTP TXN business service 1 2 3 4
In Oracles Siebel Tools navigate to the desired Applet object, in the Object Explorer. Lock the project if required. Right click and select the Edit Server Script option. Add the following three functions, individually to the declarations section: WebApplet_OutputchildPropertySets WebApplet_OutputProperties WebApplet_OutputPropertySet
10 7
if (oPropertySet.GetPropertyCount() == 0 ) { Clib.fputs('(NONE)\n',fp); } else { strName = oPropertySet.GetFirstProperty(); while ( strName != '') { Clib.fputs(strName + ' : ' + oPropertySet.GetProperty(strName) + '\n' ,fp); strName = oPropertySet.GetNextProperty(); } } } Sample code for the WebApplet_OutputPropertySet Function: function WebApplet_OutputPropertySet(oPropertySet, nLevel, fp ) { Clib.fputs('\n',fp); Clib.fputs('-------------------------------------\n',fp); Clib.fputs('START' + ' ',fp); Clib.fputs('LEVEL : ' + nLevel + '\n', fp); Clib.fputs('-------------------------------------\n',fp); Clib.fputs('TYPE : ' + oPropertySet.GetType() + '\n',fp); Clib.fputs('VALUE : ' + oPropertySet.GetValue() + '\n',fp); WebApplet_OutputProperties(oPropertySet, nLevel, fp); WebApplet_OutputChildPropertySets(oPropertySet, nLevel, fp); Clib.fputs('-------------------------------------\n',fp); Clib.fputs('END' + ' ',fp); Clib.fputs('LEVEL : ' + nLevel + '\n',fp); Clib.fputs('-------------------------------------\n',fp); }
To add sample code for invoking methods of Web Engine HTTP TXN business service 1 2 3 4 5
Add the code from Appendix A, Sample Code for Invoking Methods to the WebApplet_InvokeMethod event. Compile the project. Launch the Siebel application. Navigate to the applet where the server script has been placed. Perform an action on the applet that invokes a SWE method (for example, change the record or create a new record). The code will generate a text file in the \bin folder where the Siebel application is installed containing results of each method of the Web Engine HTTP TXN business service.
108
Sample Output
The following is an excerpt of the resulting text file. ===================================== WebApplet InvokeMethod event: ===================================== ===================================== Method: GetAllRequestCookies ===================================== ------------------------------------START LEVEL : 0 ------------------------------------TYPE : COOKIES VALUE : ------------------------------------PROPERTIES ------------------------------------(NONE) ------------------------------------CHILD PROPERTY SETS ------------------------------------------------------------------------START LEVEL : 1 ------------------------------------TYPE : SWEUAID VALUE : 1 ------------------------------------PROPERTIES ------------------------------------Max-Age : -1 Domain : Path : ------------------------------------CHILD PROPERTY SETS ------------------------------------(NONE) ------------------------------------END LEVEL : 1 ------------------------------------------------------------------------END LEVEL : 0 ------------------------------------===================================== Method: GetAllRequestHeaders ===================================== ------------------------------------START LEVEL : 0 ------------------------------------TYPE : HEADERS VALUE :
10 9
------------------------------------PROPERTIES ------------------------------------HOST : <host computer name> CACHE-CONTROL : no-cache CONNECTION : Keep-Alive COOKIE : SWEUAID=1 USER-AGENT : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461; SV1; .NET CLR 1.1.4322) CONTENT-TYPE : application/x-www-form-urlencoded ACCEPT-ENCODING : deflate CONTENT-LENGTH : 348 ------------------------------------CHILD PROPERTY SETS ------------------------------------(NONE) ------------------------------------END LEVEL : 0 ------------------------------------===================================== Method: GetAllRequestParameters ===================================== ------------------------------------START LEVEL : 0 ------------------------------------TYPE : PARAMETERS VALUE : ------------------------------------PROPERTIES ------------------------------------SWEActiveView : Account List View SWERowIds : SWEP : SWESP : false SWECmd : InvokeMethod SWEMethod : PositionOnRow SWER : 1 SWEControlClicked : 0 SWEIgnoreCtrlShift : 0 SWEVI : SWEActiveApplet : Account List Applet SWERPC : 1 SWEReqRowId : 1 SWEView : Account List View SWEC : 3 SWERowId : 1-6 SWEShiftClicked : 0 SWETS : 1118939959734 SWEApplet : Account List Applet ------------------------------------CHILD PROPERTY SETS -------------------------------------
110
11 1
112
This appendix contains the sample code for invoking the methods of the Web Engine HTTP TXN business service and writing the results to a text file.
Sample Code for Invoking Methods of Web Engine HTTP TXN Business Service
Add the following sample code to the WebApplet_InvokeMethod event: function WebApplet_InvokeMethod (MethodName) { var fp = Clib.fopen('testfile.txt','a'); if ( fp == null ) { TheApplication().RaiseErrorText(" ERROR Opening File ") } else { var oBS = TheApplication().GetService('Web Engine HTTP TXN'); var Inputs = TheApplication().NewPropertySet(); var Outputs = TheApplication().NewPropertySet(); var Headers = TheApplication().NewPropertySet(); var Cookies = TheApplication().NewPropertySet(); var tmpCookie = TheApplication().NewPropertySet(); Clib.fputs('=====================================\n',fp); Clib.fputs('WebApplet InvokeMethod event:\n',fp); Clib.fputs('=====================================\n',fp); Clib.fputs('\n',fp); Clib.fputs('=====================================\n',fp); Clib.fputs('Method: GetAllRequestCookies\n',fp); Clib.fputs('=====================================\n',fp); Inputs.Reset(); Outputs.Reset(); oBS.InvokeMethod ( 'GetAllRequestCookies', Inputs, Outputs); WebApplet_OutputPropertySet(Outputs, 0, fp); Clib.fputs('\n',fp); Clib.fputs('=====================================\n',fp); Clib.fputs('Method: GetAllRequestHeaders\n',fp); Clib.fputs('=====================================\n',fp);
11 3
Inputs.Reset(); Outputs.Reset(); oBS.InvokeMethod ('GetAllRequestHeaders', Inputs, Outputs); WebApplet_OutputPropertySet(Outputs, 0, fp); Clib.fputs('\n',fp); Clib.fputs('=====================================\n',fp); Clib.fputs('Method: GetAllRequestParameters\n',fp); Clib.fputs('=====================================\n',fp); Inputs.Reset(); Outputs.Reset(); oBS.InvokeMethod ('GetAllRequestParameters', Inputs, Outputs); WebApplet_OutputPropertySet(Outputs, 0, fp); Clib.fputs('\n',fp); Clib.fputs('=====================================\n',fp); Clib.fputs('Method: GetAllResponseCookies\n',fp); Clib.fputs('=====================================\n',fp); Inputs.Reset(); Outputs.Reset(); oBS.InvokeMethod ('GetAllResponseCookies', Inputs, Outputs) WebApplet_OutputPropertySet(Outputs, 0, fp); Clib.fputs('\n',fp); Clib.fputs('=====================================\n',fp); Clib.fputs('Method: GetAllResponseHeaders\n',fp); Clib.fputs('=====================================\n',fp); Inputs.Reset(); Outputs.Reset(); oBS.InvokeMethod ('GetAllResponseHeaders', Inputs, Outputs); WebApplet_OutputPropertySet(Outputs, 0, fp); Clib.fputs('\n',fp); Clib.fputs('=====================================\n',fp); Clib.fputs('Method: GetAllServerVariables\n',fp); Clib.fputs('=====================================\n',fp); Inputs.Reset(); Outputs.Reset(); oBS.InvokeMethod ('GetAllServerVariables', Inputs, Outputs); WebApplet_OutputPropertySet(Outputs, 0, fp); Clib.fputs('\n',fp); Clib.fputs('=====================================\n',fp); Clib.fputs('Method: GetRequestCookies\n',fp); Clib.fputs('=====================================\n',fp); Inputs.Reset(); Outputs.Reset(); Inputs.SetProperty ('MY-COOKIE', ''); Inputs.SetProperty ('TestCookie', ''); Inputs.SetProperty ('Test1Cookie', '');
114
Sample Code for Invoking Methods of Web Engine HTTP TXN Business Service
oBS.InvokeMethod ('GetRequestCookies', Inputs, Outputs); WebApplet_OutputPropertySet(Outputs, 0, fp); Clib.fputs('\n',fp); Clib.fputs('=====================================\n',fp); Clib.fputs('Method: GetRequestHeaders\n',fp); Clib.fputs('=====================================\n',fp); Inputs.Reset(); Outputs.Reset(); Inputs.SetProperty Inputs.SetProperty Inputs.SetProperty Inputs.SetProperty ('MyHEADER', ''); ('MY_TEST', ''); ('CONTENT-TYPE', ''); ('CONTENT-LENGTH', '');
oBS.InvokeMethod ('GetRequestHeaders', Inputs, Outputs); WebApplet_OutputPropertySet(Outputs, 0, fp); Clib.fputs('\n',fp); Clib.fputs('=====================================\n',fp); Clib.fputs('Method: GetRequestInfo\n',fp); Clib.fputs('=====================================\n',fp); Inputs.Reset(); Outputs.Reset(); oBS.InvokeMethod ('GetRequestInfo', Inputs, Outputs); WebApplet_OutputPropertySet(Outputs, 0, fp); Clib.fputs('\n',fp); Clib.fputs('=====================================\n',fp); Clib.fputs('Method: GetRequestParameters\n',fp); Clib.fputs('=====================================\n',fp); Inputs.Reset(); Outputs.Reset(); Inputs.SetProperty Inputs.SetProperty Inputs.SetProperty Inputs.SetProperty Inputs.SetProperty ('TestQstr', ''); ('SWEActiveView', ''); ('SWECmd', ''); ('SWEMethod', ''); ('TestParam', '');
oBS.InvokeMethod ('GetRequestParameters', Inputs, Outputs); WebApplet_OutputPropertySet(Outputs, 0, fp); Clib.fputs('\n',fp); Clib.fputs('=====================================\n',fp); Clib.fputs('Method: GetResponseCookies\n',fp); Clib.fputs('=====================================\n',fp); Inputs.Reset(); Outputs.Reset();
11 5
Inputs.SetProperty ('My-Test-COOKIE', ''); Inputs.SetProperty ('_sn', ''); oBS.InvokeMethod ('GetResponseCookies', Inputs, Outputs); WebApplet_OutputPropertySet(Outputs, 0, fp); Clib.fputs('\n',fp); Clib.fputs('=====================================\n',fp); Clib.fputs('Method: GetResponseHeaders\n',fp); Clib.fputs('=====================================\n',fp); Inputs.Reset(); Outputs.Reset(); Inputs.SetProperty ('Content-Language', ''); Inputs.SetProperty ('MyHeader', ''); oBS.InvokeMethod ('GetResponseHeaders', Inputs, Outputs); WebApplet_OutputPropertySet(Outputs, 0, fp); Clib.fputs('\n',fp); Clib.fputs('=====================================\n',fp); Clib.fputs('Method: GetResponseInfo\n',fp); Clib.fputs('=====================================\n',fp); Inputs.Reset(); Outputs.Reset(); oBS.InvokeMethod ('GetResponseInfo', Inputs, Outputs); WebApplet_OutputPropertySet(Outputs, 0, fp); Clib.fputs('\n',fp); Clib.fputs('=====================================\n',fp); Clib.fputs('Method: GetServerVariables\n',fp); Clib.fputs('=====================================\n',fp); Inputs.Reset(); Outputs.Reset(); Inputs.SetProperty ('AUTH-USER-ID', ''); Inputs.SetProperty ('SERVER-NAME', ''); oBS.InvokeMethod ('GetServerVariables', Inputs, Outputs); WebApplet_OutputPropertySet(Outputs, 0, fp); Clib.fputs('\n',fp); Clib.fputs('=====================================\n',fp); Clib.fputs('Method: GetWebSessionInfo\n',fp); Clib.fputs('=====================================\n',fp); Inputs.Reset(); Outputs.Reset(); oBS.InvokeMethod ('GetWebSessionInfo', Inputs, Outputs); WebApplet_OutputPropertySet(Outputs, 0, fp);
116
Sample Code for Invoking Methods of Web Engine HTTP TXN Business Service
Clib.fputs('\n',fp); Clib.fputs('=====================================\n',fp); Clib.fputs('Method: SetResponseCookies\n',fp); Clib.fputs('=====================================\n',fp); Inputs.Reset(); Outputs.Reset(); tmpCookie = null; tmpCookie = TheApplication().NewPropertySet(); tmpCookie.SetType ('My_Test_Cookie'); tmpCookie.SetValue ('Cookie Value for My_Test_Cookie'); tmpCookie.SetProperty ('Max-Age', '23434343'); tmpCookie.SetProperty ('Domain', '.siebel.com'); tmpCookie.SetProperty ( 'Path', 'eapps/test/cookie/path'); Inputs.AddChild (tmpCookie); tmpCookie = null; tmpCookie = TheApplication().NewPropertySet(); tmpCookie.SetType ('Another_Cookie'); tmpCookie.SetValue ('Cookie Value for Another_Cookie'); tmpCookie.SetProperty ('Max-Age', '23434343'); tmpCookie.SetProperty ('Domain', 'esales.siebel.com'); tmpCookie.SetProperty ('Path', 'esales/cookie/path'); Inputs.AddChild (tmpCookie); oBS.InvokeMethod ('SetResponseCookies', Inputs, Outputs); Clib.fputs('------------------------------------\n',fp); Clib.fputs('Input Cookies\n',fp); Clib.fputs('------------------------------------\n',fp); WebApplet_OutputPropertySet(Inputs, 0, fp); oBS.InvokeMethod ('GetAllResponseCookies', Inputs, Outputs); Clib.fputs('------------------------------------\n',fp); Clib.fputs('Output Cookies\n',fp); Clib.fputs('------------------------------------\n',fp); WebApplet_OutputPropertySet(Outputs, 0, fp); Clib.fputs('\n',fp); Clib.fputs('=====================================\n',fp); Clib.fputs('Method: SetResponseHeaders\n',fp); Clib.fputs('=====================================\n',fp); Inputs.Reset(); Outputs.Reset(); Inputs.SetProperty ('MyHeader', 'THIS is MyHeader');
11 7
oBS.InvokeMethod ('SetResponseHeaders', Inputs, Outputs); Clib.fputs('------------------------------------\n',fp); Clib.fputs('Input Headers\n',fp); Clib.fputs('------------------------------------\n',fp); WebApplet_OutputPropertySet(Inputs, 0, fp) oBS.InvokeMethod ('GetAllResponseHeaders', Inputs, Outputs); Clib.fputs('------------------------------------\n',fp); Clib.fputs('Output Headers\n',fp); Clib.fputs('------------------------------------\n',fp); WebApplet_OutputPropertySet(Outputs, 0, fp); Clib.fputs('\n',fp); Clib.fputs('=====================================\n',fp); Clib.fputs('Method: SetResponseInfo\n',fp); Clib.fputs('=====================================\n',fp); Inputs.Reset(); Outputs.Reset(); Headers.Reset(); Cookies.Reset(); Headers.SetType ('HEADERS'); Headers.SetProperty ('ABC_RESPONSE_HEADER1', Headers.SetProperty ('ABC_RESPONSE_HEADER2', Headers.SetProperty ('ABC_RESPONSE_HEADER3', Headers.SetProperty ('ABC_RESPONSE_HEADER4', Inputs.AddChild( Headers); Cookies.SetType('COOKIES'); tmpCookie = null; tmpCookie = TheApplication().NewPropertySet(); tmpCookie.SetType ('My_Test_Cookie2'); tmpCookie.SetValue ( 'Cookie Value for My_Test_Cookie2'); tmpCookie.SetProperty ( 'Max-Age', '23434343'); Cookies.AddChild (tmpCookie); tmpCookie = null; tmpCookie = TheApplication().NewPropertySet(); tmpCookie.SetType ('Another_Cookie2'); tmpCookie.SetValue ('Cookie Value for Another_Cookie2'); tmpCookie.SetProperty ('Max-Age', '23434343'); Cookies.AddChild (tmpCookie); Inputs.AddChild (Cookies); oBS.InvokeMethod ('SetResponseInfo', Inputs, Outputs); Clib.fputs('------------------------------------\n',fp); Clib.fputs('Input Info\n',fp); Clib.fputs('------------------------------------\n',fp); WebApplet_OutputPropertySet(Inputs, 0, fp); 'RESPONSE_HEADER1 'RESPONSE_HEADER2 'RESPONSE_HEADER3 'RESPONSE_HEADER4 Value'); Value'); Value'); Value');
118
Sample Code for Invoking Methods of Web Engine HTTP TXN Business Service
oBS.InvokeMethod ('GetResponseInfo', Inputs, Outputs); Clib.fputs('------------------------------------\n',fp); Clib.fputs('Output Info\n',fp); Clib.fputs('------------------------------------\n',fp); WebApplet_OutputPropertySet(Outputs, 0, fp); Clib.fclose(fp); } }
11 9
120
Index
A
Accounts View, viewing in XML 40 <APPLET> XML response tag, about and attributes 54 applet external content, displaying outside 20 external content, displaying within 20 <APPLICATION> XML response tag, about and attributes 53 architecture Enterprise Application Integration, about 10 Portal Agents, about 10 XML Web interface 10 ARG tag XML command block ARG parameter name-values pairs, table of 51 attributes, table of 49 description 48 example 49 required arguments 50 authentication strategies, list of Portal Agents 12
records, process of 66 disposition types list of 12 summary, table 15 Document Type Definitions (DTD) Inbound DTD 85 Outbound DTD 85
E
EditField command, about and example 69 EditRecord command, about and example 65 EncodeURL command, about 33 Enterprise Application Integration architecture, about 10 errors SWE log file, using to debug errors 33 XML response structure error, about contained in command block 52 EXE tag XML command block attributes, table of 46 description 46 example 46 ExecuteLogin command, about and example 59 ExecuteQuery command deleting records, about and example 67 modifying records, about and example 64 querying items, about and example 62 external content applet, displaying outside 20 applet, displaying within 20 external data, configuring business components to handle 19 external host, defining 21
B
business components, configuring to handle external data 19
C
CMD tag XML command block attributes, table of 47 description 47 example 47 <COLUMN> XML response tag, about and attributes 55 content, integrating external See individual Portal Agent entries
F
<FIELD> XML response tag, about and attributes 57 Fixup Administration view, using to define a fixup type 27 fixup type, defining 27 Form Redirect disposition type, about and scenario 14
D
DeleteRecord command, about and example 67 deleting DeleteRecord, about and example 67 Execute Query, about and example 67 New Query, about and example 66
12 1
Index
G
GotoPageTab command navigating to a screen, about and example 60 picking records, about and example
68
H
high-interactivity applications, fixup type, about using for links 28 HTML attributes IFrame command, about using to define 34 WebControl command, about using to define additional attributes 37
deleting records, about and example modifying records, about and example querying items, example 61 NewRecord command, about and example 62 NoCache command, about 35 NoFormFixup command, about 35
66 64
O
Outbound DTD Document Type Definition 85
P
password Siebel password, about using UseSiebelLoginPassword command 37 UserLoginPassword command, about using 36 PickRecord command, about and example 69 Portal Agent See also individual Portal Agent entries about and features 11 architecture, about 10 authentication strategies, list of 12 creating, overview of required tasks 16 data layer, about integrating data 12 disposition types summary, table of 15 disposition types, list of 12 Form Redirect disposition type, about and scenario 14 IFrame disposition type, about 13 Inline disposition type, about 13 login requirements, determining 17 restrictions 14 SWE log file, reviewing 33 Symbolic URL commands, about 12 Web control disposition type 14 Portal Agent, administration See also individual Portal Agent entries content fixup, defining 27 external host, defining 21 Symbolic URL arguments, defining 24 Symbolic URL, defining 22 Web applications, defining 22 Portal Agent, command reference See also individual Portal Agent entries EncodeURL, about 33 IFrame, about 34 NoCache, about 35 NoFormFixup, about 35 PostRequest, about 36
I
IFrame command, about 34 IFrame disposition type about 13 summary, table 15 Inbound DTD Document Type Definitions 85 Inline disposition type about 13 restriction, use of 15 summary, table 15 Internet Explorer 4.0, Web control disposition type, about 14 5.5, IFrame support, about 13 InvokeMethod command, about and example 61
L
<LIST> XML response tag, about and attributes 54 log file, reviewing SWE log file 33 login credential, defining 28 page, reverse engineering 17 login ID Siebel login ID, about using UseSiebelLoginId 37 UserLoginId, about using to define for Web application 36 Logoff command, about and example 60
M
Mozilla browser, about 18
N
NewQuery command
122
Index
PreLoadURL, about 35 UserLoginId, about 36 UserLoginPassword, about 36 UseSiebelLoginId, about 37 UseSiebelLoginPassword, about 37 WebControl, about 37 Portal Agent, configuring See also individual Portal Agent entries about 19 business components, configuring 19 external content, displaying outside an applet 20 external content, displaying within an applet 20 SWE log file, reviewing 33 Portal Agent, example See also individual Portal Agent entries external host, defining 30 login page, reviewing 29 step overview 29 Symbolic URL arguments, defining 32 Symbolic URL, defining 31 test 33 user login credentials, defining 32 POST method, about using PostRequest to configure Portal Agent 36 PostRequest command, about 36 PreLoadURL command, about 35
ExecuteQuery command, about and example 64 NewQuery command, about and example 64 process of 64 WriteRecord command, about and example 66 records, picking EditField command, about and example GotoPageTab command, about and example 68 PickRecord command, about and example 69 process of 68 WriteRecord command, about and example 70 <ROW> XML response tag, about and attributes 57 <RS_DATA> XML response tag, about <RS_HEADER> XML response tag, about 55
69
56
S
<SCREEN> XML response tag, about and attributes 53 screen navigating to 60 navigating within 61 Session Management, about 11 Session Proxy, about 12 Session Re-Use, about 11 Siebel login ID, about using UseSiebelLoginId command 37 Siebel Object Manager, Web server configuration and markup determination 40 Siebel password, about using UseSiebelLoginPassword command 37 Siebel Web Engine (SWE) See also individual SWE entries, and XML Web interface HTML output, about configuring for 40 Siebel Wireless WML, about setting Wireless parameter 85 Siebel XML See also XML accessing, about 40 manipulating with style sheets and XSLT 91 XML-specific template tag, about and example 92 Simple Portal Agents, about authentication
Q
query string Web Server, submitting HTTP requests through 41 XML request structure, constructing 44 querying commands ExecuteQuery command, about and example 62 NewQuery command, example 61
R
records, adding NewRecord command, about and example 62 WriteRecord command, about and example 63 records, deleting DeleteRecord, about and example 67 ExecuteQuery, about and example 67 NewQuery, about and example 66 process of 66 records, modifying EditRecord command, about and example 65
12 3
Index
strategy 12 Single Sign-On Portal Agents authentication strategy, about 12 Single Sign-On technology (SS0), about 11 SSO Systems Administration view, using to specify Web application 28 style sheets, defining SWT style sheet tags 92 SWE API SWE commands, table of 71 SWE methods, table of 75 SWE commands SWEAC command, using to string commands together 71 table of 71 SWE log file, reviewing 33 SWE methods, table of 75 SWEAC command, using to string commands together 71 Symbolic URL See also Portal Agent, example arguments, defining 24 business component, configuring 19 commands, about 12 defining 22 disposition types, list of 12 EncodeURL, about using to specify encoding arguments 33 Inline disposition type 13 multiple disposition types, about 12 PreLoad URL, about using 35
Web control disposition type about 14 summary, table 15 Web Engine HTTP TXN Business Service about invoking 103 methods, example 106 methods, table of 103 Web Server query string, using to send HTTP requests 41 XML command block, using to send HTTP requests 43 WebControl command, about 37 WriteRecord command adding records, about and example 63 modifying records, about and example 66 picking records, about and example 70
X
XML See also Siebel XML HTTP response, WML response 85 HTTP response, XML response tags (table) 53 markup determination, process steps 40 Siebel Wireless WML, about setting Wireless parameter 85 XML-specific template tag, about and example 92 XML command block ARG tag 48 CMD tag 47 EXE tag 46 Web Server, using to send HTTP requests 43 XML tags, table of 45 XML commands deleting records 66 ExecuteLogin command, about and example 59 ExecuteQuery command, about and example 62 GotoPageTab command, about and example 60 InvokeMethod command, about and example 61 Logoff command, about and example 60 modifying records 64 New Query command, example 61 NewRecord command, example 62 objects available on screen, viewing 59 picking records 68 WriteRecord command, example 63
T
Time-out Handling, about 11
U
UserLoginId command, about 36 UserLoginPassword command, about 36 UseSiebelLoginId command, about 37 UseSiebelLoginPassword command, about 37
V
<VIEW> XML response tag, about and attributes 53
W
Web application defining 22 specifying and defining login credentials 28
124
Index
XML request structure query string, constructing 44 XML command block, constructing 45 XML response structure about 52 error, about contained in command block 52 XML response tags, about and table of 52 XML response tag HTML response, about 59 response syntax format (example) 57 table of tags, description, and
attributes 53 XML Web interface Accounts View, viewing in 40 architecture, about 10 overview 39 Siebel XML, about accessing 40 XML Web interface, connecting to query string, using to send HTTP requests 41 XML command block, using to send HTTP requests 43 XSL style sheets, defining tags 91
12 5
Index
126