Professional Documents
Culture Documents
MARCH 2000
Siebel Systems, Inc., 1855 South Grant St., San Mateo, CA 94402
Copyright 2000 Siebel Systems, Inc.
All rights reserved. Published 19982000
Printed in the United States of America
No part of this publication may be stored in a retrieval system, transmitted, or reproduced in any way, including
but not limited to photocopy, photographic, magnetic or other record, without the prior agreement and written
permission of Siebel Systems, Inc.
Target Account Selling Methodologies, Copyright 1996 Target Marketing International, Inc. All rights reserved.
The full text search capabilities of Siebel eBusiness Applications include technology used under license from
Fulcrum Technologies, Inc. and are the copyright of Fulcrum Technologies, Inc. and/or its licensors.
Siebel, the Siebel logo, ActiveBriefing, TrickleSync, TSQ, Universal Agent, and other Siebel product names
referenced herein are trademarks of Siebel Systems, Inc., and may be registered in certain jurisdictions.
Windows is a registered trademark of Microsoft Corporation.
All other product names, marks, logos, and symbols may be trademarks or registered trademarks of their
respective owners.
U.S. GOVERNMENT RESTRICTED RIGHTS. Programs, Ancillary Programs and Documentation, delivered
subject to the Department of Defense Federal Acquisition Regulation Supplement, are commercial computer
software as set forth in DFARS 227.7202, Commercial Computer Software and Commercial Computer Software
Documentation, and as such, any use, duplication and disclosure of the Programs, Ancillary Programs and
Documentation shall be subject to the restrictions contained in the applicable Siebel license agreement. All
other use, duplication and disclosure of the Programs, Ancillary Programs and Documentation by the U.S.
Government shall be subject to the applicable Siebel license agreement and the restrictions contained in
subsection (c) of FAR 52.227-19, Commercial Computer Software - Restricted Rights (June 1987), or
FAR 52.227-14, Rights in General Data Alternative III (June 1987), as applicable. Contractor/licensor is
Siebel Systems, Inc., 1855 South Grant Street, San Mateo, CA 94402.
Proprietary Information
Siebel Systems, Inc. considers information included in this documentation and
in Siebel eBusiness Applications Online Help to be Confidential Information.
Your access to and use of this Confidential Information are subject to the terms
and conditions of: (1) the applicable Siebel Systems software license
agreement, which has been executed and with which you agree to comply; and
(2) the proprietary and restricted rights notices included in this documentation.
Contents
Volume 1 of 2
Introduction
Who Should Use This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Intro-2
How This Book Is Organized . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Intro-3
Organization of Volume 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Intro-3
Organization of Volume 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Intro-4
Diagramming Conventions in this Guide . . . . . . . . . . . . . . . . . . . . . . . Intro-5
Whats New in This Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Intro-9
Configuring HTML Thin Client Applications in Siebel Tools . . . . . . . . . Intro-9
Business Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Intro-11
Virtual Business Components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Intro-13
New Object Wizards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Intro-14
Multiple Organizational Visibility . . . . . . . . . . . . . . . . . . . . . . . . . . . Intro-16
New Interface Table Naming Conventions . . . . . . . . . . . . . . . . . . . . . Intro-17
eScript COM/CORBA Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . Intro-17
Graphics Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Intro-18
Dynamic User Interface Enhancements . . . . . . . . . . . . . . . . . . . . . . . Intro-20
New Validation Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Intro-22
New Reporting Capability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Intro-23
Additional Documentation
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Intro-24
Version 6.0
iii
Contents
PART 1.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3
...
...
...
...
...
....
....
....
....
....
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
. . . . 1-11
. . . 1-12
. . . 1-13
. . . 1-15
. . . 1-16
. . . . . . . . . . . . . . . . . . . . . . . . . 2-20
iv
Version 6.0
Contents
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-28
Version 6.0
Contents
vi
Version 6.0
Contents
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-29
PART 2.
Version 6.0
vii
Contents
vii i
Version 6.0
Contents
Version 6.0
ix
Contents
Version 6.0
Contents
PART 3.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-26
Index
Version 6.0
xi
Contents
Volume 2 of 2
PART 4.
xii
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-5
Version 6.0
Contents
PART 5.
Siebel Architecture
Version 6.0
x iii
Contents
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-38
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-3
xiv
Version 6.0
Contents
Joins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-27
How a Join Is Constructed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-30
Using a Pre-Default Value for a Join Field . . . . . . . . . . . . . . . . . . . . . . . 18-33
Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-34
How a Link Is Constructed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18-36
Using a Link in a Master-Detail View . . . . . . . . . . . . . . . . . . . . . . . . . . .18-38
Using a Link in a Multi-Value Group . . . . . . . . . . . . . . . . . . . . . . . . . . .18-39
Using a Link in a Many-to-Many Relationship . . . . . . . . . . . . . . . . . . . .18-39
Using a Link When Merging Records . . . . . . . . . . . . . . . . . . . . . . . . . . .18-39
Cascade Delete Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-40
Multi-Value Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-40
How a Multi-Value Link Is Constructed . . . . . . . . . . . . . . . . . . . . . . . . .18-42
How an Indirect Multi-Value Link Is Constructed . . . . . . . . . . . . . . . . . .18-47
Primary ID Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-54
How a Cascade Copy with a Multi-Value Link Is Constructed . . . . . . . . .18-57
Business Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-59
How a Business Object Is Constructed . . . . . . . . . . . . . . . . . . . . . . . . . .18-63
Chapter Summary and Where to Get More Information . . . . . . . . . . . 18-65
. . . . . . . . . . . . . . . . . . . . . . . . 19-8
Applets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-9
Applet Styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-14
Form Applets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-14
List Applets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-23
Display Format Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-31
Popup Edit and Multi Line Properties . . . . . . . . . . . . . . . . . . . . . . . . . . 19-31
Type Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-32
Configuring Field Level Prompts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-32
Version 6.0
xv
Contents
Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-33
Configuring Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-36
List-Form Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-38
Master-Detail Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-40
Thread Bars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-43
Drilldown Behavior in a View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-44
Applet Toggle Behavior Within a View . . . . . . . . . . . . . . . . . . . . . . . . . 19-49
Screens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-52
Finds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-53
Configuring the Find Dialog Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-54
Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-56
Toolbars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-58
The Toolbar Object Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-60
The Command Object Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-60
The Toolbar Item Object Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-62
Chapter Summary and Where to Get More Information . . . . . . . . . . . 19-63
PART 6.
xvi
Version 6.0
Contents
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-3
x vii
Contents
PART 7.
Additional Topics
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-2
xvi ii
Version 6.0
Contents
Version 6.0
x ix
Contents
xx
Version 6.0
Contents
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-19
Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-19
Unused Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-19
Naming Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-20
View Titles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-21
Additional Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-22
Naming for Various Object Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-22
SQL Queries Against Database Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-22
Appendix Summary and Where to Get More Information . . . . . . . . . . . D-23
Version 6.0
x xi
Contents
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F-2
Index
xx ii
Version 6.0
Introduction
. . . . . . . . . . . . . . . . . . Intro-5
. . . . . . . . . . . . . . . . . . Intro-20
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Intro-24
Version 6.0
I n tr o - 1
Introduction
Who Should Use This Book
Intro
Configurators
Installing and setting up the relational DBMS where the native data is stored
Importing existing native data into your Siebel application
Modifying or creating new Siebel object definitions
Writing Siebel VB or Siebel eScript application code
In t ro - 2
Version 6.0
Introduction
How This Book Is Organized
Intro
Organization of Volume 1
Intro
Version 6.0
I n tr o - 3
Introduction
How This Book Is Organized
Organization of Volume 2
Intro
In t ro - 4
Version 6.0
Introduction
How This Book Is Organized
Intro
Line diagrams in this guide primarily fall into two categories: architectural diagrams
and property diagrams.
NOTE: Information in both kinds of diagrams throughout this book represents what
is true for standard (sometimes called vanilla) Siebel applications. It may be
different for configured applications.
Version 6.0
I n tr o - 5
Introduction
How This Book Is Organized
Architectural Diagrams
An architectural diagram shows the hierarchical (parent-child) relationships
between selected object types.
Figure 1 shows an example of an architectural diagram.
List
Control
List Column
Field
Pick Map
Join
Legend:
Object type
Join
Specification
Figure 1.
In t ro - 6
Version 6.0
Introduction
How This Book Is Organized
Object type boxes (white). Each white box represents an object type, such as
Architectural layer boxes (light gray). Each light gray box (background feature)
Solid lines. Each solid line that connects two object type boxes represents a oneto-one relationship between object definitions in the parent and child object
types. For example, an applet has, at most, one list (child) object definition and
a join normally has one join specification child object definition.
Dashed lines. Each dashed line that connects two object types indicates a
Version 6.0
I n tr o - 7
Introduction
How This Book Is Organized
Property Diagrams
A property diagram shows the relationships between object definitions used to
implement a complex structure. An example of a property diagram (in this case
illustrating the details of a multi-value group applet) appears in Figure 2.
originating Applet
MVG Applet
property
originating Control
List Columns
Field property
Business
Component
property
Field
property
Multi Value
Fields
Multi Value
Link property
Multi Value
Link property
Destination
Business
Component
property
Destination Link
property
Link
Child Business
Component
property
object definition
Destination Field
property
Figure 2.
In t ro - 8
Legend:
contained (child) object
definition
property specifies other
object definition
Version 6.0
Introduction
Whats New in This Release
Intro
The following sections describe Siebel Tools product features new in Version 6.0.
Intro
In Siebel Tools Version 6.0 the Siebel Object Model has been extendednew objects
enable you to configure the structure and content of HTML thin client Siebel
applications (for example, Siebel .COM applications and Siebel Wireless) using
Siebel Tools.
The major benefits of using Siebel Tools to configure Siebel .COM applications are
rapid development and simplified upgrade. In prior releases, changes to Siebel
business component and applet definitions were not automatically reflected in an
upgraded Web-based applicationchanges had to be made manually.
Key features include:
You can configure applets and views once in Siebel Tools for all deployment
options: Windows, Java, and HTML.
You can design applet and view Web layouts in wizards and designers.
Using this new Siebel Tools capability, you can do the following kinds of tasks for
.COM applications:
Version 6.0
I n tr o - 9
Introduction
Whats New in This Release
Figure 3 shows the Web Page object typeWeb Page is one of several new object
types that support HTML thin client configuration.
Figure 3.
For information about doing .COM configuration, see Chapter 7 of this book and the
Configuring Siebel .COM Applications.
For information about new Web-related object types, see the Siebel Object Types
Reference.
In t ro - 1 0
Version 6.0
Introduction
Whats New in This Release
Business Services
Intro
This feature provides a new top-level object (like a business object or applet) that
can be used to implement reusable business logic, and implement business rules
capabilities. Business services:
Are callable from scripts or via object interfaces using COM, CORBA, or Java
Version 6.0
I n tr o - 1 1
Introduction
Whats New in This Release
Figure 4.
For information about using this feature, see the Siebel Object Interfaces Reference
and the Siebel eBusiness Application Integration Guide.
For information about the Business Service object type, see the Siebel Object Types
Reference.
In t ro - 1 2
Version 6.0
Introduction
Whats New in This Release
Intro
Represent external data (for example, data in an SAP R/3 database) as a virtual
business component within a Siebel application
Provides a unified presentation of legacy and Siebel data within the Siebel
application user interface
For information about configuring integration objects, see the Siebel eBusiness
Application Integration Guide.
For information about the Integration object type, see the Siebel Object Types
Reference; for information about the Integration Object wizard, see Integration
Object Wizard on page 13-35.
For more information about virtual business components, see Virtual Business
Components on page 18-17 and the Siebel eBusiness Application Integration Guide.
Version 6.0
I n tr o - 1 3
Introduction
Whats New in This Release
Intro
Wizards in Siebel Tools step you through the process of creating and configuring an
object definition of a particular object type and stylefor example, a Siebel applet.
Wherever a wizard exists for a particular task in Siebel Tools, you can choose to use
it or not:
If you dont use the wizard, you change property settings for object definitions
directly.
If you use the wizard, it asks you for your preferences, and then bases property
settings on them.
Prior releases introduced the following wizards:
List Applet
MVG Applet
Pick Applet
Form Applet
Chart Applet
BusComp
Report
View
Pick List
MVG
OLEDB Rowset
Integration Object
For information about using Siebel Tools wizards, see Chapter 13.
OLEDB Rowset Wizard is explained in more detail in the following section.
In t ro - 1 4
Version 6.0
Introduction
Whats New in This Release
Version 6.0
I n tr o - 1 5
Introduction
Whats New in This Release
Intro
In t ro - 1 6
Version 6.0
Introduction
Whats New in This Release
Intro
In Version 6.0 of Siebel eBusiness Applications the existing set of interface tables
has been updated to be compliant with the new multiple organizational data model.
However, any row in one of these interface tables will refer to data owned by exactly
one organization. Export is no longer supported in the S_xxx IF tables, and the new
explicit primary mapping capability is not provided in the S_xxx IF tables.
A new family of interface tables has been introduced whose names are of the format
EIM_xxx. These tables are fully multi-org enabled. For example, using EIM_OPTY,
a single row can import an opportunity owned by organization Japan that
features a product defined by organization USA. All processes including export
are supported.
Siebel recommends that new customers use only the EIM_... interface tables, and
that existing customers transition to the new tables as soon as is convenient for
them. Siebel is continuing to support the existing S_... IF tables.
Intro
External objects can now be instantiated and accessed from Siebel eScript via COM
(Windows) and CORBA.
In prior releases, this was supported through an intermediate (wrapper) DLL or
shared object. The new feature enables seamless outbound integration with
external applications via standard published interfaces.
For information about this feature, see the Siebel Object Interfaces Reference and the
Siebel eScript Language Reference.
Version 6.0
I n tr o - 1 7
Introduction
Whats New in This Release
Graphics Enhancements
Intro
A static image control type that enables you to use a static image (not tied to the
current record) for a high-impact user interface
For information about the Control object type, see the Siebel Object Types Reference.
In t ro - 1 8
Version 6.0
Introduction
Whats New in This Release
Figure 5.
For information about the Text Style object type, see the Siebel Object Types
Reference.
Version 6.0
I n tr o - 1 9
Introduction
Whats New in This Release
Intro
Three new features in Version 6.0 provide a more intuitive and appealing user
interface:
Text style
Foreground color
Background color
Visible
Enabled
For example, if the account being viewed is a federal account, the Annual Revenues
text box and associated label can be hidden.
If some required information is missing, the corresponding label can be made red
upon validation.
These capabilities are available only in the dedicated client.
For information about using this feature, see the Siebel Object Interfaces Reference.
In t ro - 2 0
Version 6.0
Introduction
Whats New in This Release
This feature enables you to control product functionality (for example, export and
correspondence) available to your end users.
The Command property of each object names the command to be executed.
Commands can initiate business services, and can be enabled or disabled through
business services.
Figure 6 shows definitions of various Edit system menus.
Figure 6.
Version 6.0
I n tr o - 2 1
Introduction
Whats New in This Release
Intro
Figure 7 (see items 61 through 71) shows validation options new in this release.
Figure 7.
Options 64 through 71 are used with integration objects; for more information about
them, see the Siebel eBusiness Application Integration Guide.
In t ro - 2 2
Version 6.0
Introduction
Whats New in This Release
Intro
In Siebel Tools 6.0 you can define reports that will run in the Report Server.
For more information about the new reporting capabilities, see the Siebel Reports
Guide.
NOTE: Your Siebel implementation may not have all the features described in this
Version 6.0
I n tr o - 2 3
Introduction
Additional Documentation
Additional Documentation
Intro
The following documentation provides additional information that may help you do
Siebel application configuration.
Intro
Book Title
Siebel VB Language
Reference Guide
In t ro - 2 4
Version 6.0
Introduction
Additional Documentation
Intro
When you do Siebel application configuration, you may need to consult books in
the system administration documentation set (for example, to set up the
workstation/server development environment and to import legacy data into your
Siebel application).
Table 2 contains a list of the books in the system administration documentation set,
and the topics covered in them.
Table 2.
Book Title
Siebel Server
Administration Guide
Security administration
Siebel Remote
Siebel Enterprise
Integration Manager
Administration Guide
Siebel Assignment Manager
Administration Guide
Version 6.0
(Sheet 1 of 2)
I n tr o - 2 5
Introduction
Additional Documentation
Table 2.
(Sheet 2 of 2)
Book Title
Siebel Client
Administration Guide
Thin clients
Siebel Anywhere
Mobile clients
Packager utility
Intro
In t ro - 2 6
Document Title
Siebel Basics
Version 6.0
Introduction
Additional Documentation
Intro
For copies of any Siebel product documents, please use Siebel Books Online,
accessible via the Worldwide Services tab on the Siebel Systems Web site
(www.siebel.com). Through Siebel Books Online, you can order additional Siebel
documentation and copies of the Bookshelf for Siebel eBusiness Applications
CD-ROM.
Version 6.0
I n tr o - 2 7
Introduction
Contacting Siebel Technical Support
Intro
Do you know how to access Siebel Technical Support? It is crucial that you
understand the requirements for getting support. This will ensure the best
experience possible. If you have questions, please dont hesitate to contact us.
To ensure that you maximize your knowledge of Siebel products and your return on
investment:
support@siebel.com
+44.1784.494.949
Tokyo:
+81.3.5469.3811(main number)
Munich:
+49.89.95718.400
In t ro - 2 8
Version 6.0
Introduction
Siebel Welcomes Your Comments
Intro
Version 6.0
I n tr o - 2 9
Introduction
Siebel Welcomes Your Comments
In t ro - 3 0
Version 6.0
Part 1
Version 6.0
Version 6.0
Version 6.0
1-1
This chapter explains how to install Siebel Tools and set up the application
development environment.
Preinstallation Tasks
Do the following tasks before running the Siebel Tools installation program.
Siebel Tools supports the hardware and software platforms listed in the Siebel
System Requirements and Supported Platforms and Siebel Release Notes. Before
installing Siebel Tools, make sure your client platforms meet all of these
requirements and have all required third-party software installed, including
database connectivity software for your chosen RDBMS.
As a prerequisite to using Siebel Tools, you must have installed a Siebel Database
Server, which is used to store the Siebel Tools project repositories. For information
about how to do that, see the Siebel Server Installation Guide.
1-2
Version 6.0
Version 6.0
1-3
The directory name cannot be more than 18 characters long, but long
filenames, including spaces, are supported. If you specify a directory other
than C:\siebdev, make the appropriate substitutions as you read this guide.
Caution: Do not install Siebel Tools in the same directory as the
Siebel client. Doing so will cause memory conflicts and program
crashes.
6 Specify the name of your server database in the Server Database dialog box and
click Next.
7 Complete the Required Software Component - ODBC Pack dialog box.
If your PC has the exact required versions of the ODBC Text and Access
drivers (and the Microsoft SQL Server, if you are deploying on that database),
this dialog box does not appear.
If you have newer versions of the ODBC drivers installed, this dialog box lets
you choose whether to install the older versions of the ODBC drivers
included with the Siebel application software.
If you have older versions of the ODBC drivers installed, you must install the
versions provided with Siebel eBusiness Applications before continuing with
the installation.
1-4
Version 6.0
6 Click OK to exit the installer and return to the Siebel Tools installation program.
Microsoft licensing requires that at least one 32-bit Microsoft product, such as
Microsoft Word 7 (the version of Word that comes with Office 97), be installed on
the PC before Data Access Components can be installed.
NOTE: Do not select Restart Windows if prompted to do so by the MDAC installer.
Instead, select Exit Setup. Siebel recommends that you complete the installation
before rebooting your computer.
Version 6.0
1-5
1-6
Version 6.0
3 In the Select Program Folder dialog box, specify the name of your program
folder, and click Next.
The Siebel Tools icons are installed in this directory. The Event Log dialog box
appears after the installer has completed copying files. It describes the steps the
installer completes during your Siebel Tools installation.
Version 6.0
1-7
Post-Installation Tasks
Do the following tasks (described in the following sections) after running the Siebel
Tools installation program:
Verify that installation was successful by connecting to the Siebel Database Server
and entering your license key for Siebel Tools.
2 Enter your license key number in the dialog box that appears, and click OK.
You can find the license key number that has been assigned to your site on the
CD-ROM case.
1-8
Version 6.0
Version 6.0
1-9
SIEBDEV. The Siebel Tools root directory. (The name could be different based on
installation choice.)
actuate. Actuate-related files for generating and running reports.
afc. Actuate Foundation Class files.
bin. Actuate binary files.
cache. Actuate cache files.
bin. All binary files (*.exe, *.dll, *.cfg, *.dsn, *.enu, *.bat), configuration
1-10
Version 6.0
The Siebel Tools installation creates the following icons in the Siebel program folder
for the modules you have chosen to install:
Local Database Initialization. Initializes the local database.
Siebel Tools. Starts Siebel Tools.
Siebel Tools Demo. Connects to the Siebel Tools demonstration database.
Siebel Tools Help. Accesses Siebel Tools help.
Version 6.0
1-11
The Siebel Tools Installer creates the ODBC data sources described in Table 1-1. By
default, these are created as user data sources, which are visible only to the user
account under which Siebel Tools is installed. To create system data sources, you
must modify the SystemDSN parameter in the siebel.ini file before running the
Siebel Tools installation.
For information about how to do that, see the Siebel Client Installation and
Administration Guide.
The drive letter and directory at the end of each data source name will vary,
depending on where you have chosen to install Siebel Tools.
Table 1-1.
1-12
Data Source
Use
Version 6.0
You may want to have multiple local databases open at the same timefor example,
to run Siebel Tools and the Siebel client application simultaneously. If you want to
operate in this manner, you must change the local database configuration of one of
the applications.
SQL Anywhere also requires that all database files opened simultaneously have
unique filenames. Because all Siebel client applications use the same default name
for their local database files, you must rename the database file of one application
and move it to the database directory of the other.
To rename and move the local database for your Siebel Tools installation
1 Exit Siebel Tools if it is running.
2 Edit the .cfg file to change the name of your local database file:
a Open the tools.cfg file (in the \bin subdirectory of your Siebel Tools
installation) with a text editor.
b Replace the file parameter for ConnectString, under the [Local] section, with
the new name and location of the Siebel Tools local database file.
For example, change:
ConnectString
= d:\siebdev\local\sse_data.dbf
ConnectString
= c:\siebel\local\sse_tools.dbf
to:
Where:
c:\siebel = the root directory of the other Siebel application.
local = the directory of the data source.
3 Rename the Siebel Tools local database file and move it to the directory specified
in Step 2.
In this example, the c:\siebdev\database\sse_data.dbf file would be renamed
sse_tools.dbf and moved to the c:\siebel\database directory.
Version 6.0
1-13
4 Modify the ODBC data source that points to the Siebel Tools local database as
follows:
a From a DOS prompt, navigate to the \bin subdirectory of your Siebel Tools
installation.
b Type ODBCAD32 to start the ODBC administrator.
c Select the data source used by Siebel Tools.
This defaults to SSD Local Db c:\siebdev
Where:
c:\siebdev = the directory into which Siebel Tools was installed.
to:
c:\siebel\local\sse_tools.dbf
1-14
Version 6.0
Test environment. Choose the same name for the active repository in your test
Development environment. Use descriptive names for the other repositories in your
development environment. Typically, your development environment will
contain a number of repositories in addition to the current repository that is
being configured. These may include the initial repository loaded with Siebel,
other repository versions used in Siebel upgrades, and repositories from
previous versions of your custom configuration.
These repositories should be given unique and fully descriptive names. For
example, you might use Siebel 6.0.1 Original for the initial repository that was
included in the standard Siebel eBusiness Applications version 6.0.1.
Version 6.0
1-15
This section:
Explains how to set up and work in the Siebel Tools development environment
Describes how to establish the development environment
Lists the names of important directories
Explains how to set up developers as mobile users
This section focuses on the activities associated with configuring a Siebel
application. Some of these activities also apply to extending the database. See
Chapter 11, Using Extension Tables and Columns, for a complete discussion of
database extension.
1-16
Version 6.0
2 Verify that each developer has a valid user name and password for the Siebel
Development Database Server.
In most cases, their employee logins and passwords will also be their Database
Server user names and passwords.
Version 6.0
1-17
6 On the Siebel Server, extract each developers local database using the Database
Extract component.
Database Extract creates a template for the developers local database that is
populated only with business data, not repository data. All enterprise-visible
data is extracted into this template, together with any limited-visibility data
(contacts, accounts, opportunities, and so on) to which this user has access.
8 Enter the Siebel developer logon created in Step 3 and an appropriate password.
The initialization program creates the sse_data.dbf local database in the \local
directory of your Siebel Tools installation, for example c:\siebdev.
1-18
Version 6.0
Version 6.0
Database extension
Chapter 11
Getting projects
1-19
1-20
Version 6.0
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-28
Version 6.0
2-1
2-2
Version 6.0
Siebel applications are delivered out of the box with a standard interface
definition.
Figure 2-1 shows the user interface of a standard Siebel dedicated client application.
Figure 2-1.
Version 6.0
2-3
Figure 2-2 shows the user interface of a standard Siebel .COM application.
Figure 2-2.
Many Siebel customers use standard Siebel applications just as they are purchased;
however, other customers have requirements to modify the look and feel,
behavior, and workflow of their Siebel applications.
2-4
Version 6.0
For example, you might need to configure your standard Siebel application in one
of the following ways:
To create a customized form applet where your call center employees will enter
new contact information
To modify the way data is presented in your HTML thin client application
Version 6.0
2-5
2-6
Version 6.0
Figure 2-3 shows the main application window for Siebel Tools. (For more
information about this window, see Windows in Siebel Tools on page 4-4.)
Object Explorer window
Figure 2-3.
The window in Figure 2-3 (which appears when you initialize Siebel Tools) is
actually the interface for a component of Siebel Tools called BusObject Explorer.
Other product components are described in the following sections.
Version 6.0
2-7
Siebel BusObject Explorer. Graphical editing tool used for modifying and
2-8
Version 6.0
Figure 2-4.
Version 6.0
2-9
Figure 2-5.
2-10
Version 6.0
Siebel View Designer. Enables you to visually modify existing views and construct
new ones by dragging and dropping applets onto the view canvas.
Figure 2-6.
Siebel Menu Designer. Provides a visual metaphor for customizing and extending
Version 6.0
2-11
Figure 2-7.
2-12
Version 6.0
New Object wizards. Assist you in the creating new objects in the Siebel
repository.
Wizards include:
List Applet
MVG Applet
Pick Applet
Form Applet
Chart Applet
BusComp
Report
View
Pick List
MVG
OLEDB Rowset
Integration Object
When you click on the type of new object you want to create, the Siebel wizard
guides you through the task of entering the properties that type of object
requires.
Version 6.0
2-13
Figure 2-8.
2-14
Version 6.0
individual projects.
The compiler generates a Siebel repository file that is used to run a Siebel
application.
Version 6.0
2-15
Figure 2-9.
2-16
Version 6.0
Version 6.0
2-17
2-18
Version 6.0
Version 6.0
2-19
A repository file (a compiled file with .srf extension) that contains definitions for
the configured application
The repository file is a compressed, binary, read-only file that contains the
configuration definitions of the objects you create or modify during the
configuration process, and that reside in the repository.
A single repository file can contain definitions for multiple applications.
The definitions (that is, the metadata) that specify a Siebel application reside in
the system database. Siebel Tools extracts them from the database in a
compilation process and stores them in a compressed format in a binary file for
faster access by the Siebel executable, which reads them from the repository file,
as needed.
A configuration file (.cfg extension) that specifies the repository and database
files, and contains data sources and parameters
Because one of the parameters identifies the name of the application within the
repository file, each application requires a separate .cfg file.
2-20
Version 6.0
Figure 2-12 shows the Siebel application components and their relationship to one
another.
Repository file
siebel.exe
Definitions of UI,
business entries,
database constructs
.cfg file
RDBMS
Enterprise data
accessed by users
Version 6.0
2-21
Siebel Objects
User interface
Business entities
Database organization
An object definition consists of a set of properties with assigned values.
For example, a view might have properties called:
Name
Title
Inactive
The value of these properties might be:
2-22
Version 6.0
Figure 2-13 shows the properties of a view object with a Name of Account
ActiveBriefing.
Version 6.0
2-23
Programming Environment
Siebel applications are primarily enhanced through creating and modifying object
definitions rather than writing program code. This provides many of the important
benefits of the Siebel applications architecture, such as ease of application
configuration, maintenance, and upgrade. However, programming is supported
through three facilities in Siebel applications. These are Siebel VB, Siebel eScript,
and Siebel Object Interfaces.
Siebel Tools that enables developers to write event procedures. Siebel eScript
supports scripting in Windows as well as non-Windows environments such as
UNIX.
Siebel eScript is ECMAscript compliantECMAscript is the industry standard
implementation of Java script.
Siebel Object Interfaces. Siebel Object Interfaces provides access to the object
2-24
Version 6.0
Siebel VB and Siebel eScript are programming languages that enable you to write
event procedures, known as scripts, that are associated with the Siebel Event Model.
Each script is associated with a specific object and event.
Scripts are attached to object definitions of specific object types. These object types
include application, applet, control, and business component. The Siebel Script
Editor, Debugger, and Compiler are provided in Siebel Tools for the creation and
testing of Siebel VB or eScript scripts. You indicate which language you will use in
a configuration file parameter.
NOTE: Scripts are associated with the Siebel Event Model. Each script is associated
Data validation routines. These routines enforce specific business rules before or
modify data. For example, a custom routine can set the value of one field based
on the value of another after a new record is created.
Version 6.0
Data transport routines. These routines import and export small volumes of data
between Siebel applications and other applications on the client machine.
2-25
Siebel Object Interfaces provide open interfaces into the Siebel applications,
supporting integration between Siebel applications and external applications.
Siebel Object Interfaces are based on declarative object definitions that can be
configured and automatically upgraded to successive releases using Siebel Tools,
providing ease of configuration and maintenance.
Siebel Object Interfaces constitute an application program interface that supports:
Microsofts Component Object Model (COM) using the Siebel COM Automation
and Siebel COM Data Servers
ActiveX using Siebel ActiveX application control and Siebel ActiveX data control
Java using the Siebel Java Data Bean
Common Object Request Broker Architecture (CORBA) using Siebel CORBA
Interfaces
Java
Siebel developers can integrate client and server applications from a variety of
vendors. Application integration typically requires that cooperative software
application programs interactively pass data back and forth. In addition, application
integration sometimes requires that one application control or automate
another application.
Siebel Object Interfaces enable you to:
2-26
Version 6.0
Leverage existing Siebel application functionality (that is, never create new
objects unless your requirements cannot be met by modifying existing ones).
If you follow this principle your configured application will be much easier to
maintain and upgrade to future Siebel product releases.
The reason this is true is that during upgrade, new product features are
automatically applied to Siebel-supplied object definitions. Your custom
application (that is, an application that includes objects you create) will be
preserved during upgrade, but any specialized functionality or new child object
definitions implemented for the original Siebel definition will not be
implemented for your customized copy. In this situation you need to complete
your upgrade by manually comparing your cloned objects with the new standard
objects and making the relevant adjustments in the definitions of your clones.
Version 6.0
2-27
This is the general process you need to follow to configure a Siebel application
dedicated client application or HTML thin client application (for example, a .COM
or Wireless application):
1 Do a thorough business analysis of your organizations and users needs, and get
buy-in and time and resource commitments from the relevant organizations.
Can you meet the needs of your users with a standard Siebel application?
If not, what business needs will require changes to the application?
How can you ensure success with your configured application?
2-28
Version 6.0
b (HTML thin client application only) Modify your template files using a text
editor or HTML authoring tool.
c Compile your Siebel application and do unit testing.
6 Using the tools available to you in the Siebel application environment (for
example, Assignment Manager and Workflow Manager), implement the
appropriate assignment and workflow rules.
7 Extend the functionality of your application through scripting using Siebel VB or
Siebel eScript.
8 Globalize your application.
9 Do system and performance testing of your Siebel application.
10 Iterate through the development steps until your design has been fully
implemented and your application is running smoothly and meets your
performance objectives.
11 Introduce the application to your users and train them to use it effectively.
This book focuses on the tasks listed in steps 4 and 5, above.
For information about how to do Siebel application configuration tasks not
described in the Siebel Tools documentation, see Table 2-1 on page 2-30.
Version 6.0
2-29
2-30
Siebel objects
Chapter 3
Appendix D
Chapter 6
Assignment Manager
Workflow Manager
Siebel VB
Siebel eScript
Version 6.0
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8
Version 6.0
3-1
3-2
Version 6.0
Siebel Tools enables you to customize Siebel applications by modifying and creating
object definitions. A standard Siebel application provides a core set of object
definitions, which you can use as a basis for your own tailored application.
NOTE: The terms object and object definition in the Siebel application context
do not mean the same thing as the terms object, object class, or object
instance as used in a programming language like C++.
Object definitions are grouped into three layers with different subject matter and
purposes; for example:
Presentation of data
Business entities
Database details
Object types in a given layer depend on definitions in the next lower layer, and are
insulated from other layers in the structure. This means, for example, that you can
make changes to a Siebel application without changing the underlying database
structure. Similarly, you can extend the Siebel database schema without impacting
the Siebel application.
As shown in Figure 3-1, the Siebel application architecture consists of the following
four layers:
Version 6.0
3-3
Siebel
eBusiness
Applications
DBMS
Figure 3-1.
Third-party
Database
Vendor
An object definition in the Siebel Tools environment implements one piece of the
softwareeither a user interface, an abstract data representation, or a direct
database representation construct. For example, a database column, a dialog box,
and a join relationship between database tables are each implemented as an object
definition.
An object definition consists of properties. Properties are characteristics of the
software construct that the object definition implements. For example, the
properties of a database column include its name, data type, length, and so on.
Similarly, the properties of a dialog box include its height and width, the caption to
appear in the title bar, and so on.
3-4
Version 6.0
Object definitions in the Data Objects layer provide a logical representation of the
underlying physical database (constructs like table, column, and index), and
are independent of the installed DBMS.
This product feature enables you to migrate a Siebel application from one DBMS to
another without having to modify the repository file where the metadata is stored.
In fact, you can have a single repository file and a mix of databases from different
vendors (for example, one on the server, another for connected clients, and a third
for remote clients).
The physical tables in the DBMS are created as part of the Siebel application
installation process.
A set of standard tables is provided with Siebel applications for installation in the
DBMS at your site. These provide data storage for all of the features included in
standard Siebel applications, as well as expansion capability. The standard tables
and their columns and indexes are represented by corresponding table, column,
index, and index column object definitions.
Standard tables and their table object definitions generally have the following
styles:
Data. The data tables comprise the bulk of the table object definitions in Siebel
applications. The columns in data tables provide the data for fields. A data table
may serve as a base table for a business component. That is, it may provide the
primary source of data for that business component. You can add new columns
to data tables through Siebel Tools on most DBMS platforms.
Version 6.0
3-5
directly added to a data table. The database product may support only a limited
number of columns, or wont allow adding a column to a table once it is
populated with data. An extension table allows you to provide additional
columns for use as fields in a business component without violating DBMS or
Siebel restrictions.
Interface. The interface tables are intermediate database tables between the
Siebel application database and other databases. Interface tables are used by the
Siebel Enterprise Integration Manager (EIM) to import data into one or more
base tables and, subsequently, to exchange data between Siebel applications and
other enterprise applications.
The columns in standard tables are of the following styles:
Data. The data columns are part of the original set of columns implemented in
Siebel applications. They hold data that is made available through fields to
developers and users.
although no one set of system columns appears in every table. Some standard
system columns are ROW_ID, CREATED, and CREATED_BY. Developers may use
the data in system columns for various purposes; for example, the ROW_ID
column in tables is used in the construction of joins. Generally developers do not
modify the data in system columns, although there are exceptions, such as
certain of the system columns in interface tables.
3-6
Version 6.0
The set of tables and columns provided in standard Siebel applications implements
a comprehensive design, and supports a wide range of configuration activities.
However, it is also designed to work in certain ways, and changes made that are not
in accordance with Siebel standards can slow performance or cause software
failures. You can add extension tables as well as extension columns to base tables
using Siebel Tools, and you can also add new base tables.
Version 6.0
3-7
Business Components
A business component consists of multiple fields that characterize it; for example,
some of the fields for Contact might consist of first name, job title, and email
address.
As shown in Figure 3-2, a business component (in this example, Contact) maps to
one main table (S_CONTACT) in the Data Objects Layer, and fields in the business
component map to columns in the main table.
Business
Component
Table
Contact
First Name
3-8
Email Address
Fields
JOB_TITLE
EMAIL_ADDR
Columns
S_CONTACT
FST_NAME
Figure 3-2.
Job Title
Version 6.0
Business components can also include data from related tables. Figure 3-3 shows
the Contact business component mapped to the main table (S_CONTACT) and also
two related tables, S_ORG_EXT and S_OPTY_CON.
Business
Component
Contact
First Name
Account Location
Role
Fields
Table
Figure 3-3.
FST_NAME
LOC
ROLE_CD
S_CONTACT
S_ORG_EXT
S_OPTY_CON
Columns
Version 6.0
3-9
Business Objects
A business object represents a major functional area of the enterpriseevery major
entity has a business object. Examples of business objects are Opportunity,
Account, and Contact.
A business object is a collection of related business components; for example (as
shown in Figure 3-4 on page 3-10), the Opportunity business object consists of
Opportunities plus related Contacts, Activities, Products, and Issues.
Each business object has one business component that serves as the master or
driving business component. This master business component provides focus for
the business object, and they both have the same name (the name is Opportunity
in Figure 3-4).
Business
Object
Opportunity
Business
Component
Opportunity
Figure 3-4.
Contact
Activity
Product
Issues
The Opportunity business component has one and only one parent, which is the
Opportunity business object. A link would be required for the other business
components (Contact, Activity, Product, and Issues) to connect with the
Opportunity business object.
3-10
Version 6.0
Opportunity
Opportunity
Contact
Activity
Contact
Figure 3-5.
Version 6.0
Product
Issues
Account
Account
3-11
The user interface defines the visual elements with which users interactfor
example:
Figure 3-6.
3-12
Tab bar
Applets
Version 6.0
Figure 3-7 shows the user interface for a Siebel .COM application.
Figure 3-7.
Applets
An applet allows access to the data of a single business component for viewing,
editing, and modifying fields in the business component.
An applet can be configured to allow data entry for a single record; to provide a
scrolling table displaying multiple records; or to display business graphics, a
navigation tree, or a Web browser.
Version 6.0
3-13
As shown in Figure 3-8, an applet consists of controls that map to fields in the
corresponding business component:
A list column for a list applet (the bottom applet in Figure 3-6 on page 3-12)
A text box for form applets (the top applet in Figure 3-6 on page 3-12)
Business
Component
Figure 3-8.
Contact
First Name
Job Title
Email Address
All data in a given applet must be part of the business component that calls it.
Data in a given business component can be from a single table or multiple tables.
Business components can be reused in multiple applets; that is, several applets can
reference the same business component definition. This is a benefit of having a
single definition in the business component of the logical-to-physical relationship.
Since the user interface (applet) layer is abstracted from the physical layer via the
business component, there is no need to revisit the details of multiple tables in the
physical layer for each of the applets that will display data for the same business
function.
NOTE: Do not confuse the applet construct in Siebel applications with Java applets.
3-14
Version 6.0
Views
A view presents one or more applets together at one time in a predefined visual
arrangement and logical data relationship. Views are named, and a specific view is
selected by name from a combination of menus or tab symbols.
A given view is mapped to a single business object, which determines the
relationship between data displayed in two or more applets in the view. For
example, the Opportunity Contacts Detail view is based on the Opportunity
business object. Opportunity data is always displayed as the master or parent, and
other types of data (for example, Contacts) are displayed as child records of a
particular Opportunity. This allows users to see all the contacts associated with a
single Opportunity.
Each applet in a view must map to a business component in that business object.
The business components that are required to be included in each view are:
For a view based on the business object, all business components to which
applets in that view are mapped
Any business component whose data is exported in a report from a view based
on the business object
NOTE: The business component you include can be a child of another business
component.
Version 6.0
3-15
Screens
A screen is a collection of related views.
Screens are associated with major functional areas of the enterprise.
In general, all views in a screen map to the same business objectan exception is
administration screens.
As shown in Figure 3-9, screens are accessible from the Screens menu and also from
the Screens tab.
NOTE: The list of screens you can access from the Screens menu and Screens tab
Figure 3-9.
3-16
Accessing the Product Screen from the Screens Menu and Screens Tab
Version 6.0
Applications
An application (for example, Siebel Sales) is a collection of screens.
NOTE: Dont confuse Siebel applications with application executables (that is, .exe
files).
Applications are typically accessible from a Microsoft Windows icon, or from the
Windows Start menu. You access thin clients from URLs and active application
controls; Siebel thin client applications can also be stand-alone Windows or Java
applications.
Your organization may have licensed more than one Siebel application (for example,
Siebel Sales and Siebel Call Center), to be used by different groups (for example, the
sales team and the customer support team) within your organization.
In that situation you can install the Siebel Sales and Siebel Call Center as separate
applications, or as a single application in which you establish different views for the
relevant responsibilities of the two groups using them.
Version 6.0
3-17
All the object definitions required for a standard Siebel application are already
present when you install it. You can modify object definitions or create new ones in
the course of application configuration.
Object definitions can have the following value types:
User-defined names
Numerical values
Boolean values (TRUE and FALSE)
Siebel-defined constants
References to the names of other object definitions
For example, a field might have the following values:
3-18
Version 6.0
As illustrated in the prior example, standard Siebel objects follow these naming
conventions:
Logical objects in the Business Object (Account Products) and User Interface
Objects layers use mixed case and embedded spaces.
Siebel recommends this convention in the Business Objects and User Interface
Objects layers.
Physical objects in the Data Object Layer (DTYPE_TEXT and PROD) use
uppercase and underscores.
Siebel enforces this convention in the Data Object Layer.
NOTE: Always prefix the names of new objects with a meaningful text stringfor
example, if your company name is XYZ Industrial Products, Inc. you might prefix
the name of new objects with XYZ. You will find it a valuable convention during
both development and upgrade.
For more information about object naming conventions, see Appendix D.
Version 6.0
3-19
Figure 3-10 shows the major object types in a Siebel application, and the
relationship between them.
UI
Object Layer
Control
Applet
Business
Object Layer
Field
Business
Component
Data
Object Layer
Column
Table
View
Screen
Application
Business
Object
One or more
contained in
Maps to
Figure 3-10. Overview of the Major Object Types and Their Relationships
3-20
Version 6.0
The Siebel repository contains tables in the Siebel database where Siebel object
definitions are stored.
You view the contents of the Siebel repository through the Siebel Tools windows
that appear when you initialize Siebel Tools.
Figure 3-11 shows the definition of the Contact repository object as viewed in
Siebel Tools.
Version 6.0
3-21
The tables that comprise the Siebel repository, where Siebel Object Definitions
(that is, object metadata) are stored
The tables that contain user data (for example, the name, address, and phone
number of a customer contact)
There are three supported methods for getting user data into the Siebel database:
Bring in existing data using the Enterprise Integration Manager (EIM)
Bring in existing data using the Siebel COM, CORBA, or Java interface
Enter data directly into the Siebel application user interface
Virtual business components allow data from external RDBMSs and applications to
be displayed in the Siebel user interface.
3-22
Version 6.0
Version 6.0
3-23
The Siebel application architecture is object oriented, data driven, and layered for
rapid application development, so you can:
3-24
Chapter 17
Chapter 18
Chapter 19
Appendix D
Version 6.0
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-14
. . . . . . . . . . . . . . . . . . . . . . . . . 4-16
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-25
Version 6.0
4-1
4-2
Version 6.0
View object definitions in the Object Explorer, Object List Editor, and Properties
windows
Version 6.0
4-3
Figure 4-1 shows the BusObject Explorer windows in Siebel Tools that are most
often visible.
Object Explorer
Window
Figure 4-1.
4-4
Properties
Window
Version 6.0
The Object Explorer window (see Figure 4-1 on page 4-4) shows a hierarchical
representation of the major object types, and the Object List Editor window shows
object instantiations and definitions.
Choose View
Object Explorer.
NOTE: Many of the menu commands in Siebel Tools have shortcut equivalents,
Types Tab
The Types tab is selected in the Object Explorer window shown in Figure 4-2.
The Types tab View shows all object types, listed alphabetically. The Types tab
shows the object hierarchyclicking on the plus sign (+) to the left of an object
type displays all the child object types. Clicking on the minus sign (-) to the left of
an object type collapses all its child object types.
Version 6.0
4-5
Some object types have a hierarchy of multiple levels. For example (as shown in
Figure 4-2):
One of the child object types of Applet is Control, and, at the next lowest level,
Control User Prop.
Figure 4-2.
4-6
Version 6.0
Detail Tab
If you select the Detail tab of the Object Explorer (as shown in Figure 4-3) and select
an object type, the Object List Editor displays all its object definitions.
Figure 4-3.
Version 6.0
4-7
Flat Tab
The Flat tab (shown in Figure 4-4) of the Object Explorer shows all object types
(parent and child) in a single list.
Figure 4-4.
4-8
Version 6.0
The Object List Editor window (see Figure 4-1 on page 4-4) displays the object
definitions for the object type currently selected in the Object Explorer. If the object
selected in the Object Explorer window is a second- or third-tier object, two Object
List Editor windows are displayedthe object definition is in the bottom window.
Properties Window
The Properties window (see Figure 4-1 on page 4-4) displays the property settings
for the object definition currently highlighted in the Object List Editor, Applet
Designer, or Visualization View.
You can control whether or not the Object Explorer or Properties windows are
visible.
NOTE: The Object List Editor is always visible unless Siebel Tools replaces it with a
Select View
Click the window to make it active, and then click the right mouse button. Select
Hide from the menu that appears.
Click the Close (X) button in the upper-right corner of the window.
Version 6.0
4-9
You can let the Object Explorer or Properties window float, moving and sizing to fit
your needs, or dock the window in a corner of the main window.
NOTE: You cannot dock the Object List Editor window.
Drag the window to the area of the main window where you want to dock.
To undock the Object Explorer or Properties window
4-10
Version 6.0
You can view object definitions in the Object List Editor or the Properties window.
Version 6.0
4-11
Figure 4-5 shows the field-level definition for the Contact business component, as
displayed in the Object List Editor windows.
Figure 4-5.
4-12
Properties Window.
Version 6.0
Figure 4-6 shows the field-level definition for the Contact business component, as
displayed in the Properties window.
Figure 4-6.
NOTE: The Properties window does not display the Project and Changed properties.
Version 6.0
4-13
You modify new object definitions in the Object List Editor or the Properties
window.
You copy and create object definitions in the Object List Editor.
5 Type in a new value, or pick a value from the picklist (if one is provided).
6 To commit your changes, click anywhere outside the modified row (or move
outside the row with the UP or DOWN arrow).
A check mark appears in the Changed column (for more information about the
Changed column, see The Changed Flag on page 4-25).
4-14
Version 6.0
Properties
Version 6.0
4-15
4 Choose Edit
Copy Record.
A new row appears above the copied row, containing identical property values
except for the Name and Project, which are blank, and the Changed flag, which
is checked (for more information about the Changed column, see The Changed
Flag on page 4-25).
4-16
Version 6.0
4 Choose Edit
Figure 4-7.
5 Enter property values in the new row in the Object List Editor.
At a minimum, these consist of the object definitions Name property and
Project property. Other properties may also be required, depending on the type
of object definition you are creating.
6 To commit your changes, click anywhere outside the new row or move outside
of the row with the UP or DOWN arrow keys.
Version 6.0
4-17
The Edit Undo Record menu option provides the means to discard your new
record or modifications as long as you are still positioned on that record.
Once you reposition to a different record, the new record or changes are committed,
and the Undo Record option is no longer available.
4-18
Version 6.0
To validate an object
1 Select the object you want to validate
2 Right-click and select Validate.
The Validate window (see Figure 4-8) appears.
Figure 4-8.
Version 6.0
Validate Window
4-19
Figure 4-9.
4-20
Version 6.0
Errors list table. Displays the results of the validation process. Each row in the list
table identifies a rule violation for a specific object definition. You can sort the
rows by a particular list column by clicking the heading of that list column. You
can also widen and narrow list columns by dragging the right or left border of
the heading cell. The Errors list table contains the following columns:
Severity. An icon appears in this list column for each violation row. It
indicates whether the violation is a warning (yellow icon with an
exclamation mark) or an error (red icon with a minus sign). Errors cause the
compiled application to generate run-time errors.
Rule. An integer value appears in this list column, identifying the rule that
has been violated. Rules are listed in order of rule number in the Validation
Options window (shown in Figure 4-10 on page 4-22)
Object. The name of the object definition that failed validation.
Description. The description of the error or warning. It is normally cut off by
the right boundary of the list column. To view the complete text, click a
validation row, and it appears in the Details text box.
Details text box. The full text of the error or warning message for the currently
corresponding object definition in the Object List Editor. Alternatively, you can
double-click the error message.
Log File text box. Path and filename of a log file containing the list of validation
errors and warnings. To save a list of validation rows as a log file, click Save As,
navigate to the right directory, and specify a filename. You can then reload the
list of error and warning validations at a later time by using the Load button,
rather than by repeating the validation process.
Load button. Opens a previously saved log file and displays its list of validations
Version 6.0
Save As button. Saves the current list of validation rows as a log file.
4-21
4-22
Version 6.0
Rules list table. Lists all rules that can be enforced during validation. Each row
in the list table identifies a rule for a specific object type (or All). You can sort
the rows by a particular list column by clicking the heading of that list column.
You can also widen and narrow list columns by dragging the right or left border
of the heading cell. The Rules list table contains the following list columns:
Severity. An icon appears in this list column for each rule row. It indicates
whether the rule generates a warning (yellow icon with an exclamation
point) or an error (red icon with a minus sign).
Rule. The integer value that identifies this rule.
Object. Either the single object type that this rule applies to, or All.
Description. The description of the rule. It is normally cut off by the right
boundary of the list column. To view the complete text, click a rule row, and
it appears in the Details text box.
Enforce. A Yes or No value for each rule row. Yes validates all object
definitions of the object type identified in the Object list column. Yes/No
values in this list column are changed using the Enforce, Ignore, Enforce All,
and Ignore All buttons.
Save button. Saves the current set of rules and their state (enforced or ignored)
to a text file you specify. Other settings are saved to the preferences file
automatically when you press ENTER.
Enforce button. Changes the Enforce list column value in the selected row from
No to Yes.
Ignore button. Changes the Enforce list column value in the selected row from Yes
to No.
Enforce All button. Changes all values in the Enforce list column to Yes.
Ignore All button. Changes all values in the Enforce list column to No. This has
the effect in the next validation of not validating any object definitions.
Details text box. The full text of the rule description for the currently selected row
Version 6.0
4-23
Do not report warnings check box. When checked, reports errors only, not
warnings. It also changes the Enforced setting of all warning rules to No.
Abort validation after check box and text box. When the check box is checked and
an integer value appears in the text box, the system stops validating after the
specified number of errors is reached. By default, the validation process
continues to run until it is completed or cancelled.
OK button. Saves the validation option settings and closes the Validation Options
dialog box.
Cancel button. Discards the Validation Options settings and closes the Validation
4-24
Version 6.0
When you edit a record, a check mark appears in the Changed field of the object
definition. This indicates that changes have been made to the contents of the
corresponding record since a particular date and time (you set this date and time
using the General tab of the Tools Options menu). Lack of a check mark indicates
that the object definition has not been changed since the date and time specified in
Tools Options, or since the last upgrade.
The changed flag cascades upwards through its parents. That is, when an object
definition is edited or created, the changed flag is set for its parent object definition,
if any, and for the parent object definition of that parent, and likewise up through
the hierarchy.
Version 6.0
4-25
To determine by whom and when a record was created and last updated
1 Select a record in the Object List Editor.
2 Choose Help
3 The Siebel Tools dialog box appears (this dialog box displays the user, date, and
time for record creation and update).
4-26
Version 6.0
Options.
Version 6.0
4-27
The Object List Editor provides a Query feature that uses a query-by-example (QBE)
metaphor to let you narrow the list of object definitions in the current Object List
Editor window. For example, when you are in the list of business components, you
can use the Query feature to display only those business components in the
Contacts field, or only those having names that start with Opportunity, or any
other restrictions you can specify for particular properties.
An Object List Editor query is a search for object definitions based on matching
values in one or more properties. The queries can be simple, one-condition queries
or compound, multiple-condition queries. You can create, refine, and activate
queries from the Query menu or from the List toolbar. (Refine means impose a
further restriction on the current Object List Editor query by re-executing it with an
additional constraint.)
4-28
Version 6.0
In the Object List Editor window, the list of object definitions is hidden, and a
query row appears, as shown in Figure 4-12.
Property cells that can hold
query criteria in the query row.
Version 6.0
4-29
3 In each of one or more property cells in the query row, enter a value for which
the query will look for a match.
These values may be single literal values such as Opportunity List Applet, or
they may include wildcard symbols. In TRUE/FALSE properties, a check mark
represents TRUE.
The resulting list of object definitions in the Object List Editor consists of only
those meeting the set of criteria you specified.
1 Select Query
2
The list of object definitions in the Object List Editor is restored to its pre-query
state.
4-30
Version 6.0
Simple Queries
A simple query finds information based on one condition. Table 4-1 lists the
operators you can use to create a simple query.
Table 4-1.
Simple Operators
Operator
Description
Equal to
<
Less than
>
Greater than
<>
Not equal to
<=
>=
Any number of characters (including none) may take the place of the
asterisk (*)
IS NOT NULL
IS NULL
LIKE
NOT LIKE
Searches for strings that contain special characters, such as a comma (,)
EXISTS ( )
If the value is part of a larger expression using an operator such as NOT LIKE,
enclose the property in quotation marks; otherwise, you can omit them.
For more information about simple operators, see Appendix B.
Version 6.0
4-31
Compound Queries
Compound queries enable you to find information based on two or more conditions.
There are three ways to create compound queries:
Enter conditions in two or more property columns to find records that meet all
the conditions. In other words, Siebel applications automatically connect these
conditions with the operator AND. This method is the easiest way to create a
compound query.
Enter a compound query within a property field using the operators OR, AND,
and NOT to create two or more conditions for that property.
Enter a compound query using more than one field and compound operators
AND, OR, and NOT. You can enter this type of query in any field. You might find
it convenient to use the Description or Comments field, because it is typically
the longest on a given screen.
When you create a compound query, follow the same basic steps you use to create
a simple query.
Use parentheses to control the order in which a compound search is conducted.
Expressions inside parentheses are searched for first (as they appear left to right).
Table 4-2 lists the unique operators for compound queries. Use these operators in
addition to the operators you use to create a simple query.
Table 4-2.
Compound Operators
Operator
Description
AND
All the conditions connected by ANDs must be true for a search to retrieve a
record.
OR
At least one of the conditions connected by the OR must be true for a search
to retrieve a record.
NOT
The condition modified by this operator must be false for a search to retrieve
a record.
4-32
Version 6.0
You can use the repository search facility to search for object definitions based on
text in their names (or other properties) and their object types. Its a quick way to
locate one or more object definitions when you know all or part of their names or
some other property.
Version 6.0
4-33
Find Value text box. Enter the search string text to be located in the names and
property values of object definitions.
Case Sensitive check box. Check if you want only those object definitions whose
property values contain the search string with the same capitalization. Leave
empty if matching capitalization is unnecessary.
Exact Match check box. Check if you want only those object definitions whose
Types to Search list box. Object type or types to search for. By default, all object
types in this list are selected. You can choose a single object type to search by
selecting it. CTRL-clicking and SHIFT-clicking can be used to select multiple
object types. For better performance, search only the object type or types you
need.
Select All button. Selects all the object types in the Types to Search list.
Clear All button. Deselects all the object types in the Types to Search list.
(Result Object Definitions) list table. Lists all the object definitions found in the
search. Double-click on an item in this list to bring it up in the Object List Editor.
Double-clicking on an item in the Result Objects List has the same effect as doing
an Object List Editor query that searches on the name of the object definition.
To restore the Object List Editor window to list all object definitions of the type
selected in the Object Explorer, do a query with the asterisk (*) symbol in the
Name column of the Object List Editor.
Cancel button. Stops the search process if a search is executing. Closes the Find
in Repository window.
4-34
Version 6.0
Version 6.0
Property. Name of the property of the object definition in which the search value
was found.
Value. Value of the property of the object definition in which the search value
was found.
4-35
You can get reports about the relationships between certain object types in the
repository. This section provides an introduction to using the reports facility; for
more information, see the Siebel Reports Guide.
For repository reports to run on your client computer, you need to have the Siebel
report viewer or Actuate report viewer installed.
The list of records that displays in a repository report is not dependent on the
currently selected object definition in the Object List Editorfor example, if you
select the Contact business component in the Object List Editor and generate the
business components and fields report, the report will show all business
components, not just the Contact business component.
To restrict a report to a single parent object definitionthat is, one business
component, business object, dock object, table, or workflow objectdo a query in
the Object List Editor (for the parent object type) that restricts the list to the one
object definition you want to see.
The following example shows how to get the Tables report for S_ORG_EXT.
Tables.
The generated report will provide information only for the S_ORG_EXT table.
You can use a similar approach to restrict a report to a range of object definitions
that have a property value in common. The report will include only those object
definitions satisfying the current query. For example, you can get a Tables report of
all extension tables, a business components report of all business components of a
specific class, or any of the reports restricted to a single field.
4-36
Version 6.0
The current object type in the Object Explorer determines the list of reports in the
Reports menu. Repository reports are listed by current object type in Table 4-3.
Table 4-3.
Version 6.0
Object Type
Report
Description
Applet
Applets by
BusComp
Business
component
Business
Component and
Fields
Business object
Dock object
Repository Dock
Objects
Project
Project List
Table
Tables
Workflow Policy
Object
Workflow Policy
Objects
4-37
You can use the Siebel Tools Visualization views to see how object definitions relate
to one another.
components, the diagram displays how the business component links to other
business components via multi-value link object definitions. For tables, the
diagram displays how the table joins to other tables by way of join object
definitions.
4-38
Version 6.0
The Details Visualization View for a business component displays how it maps to
underlying tables via joins or to business components by means of multi-value
links. The business object version of the diagram displays links between pairs of
business components in the business object.
Figure 4-14. Details Visualization View for the Account External Product Business Component
Version 6.0
4-39
The selected business component appears in a box at the left of the diagram. The
business component on the left may be associated with one or more of these boxes
on the right:
Table box for the base table. The base table for the business component appears
to the right of the business component without any intervening join or mvlink
boxes between it and the business component.
Table boxes for joined tables. Tables that are joined to the business component via
join object definitions have a join box between the business component and the
joined table. The join box provides the name of the join.
The joined tables in Figure 4-14 are S_ORG_EXT and S_PROD_EXT.
BusComp boxes for linked business components. Business components that are
linked to the selected business component via a multi-value link have an mvlink
box between the selected business component and the linked business
component.
Figure 4-14 does not show any linked business components.
For the tables and business components displayed on the right, only columns (or
fields) in use by the business component are listed, unless you click on the plus
symbol icon labeled All columns or All fields in the corresponding table or
BusComp box.
If you click the name of a field in the left-side BusComp box, an arrow appears from
that field name to the corresponding column in the base table, joined table, or
linked business component on the right. This is illustrated in Figure 4-15, where
Vendor Location points to LOC.
4-40
Version 6.0
Version 6.0
4-41
Plus and minus symbol icons identify lists that can be expanded or collapsed in a
box. For a business component this is a list of fields, for a table this is a list of
columns, and for an applet this is a list of controls. Figure 4-17 illustrates this for
three business components in a diagram; the one on the left has an expanded fields
list, and the two on the right have collapsed fields lists.
You can use the UP and DOWN arrow keys to move up or down one level at a time
in a visualization diagram. Use the LEFT and RIGHT arrow keys to move between
objects on the same level.
Right-click anywhere in a visualization diagram to display a shortcut menu, which
provides options pertaining to the entire diagram. These are:
Expand All. Expands all fields lists, column lists, and control lists in boxes in the
diagram.
4-42
Style. Provides three options governing the general style of the diagram and the
boxes in it. The default is Outline. 3D Border is similar, but it is on a gray
background and shows beveled edges on the boxes. Iconic provides an icon in
each box, which helps distinguish the object types visually.
Version 6.0
Edit Definition. Opens the Object List Editor with the currently selected object
diagram, the View Designer or Applet Designer is opened with that object
definition displayed.
If the Properties window is displayed at the same time as the window containing a
visualization diagram, the object definition whose properties appear changes as you
select different object definitions in the diagram. This can be a useful way to
navigate from object definition to related object definition to View properties.
However, you cannot edit the properties when the Properties window is accessed
this way.
Version 6.0
4-43
4-44
Version 6.0
The selected business component (Decision Issue in Figure 4-18) appears as a box
in the center of the diagram. Business components that link to the selected business
component appear in a row above it (connected by means of a row of link boxes).
Business components that the selected business component links to appear in a row
below it, again connected by a row of link boxes. The link boxes provide the names
of the links.
Version 6.0
4-45
Tables Version
The Tables version of the Relationships Visualization View appears in Figure 4-19.
The selected table appears as a box centered in the diagram. The diagram shows the
tables immediate foreign key relationships to other tables. Tables that have foreign
keys to the selected table appear above it, and tables to which the selected table has
foreign keys appear below it.
Double-click on a table other than the initially selected oneit becomes the
focus of the diagram.
4-46
Version 6.0
Version 6.0
4-47
The Hierarchy Visualization View for the Accounts screen appears in Figure 4-20.
4-48
Version 6.0
The selected object definition appears as a box in the center of the diagram. For this
object definition, this diagram shows its parent-child relationships to other object
definitions of various object types. Parent object definitions appear above the
selected object definitions, and child object definitions appear below. The hierarchy
starts with the parent application at the top level and includes screens, views,
applets, and business components.
Because the entire hierarchy appears for an application, it is better to create View
Hierarchy diagrams for object definitions lower in the hierarchy than the application
level.
Version 6.0
4-49
This chapter explained how to navigate in Siebel Tools to view Siebel objects and
their relationships to one another.
Table 4-4 lists sources of additional information about topics discussed in this
chapter.
Table 4-4.
4-50
Appendix A
Appendix A
Query syntax
Appendix B
Search syntax
Appendix B
Version 6.0
. . . . . . . . . . . . . . 5-6
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-12
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-15
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-29
5-1
5-2
Version 6.0
Projects are named sets of object definitions that reside in the Siebel repository
mechanisms to meaningfully group object definitions so they can be worked on by
teams of application developers.
The master copy of the repository resides on a server database. Multiple developers
can access it to make changes and additions by locking and checking out groups of
server repository object definitions to local (client) repository databases for
modification, and checking them back in to the server following modification and
testing.
A Siebel application is delivered with a large number of existing projects.
Figure 5-1 shows a list of projects displayed in the Object List Editor window.
Figure 5-1.
Version 6.0
5-3
The names of projects that are delivered with a standard Siebel application indicate
the functional area with which they are associated. For example, Account contains
definitions pertaining to the Account functional area. A name (like Account)
without a suffix usually contains Business Object Layer definitions that span
multiple Siebel applications.
Project names that have a suffix (for example, Account(SSE)) contain user interface
or business object definitions that are specific to the Siebel application indicated by
the suffix. The suffix SSE in Account(SSE) (fourth field from the top in Figure 5-1)
indicates a field containing Account user interface data for the Siebel Sales
application.
Other suffixes indicating user interface data only are SSV for Siebel Service and CC
for Siebel Cell Center.
Other suffixes indicating both user interface and business object data are FS for
Field Service and WWW for World Wide Web.
5-4
Version 6.0
Under normal circumstances there is only one repository available on your local
database, and one available on the server database for your development
workgroup. Typically this repository (in either location) is called the Siebel
repository and is opened by default when you open Siebel Tools and log on to Local
or Server. However, there are circumstancesespecially when your group is in the
process of upgrading to a new version of Siebel applicationsin which multiple
repositories can be present, especially on the server.
The File Open Repository option lists only the repositories that have been
previously checked out from the server. In order to see an additional server
repository, you must first do a Get to get all of the fields for that repository in the
Check Out window. This is described in Getting Information About the Current
Repository on page 5-6.
Version 6.0
5-5
You can get version, compilation, and path information about the current repository
by choosing Help About SRF from the menu bar in Siebel Tools. The About
Repository File window is shown in Figure 5-2.
Figure 5-2.
5-6
Version 6.0
only when the internal format of the .srf file changes, such as at the time of a
major release. It has no significance for customer developers.
User version. Reserved for use by Siebel Anywhere, which maintains this number
when kits are created that upgrade the .srf file. The value is read when a version
check occurs.
Compile Information fields display information about the most recent full
compilation or incremental compilation. If there have been no incremental
compilations since the full compilation, the latter option is dimmed (as shown
in Figure 5-2).
Machine name. Name of the client computer on which the .srf file was compiled.
Language. Language code of the language specified for user interface translation.
User name. User name (that is, the Microsoft Windows logon name) of the user
Repository. Repository name of the repository that was current when the
Tools version. The version number and build number of the Siebel Tools software
used to compile the repository. This is useful information for Siebel Technical
Services if they are helping you in resolving a problem with your configuration.
Schema version. Database schema version of the database from which the
File name. Name and path of the .srf file being used internally to define the Siebel
Version 6.0
5-7
To restrict the objects displayed in the BusObject Designer to those that belong to a
particular project, select a field from the project picklist you access at the top of the
Siebel Tools Object Explorer window (shown in Figure 5-3).
Figure 5-3.
Project Picklist
To see all projects, select the blank entry from the top of the picklist.
5-8
Version 6.0
The Object Explorer displays object types only if there are definitions of that type
in the selected project. Figure 5-4 shows the applets in the Account project.
Figure 5-4.
Version 6.0
5-9
Getting Projects
You do a get to populate a newly initialized local database with a copy of all projects
in the server repository.
NOTE: The sample database, unlike the local database, cannot receive checked-out
object definitions, and its object definitions cannot be checked in to the server
database. The sample database is strictly for instructional use.
You need to do an initial get before doing the first compile for your local
repositoryyour .srf files must be based on the full list of delivered Siebel object
definitions plus any changes you make.
You can also use a full get to refresh read-only projects in an existing local
repository.
NOTE: A full get means getting all the projectsfor example, when you first
5-10
Version 6.0
Check Out...
The Check Out dialog box appears (see Figure 5-5 on page 5-13).
2 Choose the name of your development repository from the Repository picklist.
3 Select the All Projects radio button.
4 Click the Options button.
5 In the Development Tools Options window, make sure your Server Data Source
is pointing to your server development database and your Client Data Source is
pointing to the local database you previously initialized and are currently
running against.
6 Close the Development Tools Options window.
7 In the Check Out dialog box (see Figure 5-5) click Get.
After the get is complete, your currently open local repository has the same
contents as the server repository from which you did the get.
Version 6.0
5-11
Check Out.
The Check Out dialog box appears (see Figure 5-5 on page 5-13).
5-12
Version 6.0
Figure 5-5.
Repository picklist. Available repositories on the server. The list of projects in the
projects list table reflects the list of projects in the selected server repository. If
you select a different server repository than the one currently open in Siebel
Tools locally, a warning appears, and you must either get all projects or change
the repository selection.
Version 6.0
5-13
Server Locked By. Logon ID of the developer who currently has this project
checked out on the server.
Server Locked Date. Check-out date.
Client Locked By. Logon ID of the developer who currently has this project
locked.
Client Locked Date. Date the project was locked locally.
Selected projects radio button. When this radio button is active, you can select
individual projects to check out or get.
All projects radio button. When this radio button is active, all projects in the
repository are selected to check out or get.
Updated projects radio button. When this radio button is active, only projects with
an Updated value of Yes are selected. This enables you to check out or get only
those projects on the server that are new or different from corresponding
projects in the local repository. Normally you will get rather than check out such
projects, to bring your local repository up to date.
Get button. Selected projects are copied to the local repository, replacing pre-
existing versions there. The lock status of these projects is not changed on the
server. You can get any projects on the server, including those locked by others.
Check Out button. Copies all object definitions in the selected projects to the local
repository and locks them on the server (and client). You cannot check out
projects that are currently locked on the server (if you select a locked project in
the projects list, the Check Out button dims).
Options button. Opens the Development Tools Options dialog box with the Check
In/Out tab selected. This is the same dialog box that appears when you select
Tools Options from the menu bar.
5-14
Cancel button. Cancels check-out and closes the Check Out dialog box.
Version 6.0
You can create a new project by selecting the Project object type in the Siebel Tools
Explorer window (Types tab) and creating a new record in the Object List Editor.
In general, you would add new projects:
Version 6.0
5-15
Renaming Projects
You need to rename projects on the server, not the local database.
Caution: Never change the name of a project that standard Siebel
Object definitions are associated with.
5-16
Version 6.0
Every object definition must be assigned to one, and only one project, either:
A Siebel-supplied project, or
A user-created project
You assign an object definition to a project by setting the Project property.
The Competitor (SME) business component shown in Figure 5-6 (the selected
business component) has an assigned Project property of Oppty (SME).
Figure 5-6.
Version 6.0
5-17
4 Inform other developers that they must do a simultaneous get of the two projects
prior to doing any subsequent work on the object definition in either project.
5-18
Version 6.0
Checking In Projects
Use Check In to copy new or modified object definitions in a local repository to the
server repository.
The check-in process:
Check In...
The Check In dialog box appears (see Figure 5-7 on page 5-20).
5-19
Figure 5-7.
5-20
Version 6.0
projects in the Projects list table reflects the list of projects in the selected
repository (in addition to locally created projects). If you select a different
repository than the one currently open in Siebel Tools, check-in will begin, and
you will receive no warnings. However, this will check in only new projects you
have created locally.
Projects list table. Identifies all projects in the local repository selected in the
Selected projects radio button. When this radio button is active, you can manually
Locked/New projects radio button. Selects all of the projects in the listthat is, all
Version 6.0
Maintain lock check box. When checked, tells the system to check in the projects,
but keep them locked on the server.
Diff button. Opens the Project Differences window for comparison of the object
definitions in the projects you are checking in with their corresponding versions
on the server. For more information, see Determining Project Differences at
Check-In Time on page 5-25.
Options button. Opens the Developer Tools Options window where you specify
check-in/check-out settings, especially server and client data source names.
5-21
Check-In Guidelines
Before doing a check-in, ensure that the projects you are checking in are in a
stable state and have been thoroughly tested against your local repository. Check
in projects only when all dependent Siebel VB code is complete.
Check in all dependent projects at the same time to ensure that the configuration
on the server remains consistent.
For example, if you create a new PickList object definition in the PickList project
and reference that object definition in your Oppty project, check in both projects
to the server at the same time.
Consider the timing of your check-in and its impact on the work of other
developers. In some instances, you may need to check in a project before you
have fully completed the configurations required in that project because another
developers configurations may depend on a particular feature you have added
to your project.
5-22
Version 6.0
The Check In/Out tab in the Development Tools Options dialog box (see Figure 5-8)
provides options for setting up check-in and check-out.
The Data sources options are discussed below; for information about the Source
control integration options, see Check In/Check Out Options (Source Control
Integration) on page 14-45.
Figure 5-8.
Version 6.0
5-23
Data sources user interface elements in the Development Tools Options window:
Server data source text box and change button. ODBC data source of the server
repository. When you click the Change button, the Change Data Source window
appears (see Figure 5-9) so you can enter and modify the ODBC data source
parameters.
Figure 5-9.
Client data source text box and Change button. ODBC data source of the local
repository. When you click the Change button, the Change Data Source window
appears so you can enter and modify the ODBC data source parameters. These
parameters are similar to those described in the prior section for the server data
source. In particular, the User name and Password must be in all uppercase
letters.
5-24
Version 6.0
From the Project Differences window you can view details of changes made to
checked-out projects prior to checking them init is a debugging tool that helps
you find errors or omissions before your changes are committed to the server
repository.
Click the Diff button on the Check In dialog box (see Figure 5-7 on page 5-20).
The Project Differences window appears (see Figure 5-10).
Version 6.0
5-25
The Project Differences window displays all checked-out projects that have been
modified since the last check-out. By default the Project Differences window
displays only changed projects, object definitions, and properties. You have the
option to display all checked-out projects.
The Project Differences window consists of three windowpanesProject
Differences, Object Differences, and Attribute Differencesdiscussed in the
following sections.
Added. Object definitions that did not exist in the checked-out projects, but
5-26
Deleted. Object definitions that existed in the checked-out projects, but which
you deleted.
Version 6.0
Before. Value of the property in the originally checked-out version of the object
definition.
After. Value of the property in the modified version of the object definition.
Click the gray header cell at the top of a list column to sort by the contents of that
column. This can be especially useful with the Modification list column, because
clicking that header cell reorders the listing of properties so they are grouped by the
action taken on them.
Version 6.0
5-27
Canceling Check-Out
5-28
Version 6.0
You can lock and unlock projects directly (as contrasted with the check-out
procedure, which locks projects as it checks them out).
Lock Project
Version 6.0
5-29
You lock at the project level, even though the Locked property is associated with a
particular Business, Data, or User Interface Object. That is, when you lock a specific
object, the entire project associated with the object is locked.
It might not seem logical to do a direct lock on a local project, because if it is not
also locked on the server, other developers might check it out and your changes and
theirs might ultimately conflict. Direct local locking would make sense, however, if
you are:
Prototyping your ideas and dont really want to prevent others from checking out
the project youre working on
You can check in only those projects you have checked out.
Your local projects definition will get overwritten the next time you get or check
out that project.
When you lock on the project directly, other developers who do a get on the
object definitions in the directly locked project may find that the definitions are
in an incomplete, inconsistent, and untested state.
You, as the project owner, lose your ability to cancel the check-out and restore
the original object definitions.
5-30
Version 6.0
Compiling Projects
Once you have completed modifying the object definitions in your project, you need
to compile the changes and test them. You can compile all projects (full compile) or
projects selected from a list (incremental compile). To compile incrementally, you
must have already done at least one full compile. Doing an incremental compile will
not remove objects from the .srf file that have been deleted or inactivated.
Caution: Avoid doing incremental compilations into an .srf file,
unless the .srf file was built from a full compilation from the same
database. In particular, you should avoid doing incremental
compilations into the generic .srf file included in standard Siebel
applications.
Select Repository
Version 6.0
Compile.
5-31
Projects list box. All projects that are available to compile. The selected ones
(Account through Account(TAS) in Figure 5-12) are those that will actually be
compiled, if you click the Selected projects radio button.
5-32
Siebel repository file text box. Name and location of the .srf file to be created. Use
the Browse button to locate an existing file to replace.
Version 6.0
You should compile to the objects subdirectory of your Siebel application client
directory (the default location is C:\siebel\objects\). Confirm that the filename and
path you compile to match the filename and path specified in the .cfg files that
define your deployed Siebel application.
Caution: Do not attempt to compile to or modify the default .srf file
displayed in the Object Compiler windowusually in
C:\siebdev\objects\siebel.srf. This file is locked because the Siebel
Tools program itself reads from it constantly as it runs. If you
attempt to compile to this filename and path, you will receive an
error and be prevented from compiling.
Language picklist. The language into which translatable user interface features
are compiled. If no translation is required, leave this field set to the default value,
no translation. If you specify a language, there must be at least some string
maps (translation records) in the message table in the local database for that
language.
Version 6.0
5-33
Analyze the plan to see if the project structure interferes with developers who
need access to object definitions in the same projects at the same timeif so,
break out groups of object definitions into separate projects to enable concurrent
development.
Siebel recommends that:
You do not change the project structure in standard Siebel applications without
a compelling reason.
5-34
Version 6.0
Version 6.0
Chapter 14
Appendix D
5-35
5-36
Version 6.0
Part 2
Version 6.0
Version 6.0
. . . . . . . . . . . . 6-12
Version 6.0
6-1
This chapter gives you information you need to develop a Siebel eBusiness
Application. It applies, in a general way, to all Siebel applications, but some of the
details are relevant only in the dedicated-client environment. For specific
information about developing HTML thin client applications, see Chapter 7.
Do these tasks in a bottom-up sequenceyou need to create objects in the bottom
layers before they can be referenced in the layers above. The order is:
6-2
Version 6.0
The Business Objects Layer of the Siebel application architecture is where your
applications data organization is defined.
You need to develop object definitions in this layer before developing definitions in
the User Interface Layer.
The following Business Object Layer object types (introduced in Chapter 3) are the
foundation of all Siebel applications:
Business components
Fields (child objects of business components)
Business objects
Business component and field definitions in the Business Objects Layer map to table
and column definitions in the Data Objects Layer.
Figure 6-1 summarizes the mappings required between user interface objects and
business objects.
Siebel Sales
Contacts Screen
BusObj
Contacts
BusComps
Opportunity
Contact
Maps to
Contact List
View
Maps to
Contact List
Applet
....
Fields
First Name
Figure 6-1.
Last Name
Job Title
Maps to
Job Title
To do the mapping you need to have knowledge of the underlying data model.
Version 6.0
6-3
NOTE: Follow this sequence when you work with objects in the Business Objects
Layer (the assumption is that you have already created a project and checked it out,
as described in Chapter 5, Managing Application Development Projects):
1 Create a business component (or modify an existing one) and add it to the
project.
2 Add fields to the business component.
3 Create links that will relate the business components to one another within a
business object.
4 Create a business object and add it to the project.
5 Associate the business component with the business object.
6 Validate your business object definitions.
These steps are discussed in more detail in the following sections.
6-4
Version 6.0
Figure 6-2.
Version 6.0
6-5
Class property. The C++ class that implements the functionality of the business
component.
A picklist of values appears for setting this property.
Siebel applications have a hierarchy of business component classes.
CSSBusComp is at the top of the hierarchy. (Account Category in Figure 6-2 is in
the CSSBusComp business component class.) All other specialized business
component classes (CSSBCOppty is an example) are derived from CSSBusComp.
The functionality that is common between business components includes
navigation (moving through a result set returned from the database), get or set
field values in records, create and delete records, commit changes, undo/redo,
bookmark, search, and sort.
the repository. All references to the business component are done through its
name.
retrieved.
Sort Specification property. A sort expression used to order the records returned.
Table property. (Required.) The name of the SQL table from which records are
6-6
Version 6.0
Figure 6-3.
Version 6.0
6-7
Field Properties
Following are descriptions for key properties of the Field object type. For a complete
list and more detailed descriptions, see the Siebel Object Types Reference.
Column property. (Required unless it is a calculated field.) The name of the tables
Name property. (Required.) User-defined name for the field. It must be unique
No Copy property. If TRUE, the fields value is not copied into the newly created
Read Only property. If TRUE, the field value cannot be changed by the user.
Required property. If TRUE, a value must be entered before the record can be
written.
Text Length property. Siebel Tools gets the text length from the database and, for
columns with a physical type of varchar, sets the Text Length property for a
business component field to this value.
If the physical type is character(1), the Text Length is set to 1 and the Type is set
to DTYPE_BOOL.
For number, date, and datetime fields, Siebel Tools does not put a value in Text
Length. Exceptions are fields mapped to foreign key columns (these columns
have names that end in ID and have a physical type of varchar and length of 15).
These fields get a Siebel Type of DTYPE_ID and a Text Length of 15.
If you edit the value in the Text Length property, it is ignored unless the value in
a picklist is longer than what is specified on the business component field. In
this case you get an error.
For a information about the data types for the field object type, see the Siebel
Object Types Reference.
6-8
Version 6.0
Figure 6-4.
Field, Single Value Field, and Multi Value Field Object Types
Normally you would modify all Field objects by selecting the Field object type,
finding the field you want, and making the changes. If you select the Single Value
Field object type, you see only Single Value objects and their properties; the Multi
Value Field object type shows only Multi Value objects. You can also configure
particular Single Value Field and Multi Value Field objects by viewing and changing
them within Single Value Field and Multi Value Field object type. Changes you make
there will be reflected when you select the changed object in Field object type.
Version 6.0
6-9
Figure 6-5.
6-10
Version 6.0
Name property. The name of the business object must be unique among business
objects in the repository. All references to the business object are done through
its name.
Query List Business Component property. The default value is Query List. It
identifies the business component used to store predefined queries for the
business object.
Version 6.0
6-11
As shown in Figure 6-6, select Business Object Component under Business Object,
and then pick from the picklist the business component that the business object
needs to be associated with.
Figure 6-6.
6-12
Version 6.0
Value
ABC Opportunity
ABC Opportunity
Column
Property
BusComp
Value
ABC Opportunity
Value
ABC Opportunity
S_OPTY
CSSBCOppty
Column
Property
Value
Column
DESCRIPTION
Name
Opportunity
Text Length
100
Type
DTYPE_TEXT
S_OPTY Table
Property
Name
Project
Value
S_OPTY
New Table
Column
Property
Value
Name
DESCRIPTION
Physical Type Varchar
Length
100
Figure 6-7.
If you change the value of the Name property of an object definition, you must
update property values in other object definitions that refer to the original Name
value so that they now refer to the new Name value.
Version 6.0
6-13
Value
ABC Opty List View
ABC Opportunity
ABC Opty List Applet
ABC Opty List Apple:
Value
ABC Opportunity
Figure 6-8.
6-14
Property
Column
Name
Value
ABC Opportunity
S_Opty
Field
Value
BDGT_AMT
Budget
Version 6.0
Follow this sequence when you create objects in the User Interface Object Layer.
Before you begin working on user interface objects:
Version 6.0
6-15
Defining Applets
Applets provide viewing, entry, modification, and navigation capabilities for data in
one business component.
Applets appear as part of a view.
Applets are usually implemented as a scrolling list table or data entry form. Form
applets can be populated with standard Microsoft Windows controls like buttons,
text boxes, and check boxes. Form applets can include ActiveX controls, which are
externally created program units that can interact with the applet through property
settings, methods, and events.
An entry applet is simply a type of form applet that has the button controls New,
Delete, Copy, and Cancel. In a standard Siebel application, entry applets typically
appear in list views occupying the bottom horizontal sectors. They enable users to
use the form for record manipulation.
Form applets that are not entry style are typically used in detail views and occupy
the top horizontal sectors. By convention an entry style form applet will not have a
title because the list applet above it always has a title.
Some applets perform specialized roles as dialog boxes, charts, trees, and Web
browsers.
For more information about applet styles and types, see Chapter 19, User Interface
Objects Layer.
Figure 6-9 on page 6-17 shows the object definition for a list applet called
Opportunity.
6-16
Version 6.0
Field Properties on page 6-8 explains the key Single Value Field properties for
applets.
Figure 6-9.
Version 6.0
6-17
Class property. (Required.) The C++ class used to manage the applet. Form
applets use the CSSFrame class, and list applets use the CSSFrameList class.
There are also some specialized classes for applets that use special business
components and/or have special features.
(Various properties for Web applets.) This includes HTML Attributes, HTML
Display Mode, HTML Only, HTML Row Sensitive, and HTML Type.
Height property. (Required.) Height in sectors of the applet. Valid values are from
No Delete, No Insert, No Update properties. If TRUE, you are not allowed to perform
6-18
Version 6.0
displayed.
Title property. The text used for the title of the applet. Requires a label control in
the applet named Applet Title.
Width property. (Required.) The width in sectors of the applet. Valid value from
12.
Applet Controls
Following are descriptions for key applet Control properties. For a complete list and
more detailed descriptions, see the Siebel Object Types Reference.
Applet Title property. (Label Control.) Title of the applet, defined in the applet
definition.
List property. (List Control.) Control used for displaying columns of data from the
Field property. (TextBox, CheckBox.) Business component field for which the
Method Invoked property. (PushButton.) Method invoked when the button control
is pushed.
Read Only property. (TextBox, CheckBox.) If TRUE, the control is read-only and
Version 6.0
Sequence property. The position of this control relative to other controls in the
applet, indicating tab sequence. Valid values are numbers greater than zero.
6-19
Tab Stop property. If TRUE, it allows the user to move to the control using the TAB
key.
Text Alignment property. (Label Controls.) Left is the default. It indicates how to
Populate either form or list applets with standard Microsoft Windows controls.
Format controls and specify control properties.
Paste controls from other applets into the new applet. You should generally do
this for List, PickList, MVG and Assoc type applets.
6-20
Version 6.0
Figure 6-10 shows the Siebel Applet Designer for a form applet.
Choose View
Edit Layout.
Version 6.0
6-21
Use Copy
Record to
Clone
No
Create From
Scratch?
Yes
Select Simular
Applet and
Copy Controls
to Clipboard
Use Applet
Designer
Remove
Unwanted
Columns
Creste a New
Applet and
Paste Controls
into Applet
Edit Copied
Columns if
Necessary
Add Columns
Mapping to
BusComp
Fields
You can go through these steps manually, on your own, or use the List Applet
wizard (explained in New List Applet Wizard on page 13-4).
6-22
Version 6.0
Version 6.0
6-23
In the Siebel client, go to the list applet to which your completed configuration
changes apply, right-click in a column heading, and select Columns Displayed...
Then click the Reset button. Inspect the list applet to be sure your configuration
changes are what you expect.
6-24
Version 6.0
CheckBox
TextBox (this is the default).
Version 6.0
6-25
ChartControl
CheckBox
ComboBox
Group
Label (Account in Figure 6-14)
6-26
Version 6.0
ListControl
PushButton
TextBox
TreeControl
ImageControl
ActiveXControl
If a calendar or calculator needs to appear for control, set the Runtime property
of the control to TRUE.
If a popup editor needs to appear, set the Popup Edit property of the control to
TRUE.
For List Columns of type CheckBox:
Set the Check Bitmap Identifier property to one of the Siebel-supplied options
(for example, CHECK, ASTERISK, or FLAG).
Version 6.0
6-27
Defining Views
Contain applets
Are components of a screen (each screen includes one or more views)
Appear in one of he three primary view styleslist, detail, and explorer
A view displays one or more applets in a rectangle of the display area, which (in the
dedicated client onlynot the Web client) are divided into sectors. The sectors are
numbered zero through seven, as illustrated in Figure 6-15.
6-28
Version 6.0
An applet can occupy one or more sectorsthe sectors must form a rectangular area
of the screen. Sector layout is part of view definition.
An explorer view populates only sectors 03the right-hand sectors are
dynamically determined for the child list.
The Siebel client detects current Windows display mode and automatically adjusts
the user interface on start-up.
The sectors that are displayed are based on screen resolution:
For XVGA (1024 x 768 and higher) a view displays all eight sectors.
NOTE: The key question to ask in deciding whether to use six sectors or eight is:
Do all my users have XVGA monitors? If not, you should use only six sectors.
You add a new view object in the Object List Editor.
You can do the complete view definition in:
Version 6.0
6-29
2 Choose Edit
All the sector properties must have a value specified (except explorer view).
Screen Menu property. If TRUE, the view should be included in the screen
menu.
Title property. Text string used as the window title.
Editor.
6-30
Version 6.0
The applets window shows only the available applets in either icon or list form. An
applet is considered available if it is associated with a business component that is
present in the business object for this view.
You can delete an applet on the layout by selecting it, and then clicking the DELETE
key.
Version 6.0
6-31
Defining Screens
The menu and tab that provide access to a screen are defined as part of
application object definitionone or both may exist for a given screen.
Screens have bitmap and text properties that are used in the View bar area.
Screen definitions specify the default view that appears when a tab is clicked.
Screens have a single child object type: Screen View.
To define a screen
1 From the Object Explorer, select Screen.
The Object List Editor opens.
2 Choose Edit
6-32
Version 6.0
Default View property. View that will be used when the user clicks on a page
tab for a Screen.
NOTE: A view must be added to the screen before it can be specified as a
default.
Bitmap Category property. Bitmap category containing the logo bitmap that
will be shown in the View bar.
Viewbar Text property. Label that appears below the optional logo bitmap in
the View Bar.
Version 6.0
6-33
3 Set the following properties for the new Screen View object:
6 Sectors property. If TRUE, the view will be available when the application
is running in 6-sector mode.
8 Sectors property. If TRUE, the view will be available when the application
is running in 8-sector mode.
Menu Text property. The text displayed in the submenu of the Screen menu bar
selection. If a screen has only one view, the Screen View menu text appears
as the menu item instead of the Screen Menu text.
Sequence property. Specifies the order in which the views will appear in the
cascading menu for the Screen menu item.
Category property. Views in the screen can be grouped into categories. These
categories appear hierarchically in the View bar.
6-34
Version 6.0
Figure 6-18 shows the Account Address view definition in the Object List Editor and
Properties windows.
The Applets window shows only the available applets in either icon or list form. An
applet is considered available if it is associated with a business component that is
present in the business object for this view.
You can delete an applet on the layout by selecting it and clicking the DELETE key.
Version 6.0
6-35
Defining Applications
2 Choose Edit
6-36
Version 6.0
Version 6.0
6-37
6-38
Version 6.0
Figure 6-21. Screen Menu Item Definitions for Accounts Screen (SSW)
Version 6.0
6-39
3 With the Screen Menu Items List Editor active, choose Edit
a new Screen Menu Item object definition.
4 Set the properties for the new Screen Menu Item record:
Screen property. The screen that will be accessed with the menu item.
Sequence property. The position of the menu item on the Screens menu for the
application.
Duplicate sequence numbers are acceptablein that case the first one added
will be the first to appear.
You can also use gaps in sequence numbers so you can insert additional
screens between your original entries.
Text property. The text to use for the menu item.
You can put an ampersand (&) before any letter in the Text property to create
a shortcut. When users execute the Siebel application, the letter you
preceded with an ampersand will appear underlined. This allows users to use
a keyboard key rather than a mouse-click to invoke the menu item.
6-40
Version 6.0
Figure 6-22 shows bitmaps associated with the Calendar bitmap category.
Version 6.0
6-41
6-42
Version 6.0
Version 6.0
6-43
Importing Bitmaps
To create and import a new bitmap object definition into an existing bitmap
category
1 In the Object Explorer, select the Bitmap Category folder.
2 In the Object List Editor, select the bitmap category.
3 In the Object Explorer, select the Bitmap object type.
4 In the Object List Editor window, right-click in the left border of one of the rows
listing bitmap object definitions, and select New Record.
5 In the new bitmap object definition, enter a name for the bitmap.
6-44
Version 6.0
6 Right-click in the left border of the new bitmap object definition, and select
Import Bitmap.
A standard Open dialog box appears.
7 In the Open dialog box, locate the bitmap file on your hard disk, CD drive, or
network, and click the Open button.
The height and width properties are automatically set. You cannot edit these
properties.
Version 6.0
6-45
6-46
Version 6.0
Version 6.0
6-47
6-48
Version 6.0
Defining Toolbars
New Record.
3 Specify the name of the new Toolbar in the Name property of the new object
definition.
2 Verify that the method you want for this Toolbar icon to invoke currently exists,
or add a Siebel VB or eScript script to the application PreInvokeMethod.
You need to write an If or Case statement based on MethodName and write the
instructions for that MethodName within the If or Case statement.
You also need to change the last line of PreInvokeMethod to CancelOperation
(from ContinueOperation).
3 Navigate to the Command object type in the Object Explorer, and add a new
Command object definition in the Object List Editor. Specify the bitmap to use
in the Bitmap property, the method to invoke in the Method property, and other
properties.
4 Navigate to the Toolbar object definition to which the new Toolbar Item is to be
added.
5 In the Object Explorer, select the Toolbar Item object type.
6 In the Object List Editor, add a new Toolbar Item object definition. Specify the
name, the name of the Command object definition which supplies the bitmap
and method, and the sequence number of the Toolbar icon relative to the other
Toolbar icons appearing in the Toolbar Items list in the Object List Editor.
Version 6.0
6-49
Once you add a new view to the Siebel repository, an application administrator
needs to:
Log in to the Siebel application as a user with the right level of administrative
responsibility
6-50
Version 6.0
Value
ABC Opportunity
Value
ABC Opportunities
ABC Opty List View
Page Tab
Property
Screen
Value
ABC Opportunity
Screen View
Value
ABC Opty List View
&Opportunity
Value
ABC Opportunity
Property
View
Menu Text
Value
ABC Opty List View
ABC Opportunity
ABC Opty List Applet
ABC Opty List Apple:
Value
ABC Opty List Applet
ABC Opportunity
Version 6.0
6-51
6-52
Version 6.0
Version 6.0
Chapter 18
Chapter 19
Chapter 8
6-53
6-54
Version 6.0
. . . . . . . . . . . . . . . . . . . 7-11
Version 6.0
7-1
The sequence of tasks you need to go through to develop a typical Siebel HTML
thin client application
7-2
Version 6.0
A Siebel thin client enables enterprises to deploy the User Interface Objects Layer
of a Siebel application on a Web browser, as a Java application, or on a wireless
device.
A Siebel thin client is distinguished from a Siebel dedicated client, which is the
default Siebel client for Siebel eBusiness Applications. In a Siebel dedicated client,
all layers of the Siebel application architecture except the database reside on the
users personal computer.
Various standard Siebel applications are shipped with thin clients, including Siebel
.COM applications and Siebel eBriefings applications.
There are four types of Siebel thin clients:
Siebel thin client for Windows. Enables enterprises to deploy the User Interface
Siebel Java thin client. Enables enterprises to deploy the User Interface Objects
Layer of a Siebel application as a stand-alone Java application.
Siebel HTML thin client. Uses an HTML-based user interface. This interface is part
of Siebel .COM applications.
Siebel WML thin client. Uses a WML-based user interface to deploy Siebel
Version 6.0
7-3
An example of a view displayed in the Siebel thin client for Windows appears in
Figure 7-1.
Figure 7-1. Opportunity List View Displayed in Windows Thin Client in Microsoft
Internet Explorer
7-4
Version 6.0
The same view in a Siebel Java thin client appears in Figure 7-2.
Figure 7-2.
Version 6.0
7-5
Figure 7-3 shows the HTML thin client user interface of a standard Siebel .COM
application.
Figure 7-3.
7-6
Version 6.0
Figure 7-4 shows the WML thin client user interface of a Siebel Wireless
application.
Figure 7-4.
A large portion of the task of configuring Siebel HTML thin client applications is
done in Siebel Tools.
This chapter outlines the steps you need to take to do HTML thin client
configuration.
Configuring Siebel .COM Applications presents this configuration procedure in
greater detail, and it also discusses the tasks of configuring Windows and Java thin
clients.
Version 6.0
7-7
You want to tailor a Siebel .COM application to meet your unique business
requirements.
Follow these general steps:
Use Siebel Tools to configure business objects to meet your requirements.
7-8
Version 6.0
Version 6.0
7-9
The task of configuring HTML-based thin clients is a modular one that separates
style (style sheets) and structure (templates) from the binding (HTML display
objects like applets and views) to objects representing actual data (business
components and business objects).
You can reuse style sheets and templates across multiple HTML display objects.
As illustrated in Figure 7-5, HTML thin client generation involves assembling the
style and structure pieces with the binding and data pieces to produce HTML
output.
Style Sheet
(STYLE)
Template
(STRUCTURE)
Generate
Applet/View
(BINDING)
HTML Output
BusComp/BusObj
(DATA)
Figure 7-5.
7-10
Version 6.0
Following are steps for creating an applet Web layout. The steps for creating a view
Web layout are similar.
2 Using the New Form Applet or New List Applet wizard, create a new applet
based on a business component definition.
The wizard enables you to specify the templates to be used by the applet in each
of the modes: Base (read-only), Edit, Query, and New. It also lets you determine
the subset of the fields that will be available over the Web.
You can also deploy an existing applet in your Web application. From the Applet
Layout Editor, right-click and select Web Layout Wizard... This wizard takes you
through the steps of making the applet available over the Web (that is, selecting
the templates and the subset of fields).
The wizard creates a default Web layout for each of the modes for which you
specified a template. The controls or list columns corresponding to the fields you
selected are mapped to placeholders in the template.
Version 6.0
7-11
3 Edit the applet Web layout using the Web Applet Editor.
The Web Applet Editor allows you to map a control or list column to a
placeholder in the templateyou simply drag these items from the Controls /
Columns window to the Web layout. You can also create new controls that are
available in the HTML thin client (these are called Web controls) and map them
to placeholders in the template.
See Editing the Web Layout of Applets on page 7-13 for details.
4 If at this point if you want to make changes to the HTML structure in the
underlying template, you need to (re-)invoke the external HTML editor.
One example of a change at this point might be to extend a three-columnar form
template to a two-columnar layout. Another might be to implement a global
style change that affects your entire Web site.
Once you save your changes to the template, you can have the mappings and
the Web layout updated to reflect these changes.
7-12
Version 6.0
You edit the Web layout of an applet in the Web Applet Editor. The Controls /
Columns window, which is also active, shows all the controls and list columns
defined for the current applet, including those that may or may not be mapped to
placeholders in the current template.
The Web Applet Editor enables you to:
Edit the mapping between controls and list columns in the applet, and
placeholders in the template
Create new Web controls and map them to placeholders in the template
The Applet Web Layout Editor is shown in Figure 7-6.
Figure 7-6.
Version 6.0
7-13
You launch the editor from the Applet Designer by right-clicking and selecting Edit
Web Layout. The editor also launches automatically when you click Finish in the
New Applet wizard. Alternatively, you can select an Applet Web Template child
object for the applet in the Object List Editor, right-click, and select Edit Layout.
A visual representation of the HTML template is displayed in the window. Control
placeholders are included (as shown in Figure 7-6). For placeholders that are
mapped to controls, the appropriate representation of the control is shown.
Placeholders that are not mapped are shown using a generic style, such as [*].
You map controls or list columns by dragging and dropping from the Controls /
Columns window to a placeholder. You can also create a new control that appears
only in the HTML thin client (a Web control). To do this, select from the Web
Controls toolbar the type of control you want to create, and then select the
placeholder with which you want to associate the control. You can edit the
properties of a control (including Web controls) or list column by selecting it from
the Controls / Columns window in the Applet Web layout, and making changes in
the Properties window.
7-14
Version 6.0
You can preview the Web layout by right-clicking and selecting Preview. Figure 7-7
shows the preview of the layout in Figure 7-6 on page 7-13.
Figure 7-7.
Version 6.0
7-15
You edit the Web layout of a view in the Web View Editor, which enables you to edit
the mapping between applets in the view and placeholders in the template.
To launch the editor, select the View Web Template object (which is a child of
View), right-click, and select Edit Layout. If a View Web Template does not exist for
this view, create one by clicking on New Record and selecting a template name from
the picklist.
Figure 7-8 shows the Web View Editor.
The Web View Editor renders the underlying view template with mapped and
unmapped placeholders.
Figure 7-8.
7-16
Version 6.0
Here are additional tasks you can do with the view Web layout.
2 After you have saved the changes to the template and returned to the Web View
editor, you are prompted to refresh the template.
This causes the changes made to the template to be reflected in the view Web
layout.
Version 6.0
7-17
Figure 7-9.
This simulates what the view would look like in the run-time environment by
removing unmapped placeholders. This preview is not intended to be a 100%
accurate representation of the eventual HTML outputit is intended to give you a
rough idea about the structure and look of the generated output.
7-18
Version 6.0
You can select the HTML editor to launch when editing templates by specifying it
in the Web Template Editor tab of the Development Tools Options dialog box.
Options.
3 Specify the path of the external HTML editor executable that you want to be
launched to edit the templates. You can also specify any optional parameters.
4 Click OK.
The changes will take effect the next time the Web Applet Editor or Web View
Editor is launched.
Version 6.0
7-19
The Web Template Editor tab of the Development Tools Options dialog box is shown
in Figure 7-10.
7-20
Version 6.0
The sequence of tasks you need to go through to develop a typical Siebel HTML
thin client application
The Siebel Tools product components you would use to do those tasks
Where to get more detailed information about configuring HTML applications
Table 7-1 lists sources of additional information about topics discussed in this
chapter.
Table 7-1.
Version 6.0
Chapter 6
Chapter 12
Chapter 13
Appendix A
7-21
7-22
Version 6.0
. . . . . . . . . . . . . . . . . . . . . . 8-4
Version 6.0
8-1
8-2
Version 6.0
This chapter explains different methods you can use to control users access to
information. Access control in Siebel applications is implemented through three
mechanisms: responsibilities, visibility, and routing.
Version 6.0
8-3
Responsibilities control user access to views through the Screens menu and View
bar.
Visibility controls user access to records within specific views based on record
ownership by teams or individuals.
Routing further restricts the record access of remote users in order to prevent
excessive transfer of data over dial-up lines.
Hoteling allows multiple users to use the same computer and, based on their
unique log on, view their own custom views and information within Siebel
applications.
User access control is based on the users responsibilities and positions, which are
both obtained using the users logon ID. Typically users have one of each, although
they may have multiple responsibilities or multiple positions. A responsibility is a
class of users who require access to the same set of application features, specifically
views.
A position is a job title within the organization, a box in the organizations hierarchy
chart with a reporting relationship to a supervisory position. Positions provide most
of the basis for control of record access. Records are assigned to positions, or teams
of positions, rather than to individuals through their logon IDs. This is because the
position in the organization is typically more stable than the individuals
assignment to that position, because of employee turnover, promotion, and transfer.
8-4
Version 6.0
The users logon ID is processed in two different ways following logon. First, it is
used to establish connection with the database system underlying Siebel
applications. Second, after successful logon to the DBMS, the Siebel application
engine locates the users database logon ID value in the Logon Name field in the
Employee business component records, and thereby accesses the user's employee
record.
Each employee record has a Primary Position field and a Responsibility field that
are both capable of storing multiple values. (As already mentioned, the users
primary position is selected by default when logging on to a Siebel application.) The
Responsibility field is a multi-value field containing one or more responsibilities
(user groups with a given access level). The set of responsibilities in the
Responsibility multi-value field establishes view access visibility (also referred to as
responsibilities), which determines what views in the application are available to
the logged-on employee.
The Position field is a multi-value field containing one or more positions (job
descriptions) in the organization. The set of positions in the Position multi-value
field establishes record access visibility, which determines what portions of the data
are visible to the logged-on employee. View access visibility, or simply visibility, is
discussed in Visibility on page 8-15.
NOTE: The users logon may be used instead of his or her positions for
determination of record access visibility in certain special circumstances. This is
described in Personal Visibility on page 8-22.
Version 6.0
8-5
Data sharing across the extended enterprise; for example, distributing sales
opportunities among multiple channel partners or resellers
Limiting visibility to each users specific business context; for example, limiting
a software salespersons visibility to software product prices rather than all
product prices, including prices for hardware
8-6
Version 6.0
Improving application performance for mobile users and executives with broad
responsibilities and many direct reports by providing more ways to limit the
number of rows they retrieve from the database in a given query
NOTE: Although multiple organizational visibility can be a powerful tool for a
diverse, global enterprises, you should not split your internal enterprise into
multiple organizations (that is, virtually, within your Siebel applications) without a
thorough analysis of the issues of convenience versus complexity. In general, multiorg visibility provides the greatest benefit in isolating customers or partner
organizations from internal enterprise organizations. Using views within a single
internal organizational structure will provide the best visibility solution for many
enterprises.
For information about visibility-related objects and properties (both single-org and
multi-org), see the Siebel Object Types Reference.
For information about implementing multiple organizational visibility, see the
Siebel Applications Administration Guide and Siebel Assignment Manager
Administration Guide.
Version 6.0
8-7
Responsibilities
Responsibilities, also called view access visibility, control which views a logged-on
user sees. One or more responsibility records are assigned to the user in the users
employee record in an administration view in Siebel applications. Views are
assigned to each responsibility in another administration view. The result of these
two administration activities is that at logon, the employees logon can be used to
obtain the employees responsibilities, from which the list of views accessible to
that employee can be obtained. Only these views are made available to the user; all
others are hidden. This process is illustrated in Figure 8-1.
User
Logon ID
Lookup in
Employee
Records
List of
Users
Responsibilities
List of Users
Accessible Views
Figure 8-1.
Lookup in
ResponsibilityView Records
A responsibility is a class of users who require access to the same set of application
features, and defines the set of views that a user with this responsibility can see and
use. A user responsibility is the association between a responsibility and a user,
providing that user with the access to views that the assigned responsibility
conveys.
8-8
Version 6.0
The views name disappears from the submenus of the Screens menu that
contain it. (The screens name also disappears from the main Screens menu if
all views in that screens submenu are unavailable to the user.)
The views tab disappears from the View bar for any screens (appearing in the
Tab bar) that contain it. (The screens tab in the Tab bar also disappears if all
views in that screens subordinate View bar are unavailable.)
Drilldown text loses its hyperlink underlining and coloring, and loses its
hyperlink functionality. Drilldown by double-clicking the record is also disabled.
NOTE: In addition to limiting view access to specific users through responsibilities,
there are two features in Siebel applications that limit access to views for all users.
One is the View Administration view (Screens Application Administration
View); if the view is not added to this list, the view will not appear in the
application. The other way to restrict access to views is the license key; at some
installations not all modules of Siebel applications have been purchased, and the
software registration number (license key) may prevent users from seeing the
particular screens and views.
Version 6.0
8-9
The set of views and set of users assigned to each responsibility are administered
in the Responsibility Administration view in the System Administration screen in
Siebel applications. New responsibilities also may be created in this view. The
Responsibility Administration view is accessed (by a user with administrators
access) by means of the Screens Application Administration Responsibilities
menu option. It appears in Figure 8-2.
The highlighted
responsibility...
...provides access to
the views in this list...
Figure 8-2.
8-10
...and is assigned to
these employees.
Version 6.0
This administration view consists of the Responsibilities list applet, which lists all
responsibilities in the system, and two subordinate list applets: Views and
Employees. The list of views in the Views list applet is the set of views enabled
when an employee has the responsibility currently selected in the Responsibilities
list applet. Similarly, the list of employees in the Employees list applet is the set of
employees who have the current responsibility.
6 In the Add Views dialog box that appears, locate the desired view and click the
Add button.
NOTE: You cant add or remove views from vanilla (seed) data responsibilities like
8-11
Local Access
In the Views applet in the Responsibility Administration view are three list columns:
View Name, Description and Local Access. View Name and Description list columns
of Siebel applications are automatically entered when you add a view record and
select a view from the picklist. The Local Access list column has a special purpose,
however, and can be turned on or off for each view assignment by the administrator
(by clicking the check box to add or remove the check mark).
The Local Access list column, when set to TRUE (checked) for a view assignment
to a responsibility, indicates that users with this responsibility can access the view
from either the Local or Server database. When set to FALSE, the view is only
available to these users when directly connected to the Server database.
The Local Access list column is a mechanism for controlling which views mobile
users can work in offline, by controlling which ones they can see when not
connected to the server. When mobile users work offline, they rely on
synchronization and routing to supply some subset of the available records. Routing
is described in Routing Restrictions on page 8-35.
You should disable access in all responsibilities to offline work for all views that
have All visibility. A view with All visibility will have unpredictable and possibly
undesirable results for a mobile user. You disable access to All list views by setting
the Local Access field to FALSE for these view assignments.
8-12
Version 6.0
The Employee Administration view lists all employees in the system, and enables
the administrator to create and remove employee records, and assign a logon ID,
responsibilities, positions, contact information, and so on to each employee. To
navigate to the Employee Administration view, choose Screens Application
Administration Employees Employees from the menu bar. This administration
view appears in Figure 8-3.
Figure 8-3.
Version 6.0
8-13
2 Locate and highlight the desired employee in the upper (Employees) list applet.
3 Click the ellipsis (...) icon to the right of the Responsibility text box Control in
the form applet, or click the Responsibility list Column cell in the list applet, and
then click the ellipsis icon that appears.
The Responsibilities pop-up (multi-value group) applet appears.
6 Locate the desired responsibilities in the association applet, highlight them, and
click ADD.
This dismisses the association applet, and adds the responsibilities to the list of
employee responsibilities for the current employee.
8-14
Version 6.0
Visibility
The view labeled My Accounts (Account list view) displays only those records
to which the logged-on user has Sales Team visibilitythat is, account records
in which the users position appears in the Account Team multi-value group.
The view labeled My Teams Accounts (Manager Account list view) displays
only those records to which the logged-on user has Manager visibilitythat is,
account records for which the primary position on the account team is the
logged-on managers direct or indirect subordinate.
The view labeled All Accounts (All Account list view) displays all account
records, except those with an empty account team or an invalid primary
position. This is called All visibility. The visibility settings are All, Contact,
Manager, Organization, and Sales Rep.
Each of these three views has different visibility settings, which, in conjunction
with property settings in the business component and other object definitions,
specify the different record display behaviors.
All three of these views appear to a logged-on system administrator. However,
people with most other positions would see only one, or perhaps two, of these
views in the View bar.
Version 6.0
8-15
Having views available with different visibility settings does not in itself create
access restrictions for users. The responsibilities feature described in
Responsibilities on page 8-8, used in combination with record-level visibility,
creates a situation in which the users access is appropriately restricted. In the
example of a field sales representative responsible for the midwestern U.S., the
responsibilities feature restricts this person to seeing only the view entitled My
Accounts. The visibility feature restricts the account records returned in this view
to only those in which the position Field Sales Representative - Midwestern U.S. is
present on the account team.
Record access visibility is based on a combination of the following three factors:
The user has a logon ID that is unique within the organization. This may be used
in certain special circumstances instead of the position.
Based on these factors, a users record access visibility in a particular view may be
any of the following four visibility types:
Sales Team visibility. Provides the user with access to records whose sales team
Personal visibility. Provides the user with access to records in which his or her
position or logon ID is designated as the owner.
Manager visibility. Provides the user with access to records that have a sales team
Organizational visibility. Provides the user with access to records within a given
organization.
All visibility. Provides the user with access to all records, except for those with a
8-16
Version 6.0
Sales Team, Personal, Manager, and All visibility types are described in more detail
in their respective subsections.
Sales Team visibility (also called Sales Rep visibility) provides access to records to
which users have access by being on an account, opportunity, or contact access list
that has access to those records. Account sales teams have access to particular sets
of accounts, opportunity sales teams have access to particular opportunities,
campaign sales teams to particular campaigns, and contact access lists to particular
contacts.
The views entitled My Accounts, My Contacts, My Quotes, and My Opportunities
all confer Sales Team visibility to records of the corresponding business
components.
NOTE: Views whose titles begin with the words Team or My Team confer Manager
visibility, not Sales Team visibility. There is no consistent naming convention for
Sales Team visibility views. Some views whose titles begin with My (without Team)
convey Sales Team visibility, and others convey Personal visibility.
Sales Team visibility is position-based. That is, the users position, rather than logon
ID, is considered when determining the users Sales Team visibility. Most users have
only one position, and this is the one selected by the system when the user logs on.
Users with multiple positions are logged on with their primary position by default,
but can select a different position to change visibility by choosing Edit Change
Position from the menu bar, and selecting a different position.
Version 6.0
8-17
Figure 8-4.
8-18
Version 6.0
The list column or control from which the multi-value group applet is invoked is
entitled Access List for contacts, Account Team for accounts, and Sales Team for
opportunities. In all cases, the underlying multi-value field is Sales Rep.
Using the multi-value group applet, position can be manually added to or removed
from the sales team (access list) for a particular opportunity, account, or contact.
The records owner (creator or assignee), and the person designated as primary on
the sales team or access list, have the access rights to add and delete team members.
The primary position cannot be deleted, and can only be set in a view with Manager
or Admin Mode visibility.
Territory Assignment
There is a process called territory assignment, performed by the Siebel Assignment
Manager, through which sales teams and contact access lists are automatically
updated based on territories and the positions assigned to them. In very general
terms, the set of relationships illustrated in Figure 8-5 makes possible automatic
update of an accounts or opportunitys sales team based on its territories.
O p portunity
or A ccount
Em ployee (sales
team m em ber)
Position
Territory
Legend:
B u sin e ss
Com ponent
1 :M re la tio n sh ip
(th ro u g h a B u s.
O b je ct
Com ponent and a
L in k)
Figure 8-5.
Version 6.0
8-19
Figure 8-6.
8-20
...has these
territories assigned.
Version 6.0
Version 6.0
8-21
Personal Visibility
Personal visibility provides access to records that a user has created or been
assigned to. The most important views that confer Personal visibility are entitled My
Activities, My Personal Contacts, My Product Defects, My Service Requests, My
Proposals, and Delegated Quotes. Notice that the word My in the view title does
not necessarily distinguish Personal visibility views; for example, My Activities
confers Personal visibility, whereas My Opportunities confers Sales Team visibility.
NOTE: Sales Rep visibility on quotes (that is, My Quotes view) appears and works
like a personal visibility even though the visibility applet type is Sales Rep. The
corresponding team sees the quotes in appropriate Oppty-Quotes or AccountQuotes view.
8-22
Version 6.0
Most business components that utilize visibility offer a Personal visibility view or a
Sales Team visibility view, but not both. Contacts are an exception. Contacts have
a Personal visibility view (entitled My Personal Contacts) as well as a Sales Team
visibility view (entitled My Contacts). Typically, uses have both views available,
allowing them to look at personal contacts separately from those shared by the
team. This is shown for a field sales representative in Figure 8-7.
Figure 8-7.
Version 6.0
Contacts Views
8-23
The Owner Field property or Position Visibility Field property in the business
component is used to establish Personal visibility. This is similar to the use of a sales
team field in business component records to establish Sales Team visibility for each
record. However, the sales team field used for Sales Team visibility is multi-valued
(based on a multi-value link) and contains only positions. An owner or position ID
field used for Personal visibility is always single-valued and can contain either a
logon ID or a position, respectively.
The configuration of certain properties in the business component determines
whether a logon ID (owner) or position is used for Personal visibility. Only one or
the other is used, not both.
For example, the Action (that is, activities), Contact (Personal), Product Defect, and
Service Request business components use an owner ID field (called Owner Id) to
hold a logon ID that establishes Personal visibility. In contrast, the Campaign
Achievement, Personal Forecast, and Quota Achievement business components use
a position ID field (called Position Id in all three cases) to hold a position that
establishes Personal visibility.
Although it is feasible to use the system field called Created By as an owner ID field
to identify the logon ID of the creator, this solution is generally too limiting because
the value of Created By cannot be changed by a user. Instead, a separate owner ID
field is created (generally named Owned By ID) that defaults to the value in Created
By, but can be exposed in the user interface and changed by a user. However,
Created By is used as an owner ID by a few business components in which there is
no need for a user to ever select a different owner, including Correspondence and
Response Product.
In the owner-based Personal visibility situation the user can generally select a
different owner from a picklist of employees, or a different position from a picklist
of positions. In some cases the owner or position is not exposed in the user
interface. Also, the field that is exposed and activates the picklist may be a different
field from the one used to store the value, as the values are stored as record pointer
IDs (pointing to Position or Employee records) rather than text values.
8-24
Version 6.0
Manager Visibility
Manager visibility provides access to records in which the primary sales team
member (when the business component uses Sales Team visibility) or the owner
person or position (when the business component uses Personal visibility) is the
logged-on user and his or her direct subordinate. Manager visibility views generally
contain the phrase My Teams at the beginning of the title, such as My Teams
Accounts or My Teams Product Defects. The word My is sometimes omitted, as
in Teams Activities.
An indirect subordinate is the subordinate of a subordinate, and so on. If a manager
has no subordinates, he or she will receive no data in this visibility mode.
Manager-subordinate relationships are determined from the position hierarchy.
Positions have a Parent Position field in the Position Administration view that
establishes a manager-subordinate relationship. These relationships can be viewed
and manipulated in the tree applet in this view.
The primary sales team member of a record is designated in the sales team multivalue group applet, invoked from the records sales team multi-value field. The
primary sales team member is indicated in the check box in the Primary list Column
(shown in Figure 8-8).
Check mark indicating the primary member of the list
Figure 8-8.
Version 6.0
8-25
Organizational Visibility
All Visibility
All visibility provides access to all records that have a valid owner person or
position (in Personal visibility business components) or a valid primary sales team
position (in Sales Team visibility business components). This is regardless of
whether the logged-on user is the record owner (Personal) or a sales team member.
An All visibility view generally contains the word All at the beginning of the title,
as in All Contacts across organizations, All Opportunities across organizations, and
so on.
A separate visibility mode, called Admin mode, provides the means to see all
records, including those without a valid owner or primary sales team member. This
enables the administrator to fix records which otherwise no one could see. Admin
mode is specified for a view in the Admin Mode Flag property. Admin mode is
discussed in View Properties on page 8-31.
Problems with sales team and owner assignment are generally resolved
automatically by Assignment Manager when it runs, so it is not often necessary to
manually administer faulty record ownership or team membership. Sales team and
owner assignment are discussed briefly in Territory Assignment on page 8-19.
NOTE: The visible records in All visibility can be different for connected (as opposed
to mobile) users. This is described in Routing Restrictions on page 8-35. Admin
mode will also override business component-level (but not applet-level) record
operations restriction properties such as No Delete, No Insert, No Merge, and No
Update.
8-26
Version 6.0
The combination of the basic View and Business Component property settings
determines the visibility of records to specific users in specific views. However, they
do not directly govern what happens when the user leaves the view through
drilldown, or invokes a pick applet. These features require additional configuration.
Drilldown visibility can occur in three different scenarios:
Within a business object. If the original view and drilldown view are both based
on the same business object, and visibility is unspecified in the drilldown view,
whatever visibility is in effect in the original view is continued in the drilldown
view.
For example, when you drill down on the Account list column in the view
entitled My Accounts, you are taken to the view entitled Account Contacts, and
presented with the list of contacts for the account from which you drilled down.
Both of these views specify the Account business object, so the Sales Team
visibility in effect in the original view is also applied, even though there are
blank visibility settings in the drilldown view.
Between different business objects. If the original view and drilldown view are
based on different business objects, moving from one to the other may require
resetting the visibility in the destination to something other than its standard
setting. A setting of Drilldown in the Visibility Rule Applied property in the link
object definition (in the original view) specifies that the current visibility setting
be applied when you drill down.
For example, when you drill down on the Account list Column in the view
entitled Opportunity Contacts, you are moving from the Opportunity business
object to the Account business object. A setting of Drilldown in the link on
which the original view is based would restrict the user to seeing accounts in the
destination view that are detail records of opportunities to which the user has
visibility.
Version 6.0
8-27
To a Destination Record. The Drilldown Object object type provides the means to
perform row ID-based drilldown, which drills down to a specific record in the
destination view based on matching the source field and destination field in the
source and destination business components, respectively. When this feature is
enabled (by specifying a row ID field in the Destination Field property of the
Drilldown object, or leaving it blank), the visibility setting may need to be
adjusted in the destination view so that the destination record can be displayed.
There is a Visibility Type property in the drilldown object for specifying this.
The visibility on pick or associate applets can be assigned the same visibility as the
View object. There is also a setting that dynamically determines the access level of
the users responsibility and then assigns the least restrictive visibilitythat setting
on the Popup Visibility property of a Business Component object is Auto All/Org.
8-28
Version 6.0
Record access visibility is partially controlled by the software, using constructs that
are unavailable to developers. However, much of the record access visibility
behavior is controlled by properties in object definitions that are available to
developers for modification. The object types that have visibility-related properties
are described in this section.
Visibility Emp MVField property. Specifies the name of the multi-value field used
for maintenance of the list of sales team positions in Sales Team visibility. This
property is used in conjunction with Visibility MVLink, which identifies the
corresponding multi-value link.
NOTE: In situations where both Personal and Sales Team visibility are needed to
the same data, as in contacts, separate business components are created based
on the same base table. In the case of contacts, the Contact business component
is configured for Sales Team visibility, and the Contact (Personal) business
component is configured for Personal visibility.
Version 6.0
Visibility MVLink property. Specifies the name of the multi-value link used for
maintenance of the list of sales team positions in Sales Team visibility. This
property is used in conjunction with Visibility MVField, which identifies the
corresponding multi-value field. Typically the multi-value link is to the Position
business component, and is named Position.
8-29
Owner Visibility Field property. This property is used to identify the field used to
Position Visibility Field property. This property is used to identify the field used to
Organization Visibility Field property. Identifies objects that are related to only one
organization.
multiple organizations.
Organization Visibility MVLink property. Specifies the name of the multi-value link
used in organizational visibility. Used in conjunction with the Organization
Visibility MVField property.
Contact Visibility Field property. Identifies the field used to establish contact
Popup Visibility Type property. Visibility within pick and association applets is
specified using the Popup Visibility Type property in the business component of
the pick or association applet.
8-30
Version 6.0
The owner of a record in a business component set up for Sales Team visibility
mode (non-blank Visibility MVLink and Visibility Emp MVField properties) is
the primary position on the sales team. The owner when the business
component is set up for employee-based Personal visibility (non-blank Owner
Visibility Field) is the employee whose logon appears in the field pointed to by
the Owner Visibility Field property. The owner when set up for position-based
Personal visibility is the position in the field pointed to by the Position Visibility
Field property.
When a view is designated for Admin mode, the Owner Delete protection is not
enabled and anyone having access to the view can delete any record.
Owner Field property. This property is primarily used for business components
View Properties
Version 6.0
8-31
Visibility Applet Type property. This property specifies the visibility mode that will
be applied to the applet indicated in the Visibility Applet property, and contains
the value All, Contact, Manager, Organization, Personal, or Sales Rep.
All provides access to all records except those with a missing or invalid primary
position in the sales team.
Contact provides access to Contacts.
Managers can see their own records and records for their subordinates. For
views where visibility is based on team ownership, they see only the records
where manager or subordinate is a primary member of the team.
Organization provides access to an entire Organization. Organization of the
records must match the users current organization.
Personal provides users access to records they own.
Sales Rep provides users access to records whose sales team or contact access
list contains the users position.
Visibility Applet property. This property specifies which of the applets in the view
is the one where visibility is controlled. Usually this is the list (upper) applet in
a list-form view, or the master applet in a master-detail view. This property is
used in conjunction with Visibility Applet Type.
Admin Mode Flag property. A TRUE/FALSE property that, when TRUE, designates
the view as one that operates in Admin mode. Admin mode disables All visibility
rules. If the view is in Admin mode, then the no insert, no delete, no merge, and
no update restrictions for the business components used by the applets of the
view are ignored. However, these restrictions are set for the applet rather than
the business component. If a field has a Read Only value of TRUE, the Admin
mode will not circumvent them.
In Admin mode the user will see every record, even those with no primary team
member designated. This is distinct from All visibility, which shows all records
that have a primary team member designated. The Account Administration
view, Opportunity Administration view, and Product Administration view are
examples of Admin mode views.
8-32
Version 6.0
Link Properties
Visibility Rule Applied property. This property indicates how visibility rules should
be applied when the current view uses this link. Visibility settings in a view
apply to the applet specified in the Visibility Applet property. If there is a masterdetail relationship between the visibility applet and an applet displaying detail
records, this property can be used to allow users to see detail records that they
would not see because of visibility rules, but not to allow them to drill down to
see the complete records. Valid values are Child, Drilldown, Never, and Always:
Child value. When Child is specified, visibility rules are applied to the detail
records of master-detail views based on this link.
Drilldown value. When Drilldown is specified, visibility rules are applied to the
destination view after drilling down.
Never value. Disables visibility rules in the detail records when the current
view is based on this link.
Always value. Enables visibility rules in the detail records when the current
master-detail view is based on this link, even though the view does not have
active visibility settings in the Visibility Applet and Visibility Applet Type
properties.
NOTE: Manager visibility is never applied to child business components
Version 6.0
8-33
The Drilldown Object object type has one visibility-related property, for use in row
ID-based drilldown:
Visibility Type property. When row ID-based drilldown is employed from an applet
to a specific destination record, the Visibility Type property setting can specify a
different visibility type than the default visibility for the destination business
component. Generally a value of All is used, if this feature is employed. This
ensures that the destination record can be displayed.
Report Properties
8-34
View Mode property. For static Actuate reports, this property should be set to the
type of visibility that should be applied to the reports business component.
Version 6.0
Routing Restrictions
Users access server data either as connected or remote users. Connected users view
data from the server database through a local or wide area network. Remote users
(typically mobile users) download database records to their laptops by means of the
synchronization process. The visibility rules previously described apply to all users,
whether connected or remote. An additional category of restrictions called routing
is placed on user access to records for remote users only. Routing restrictions on
data access are in addition to visibility restrictions.
Each mobile user of Siebel applications has a local database that contains a subset
of the data that exists on the server database.
NOTE: You should disable access in all responsibilities to offline work for all views
that have All visibility. A view with All visibility will have unpredictable and
possibly undesirable results for a mobile user. You disable access to All list views
by setting the Local Access list column to FALSE for these view assignments. This
process is explained in Local Access on page 8-12.
The docking visibility rules determine which records from the server database are
propagated to each mobile user. Docking visibility rules are viewable but not
editable in Siebel Tools (except by Siebel technical personnel). Although it is not
possible for a customer developer to change these hard-coded visibility rules, it is
sometimes necessary to identify and interpret them, as in the following situations:
When deciding whether to use a particular table in the Siebel data model for a
non-standard purpose (for example, storing something other than activities in
the S_EVT_ACT table), it is critical that the tables intended use be consistent
with its docking visibility rules.
Version 6.0
8-35
The Visibility Level property in a Dock object specifies at a high level whether all
records are to be transferred for the corresponding set of tables, or only a limited
set that corresponds to combinations of Personal, Sales Team and Manager
visibility. The transfer rules are further defined and restricted by the child dock
object visibility rule object definitions.
Three Visibility Level property settings are possible, as follows:
The majority of dock objects have enterprise-level routing, which means they
have no restriction on the transfer of records.
Private value. Used exclusively for routing of non-configurable data. This setting
ensures that the rows in these dock objects will never be routed to any mobile
clients.
The default limited-level routing is as follows for each of the major dock objects:
Organization (Account) dock objects. Records are routed for which the user is on
the account sales team or is the manager of an employee on the account team,
or for accounts that are available through drilldown.
Opportunity dock objects. Records are routed for which the user is on the
Contact dock objects. Records are routed for which the user is on the contact
access list or is the manager of an employee on the access list, or for contacts
that are available through drilldown.
8-36
ServiceRequest dock objects. Records are routed for which the user created or is
assigned to the service request, or for service requests that are available through
drilldown.
Version 6.0
ProductDefect dock objects. Records are routed for which the user created or is
DocQuote (quote) dock objects. Records are routed for which the user created or
is assigned to the quote or is the manager of the creator or assignee, or for quotes
that are available through drilldown.
Campaign dock object. Records are routed for which the user is on the campaign
team.
Version 6.0
8-37
The Dock Object Table object type is a child object type of Dock Object, and is used
to specify the tables whose records are actually transferred in conjunction with the
Dock Object. The Contact dock object and its child dock object tables are shown in
Figure 8-9.
The Contact dock object
object definition
Figure 8-9.
8-38
Version 6.0
Each dock object consists of a collection of related tables, which appear in Siebel
Tools as child object definitions of the type Dock Object Table. All of the tables
identified in dock object tables for a given dock object are related, via foreign keys
in the data model, to one driving table (also represented with a dock object table
object definition). The driving table is identified in the Primary Table property in
the Dock Object object type.
For example, the Contact dock object shown in Figure 8-9 is based on the primary
table S_CONTACT, but it also includes other dock object tables such as
S_NOTE_CON (notes for the contact), S_CONTACT_REL (relationships between
contacts), and S_POSTN_CON (access list for the contact). Also included are the
extension tables for S_CONTACT.
A dock object is therefore a set of logical records (contacts, in this case), where each
such logical record is itself a collection of one or more physical database records
spread across multiple tables.
Version 6.0
8-39
In order to determine which logical records in a dock object to give to each mobile
user, the Siebel application evaluates the dock object visibility rules for that dock
object. Dock Object Visibility Rule is a child object type of Dock Object, as
illustrated for Contact in Figure 8-10.
The Contact dock object
object definition
8-40
Version 6.0
Each visibility rule has a Comment property that explains specifically what the rule
checks. For example, the dock object visibility rules on the Contact dock object
include the following: You are on the sales team of the Contact, You are the
manager of the primary sales rep on the Contacts sales team, You are the owner
of the Contact, and so on. In addition, each dock object visibility rule has a
Visibility Strength property and a Sequence property.
Siebel applications determine which database records to propagate to each mobile
user (for dock objects that have limited visibility) by evaluating the visibility
strength of the user for a dock object, and comparing this with the visibility
strengths of the tables it contains.
The users visibility strength for a dock object is determined from the child dock
object visibility rules. For each logical dock object record, and for each mobile user,
the Siebel application sequentially evaluates the rules in order of descending
visibility strength and ascending sequence until one of them passes (that is,
evaluates to TRUE). As soon as one of the rules passes, the Siebel application stops
this evaluation process, and gives the current logical dock object record to the
current mobile user.
When a dock object visibility rule passes, the mobile user gets the parent (logical)
dock object record with a (user) visibility strength value obtained from the
corresponding property in the dock object visibility rule that caused him or her to
get the record. If none of the dock object visibility rules pass for a given logical dock
object record and a given mobile user, then that user will not receive that particular
logical record.
For example, consider two different dock object visibility rules on the Contact dock
object. The first visibility rule (You are on the sales team of the Contact) has a
visibility strength of 100, while the ninth rule (Contact for an Account Group you
have full visibility on) has a visibility strength of 50. So, if users are on the sales
team for a particular contact, they get that logical contact record with a visibility
strength of 100. However, if they are not on the sales team for that contact (and if
all the other first eight visibility rules also failed), they still get the logical contact
record with a visibility strength of 50 if the ninth rule passed.
Version 6.0
8-41
Visibility strength values are integers between 0 and 100. A visibility strength of 100
denotes full visibility, while a visibility strength of 0 denotes no visibility. Any value
between 1 and 100 (typically 50) implies partial visibility.
NOTE: The integer range for a visibility strength value is actually 0 to 254, but a
value of 100 is, by convention, considered to mean full visibility. If your
configuration does not require the use of values higher than 100, use values in the
0100 range rather than 0254.
The users visibility strength (obtained from the successful dock object visibility
rule) is compared with each dock object tables visibility strength, as specified in its
Visibility Strength property. For users to receive the records from a particular dock
object table, their visibility strength must equal or exceed the visibility strength
specified for that table.
For example, suppose that a particular mobile user receives a particular logical
record from the Contact dock object with a visibility strength of 50. The Siebel
application will then propagate to the users local database all physical records that
are related to the given Contact on any of the dock object tables that have a visibility
strength of 50 or more in the Contact dock object.
8-42
Version 6.0
Selective Routing
Selective routing (also called selective retrieval) is a routing capability that provides
the means to restrict the list of accounts routed to individual salespersons who are
connected to the server remotely. This feature makes it possible to limit the
connection time and disk space consumption of mobile users by transferring only
the accounts each salesperson needs, rather than all accounts to which he or she
has visibility.
Selective retrieval is implemented through a combination of disabling a dock object
visibility rule (performed by Siebel technical personnel) and adding account names
to mobile clients in an administrative view. The choice of which dock object
visibility rule (or rules) to disable will depend on which visibility mode is
generating the bulk of the unwanted records, generally Manager (rather than Sales
Team or Personal).
NOTE: Disabling a visibility rule affects all mobile users accessing the server, so this
Version 6.0
8-43
Once the undesired routing rule is disabled, the server must be configured to
override the disabling for specific accounts to be routed to specific users. This is
accomplished for each user in the Account Synchronization Selection view. This
view is invoked from the Screens Personal Administration Account
Synchronization Selection menu option, and appears in Figure 8-11.
In the Account Synchronization Selection view, the user adds himself or herself as
a mobile user in the upper applet, and to the mobile user thus specified adds
accounts in the lower applet. In each case the Edit Add New Record option is
used.
Accounts added to a mobile users routing rights through the selective routing
feature do not alter the users visibility restrictions on viewing records. If the user
does not have visibility to an account, but is having it routed, he or she will receive
that accounts records but will not be able to see them.
8-44
Version 6.0
For a more complete discussion of selective retrieval and its implementation, refer
to the chapter about Siebel Remote administration in the Siebel Remote and
Replication Manager Administration Guide.
Version 6.0
8-45
8-46
Version 6.0
Version 6.0
9-1
This chapter explains how to configure Siebel applications to send emails and faxes
from a Siebel application via a third-party application.
9-2
Version 6.0
You can send email or fax information directly from any view in a Siebel
application:
Figure 9-1.
The list of recipients that appears in the Message Properties dialog box consists of
generic names such as Service Request Owner and Contact Name, rather than the
actual names of the persons, which are obtained from the business component
records.
Version 6.0
9-3
You can also select recipients from the messaging softwares address book, and you
can use the messaging softwares standard procedure for adding files directly from
your local disk drive or network.
The text in the message area of the message dialog box is:
9-4
Version 6.0
After you have selected the recipients and templates, click OK and the standard
message dialog box for your mail or fax software appears. The message dialog box
for Microsoft Exchange appears in Figure 9-2.
Figure 9-2.
Siebel applications can utilize the cover sheet support built into the third-party fax
product. These fax server products typically provide designer tools for creating
cover sheet templates. You configure this through a mapping-definition process that
maps fields to fax software properties.
Faxes and emails generated from applets can be automatically logged as Activity
records, either public or internal. This is a useful feature for recording sales
activities or service request follow-ups. The text of the message is stored in the
Comment field of the activity record, or it is stored as an attachment if its over a
certain length.
You cannot add multiple messages from various business components to one email
or fax. The message is generated once from the selected business component record
and template. You can add multiple recipients and file attachments, however.
Version 6.0
9-5
3 Specify the appropriate settings for the email and fax systems you are using.
Figure 9-3.
9-6
Version 6.0
activity records are automatically generated from the users email and fax
transmissions, and whether generated activities are public or internal. Three
selections are available:
Generate public activities. This selection specifies that activity records are to
be generated from emails and faxes, and that they are to be indicated as
Public (with a value of FALSE in the Internal field).
Generate internal activities. Specifies that activity records are to be generated,
and that they are to be indicated as Internal.
Dont generate activities. Specifies that activity records are not to be generated
from emails and faxes.
Save long messages as attachments check box. When activities are automatically
generated, the Comment field is populated with the contents of the message:
TRUE specifies that messages larger than the Comment field (currently 1500
characters) are saved as file attachments and corresponding file-attachment
records of the activities.
FALSE specifies that messages longer than the limit are to be truncated.
NOTE: When an email message has file attachments in the message body, these
file attachments are not saved with automatically generated activities.
Attachments to these activities contain the message body text only.
Mail & fax Profile picklist. Use this picklist to select the MAPI profile in the
Windows Mail And Fax application to use for email and fax transmission. You
could have multiple profiles set up in Windows, but you need to specify just one
for e-mail and fax use.
Version 6.0
9-7
Address entry type picklist. Address entry types are formats for addressing
messages that the specified MAPI profile can support on the server. In this
picklist, an address entry type is selected for faxing only. Generally the address
entry type to select will include the word fax and, often, the name of the fax
server software.
Address type picklist. This picklist is automatically selected when you select an
Address Entry Type; you do not have to enter anything here.
Modem port picklist. Specify your serial port (COM1, COM2, and so on) for your
9-8
Version 6.0
Setting Up Templates
The template file you select in the Message Properties dialog box (see Figure 9-1 on
page 9-3) determines the text to include in the subject and message body areas of
the message:
The subject line is from the first line of the template file.
The message body text is obtained from the remaining lines in the file, and
consists of a combination of literal text from the template file and values
populated from fields in the current business component record.
You create template files with a text editor; you make them available to the system
by storing them in a directory location reserved for that purpose. You can use the
same template files for both emails and faxes, or create different custom versions
for the two purposes.
Template files are located in the msgtempl subdirectory of the directory where you
have installed your Siebel application software (usually C:\siebel\msgtempl).
The text of a typical template file for generating service-request emails or faxes
(srmail.txt) appears below:
Assignment Notification
The following service request has been assigned to you:
Service Request Number: %SR Number%
Date Opened : %Created%
Severity :
%Severity%
Priority :
%Priority%
Product :
%Product%
Abstract :
%Abstract%
Description : %Description%
Version 6.0
9-9
Templates contain both text and field names. To embed fields, use the % sign before
and after the name of the specified field (for example, %Severity%). A template file
is specific to one business component, and can be used only when you select an
applet based on this business component. All fields identified in the template file
text must be present in this business component, and the spelling and case must
match. For example, the expression
%Contact Last Name%
is incorrect, and the field value would not be substituted for it.
If you select a template file that is based on a different business component than
the one on which the current applet is based, and the specified fields dont exist in
the current business component, the field names, rather than the field values that
would normally substitute for them appear.
9-10
Version 6.0
Version 6.0
9-11
To configure joined generic recipients, configure the user property child object
definitions of the business component (see Table 9-2).
Table 9-2.
Recipient Id Field n
(where n is an integer)
You can specify multiple joined generic recipients for a business component, which
is why the user property name contains an integer. That is, you can have Recipient
Id Field 1 specify one joined recipient, Recipient Id Field 2 specify another, and so
on. The order of the integers in the user property names determines their order in
the Recipients selection list in the Message Properties window.
The joined business component must have the user property settings of the nonjoined type; that is, Recipient Email Address Field and Recipient Fax Phone Field.
This is so you can ultimately obtain the email address and fax phone number for
each generic recipient.
NOTE: In order to specify a Recipient Id Field user property that points to a business
component other than Contact and Employee, you must add that business
component to the Message Recipient Business Object.
9-12
Version 6.0
Figure 9-4.
You can configure your Siebel application client to automatically supply several of
these fax-software address property values from the current business component
record. To do that, configure a set of field value mappings from each business
component that will be used for generating faxes to the corresponding fax software
properties. You specify these mappings for a business component in the Map Fax
Properties dialog box.
Some of these fax system properties are required and others are optional. Because
the set of properties differs from fax system to fax system, custom mappings of these
properties from fields in business components must be defined for each fax system.
Standard Siebel applications include mappings for RightFAX. You can create your
own mappings to support additional fax systems.
Version 6.0
9-13
Configure the computer that will send faxes in the same way as the user
machines.
Create a profile in the Mail and Fax option of the Windows Start
Control Panel.
Settings
3 Choose Tools
Siebel Tools needs the Fax profile to determine the fax software that is being
used so it can correctly map the fields to the fax software fields. Depending on
the fax server being used, the server may need to be running, and the client
machine connected, to set up this configuration.
9-14
Version 6.0
4 Select the profile you are using for fax configuration, and click OK.
The Select Address Type dialog box appears, as shown.
This dialog box enables you to identify the fax systems for which you want to
create mappings. Each fax system is typically associated with an address entry
type. If the computer has been properly set up to interface to the desired fax
system, an address entry type for that system should show up in this dialog box
(for example, RightFAX Address for RightFAX and Fax Address for Fax Sr.).
Version 6.0
9-15
The mappings of fax properties to fields are defined in this dialog box. For each
property of the selected address entry type, the property label, internal property
name, Required flag, and current field mapping are listed.
6 To assign a field to a specific fax property, select the property in the list table,
and then click the field in the list of the fields on the right side of the dialog box.
This list contains all fields in the business component.
7 If you need to review the Recipient property sheet in the fax software for the
current address entry type (to assist in determining the fax mappings for the
labels), click Show Template.
This enables you to more easily determine the fields to map to, based on fax
property labels. For instance, a label of ( may represent an area code property
that is displayed in the template as an area code surrounded by parentheses.
NOTE: This property sheet is made available for reference only. Any information
9-16
Version 6.0
Version 6.0
9-17
Fax and email activities (Activity business component records) are automatically
generated when sent if there is a corresponding system activity object definition,
and automatic generation is turned on in the Communications tab of the Options
window in Siebel applications. System activity objects are predefined for service
requests, opportunities, contacts, and various other business components.
When you submit a fax request, an activity is generated. The context of the activity
is based on the applet where the dialog box was first invoked. This activity includes
information as defined in the system activity object.
As a result, you can view fax history in relation to particular business component
records (such as contacts, accounts, and service requests). For example, you can
view a list of fax activities, and drill down to the contacts who were recipients of
the faxes.
The activity record has Email - Outbound or Fax in the Type field and the list
of recipients in the Description field. The text of the message appears in the
Comment field, unless the message is too long, resulting in its being stored as a file
attachment and attachment record.
NOTE: In the Communications tab of the Options window in Siebel applications, you
can turn on or off the storage of long comments as attachment records using the
Save long messages as attachments check box. If turned off, the comments are
truncated.
9-18
Version 6.0
You can generate a fax (outside the Send Fax mechanism) using the Siebel Reports
module. This is particularly useful for quotes.
2 Specify an address/phone number, or copy the fax report into a message created
from a Siebel application using the Send Fax command.
Activities are not automatically generated when faxes are printed from the Reports
module. If you send a fax using the Siebel report viewer, you must create an activity
manually.
Version 6.0
9-19
This chapter explained how to configure Siebel applications to send emails and
faxes from a Siebel application via a third-party application.
Table 9-3 lists sources of additional information about topics discussed in this
chapter.
Table 9-3.
9-20
User properties
Appendix E
Version 6.0
10
Version 6.0
10-1
10
10-2
Version 6.0
10
List of assignment
objects assigned to
this rule.
Picklist of available
assignment
objects.
Version 6.0
10-3
10-4
Version 6.0
10
The following object types in Siebel Tools are specific to Assignment Manager (each
type is discussed in detail later in the chapter):
Version 6.0
10-5
These object types have hierarchical (parent-child) relationships you can view in
the Siebel Tools Object Explorer. The hierarchical relationships of these object types
(and two related object types in Workflow Manager configuration) are illustrated in
Figure 10-2.
Siebel
repository
Workflow
Object
Assignment
Object
Workflow
Component
Assignment
Attribute
Assignment
Item Type
Assignment
Attribute
Column
Assignment
Item Type
Attribute
Legend:
Object type
1:M relationship
through obj. hierarchy
10-6
Version 6.0
"assignment rule"
(Assignment Group
business component record)
Assignment Object
multi-value field
"assignment criterion"
(Assignment Rule
business component
record)
Assignment
Object
Assignment
Object
property
Assignment
Attribute
Assignment
Attribute
Column
Item Type
Name field
Assignment Item
Type
Assignment
Item Type
Attribute
Assignment
Attribute
property
Workflow Object,
Workflow Component
and Workflow
Component Column
properties
Workflow Object
Legend:
object definition
contained (child) object definition
Business Component record
Workflow
Component
Workflow
Component
Column
Figure 10-3. Field Value and Property Relationships Among Assignment Manager Object Types
Version 6.0
10-7
Assignment rules (the box with a broken line border at the upper left) have
assignment criteria children, as is suggested by the Assignment Manager
administration views. Assignment rules are actually records of the Assignment
Group business component, and their child assignment criteria are records of the
Assignment Rule business component.
Each assignment rule points to one or more assignment object definitions, stored
in a multi-value group attached to the Assignment Objects field in the
assignment rule (Assignment Group business component) record.
NOTE: If an assignment rule does not specify an assignment object, this means
10-8
Version 6.0
Assignment Objects
10
Version 6.0
10-9
10-10
Version 6.0
10
Auto Reassign
Calendar Duration Column
Calendar Start Time Column
Ignore Extra Attributes
Keep Creator
Keep Manual Assigned
Keep Manual Assignment Primary Employee
Keep Manual Assignment Primary Position
Keep Manual Assignment Primary Rule
Lock Assignment Column
Name
Primary Table
Replace Team Members
Set Primary Employee
Set Primary Position
Set Primary Rule
Version 6.0
10-11
Rule Column
Rule Primary Column
Rule Primary Denorm Column
Rule Primary Manual Column
Rule Primary System Column
Rule Table
Rule Team Copy Columns
Rule Team Denorm Column
Rule Team Manual Column
Rule Team System Column
10-12
Version 6.0
Default Employee
Employee Column
Employee Primary Column
Employee Primary Denorm Column
Employee Primary Manual Column
Employee Primary System Column
Employee Table
Employee Team Copy Columns
Employee Team Denorm Column
Employee Team Manual Column
Employee Team System Column
Version 6.0
10-13
Default Position
Position Column
Position Primary Column
Position Primary Denorm Column
Position Primary Manual Column
Position Primary System Column
Position Table
Position Team Copy Column
Position Team Denorm Column
Position Team Manual Column
Position Team System Column
10-14
Version 6.0
10
The Criteria list column in an assignment criterion record specifies the assignment
item that is to be tested for a match against one or more attributes of the assignment
object or the candidate. For example, in an assignment criterion that checks to see
if the state is California, the assignment item would be State, Home State, Account
State, or something similar, and the value California (CA) would be specified in a
child value record.
Version 6.0
10-15
The administrator clicks the drop-down button in the Criteria list column, and a
picklist appears for selection of an assignment item for the criterion. The picklist
lists all available assignment itemsthat is, all Assignment Criteria object
definitions in the repository. When an assignment criterion is selected, its name is
stored in the current Assignment Rule business component record.
NOTE: The business component that holds assignment criteria is called Assignment
Rule. The business component that holds assignment rules is called Assignment
Group.
3 In the new Assignment Criteria object definition, enter property values. The
Name property is required.
4 Click anywhere outside the record to commit the new object definition.
5 Create one or more Assignment Criteria Attribute object definitions.
6 Compile the repository, and replace the current .srf file with the newly compiled
one.
7 Check in the project.
10-16
Version 6.0
10
...has a Product
list column in its
value records.
Version 6.0
10-17
One list column appears in the Values list applet for each assignment item attribute
in the assignment item. In the figure, the Product Wildcard assignment item
(actually the Product Name assignment criterion, but with a display name of
Product Wildcard) has a Product list column in the display of its child Value records.
This list column corresponds to the Product Name assignment criteria attribute
(with a display name of Product). This is illustrated in Figure 10-6.
Product Name
assignment
item
Product Name
assignment
item attribute
10-18
Version 6.0
If there were more assignment item attributes for this assignment item, each would
have a list column in the Values applet. The Score list column is automatically
provided, and the Expertise Code list column appears in this circumstance because
the assignment item has a Use Expertise property setting of TRUE.
Assignment item attributes make it possible for an assignment item to consist of
multiple attributes, each mapping to a specific assignment attribute object
definition.
Version 6.0
10-19
10
...in whose
definition this
picklist is
specified.
10-20
Version 6.0
"assignment rule"
(Assignment Group
business component record)
Assignment Object
multi-value field
"assignment criterion"
(Assignment Rule
business component
record)
Assignment
Object
Assignment
Object
property
Assignment
Attribute
Assignment
Attribute
Column
Item Type
Name field
Assignment Item
Type
Assignment
Item Type
Attribute
Assignment
Attribute
property
Workflow Object,
Workflow Component
and Workflow
Component Column
properties
Workflow Object
Legend:
object definition
contained (child) object definition
Business Component record
Workflow
Component
Workflow
Component
Column
Figure 10-8. Property Relationships Between Assignment Attribute and Other Object Types
Version 6.0
10-21
10-22
Version 6.0
10
Version 6.0
10-23
10
10-24
Version 6.0
When you click the Assign button in the form applet for the current service request,
the Siebel application client contacts the assignment server and creates a list of
qualified employees sorted by descending scores. The user selects an employee
from the list to be the service request owner.
Administration of Assignment Manager for interactive assignment consists of
setting parameter values in the .cfg file. The administration process is explained in
the Siebel Assignment Manager Administration Guide.
There are also configuration steps in Siebel Tools to add interactive assignment
functionality to a workflow policy object (other than Service Request, which is
preconfigured).
3 Verify that the appropriate applet is of the CSSFRBase class or one of its
subclasses. Applets based on other classes (including CSSFRListBase) cannot be
configured for interactive assignment.
4 Add a child business component user property to the business component. Set
the Name property to Assignment Object and the Value property to the name of
the assignment object that is to be used in the assignment process.
Version 6.0
10-25
5 Add the Assign button in the appropriate applet. To do this, you navigate in the
Object List Editor to the applet to which you want to add the Assign button.
Right-click the applet object definition, and choose Edit Layout from the shortcut
menu. Copy one of the existing buttons (for example Cancel). Set the Caption,
Method Invoked and Name properties of the new button to Assign. Save the
changes to the applet.
6 Add the business component that will hold assignment results records to the
business object of the view in which the reconfigured applet is used. This
business component already exists, and is either Assignment Results (Position)
or Assignment Results (Employee), depending on whether you are setting up
employee- or position-based assignment. To add the business component to the
business object, create a child Business Object Component object definition,
with the BusComp property set to Assignment Results (Position) or Assignment
Results (Employee).
NOTE: You can optionally define the Business Component user property called
Assignment Results BusComp and the applet user property called Assignment
Results Applet. These user properties are desirable when you need to show
additional information about the results. For example, the service request
assignment results could join to the CTI tables, and only query qualified service
people who are not currently using their telephone. The name of the business
component used to hold data for the additional fields would be specified in an
Assignment Results BusComp user property in the business component being
assigned. The name of the applet used to display the assignment results would be
specified in an Assignment Results Applet user property in the applet from which
assignment is invoked.
10-26
Version 6.0
10
Version 6.0
10-27
10-28
Version 6.0
11
Version 6.0
11-1
11
This chapter describes what the Database Extension Designer is and how to use it.
It also provides you with information and guidelines for planning and designing
database extensions.
11-2
Version 6.0
11
The Siebel Database Extension Designer is a feature in Siebel Tools that enables you
to perform extensions to the standard Siebel eBusiness Applications database. The
Database Extension Designer offers the following extension capabilities:
Capture additional attributes on entities. You can add columns to database tables.
You can use these columns to store additional information for use by business
object definitions. You can then modify the user interface object definitions to
display and update the contents of added columns.
Create your own extension tables. You can also extend the Siebel Data Model by
Carry custom attributes forward with new releases. As part of the implementation
process, the Database Extension Designer generates the necessary databasespecific DDL commands, and registers the columns in the Siebel application
dictionary. Siebel applications recognizes the columns, and carries them forward
into subsequent releases of the application.
Integrate with Siebel Remote. After implementing a database extension, you can
request that Siebel applications automatically generate a new structure for
mobile client local databases. Siebel applications provides a standard
methodology for propagating changes to mobile clients.
Version 6.0
11-3
11
Siebel Tools and Siebel applications provide several tools that automate much of the
process of implementing database extensions. However, to be successful, you need
to plan and design your extensions before using these tools. Planning and design
tasks are listed in this section, and those that the Database Extension Designer
facilitates are described in more detail in subsequent sections.
You should use a test database environment where you can make and verify
database extensions before they are propagated to the production database.
NOTE: Be sure to lock these projects when extending the database through Siebel
Tools: Newtable, EIM Interface Table, Scopus Migration, and ERP Interface Table.
11
11-4
Version 6.0
c Initiate a query by choosing Query New Query from the menu bar. In the
QBE row in the Object List Editor, enter the name of the column you want to
use (in the Column property) and the name of the extension table (in the Join
property). Press ENTER.
d If the query does not return any Field object definitions, the column is
unused in the extension table and is available. If the query returns one or
more object definitions, find another extension column in that table. To
determine which extension columns are currently in use, perform the query
again with the same extension table specified (in the Join property) and the
value ATTRIB* in the Column property.
Caution: If the column is in use by a field defined by a Siebel
application, do not deactivate the original field in order to use
that column for another purpose.
2 If you will add a new custom column, decide whether you will be implementing
it after you have deployed active mobile clients. Mobile clients will either have
to be re-extracted to get the new column, or Siebel Anywhere will need to be
used to distribute the schema change.
3 Design the extension column. Decide on a description, name, user name, and
characteristics (such as data type, length, and default values).
4 Decide on the applet(s), view(s), and screen(s) where the column will be used.
Decide if users can only view column data, or view and update it.
5 Decide where your custom column will reside: in a base table, a standard
extension table, or a custom extension table.
To find any existing columns in which you might place the field, do the
following:
a In Siebel Tools, navigate to the applet to which you want to add a control or
list column.
b Note the value in the Business Component property.
Version 6.0
11-5
c Navigate to this business component using the Object Explorer and Object
List Editor. The object definition for the business component in the Object
List Editor displays, in its Table property, the name of the base table. Note
the name of this base table.
d In the Object Explorer, select the Table object type.
e In the Object List Editor, perform a query to restrict the list of tables to just
display extension tables with a base table name matching the previously
identified base table, as follows:
Type property set to a value of Extension
Base Table property equal to the base tables name, in all capitals
The result of this query is a display of the extension tables for the identified
base table.
NOTE: Alternatively, you could review the base table to determine if it would be
appropriate to create an extension column there. This would require a different
Object List Editor query, in which you set the Name property to the Name of the
identified base table, and expand the Column object type in the Object Explorer.
6 Decide on the method for loading data into the extension column. You may be
able to populate the extension column using the Enterprise Integration Manager
(EIM). For more information, refer to the section entitled Populating Extension
Tables and Columns on page 11-30. Alternatively, you could have your users
enter data through the user interface, or use Siebel Object Interfaces and
Siebel VB or Siebel eScript to update the data programmatically.
7 Document the planned changes, and work with Siebel Technical Services to
review the design.
8 Develop an implementation schedule that includes adequate time to test and
implement your work, as well as to propagate the changes to your active mobile
clients.
NOTE: Because all extensions are made and tested first against a local
development database, then against the test server environment, your mobile
users can continue to synchronize as you implement database extensions.
11-6
Version 6.0
11
S_OPTY_X is the name of the 1:1 extension table for the S_OPTY base table.
S_OPTY_XM is name of the 1:M extension table for the S_OPTY base table.
The user name of an extension table (in the User Name property) comprises the
user name of the base table, a space, and a suffix. The suffix Extension denotes a
1:1 extension table; the suffixes M:1 Extension or 1:M Extension denote a many-toone or one-to-many extension table. For example:
Opportunity Extension is the user name for the S_OPTY_X extension table.
Opportunity M:1 Extension is the user name for the S_OPTY_XM extension
table.
Version 6.0
11-7
X_DISCOUNT
X_SPECIALCHG
The user column name for an extension column in a base table uses a column name
and a suffix. For example:
Discount Extension
Special Charge Extension
NOTE: The Database Extension Designer imposes no naming convention on
extension columns in an extension table. Be careful not to use database reserved
words.
11-8
Version 6.0
11
DBMS Restrictions
11
You can add extension columns to a base table, standard extension table, or custom
extension table.
However, you should be aware that different DBMS systems have different limits on
the width of a table row, either on the maximum number of columns in a table or
the maximum number of bytes in a row. If you need to exceed the limit, you can
add extension columns to custom extension tables only.
Once added to the physical table, a column cannot be removed. Refer to your
database systems manuals for information on this constraint.
Version 6.0
11-9
11
After planning and designing your database extensions, complete the following
steps to implement your extension column on the Siebel test database server. If you
are performing this work after your Siebel applications are in production, you
should establish a separate test environment and database. This approach ensures
the safety and integrity of your production system as you develop and test your
database extensions.
NOTE: During the process of implementing extension columns and tables, Siebel
Tools generates and executes the SQL data definition language (DDL) that is used
to modify the database and update other Siebel system components.
11-10
Version 6.0
11
With Siebel Tools running against the local database, check out the project to which
the table youre extending belongs. Be certain to specify Server Lock when checking
out the projects.
The reason that the Scopus Migration project needs to be checked out is that
extending a table causes a row to be inserted in a related interface table assigned to
that project.
11
The logical schema (data object definitions) must be updated with your extensions
in Siebel Tools prior to your applying them to the physical database. Logical schema
update is performed against your local development repository. Any changes made
to your logical schema will be indicated by a check mark in the Changed column
for the table or column affected.
This section is organized into the following subsections:
Version 6.0
11-11
11-12
Version 6.0
Data tables
Intersection tables
Interface tables
Standard extension tables
Custom extension tables
You cant add extension columns to private data tablesthat is, tables with a Type
property of Data (Private). Some interface tables are private, although most are
public. You should check the Type property for a table to verify that you can
extend it.
Do not use column names that are reserved words on your server or client
database.
When you add columns to base tables or interface tables, Siebel Tools enforces the
naming conventions described in the section Naming Conventions for Extension
Tables and Columns on page 11-7.
Version 6.0
11-13
You must provide a default value, in the Default property, for any column that you
designate as mandatory (with a FALSE value in the Nullable property). Although
you can create a mandatory column without providing a default, you will encounter
problems when using this column. For example, if you try to add a column to a table
that is already populated with data, the database will fail to create the column. If
the table does not yet contain data, attempts to add data (via the user interface,
Enterprise Integration Manager, or Siebel Remote) may fail.
In an extension column, use only default values for the following properties:
Translate
Use FKey
Sequence Object
Cascade Clear
Foreign Key Table Name
Caution: Be extremely careful when using custom extension
columns to track foreign keys. If you choose to implement this, you
must consult with Siebel Expert Services concerning the visibility
rules applied to the foreign key table. Additionally, you must set the
Foreign Key Table Name property to NULL for that column, and you
will not be able to use the Enterprise Integration Manager to load
values into that column.
You are limited to one custom extension column of type varchar and one of type
long per table. Each of these columns is limited to 2048 characters maximum. If you
attempt to add additional columns of these types, or exceed this length limit, you
will receive an error message.
11-14
Version 6.0
Version 6.0
11-15
11-16
Version 6.0
Extension tables or columns that are deleted are removed from the logical schema.
If you delete an extension table, the corresponding temporary columns in any
interface table that is imported to the base table for the extension table are not
deleted. These columns cannot be deleted through Siebel Tools, and will remain in
the logical and physical schemas.
The physical schema is unaffected. After you have deleted an extension table or
column that exists in the physical database, the physical table or column will
remain. Deleted extension tables may be dropped manually once the extension
table is removed from the logical schema. In most databases it is not possible to
delete a column from the physical table once it is created.
Version 6.0
11-17
There are already mappings from the interface table into the base table.
The target table is an extension table, and there are already mappings from the
interface table into the corresponding base table.
For example, you can create an extension column in the S_ACCOUNT_IF table
called X_CUST_NUM, and map this either to an extension column you added to
S_ORG_EXT or to an existing column in the S_ORG_EXT_X extension table.
NOTE: Mappings from interface extension columns to base columns are not
supported.
11-18
Version 6.0
6 Select Edit New Record from the menu bar to create a mapping from the
interface extension column to the appropriate extension column in the base
table.
You should not map multiple interface table columns to a single column in a target
table. You can, however, map a single column in an interface table to multiple base
tables or extension tables for a base table of the interface table.
You can either delete or deactivate mappings if they are no longer necessary. To
delete the mapping, navigate to the Attribute Mapping object in the Object List
Editor and select Edit Delete Record. To deactivate a mapping, set the Inactive
property to TRUE for the Attribute Mapping object definition.
Version 6.0
11-19
Refer to the Index section in the Siebel Object Types Reference for more
information on index properties. Do not use index names that are reserved
words on your server or client database.
When you add custom indexes to tables, Siebel appends an _X to the index
name.
11-20
Version 6.0
11
Once your changes are complete, you are ready to update your local environment.
Version 6.0
11-21
5 In the Tables picklist, select one of the following options. The Tables picklist
enables you to determine the scope of the changes to effect at this time, as
follows:
All option. Update the database to reflect all changes made to the dictionary.
This option forces each database object to be compared with the data
dictionary, and updated if required.
Current Query option. Update the database to reflect modifications made to the
tables in the current query only.
Current Row option. Update the database to reflect modifications made to the
table in the current row only.
6 Verify that the ODBC connection specified in the ODBC Data Source text box is
correct for your environment.
NOTE: You cant apply schema changes to any database other than the one you're
7 Enter the password for the Siebel database owner in the Password text box.
Do not specify a table space or index space.
8 Click Apply to apply the extensions to the physical schema on your local
database.
Once this process has been completed, any extensions included in the tables you
selected now physically exist on your local database.
Your extension tables and columns are now available to use in your configuration.
11-22
Version 6.0
11
Typically, data model changes are exposed in applets. You should test all of the new
extension tables or columns, checking out updated copies modified by other
developers, if necessary, against the local development database.
NOTE: When compiling the new .srf file, compile the projects.
New Record.
5 In the Column property in the new Field object definition, specify the column in
the business components base table that the field will represent.
6 In the Object Explorer, select the Applet object type.
7 Use the Applet Designer to add a control or list column in which this field will
be displayed.
8 In the new control or list column object definition, specify the name of the new
field.
Version 6.0
11-23
New Record.
5 In the Join property, specify the name of the 1:1 extension table. The join is
implied, and does not need to be defined separately.
6 In the Column property, specify the column from which you wish to map this
field.
7 In the Object Explorer, select the Applet object type.
8 Use the Applet Designer to add a control or list column where this field will be
displayed.
9 In the new Control or List Column object definition, specify the name of the new
field.
11-24
Version 6.0
New Record.
3 In the Table property, specify the name of the 1:M extension table.
4 Specify all other necessary properties for a business component.
5 In the Object Explorer, select the Field object type.
6 In the Object List Editor, select Edit
Add the appropriate fields to this business component using columns in the 1:M
extension table. Be sure to add all columns required by the unique index and the
foreign key to the parent table.
7 Create a link between the existing master and the new (extension table-based)
business components.
8 Add the new business component to the appropriate business object (by adding
a business object component child of the business object), and specify the link
with the master business component.
9 Create an applet that displays the detail business component. Create and
administer a master-detail view using the new applet (the one that displays the
detail business component).
Version 6.0
11-25
11
Once you have tested your extensions in the local environment, complete the
following actions before applying the changes to the server database:
Make sure all connected clients are disconnected from the database server.
Once all mobile user transactions have been merged and routed, stop all Siebel
servers.
11
Check the projects back in to the server database to update the repository schema
definition there.
At this point, the logical database schema of the server database has been updated,
but the changes have not been applied to the physical server database.
11-26
Version 6.0
5 If you indicate that you want to continue, you then see theApply Schema dialog
box.
6 In the Tables picklist, select one of the options explained below. The Tables
picklist enables you to determine the scope of the changes to make at this time,
as follows:
All option. Update the database to reflect all changes made to the dictionary.
This option forces each database object to be compared with the data
dictionary and updated, if required.
Current Query option. Update the database to reflect only the modifications
made to the tables in the current query.
Current Row option. Update the database to reflect only the modifications
made to the table in the current row.
Version 6.0
11-27
7 Verify that the ODBC connection specified in the ODBC Data Source box is
correct for your environment.
NOTE: You cant apply schema changes to any database other than the one youre
8 Type the password for the Siebel table owner in the Password text box. You may
specify a table space or index space if you want.
9 Click Apply to apply the extensions to the physical schema on your server
database.
10 Click Activate in the Object List Editor.
Once this process has been completed, any extensions included in the tables you
selected will now physically exist on your server database.
If you get error messages because the process is unable to obtain a DDL lock, you
must rerun the process outside the application to synchronize your logical and
physical schemas. The batch file ddlsync.ksh is provided to support this process.
Refer to Running ddlsync.ksh on page 11-30 for information on this alternate
method.
11-28
Version 6.0
11
At this point, your extensions have been applied to your server database, and exist
on the physical database. Next, you must propagate the schema changes to mobile
users.
a Create an Upgrade Kit on your Server database that includes the Siebel
Database Schema as the upgrade kit component. Refer to the Siebel
Anywhere Guide for information on creating upgrade kits.
b Click Activate on the Upgrade Kits View to make the upgrade kit available.
Without Siebel Anywhere. Perform the following steps:
4 Re-extract mobile clients. Mobile clients will need to re-initialize their local
databases with the extracted data. This procedure differs depending on whether
or not you are using Siebel Anywhere.
Using Siebel Anywhere. In the Upgrade Configurations View, click Distribute. This
action will make the new custom schema version required, and therefore require
a schema upgrade.
Without Siebel Anywhere. Manually re-extract and re-initialize all mobile user
databases.
Version 6.0
11-29
11
You can load initial data into your extension tables and columns by using a view
where the new fields are displayed in an applet. If you have a large amount of data
to load, or if the user interface does not permit data entry, you may be able to use
EIM to load data into the extension table or column.
To understand how to modify your data schema to use EIM, refer to EIM Interface
Tables on page 17-38. Work with your database administrator to populate the
interface table with the extension column data and matching user primary keys.
Run EIM to import the data from the interface table into the target tables.
Running ddlsync.ksh
11
Complete the steps in this section only if you are unable to apply schema changes
to the server database as discussed in the previous section. The ddlsync.ksh file
performs the following sequence of steps:
1 Exports logical schema definition from the specified repository to the .ddl file
2 Synchronizes the physical schema with this logical schema definition
3 Propagates new repository schema changes to mobile users (if Siebel Anywhere
is being used)
The ddlsync.ksh file is located in the dbsrvr_version#_root directory on the
development application server where you installed the Siebel database software.
Open ddlsync.ksh with a standard text editor, such as Microsoft WordPad, and be
sure you set the parameters in Table 11-1 correctly for your development
environment.
Table 11-1.
11-30
(Sheet 1 of 2)
Parameter
Description
SRC_USR
SRC_PSWD
SRC_TBLO
Database tableowner
Version 6.0
Table 11-1.
(Sheet 2 of 2)
Parameter
Description
SRC_TBLO_PSWD
Tableowner password
USE_REPOSITORY
ODBC
DATA_AREA
INDX_AREA
DATABASE_PLATFORM
To execute ddlsync.ksh
1 If you are not using Siebel Anywhere, stop all processes running on all Siebel
Application Servers, including all Siebel Remote Processes, once all mobile user
transactions have been merged and routed. If you are using Siebel Anywhere,
stop all Siebel Application Server processes except the Transaction Preprocessor
and Transaction Routers.
2 Open a command prompt window on the same development application server.
3 Navigate to the directory appsrvr_version#_root\bin.
4 Run the batch file siebenv.bat to set the required environment variables.
5 Navigate to the dbsrvr_version#_root directory, and run ddlsync.ksh.
Version 6.0
11-31
The ddlsync.ksh file prompts you to verify the parameters you entered above. If they
are not exactly as listed above, terminate the script, then re-edit ddlsync.ksh to
correct the errors. If the parameters are correct, press ENTER to continue with the
script. The ddlsync.ksh file generates a number of log files, which you need to
review for errors once the script has completed. The log files are:
expschem.log
ddlsync1.log
ddlsync2.log
dock_log.log
dbrepos.log
11
This chapter describes what the Database Extension Designer is, and how to use it.
It also provides you with information and guidelines for planning and designing
database extensions.
Table 11-2 lists sources of additional information about topics discussed in this
chapter.
Table 11-2.
11-32
Version 6.0
Part 3
Version 6.0
Version 6.0
12
. . . . . . . . . . . . . . . . . . . . . 12-14
PreInvokeMethod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-14
Chapter Summary and Where to Get More Information . . . . . . . . . . . 12-15
Version 6.0
12-1
12
Applet Designer
View Designer
Menu Designer
You use the Applet Designer to modify and extend dedicated client applets, and the
controls or list columns on the applets. This tool uses the same visual programming
metaphor as Microsoft Visual Basic and Developer Studio.
The View Designer enables you to incorporate applets in a dedicated client view:
you drag an applet into a view layout window, and then place, size, and customize
the applet.
You build menus for application or applet object definitions. The Menu Designer is
a visual menu editor that allows you to add custom menus and to add menu options
to custom menus. You can also create new menus and menu items and modify or
remove existing menu items independently of a particular application or applet.
For information about editing the Web layout of applets, see Editing the Web
Layout of Applets on page 7-13.
For information about editing the Web layout of views, see Editing the Web Layout
of Views on page 7-16.
12-2
Version 6.0
12
You can populate applets with standard Windows controls including buttons, text
boxes, and check boxes, using drag and drop from the Control toolbar. Applets can
also include ActiveX controls, which are externally created program units that can
be placed on the applet and interact with it through property settings, methods, and
events.
By right-clicking a control, you can configure control attributes using property
sheets and dialog boxes. Formatting tools for aligning controls, snapping to a grid,
and setting fonts are all provided in a standard visual programming interface.
The Applet Designer supports visual editing of the list, form, chart, and tree applet
styles.
The Applet Designer can be accessed from the Object List Editor for an existing
applet object definition, or from a New Applet Wizard for creating a new applet.
Version 6.0
12-3
3 Add each control to the applet by selecting a tool in the Control toolbar, and
dragging open a sizing rectangle on the applet surface.
The Control toolbar tools are described in Applet Designer Toolbar and Format
Menu on page 12-5.
12-4
Version 6.0
12
The Control toolbar becomes active when you display the Applet Designer. The
toolbar can be repositioned as a floating window anywhere on the screen, or it can
be placed with the other toolbars at the top of the screen. The toolbar supports dragand-drop behavior for the creation and placement of a new control. Figure 12-1
shows the Control toolbar.
Label tool. Enables a label to be placed in the applet. A label is a text string that
TextBox tool. Enables the placement of a new text box in the applet. A text box
Version 6.0
PushButton tool. Enables the placement of a new command button in the applet.
12-5
CheckBox tool. Enables the placement of a new check box in the applet. Check
ComboBox tool. Enables the placement of a new combo box in the applet.
NOTE: Combo boxes, pick applets and calendar applets in Siebel applications are
reserved for use in chart applets. For more information on the use of combo
boxes in charts, refer to Chart Applets on page 22-3. Pick applets and static
picklists are used to provide selection list functionality in Siebel applications.
ImageControl tool. Enables the placement of a new image control in the applet.
An image control can display a bitmap graphic file for each business component
record, based on the filename and path information in fields in the business
component.
ListControl tool. Enables the placement of a new list control in the applet.
ChartControl tool. Enables the placement of a new chart control in the applet.
TreeControl tool. Enables the placement of a new tree control in the applet.
ActiveX Control tool. Enables the placement of an ActiveX control in the applet.
The Applet Designer Format menu enables you to select an item or multiple items
(press and hold the SHIFT key during selection), and modify their layout. The
Format menu is illustrated in Figure 12-2.
12-6
Version 6.0
Many of the formatting options have shortcut keys that are listed in the submenus.
The functions of the formatting options are described as follows:
Align option. Aligns the selected items with the selected model.
Make Same Size option. Makes all selected items the same size as the selected
model.
Grid Settings option. Sets the horizontal and vertical grid to an integer between 4
and 30. You can also hide the grid.
Set Tab Order option. Active only when a form applet is open in the Applet
Designer. Enables you to change the tab sequence of the controls in the applet,
resetting the values in the Sequence property of each control. Tab sequence is
the order in which the Tab key cycles the user through the controls. Numbers
appear next to each control, indicating the order of each in the current tab
sequence. You click on each control in the order you want used for the tab
sequence, changing the numbers displayed in the Applet Designer and the
values in the Sequence properties of the controls.
List Columns option. Displays the List Column Fields dialog box, where you can
Preview option. Invokes the Applet Designer Preview window, which enables you
to preview the applet as it would appear at run time in a particular language and
with particular viewing options. Refer to the section entitled Applet Designer
Preview on page 12-9.
Select Truncated Controls option. In the Applet Designer Preview, selects all
Select Untranslated Controls option. In the Applet Designer Preview, selects all
Version 6.0
12-7
You can attach Siebel VB or Siebel eScript scripts to controls from within the Applet
Designer. Double-click the control, or right-click and select Edit Basic Scripts, to
display an editing window that enables you to enter, modify, save, and run scripts.
It is helpful to have the Properties window open when you are working in the
Applet Designer. When you click a control to select it, the Properties window
displays the properties for the corresponding control object definition. This enables
you to move from control to control by clicking, and edit the properties of each.
You can preview the results of the LargeFont setting in the Applet Designer Preview.
This value needs to match the LargeFont setting in the configuration file for the
Siebel application (such as siebel.cfg or service.cfg) in order to have what you see
in the Applet Designer accurately reflect the final product.
12-8
Version 6.0
12
The Applet Designer Preview enables you to preview at design time an applet as it
would appear at run time, in a particular language, with particular user viewing
options. This feature enables you to make sizing changes to the applets controls
without having to recompile to view the changes each time. This is useful in
international language situations where the contents of the applet can be
significantly altered by language translation. It is also useful when designing for
various target screen resolutions.
There is also a feature that allows users to right-click on an applet displayed in the
Applet Designer and choose Select Business Component. This brings up properties
for the underlying business component in the Properties window. You can also do
the same operation when a particular text box is displayedyou can do a Select
Field and the Field properties are displayed. In both case the properties are readonly even if the project for the underlying business component is locked.
Applets are created in the Applet Designer with a video resolution of 1024x768.
When a client computer has a resolution less than this value, Siebel applications
automatically shrink the applet and attempts to fit all labels and controls into the
screen. At times, the labels might be cut off because there is not enough room, so
you should use the Applet Designer Preview to test an applet in all expected
resolutions.
NOTE: The font name in the Applet Designer should match the SmallFont value in
Version 6.0
12-9
12
You can access the View Designer either from the Object List Editor, or as part of
the New View Wizard process.
To access the Siebel View Designer from the Object List Editor
1 Select a view object definition in the Object List Editor.
2 Right-click and select Edit Layout from the shortcut menu.
The Siebel View Designer appears.
12-10
Version 6.0
The View Designer has two windows (in addition to the Object Explorer and
Properties windows, if these are open). The View Designer windows are the applets
window and the Layout window. The Applets window shows all the available
applets in either icon or list form. An applet is considered available if it is associated
with a business component that is present in the business object for this view.
The Layout window shows the view layout divided into eight sectors. You can delete
an applet on the layout by selecting the applet and pressing the DELETE key. You
can add an applet to an empty sector by selecting and dragging the applet from the
Applets window to the Layout window. Once the applet is in the Layout window, it
can be resized to cover additional sectors (using the blue handles) or moved by
dragging.
Version 6.0
12-11
Sectors in a View
12
The Siebel user interface supports both VGA and Super VGA (SVGA) monitors.
Siebel applications detect the current Microsoft Windows video mode, and
automatically adjusts the user interface. VGA (640 x 480) monitors display six
sectors in a view; SVGA (1024 x 768 and above) displays eight sectors in a view.
When defining a view that may be viewed with a monitor showing only six sectors,
you can set the Drop Sectors property for the View object definition to drop the least
important sectors. Figure 12-3 shows the sectors in the Layout window.
Drop sectors must be specified in horizontal pairs. For example, sectors 3 and 7, or
2 and 6, or 1 and 5, or 0 and 4 are dropped together. Drop sectors are a property of
the View object, and are specified in the format XandY, for example 3and7.
The Vertical Line Position property on the view object definition controls the
position of the vertical boundary between the sectors (which is typically in the
middle). The possible values range from 0 to 12, where 0 is all the way to the left,
12 is all the way to the right, and 6 is in the middle.
12-12
Version 6.0
12
You can configure the system menus that come with Siebel applications (shown in
Figure 12-4) and also create custom menus of your own for applications or applet
object definition.
The Menu Designer is a visual menu editor that allows you to add a custom menu
called Actions to an applet or application, and to add menu options to this menu.
To access the Menu Item Properties shortcut menu in the Menu Designer
1 Select an application or applet object definition in the Object List Editor.
2 Right-click and select Edit Menus from the shortcut menu.
3 Choose Edit
window.
The Menu Item Properties dialog box appears, along with the menu and
submenus under construction, as shown in the figure below.
Version 6.0
12-13
The following window features appear in the Menu Item Properties dialog box:
Item Type radio button group. Choose one of the following selections:
Position text box. Numerically identifies the currently selected menu position.
Menu Text text box. Text of the menu item and shortcut indicator (&).
Keyboard Shortcuts
12
To make the application easy to use for individuals who do not like using a mouse,
you should define unique keyboard shortcuts for menu items. Choose a shortcut key
by prefixing a letter in the Menu Text text box with an ampersand (&).
12
PreInvokeMethod
12
Events are associated with each user-defined menu item. These events are created
using a PreInvokeMethod script. When the user clicks on a menu item, the
PreInvokeMethod for the applet is called. The PreInvokeMethod contains a script
associated with the menu item. To create a script, you use the Siebel VB Editor.
12-14
Version 6.0
12
Applet Designer
View Designer
Menu Designer
Table 12-1 lists sources of additional information about topics discussed in this
chapter.
Table 12-1.
Version 6.0
Siebel VB
Siebel eScript
Chapter 7
Chapter 7
12-15
12-16
Version 6.0
13
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-26
Version 6.0
13-1
13
Various wizards in Siebel Tools step you through the process of creating and
configuring an object definition of a particular object type and stylefor example,
a Siebel applet.
Wherever a wizard exists for a particular task in Siebel Tools, you can choose to use
it or not:
If you dont use the wizard, you change property settings for object definitions
directly, in the Object List Editor.
If you use the wizard, it asks you for your preferences, and then bases property
settings on them.
This chapter describes the new object wizards, which include:
13-2
Version 6.0
You access the new object wizards by selecting File New Object from the Siebel
Tools main menu. Icons for all the new object wizards appear in the New Object
dialog box (shown in Figure 13-2).
Version 6.0
13-3
13
Four kinds of applets have associated Wizards: form, list, chart, and tree applets.
The form and list applet wizards are described in this section.
13
A list applet displays data in a scrolling list table format, much like a spreadsheet
or word processor table. Rows in the list applet correspond to records in the
business component; list columns in the list applet correspond to fields in the
business component. A list applet is shown in Figure 13-2.
1 Select File New Object from the Siebel Tools main menu. The New Object
dialog box opens.
13-4
Version 6.0
2 Double-click the List Applet icon, or select the List Applet icon and click OK.
The General page appears, as shown.
3 Use the General page to indicate your preferences for the applet.
The wizard uses these preferences to set properties for the applet. You specify
the project to assign the applet to, the business component that will supply its
data, the name, and the title.
Version 6.0
13-5
13-6
Version 6.0
Version 6.0
13-7
When you click Next, you will get the Web Layout - Fields page, where you
can select the fields you want to include in the Web version of the list applet
(similar to the way you selected the fields for the dedicated client applet).
If you dont want to make it available over the Web, activate the No radio
button, and then click Next.
7 Review the settings on the Finish screen. If there are problems, click the Back
button until you get to the dialog box where you can correct them.
13-8
Version 6.0
8 Click Finish.
The dedicated client version of the new list applet appears in the Applet
Designer (Applet - Layout Editor window).
For more information about the Applet Designer, see Chapter 12.
Version 6.0
13-9
13-10
Version 6.0
You can drag and drop items from the Controls / Columns window to the layout.
In the prior example the Applet Title label has been dragged and dropped into
the layout.
You can also add controls from the Web Controls toolbar above the layout. These
controls appear as HTML-only controls.
Version 6.0
13-11
13
A form applet displays data in a data entry form. Fields in the business component
appear on the form applet as text boxes, check boxes, and other standard Windows
controls. A form applet appears in Figure 13-3.
13-12
New from the Siebel Tools main menu. The New Object dialog box
Version 6.0
2 Double-click the Form Applet icon, or select Form Applet and click OK. The New
Form Applet Wizard opens.
Version 6.0
13-13
The Layout page enables you to specify where the form applet is to appear on
the view. Click on grid cells to add or remove the applet from their
corresponding sectors.
13-14
Version 6.0
The Fields page shows you all the available fields in the applets underlying
business component.
6 Select the fields to include in the applet from the Available Fields list, and use
the right-facing arrow in the center of the page to move them to the Selected
Fields list. This indicates the business component fields to include in the form
applet.
Use the up and down arrows to reorder them in the Selected Fields list. This
determines the tab order of the resulting controls, and determines their order
when placed on the applet.
Version 6.0
13-15
The Form Options page enables you to indicate whether or not to include
standard record navigation buttons, and how to align label text.
13-16
Version 6.0
Version 6.0
13-17
When you click Next, you will get the Web Layout - Fields page, where you
can select the fields you want to include in the Web version of the form applet
(similar to the way you selected the fields for the dedicated client applet).
If you dont want to make it available over the Web, activate the No radio
button, and then click Next.
10 Review the settings on the Finish screen. If there are problems, click the Back
button until you get to the dialog box where you can correct them.
13-18
Version 6.0
11 Click Finish.
The dedicated client version of the new form applet appears in the Applet
Designer (Applet - Layout Editor window).
For more information about the Applet Designer, see Chapter 12.
For more information about the Web Layout editor, see Chapter 7.
Version 6.0
13-19
13
The following procedure identifies the steps required to create a new view using the
New View Wizard.
New.
3 The New Object dialog box appears. Select the View icon, and then click OK.
4 The New View dialog box appears. Provide the requested information, select the
correct Web template to use (if you are producing a Web-based interface as well
as a standard one) and click Finish.
13-20
Version 6.0
Version 6.0
13-21
6 You add applets to the view by dragging and dropping them to the layout
windowpane.
7 Size the applets using the sizing boxes on the borders. Position the applets by
dragging them to additional sectors. Fill all of the sectors.
8 Save your new view by selecting File
Save.
13-22
Version 6.0
To specify how an applet will appear in Preview mode, select Tools Options and
select the Applet Designer tab. The Applet Designer tab appears in the Development
Tools Options dialog box, as shown in Figure 13-4.
Resolution option. Select a screen resolution. The applet preview will simulate
Viewbar width option. Set a view bar width, in pixels. As the user can make the
view bar smaller or wider, you may need to preview the impact of this on the
controls in the applet.
Font Name and Font size. Select a font name and font size to simulate the users
default settings.
preview will show the applets controls translated into this language.
Version 6.0
13-23
To preview the applet, select Format Preview while the Applet Designer is active.
The Applet Designer Preview window appears as shown in Figure 13-5.
13-24
Version 6.0
You can continue to select, move, and resize controls while in the preview mode.
These changes will be reflected in the applet design. In addition, there are two
Format menu options that assist in locating controls that have strings that are too
long, or that havent been translated:
Select Truncated Controls option. This option will select (by surrounding with blue
handles) all controls whose strings are too long to fit in the control. These
selected controls will require resizing or changes in the message table so the
translated string is the right length.
Select Untranslated Controls option. This option will select (by surrounding with
blue handles) any control that has been added to the applet since the last
compilation, or that simply isnt translated. Since translation is at compile time,
new controls that have been added since the last compile may not have
translations. Flagging these controls brings them to your attention.
Be aware that the Applet Designer Preview feature performs translation based on
the set of string map records in the message Table in the local database. You need
a current set of string map records in the local database for the validations
performed by the Applet Designer Preview to be correct. Use the Get Strings feature
to download the contents of the message Table from the server to the local database
before using the Applet Designer Preview.
Version 6.0
13-25
13
Figure 13-6 shows the first page of the Pick List wizard.
Figure 13-7 on page 13-27 shows the Type page, where you select whether the
picklist will be static or dynamic. Static picklists take their values from a predefined
list of values (LOV). Dynamic picklists show values from a business component.
13-26
Version 6.0
For more information about static and dynamic picklists, see Chapter 20.
If, when you are finished defining the picklist, a new applet needs to be created,
you are taken into the Applet Designer.
Version 6.0
13-27
13
You use the Multi Value Group wizard to create a multi-value group (MVG).
To open the MVG wizard, Click the New button in the Edit toolbar or select
File New. Then select the MVG icon, and click OK.
Figure 13-8 shows the first page of the Multi Value Group wizard.
Figure 13-8. Multi Value Group Wizard: Multi Value Group Page (1)
You can also launch the wizard by selecting the business component for which you
want to create a multi-value group, right-clicking, and choosing Add MVG. When
you launch in this manner, the page shown in Figure 13-8 is skipped.
13-28
Version 6.0
The next page (shown in Figure 13-9) asks you to identify the detail business
component and the multi-value link.
Figure 13-9. Multi Value Group Wizard: Multi Value Group Page (2)
For information about multi-value links, see Multi-Value Links on page 18-40.
Version 6.0
13-29
If there are no direct links, you are asked to specify an indirect link (see
Figure 13-10).
Figure 13-10.
Other pages help you define the primary ID field, multi-value link, and multi-value
fields.
13-30
Version 6.0
13
You can create Business Component objects using the Business Component wizard
(shown in Figure 13-11).
Figure 13-11.
This wizard has only one page. When you click Finish, you are taken to the business
component you just created in the Object List Editor, where you can further
configure the new Business Component object.
For more information about business components, see Business Components on
page 18-3.
Version 6.0
13-31
Report Wizard
13
You can create Report objects using the Report wizard (shown in Figure 13-12).
Figure 13-12.
Report Wizard
This wizard has only one page. When you click Finish, you are taken to the report
you just created in the Object List Editor, where you can further configure the new
Report object.
For more information about reports, see the Siebel Reports Guide.
13-32
Version 6.0
13
Version 6.0
13-33
The OLEDB Rowset wizard (shown in Figure 13-13) steps you through the process
of creating OLEDB tables.
Figure 13-13.
When you click Finish on the last page of the wizard you are taken to the Object
List Editor where your new OLEDB integration object is available for further
configuration.
For more information about the OLEDB Rowset wizard, see the Siebel eBusiness
Application Integration Guide.
13-34
Version 6.0
13
You can create Integration Object objects using the Integration object wizard
(shown in Figure 13-14).
Figure 13-14.
When you click Finish on the last page of the wizard, you are taken to the
integration object you just created in the Object List Editor, where you can configure
it further.
For more information about integration objects, see the Siebel eBusiness Application
Integration Guide.
Version 6.0
13-35
13
13-36
Chapter 19
Chapter 21
Applet Designer
Chapter 12
Chapter 7
Picklists
Chapter 20
Multi-value links
Chapter 21
Business components
Chapter 18
Reports
Integration objects
Version 6.0
M a n a g i n g Yo u r D e v e l o p m e n t
Environment
Part 4
Version 6.0
Version 6.0
Managing Repositories
14
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-32
Version 6.0
14-1
Managing Repositories
About This Chapter
14
Archive, export, and import entire projects and individual repository objects
Rename, delete, back up, and migrate repositories
Create patches
Manage your Siebel repositories with third-party source control software
14-2
Version 6.0
Managing Repositories
Exporting and Importing Repository Objects
14
Archive files contain object definitions exported from a repository; they are
available for importing into other repositories.
Archive files:
Version 6.0
14-3
Managing Repositories
Exporting and Importing Repository Objects
14
Only top-level object typesthe object types that are visible in the Object List Editor
when you click an object type in the Types tab of the Object Explorercan be
exported. Child object definitions are exported and imported along with their
parents. You can also export individual object definitions at the child level.
3 Select Repository Add To Archive from the menu bar, or right-click and select
Add To Archive from the shortcut menu.
The Export to Archive File dialog box appears.
Status messages appear showing which child object definitions are being
included. When the process completes, the selected top-level object definition
or definitions appear in the Objects to Archive list table in the Export to Archive
File dialog box.
4 If you need to add object definitions of another object type, navigate to that
object type in the Object Explorer without closing or saving the Export to
Archive File dialog box.
Move the Export to Archive File dialog box out of the way, if necessary.
14-4
Version 6.0
Managing Repositories
Exporting and Importing Repository Objects
Version 6.0
14-5
Managing Repositories
Exporting and Importing Repository Objects
14
3 Select Repository Add to Archive from the menu bar (or right-click and select
Add To Archive from the shortcut menu).
The Export to Archive File dialog box appears.
4 Enter the path and filename of the archive file to be created in the Archive File
box.
5 Click Save.
14-6
Version 6.0
Managing Repositories
Exporting and Importing Repository Objects
Version 6.0
14-7
Managing Repositories
Exporting and Importing Repository Objects
14
You can import object definitions from an archive file into a local repository.
The Import process consists of the following major steps (described in the following
sections):
The import file is accessible to the local PC by way of the network or local drives.
The target repository is open in Siebel Tools and is the active repository.
The projects that will be affected by import have been checked out to the Local
database. This includes any project that any object definition in the export file
is assigned to.
The only exception consists of projects (or their object definitions) that are in
the archive file, but that do not exist yet in the target repository. These are not
checked out because they dont exist in the target repository.
NOTE: In some cases it may be difficult to know in advance which projects need
to be checked out. The Import wizard informs you of any projects that were not
locked but need to be. This occurs on the second panel of the Import wizard,
after it has analyzed the object definitions in the archive file and compared them
to the object definitions in your repository.
14-8
Version 6.0
Managing Repositories
Exporting and Importing Repository Objects
3 Navigate to the archive (.sif) file in the dialog box and click Open. The Import
Wizard - Preview window appears.
This window identifies the projects and the nonproject top-level object
definitions in the archive file you have opened so you can preview the contents
of the archive file.
Version 6.0
14-9
Managing Repositories
Exporting and Importing Repository Objects
The resulting top-level object definition has the same properties and children
as the object definition in the archive, plus any children that were already
present in the repository definition.
Do not import the object definition from the archive. Do not change the object
definitions in the target repository.
14-10
Version 6.0
Managing Repositories
Exporting and Importing Repository Objects
6 If there are object definitions you will be replacing or modifying and whose
projects are not locked, the following warning message appears:
If this message appears, you need to cancel the import process, lock the projects,
and restart the Import Wizard.
Version 6.0
14-11
Managing Repositories
Exporting and Importing Repository Objects
The three windowpanes are Conflicting Objects, Object Differences, and Attribute
Differences.
14-12
Version 6.0
Managing Repositories
Exporting and Importing Repository Objects
Merge. Equivalent to the Merge the object definitions from the archive with the
definition in the repository option in the previous window.
The resulting top-level object definition has the same properties and children as
the object definition in the archive, plus any children that were present in the
repository definition.
Repository. Equivalent to the Do not import the object definition from the
Version 6.0
14-13
Managing Repositories
Exporting and Importing Repository Objects
File List Column. Value of the property in the archive file version of the object
definition.
Resolution List Column. Value of either File or Repository for each property,
14-14
Version 6.0
Managing Repositories
Exporting and Importing Repository Objects
If you choose to proceed, the Summary window appears, as shown in Figure 14-5.
Importing occurs while the Summary window is displayed. The import actions are
logged and displayed as they occur. When the import process is completed, click
the Finish button.
A log file named importlog.txt is created in Siebdev\temp. It contains the same list
of messages that appeared in the Summary window. You may find it useful to store
this file elsewhere for a record of what changes were made to the repository. It is
also a good idea to change the file name so it reflects the date of the import.
Version 6.0
14-15
Managing Repositories
Renaming, Deleting, Backing Up, and Migrating Repositories
14
Various batch file (.ksh) and executable (.exe) programs are available outside Siebel
Tools for working with an entire repository as a unit. These programs are found on
the application server and database server. This section describes the use of these
programs, as well as other procedures you can perform that act on an entire
repository.
Caution: If versions of these program files appear in your Siebdev
directory or its subdirectories, do not use the ones found there. Use
only the programs found on the server.
14
You might need to rename a repository in some situations. However, renaming can
cause problems unless all developers check in their checked out projects prior to
renaming the repository. Following the rename, they need to do a get on all projects.
Siebel recommends that the current active repository in production always be
named Siebel repository.
To rename a repository
1 Have all developers check in all projects that have been checked out from this
repository.
2 In the Object Explorer, select the Repository object type.
3 In the Object List Editor, click in the Name property of the repository you want
to rename.
4 Enter the new name.
5 Click outside of the record to save your changes.
6 Have developers do a get of all projects.
14-16
Version 6.0
Managing Repositories
Renaming, Deleting, Backing Up, and Migrating Repositories
To delete a repository
The delete process remove all records associated with the repository.
Delete Record.
Copying Repositories
NOTE: Do not use the Edit
14
Version 6.0
14-17
Managing Repositories
Renaming, Deleting, Backing Up, and Migrating Repositories
14
A batch utility program called exprep.ksh generates an export file in text format
containing all object definitions in a repository, and imprep.ksh re-creates a
repository from the contents of the export file. The exprep and imprep scripts are
installed with the database server installation scripts and can be found in the
subdirectory named after the database platform being used (for example, Oracle).
Both exprep.ksh and imprep.ksh pass parameters to an executable program called
repimexp.exe. In rare circumstances you may need to execute repimexp.exe directly,
but generally you will only need exprep.ksh and imprep.ksh, which are
considerably easier to use. Repimexp.exe is installed with the Siebel Server and can
be found in the bin subdirectory.
You can use exprep.ksh to make backups of the development repositories on a
regular basis to safeguard your configuration work. Save repository backup files in
your source code control environment. When you complete configuration of a
specific version of your application, export the repository and check the export file
in to the source code control system, together with the other application
componentsclient .cfg and .srf files, batch scripts, Enterprise Integration Manager
.ifb files, and so forththat the version comprises.
Exprep.ksh and imprep.ksh operate only on an entire repositorynot portions of a
repository. To export or import a portion of a repository, use the Import/Export
feature in Siebel Tools, described in Exporting and Importing Repository Objects
on page 14-3.
Do not use the Import/Export feature in place of imprep.ksh and exprep.ksh to
export an entire repository, however. The imprep.ksh and exprep.ksh programs
work much faster.
If you need to back up user data as well as the repository object definitions, use the
database utilities provided by your RDBMS vendor.
14-18
Version 6.0
Managing Repositories
Renaming, Deleting, Backing Up, and Migrating Repositories
exprep.ksh
Exprep.ksh exports the contents of a specified repository to a text file, typically
named customer.dat. It executes repimexp.exe using parameters you have specified
in the text of the batch file program. Exprep.ksh is located in the
dbsrvrroot\dbplatform directory on the development application server where you
installed the Siebel database software.
Before executing exprep.ksh, open it with a standard text editor, such as WordPad,
and ensure that the parameters listed in Table 14-1 are set correctly for your
development environment.
Table 14-1.
Version 6.0
(Sheet 1 of 2)
Parameter
Default Value
Meaning
SRC_USR
SADMIN
SRC_PSWD
SADMIN
SRC_TBLO
siebel
SRC_ODBC
Siebel_Server_Database
SRC_REPOS
_NAME
Siebel Repository
Repository name.
EXP_USR
SADMIN
EXP_PSWD
SADMIN
EXP_TBLO
siebel
EXP_ODBC
Siebel_Server_Database
EXP_REPOS
_NAME
Siebel Repository
14-19
Managing Repositories
Renaming, Deleting, Backing Up, and Migrating Repositories
Table 14-1.
(Sheet 2 of 2)
Parameter
Default Value
Meaning
FILE_NAME
c:\CHANGE_ME\xxxx.dat
SIEBEL _HOME
c:\CHANGE_ME\siebsrvr
siebenv.ksh
Prior to export, you may also need to make changes to siebenv.ksh, the batch file
program that sets environment variables. Table 14-2 lists the parameters that you
can change in the siebenv.ksh program file.
Table 14-2.
Parameter
Default Value
SIEBEL_HOME
SIEBEL_ENTERPRISE
_SERVER
SIEBEL_SERVER _NAME
SIEBEL_LANGUAGE
14-20
Meaning
ENU
Version 6.0
Managing Repositories
Renaming, Deleting, Backing Up, and Migrating Repositories
To execute exprep.ksh
1 Open a command prompt window.
2 Navigate to the appsrvr_root\bin directory.
3 Run siebenv.ksh to set the required environment variables.
4 Navigate to the dbsrvrroot\dbplatform directory and run exprep.ksh.
5 Exprep.ksh prompts you to verify the parameters you entered above.
If they are not correct, terminate the script and then re-edit exprep.ksh to correct
the errors.
If the parameters are correct, press ENTER to continue with the script.
6 Exprep.ksh generates a log file called exprep.log, which you should review for
errors once the script has completed.
imprep.ksh
Imprep.ksh imports the contents of a previously exported repository to a specified
repository name. Like exprep.ksh, it executes repimexp.exe using parameters you
have specified in the text of the batch file program. Imprep.ksh file is located in the
dbsrvrroot\dbplatform directory on the development application server where you
installed the Siebel database software.
NOTE: The new repository you generate with imprep.ksh will have all new Row Ids
in the database. The order in which definitions have been entered into the
repository will be different. This affects the order of Pre Default Value and Post
Default Value assignment, and the order of Pick Map entry execution if no sequence
numbers are defined on the Pick Map entries.
Version 6.0
14-21
Managing Repositories
Renaming, Deleting, Backing Up, and Migrating Repositories
Before executing imprep.ksh, open it with a text editor and verify that the
parameters listed in Table 14-3 are set correctly for your development environment.
Table 14-3.
14-22
Parameter
Default Value
Meaning
SRC_USR
SADMIN
SRC_PSWD
SADMIN
SRC_TBLO
dbo
ODBC
CHANGE_ME
REPOS _NAME
Siebel Repository
FILE_NAME
${DB_LANG}\mstrep.dat
SIEBEL _HOME
c:\CHANGE_ME\siebsrvr
DB_LANG
Unspecified
DBSRVR
_ROOT
c:\CHANGE_ME\dbsrvr
Version 6.0
Managing Repositories
Renaming, Deleting, Backing Up, and Migrating Repositories
To execute imprep.ksh
1 Navigate to the appsrvr_root\bin directory.
2 Run siebenv.ksh (through the korn shell emulator) to set the required
environment variables.
3 Navigate to the dbsrvrroot\dbplatform directory and run imprep.ksh.
4 Imprep.ksh prompts you to verify the parameters you entered above.
If they are not correct, terminate the script, and then re-edit exprep.ksh to
correct the errors.
If the parameters are correct, press ENTER to continue with the script.
Imprep.ksh generates a log file called imprep.log, which you should review for
errors once the script has completed.
Following restoration or import of a repository, all local developers must do a check
out without server lock or do a get all of the projects from the new repository.
repimexp.exe
The repimexp.exe program imports, exports, or creates a file dump of a repository.
You will not need to use repimexp.exe directlybut would rather use exprep.ksh
and imprep.ksh (which call repimexp.exe), instead. The only circumstances when
you would run repimexp.exe directly might be:
You need to run repimexp.exe with special parameter settings that are
inaccessible through the batch files.
Version 6.0
14-23
Managing Repositories
Renaming, Deleting, Backing Up, and Migrating Repositories
Parameter
Required
Meaning
/U <userName>
Yes
/P <password>
Yes
Siebel password.
Yes
/D <table owner>
Yes
/R <repository>
Yes
/1 <export repository
userName>
For export
/2 <export repository
password>
For export
For export
For export
/5 <export repository>
For export
/B <appServer root>
Yes
/F <dataFile>
Yes
/T <Y|N>
No
/V <Y|N>
No
/N <0|1|2>
No
/M <Y|N>
No
/L <logFile>
No
14-24
Version 6.0
Managing Repositories
Renaming, Deleting, Backing Up, and Migrating Repositories
14
If you configure only business object and user interface object definitions, you need
to replace only the object definitions in the production repository with those in the
development repository. Do this using exprep.ksh and imprep.ksh, as described in
Backing Up and Restoring Repositories on page 14-18. Then distribute a new .srf
file to client computers.
However, for upgrades involving schema changes, you need to use dev2prod.ksh,
which:
Version 6.0
14-25
Managing Repositories
Renaming, Deleting, Backing Up, and Migrating Repositories
Follow these major steps to migrate a repository and schema from one database to
another:
14-26
Version 6.0
Managing Repositories
Renaming, Deleting, Backing Up, and Migrating Repositories
Ensure that all connected clients have disconnected from the database server.
If you are not using Siebel Anywhere, stop all processes running on all Siebel
Application Servers, including all Siebel Remote Processes, once all mobile user
transactions have been merged and routed.
If you are using Siebel Anywhere, stop all Siebel Application Server processes
except the Transaction Preprocessor and Transaction Routers. Leave these
processes running on all Siebel Remote Application Servers. You will be
instructed to stop these processes in a later step.
Do a full backup of the production database once all mobile user transactions
have been merged and routed.
Version 6.0
14-27
Managing Repositories
Renaming, Deleting, Backing Up, and Migrating Repositories
(If you are using Siebel Anywhere) propagates new repository schema changes
to mobile users
Dev2prod.ksh file is located in the dbsrvrroot\dbplatform directory on the
development application server where you installed the Siebel database software.
Open dev2prod.ksh with a standard text editor (for example, Microsoft WordPad)
and ensure that the parameters listed in Table 14-5 are set correctly for your
development environment.
14-28
Table 14-5.
Parameter
Meaning
SRC_USR
SRC_PSWD
SRC_TBLO
SRC_REPOS
TGT_ODBC
TGT_USR
TGT_PSWD
(Sheet 1 of 2)
Version 6.0
Managing Repositories
Renaming, Deleting, Backing Up, and Migrating Repositories
Table 14-5.
(Sheet 2 of 2)
Parameter
Meaning
TGT_TBLO
TGT_TBLO_PSWD
TGT_REPOS
TGT_ODBC
DATA_AREA
INDX_AREA
DATABASE_PLATFORM
To execute dev2prod.ksh
1 Navigate to the directory appsrvr_root\bin.
2 Run siebenv.ksh (through the korn shell emulator) to set the required
environment variables.
3 Navigate to the dbsrvrroot\dbplatform directory and run dev2prod.ksh.
4 Dev2prod.ksh asks you to verify the parameters you entered above.
If they are not as listed above, terminate the script and then edit dev2prod.ksh
to correct the errors.
If the parameters are correct, press ENTER to continue with the script.
Version 6.0
14-29
Managing Repositories
Renaming, Deleting, Backing Up, and Migrating Repositories
Dev2prod.ksh generates a number of .log files, which you should review for errors
once the script has completed.
The log files are named as follows:
exprep.log
imprep.log
expschem.log
ddlsync1.log
ddlsync2.log
NOTE: Messages in ddlsync1.log and ddlsync2.log indicate actions taken to bring
14-30
Version 6.0
Managing Repositories
Renaming, Deleting, Backing Up, and Migrating Repositories
Version 6.0
14-31
Managing Repositories
Creating Patches
Creating Patches
14
A patch file, like an archive file, consists of exported object definitions. The
difference between a patch file (.spf file) and an archive file (.sif file) is that the
patch file contains two versions of each object definition, one from the pre-upgrade
source repository and one from the post-upgrade. (An archive file contains only one
version of each object definition, and all object definitions are from the same
repository.)
Figure 14-6 shows how pre- and post-upgrade versions of an object definition are
paired in the patch file, and then utilized in applying the patch to the target
repository.
Original Source
repository
Original Target
repository
object definition A
Patch File
object definition
A
object definition
B
object definition B
object definition A
Modified Source
repository
object definition B
object definition A
object definition B
Patched Target
repository
object definition A
object definition B
14-32
Version 6.0
Managing Repositories
Creating Patches
The pair of pre- and post-release object definitions in the patch file provide before
and after snapshots of the object definition. The patch application process
considers both when determining what changes to make to the target repository.
A wizard steps you through the process of creating a patch.
Open Repository from the menu bar and open the modified source
NOTE: You can skip this step if you are building a patch file from an archive file.
3 Select Repository
Version 6.0
14-33
Managing Repositories
Creating Patches
4 In the Select modifications from radio button group, select either Changed
Objects In current repository or Archive file:
Changed Objects In Current Repository. Enables you to generate the set of
source object definitions in the patch file from all object definitions in the
currently open (modified source) repository that have a value of TRUE in
their Changed property. The Changed property indicates changes to property
values or child object definitions for all object definitions that have changed
since a specified date. This is an easy way to capture all object definitions
that have changed since the start of work on the new release.
NOTE: This is useful for creating cumulative patch filesthat is, if several
patches are created over time, each successive patch will include all changes
that went into previous patches plus the most recent changes, as long as the
Changed Indicator Date hasnt been modified. This is the real reason that it
is possible to define a patch using the Changed property. If you use the
Changed indicator in this or any other way, you need to be careful that the
Changed Indicator Date doesnt get set arbitrarily.
Archive file. Enables you to use an existing archive file to generate the same
set of object definitions in the patch file. Use this option when the set of patch
object definitions is identical to a recently exported archive file, or when you
want to explicitly select individual top-level object definitions to be included.
In this latter case, generate the archive file prior to generating the patch file.
Building a patch from an archive file may also be preferable when there are
too many object definitions with a Changed value of TRUE.
If you selected the Archive File option, specify a pathname and filename for
the archive file in the File Name box, or click the Browse button and navigate
to the archive file.
5 In the Repository box, select the name of the original source repository.
6 In the Patch File box, specify a pathname and filename for the patch file to
create.
14-34
Version 6.0
Managing Repositories
Creating Patches
7 Click Next.
The Patch Builder window appears.
If you selected the Archive file option, the list of object definitions for the patch
loads immediately.
If you selected the Changed objects option, the system requires a minute or more
to generate the list, because it needs to scan through the repository and check
all the Changed property values.
8 Click Finish.
The patch file is generated in the directory location you specified in Step 4.
Version 6.0
14-35
Managing Repositories
Integrating with External Source Code Control Software
14
You can optionally interface your repository check in/check out mechanism in
Siebel Tools with a third-party source code control system such as Microsoft Visual
SourceSafe. When source control integration is enabled, each time a project is
checked in to the server repository, an archive file containing all the object
definitions in the project is also checked in to the source control system. As a result,
successive versions of the project are maintained in the source control system.
If you want to revert to an earlier version of a project, you can check out the project
archive file from the source control system to your local machine. Then you check
out the project from the server, import the archive file into the local repository
(overwriting the object definitions locally), and check the project back in to the
server repository.
14-36
Version 6.0
Managing Repositories
Integrating with External Source Code Control Software
14
You enable and partly configure the interface to an external source control system
using the Development Tools Options dialog box.
1 Select the Tools Options menu option (or click the Options button in the
Check Out or Check In dialog box).
The Development Tools Options dialog box appears.
3 Click the Enable Source Control Integration check box to set it to TRUE.
4 Click the Show execution of the integration batch file check box to enable this
feature. A DOS window is launched in the foreground when the srcctrl.bat batch
file is executed. This feature is for diagnostic purposes and facilitates debugging
a customized batch file.
5 If the srcctrl.bat file is in a different directory location than the one indicated,
type in a different location or select it using the Browse button.
Version 6.0
14-37
Managing Repositories
Integrating with External Source Code Control Software
By setting the Enable Source Control Integration check box to TRUE and specifying
a srcctrl.bat batch file, you are informing the system that it is to generate an archive
file for each project when performing repository check in, and to run the batch file
at the conclusion of repository check in. The batch file executes command-line
interface commands that are specific to the source code control software you are
using. Each command-line command launches the external source control software
with instructions to check an archive file or files in to the source control system.
Archive files for source code control have the same format and .sif filename
extension as an archive file generated with the Export feature. One .sif file is
generated for each project checked in to the server repository.
14
Table 14-6.
Argument
Description
action
Checkin or checkout.
dir
comment_file
project_file
Srcctrl.bat executes once for each project, following the completion of repository
check in. It checks the archive file for the project into or out of the source control
system. Srcctrl.bat is executed from a command line that is internally generated
from the Siebel application software. You do not have access to the command line
setup, and you cannot modify the parameter list.
14-38
Version 6.0
Managing Repositories
Integrating with External Source Code Control Software
The following batch file program code is taken from the standard srcctrl.bat file
provided with Siebel applications, and is designed to work with Microsoft Visual
SourceSafe. Comment lines have been removed. You need to customize the program
code in this batch file, particularly if you are running source control software other
than Microsoft Visual SourceSafe, or if the path is incorrect.
set PATH=C:\Program Files\DevStudio\Vss\win32\;%PATH%
set SOFTWARE=ss
set CHECKIN=%SOFTWARE% checkin
set CHECKOUT=%SOFTWARE% checkout
set ADD=%SOFTWARE% add
set SETPROJ=%SOFTWARE% cp
set PROJECT=$/PROJPOOL
set SRC_USR=
set SRC_PSWD=
set OPTIONS=-i-y -y%SRC_USR%,%SRC_PSWD%
set COMMENT=-c@
set NON_COMMENT=-cset FILE=
set LOGFILE=C:\Temp\xml.log
echo
=======================srcctrl.bat========================== >>
%LOGFILE%
set ACTION=%1
shift
set DIR=%1
Version 6.0
14-39
Managing Repositories
Integrating with External Source Code Control Software
shift
set COMMENT=%COMMENT%%1
shift
set FILE=%1
:CHECK_OUT
echo ============Check out file %FILE% from Source Control
System============
14-40
Version 6.0
Managing Repositories
Integrating with External Source Code Control Software
echo Start checking out %FILE% from Source Control System >>
%LOGFILE%
%CHECKOUT% %FILE% %NON_COMMENT% %OPTIONS% >> %LOGFILE% 2>&1
goto END
:CHECK_IN
echo ============Check in file %FILE% into Source Control
System============
goto END
:END
echo ===================End Of srcctrl.bat======================
>> %LOGFILE%
Version 6.0
14-41
Managing Repositories
Integrating with External Source Code Control Software
Table 14-7 explains the variables used in the srcctrl.bat batch file.
Table 14-7.
14-42
Variables in srcctrl.bat
Variable
Description
PATH
SOFTWARE
CHECKIN
Command at the start of the command line that calls for check in
into the source control system.
CHECKOUT
Command at the start of the command line that calls for check out
from the source control system.
ADD
Command at the start of the command line that calls for adding
files in the source control system.
SETPROJ
Command at the start of the command line that calls for setting the
working folder in the source control system.
PROJECT
COMMENT
Command line Comments clause for each of the files being checked
in or out. This is generated from the Comment argument to the
batch file.
OPTIONS
SRC_USR
SRC_PSWD
FILE
Filename of the archive file, obtained from the argument list of the
batch file. This file needs to be checked in or out.
LOGFILE
Version 6.0
Managing Repositories
Integrating with External Source Code Control Software
Change the program code in the batch file to reflect the development
environment
The default environment space limitation is 256 bytes. You can increase it by
placing the following line in config.sys:
shell=c:\command.com /p /e:2048
2048 is the size of the new environment space, so you might specify a different
value here.
Version 6.0
14-43
Managing Repositories
Integrating with External Source Code Control Software
14
Check In Example
You have two projects checked out that you want to simultaneously check in to the
server and to the source control software. The projects selected are Project A and
Project B. The latest version of Project A.sif in Visual SourceSafe is 6, and the
latest version of Project B.sif is 5.
When you click the Check In button, the following sequence occurs:
14-44
Version 6.0
Managing Repositories
Check In/Check Out Options (Source Control Integration)
14
The Check In/Out tab in the Development Tools Options dialog box (see
Figure 14-7) provides options for setting up check in and check out.
The Source control integration options are discussed below; for information about
the Data sources options, see Check In/Check Out Options (Data Sources) on
page 5-23.
Version 6.0
14-45
Managing Repositories
Check In/Check Out Options (Source Control Integration)
Enable Source Control Integration check box. Set this check box to TRUE and
specify the location of the srcctrl.bat batch file in the Integration batch file text
box if you want to generate an archive file for each project when performing
repository check in, and at the conclusion of repository check in to run the batch
file once for each project.
Show execution of the integration batch file check box. Set this to TRUE to launch
a DOS window in the foreground when the srcctrl.bat batch file is executed. This
feature is for diagnosis purposes and facilitates debugging a customized batch
file.
Integration batch file text box and browse button. Specifies the location of the
srcctrl.bat batch file used by Siebel applications to instruct the source control
software to provide check in or check out of archive files.
14-46
Version 6.0
Managing Repositories
Chapter Summary and Where to Get More Information
14
Version 6.0
Chapter 5
Siebel Anywhere
14-47
Managing Repositories
Chapter Summary and Where to Get More Information
14-48
Version 6.0
15
Version 6.0
15-1
15
This chapter describes the Siebel data cleansing and deduplication product features,
how to configure Siebel applications for data cleansing and deduplication, and how
to run these processes in real time.
15-2
Version 6.0
15
Data cleansing:
Changes names, job titles, addresses, and cities to put them in proper mixed
capitalization
(For U.S. addresses only) Reconciles all address Fields with their proper Zip+4
postal code, and both stores and presents these Fields in standard U.S. Postal
Service format
Deduplication:
Prompts you to commit the new or changed record or use one of the possible
matches
Both data cleansing and deduplication operate in real-time modethat is, either
upon update of a single existing record or upon insertion of a single new record
or batch mode.
If you configure a business component for deduplication, you must also configure
it for data cleansing (and you need to turn data cleansing on). The reverse is not
trueyou can configure data cleansing for a business component without
deduplication.
Version 6.0
15-3
15-4
Version 6.0
15
You can configure data cleansing for any business component whose purpose is to
hold name, address, or company (account) information. In standard Siebel
applications, data cleansing operates on the following data:
DataCleansing Field
DataCleansing Type
Both of these are shown in Figure 15-1 on page 15-4.
One DataCleansing Type user property, and one or more DataCleansing Field
properties, are required.
Version 6.0
15-5
Business component user properties are child object definitions of the business
component, and each has a Name property (specifying the user property to be set)
and a Value property (specifying the value to set for the user property). Table 15-1
shows the set of child Business Component User Prop object definitions of the
Contact business component that are used for configuration of data cleansing.
Table 15-1.
DataCleansing Field 1
DataCleansing Field 2
DataCleansing Field 3
DataCleansing Field 4
DataCleansing Type
Contact
Data cleansing operates differently on each of these types. For example, business
components with Address cleansing have reconciliation performed between
address fields and the zip (Postal Code) field. All values have capitalization
validated.
15-6
Version 6.0
properties.
Version 6.0
15-7
Configuring Deduplication
15
Dedup Tokens
15
Contacts. The dedup token consists of a concatenated string of the cleansed five-
digit zip code of the account address, the first letter of the cleansed account
name, and the first letter of the cleansed last name.
The calculation expression is:
IfNull (Left ([Postal Code], 5), "_") + IfNull (Left
([Account], 1), "_") + IfNull (Left ([Last Name], 1), "_")
15-8
Version 6.0
Calculation expressions for dedup tokens follow the same syntax rules as calculated
fields. For a discussion of these syntax rules, see Calculated Field Values and Field
Validation on page B-13.
You can change the calculation expression to adjust the filtering that generates the
candidate set. For example, you might want a larger candidate set or one that is
more restrictive. You might also want to add or remove a Field from the expression.
To change the calculation value, modify the value in the DeDup Token Value user
property. When you do that, you need to regenerate the token values in the database
for existing data by running deduplication in batch mode, as described in the Siebel
Server Administration Guide.
Version 6.0
15-9
15
Deduplication has a set of numbered user properties that are used to create
correspondences between FirstLogic fields and fields in business components.
These field mapping properties have names of the form DeDuplication Field n,
where n is an integer value (for example, DeDuplication Field 7). The value consists
of:
You need to configure Prospects differently than Contacts and Accounts. The reason
is that Prospects share name processing capabilities in the FirstLogic applications
with Contacts, and Contact data (rather than Prospect data) is assumed by the
system to be present.
In order to specify that Prospect data is being processed, you need to add the
following two user properties:
DeDuplication Results BusComp. Name of the business component that will hold
the returned data, typically DeDuplication Results (Prospect). This user property
is a child of the business component being processed.
DeDuplication Results Applet. Name of the pick applet that is to be used to prompt
15-10
Version 6.0
15
In real-time operation, possible matches are displayed in a dialog box as you are
committing new or changed record.
This dialog box is configurable in Siebel Tools, and has the name DeDuplication
Results (xxx) List Applet, where xxx is the Account, Contact, or Prospect. Additional
columns from the S_DEDUP_RESULT table can be exposed as fields in the
DeDuplication Results (xxx) business component, and as list columns in the
DeDuplication Results (xxx) List Applet.
Figure 15-2 shows the DeDuplication Results (Contact) list applet.
Version 6.0
15-11
15
After you do a deduplication batch run you can view and process duplicates in the
database through the data quality administration views. Six views in standard
Siebel applications, two each for resolution of duplicate Accounts, Contacts, and
Prospects. You access these views in a Siebel application through Screens
Marketing Administration Data Quality.
15-12
Version 6.0
You can drill down from a record in one of these three views to a detail viewthe
Resolution View. The detail view for Accounts (Duplicate Account Resolution
Administration) appears in Figure 15-3.
The detail views list the potentially matching records with many of their fields
displayedfor example, the Account detail view displays all fields normally
exposed in a list applet displaying Account information. The views also provide a
Match Score list column that indicates the closeness of the match between the
master Account record in the upper applet and the current detail record in the lower
applet. The Match Score is returned by the FirstLogic application.
The lower applet contains a Merge button. You can highlight multiple records, click
Merge, and the records are merged according to standard client-side merge
behavior. The winner in this mergethat is, the one whose name and address
information is recordedis the record that is selected last in the sequence.
Version 6.0
15-13
15
In standard Siebel applications only five business components have data cleansing
and deduplication enabled: Account, Business Address, Contact, List Mgmt
Prospective Contact, and Sub Account.
If you insert records through noncleansed, nondeduplicated business components,
the data is left dirty. Data will be cleansed and deduplicated during batch cleansing
and deduplication only if the data can be seen through one of the business
components above. You do not need to enable data quality on a business
component if you do not permit inserting or updating through the business
component.
Business components have certain fields with specialized deduplication purposes.
These fields are:
DeDup Token. Text field that represents the DEDUP_TOKEN column in the base
table.
This field stores the calculated dedup token value for each record in the business
component. It is required to be present but is not exposed in the user interface.
If you need to add this fields functionality to another business component, use
or create an extension column.
Deduplication Match Score. Integer field whose value is obtained from the
15-14
Version 6.0
Deduplication Object Id. Row ID Field that functions as a foreign key to the master
Version 6.0
15-15
Both real-time and batch results are stored in the results business component, but
the real-time results are a subset that the real-time dialog box isolates based on a
columncalled DEDUP_REQ_IDthat holds the deduplication request ID.
You should periodically run an SQL script to clear out old records from
S_DEDUP_RESULT. You can base your pruning algorithm on the LAST_UPDATED
column, testing for dates earlier than some specified date.
NOTE: Data cleansing can be particularly useful if you allow your users to
synchronize Contacts with Microsoft Outlook. This is because two users might enter
a single Contact record into their respective Outlook application that shows up as a
duplicate in Siebel applications because of a slight variation in spelling (for
example, William Stevens and Bill Stevens).
15-16
Version 6.0
15
This chapter describes the Siebel data cleansing and deduplication product features.
It describes how to configure Siebel applications for data cleansing and
deduplication, and how to run these processes in real time.
Table 15-2 lists sources of additional information about topics discussed in this
chapter.
Table 15-2.
Version 6.0
15-17
15-18
Version 6.0
Improving Performance
16
Version 6.0
16-1
Improving Performance
About This Chapter
16
16-2
Version 6.0
Improving Performance
Causes of Poor Performance
16
The Siebel architecture has been designed and tuned for optimal performance,
making use of features such as database indexes, data caching, RDBMS cursors,
efficient SQL generation, native database APIs, and so on. However, in custom
configuration there are various potential performance pitfalls, and their impact can
be amplified in environments with large databases and wide data distribution
across servers.
The primary causes of poor performance (categorized by severity) are listed below,
and described in the following sections.
16
Version 6.0
16-3
Improving Performance
Causes of Poor Performance
16
16
16-4
Version 6.0
Improving Performance
Multi-Value Group Performance
16
Multi-value groups are a useful feature that permits the association of multiple
records within a single parent record, such as a list of address records for an account
or a list of sales team members for an opportunity. (Multi-value groups are
described in Chapter 21.)
However, in most cases, you need to assign a primary ID field when configuring a
multi-value group, or there could be serious performance consequences for list
applets that are based on the business component. Multi-value groups without a
primary ID field also have a performance impact on form applets that are based on
the business component, although it is not as severe as the result for list applets.
A business component with a multi-value field (a field containing a multi-value
group) has a one-to-many (or many-to-many) relationship with the records in the
multi-value group. For this reason, when a list applet displays each record from a
master business component (with no primary ID field defined), it must query all of
that records detail records to obtain a value to display in the multi-value field. The
performance impact is considerablethe number of queries invoked is many times
the number actually required.
When a primary ID field is defined in the master business component, it serves as
a foreign key from each master record to one record in the detail business
component. The primary ID field is used in a primary join to retrieve only one
record when the master business component is queried. Only when the multi-value
group is invoked by the user is the secondary query run to query the detail business
component for the detail records of the current master record. In other
circumstances, only one detail record is accessed for each master record.
The performance benefits of a primary join when a multi-value field is exposed on
a form applet are not as considerable as for a list applet, but should still be
considered. In the list applet, a large number of master records are accessed, each
with its set of detail records. In a form applet, only one master record is accessed at
a time. The presence of a primary ID field results in a single detail record being
accessed for each new master record displayed, rather than multiple detail records.
This can speed up the movement between master records in the form applet
somewhat as the user moves between them.
Version 6.0
16-5
Improving Performance
Multi-Value Group Performance
There are some special circumstances in which configuring a primary join is not
desirable or feasible:
When Sybase or Microsoft SQL Server is being used, and the creation of the
primary join would create a double-outer-join situation prohibited by the Sybase
or Microsoft software.
When the only purpose of the multi-value field is to sum child values.
In general, however, when a multi-value field is defined, a primary ID field should
be defined for it.
16-6
Version 6.0
Improving Performance
Database Indexes in Sorting and Searching
16
Version 6.0
16-7
Improving Performance
Displaying Totals in a List Applet
16
You can configure a list applet to display totals at the bottom of one or more list
columns. This is configured with TRUE settings in the Total Required property in
the List object definition and the Total Required property in one or more List
Column object definitions (the ones you want totaled).
Setting up a list applet for totals will degrade performance somewhat, as all records
must be obtained in order to arrive at the totals. When there is no totaling, the
system can access records in batches for display, returning for another batch as the
user scrolls further down the list.
An additional property of the List object, Total Displayed, can have a major
performance impact. When Total Displayed is set to TRUE, the totals are calculated
and displayed immediately each time the user enters the view. When it is FALSE,
the user must specifically request totals using the Edit Show Totals menu option.
You should set Total Displayed to FALSE in a totaled list applet unless the number
of returned records is generally very small (such as in the list of line items for a
purchase order) or when the users demand to see totals each time the view is
entered.
16-8
Version 6.0
Improving Performance
Other Performance Bottlenecks
16
utilize functions that may or may not be supported by the underlying relational
database system. If the RDBMS supports the function, it will have algorithms for
performing the calculations efficiently and will return the calculated values with
the result set. If the function is not supported in the RDBMS, the Siebel client
may have to rescan the entire result set to perform the desired calculation,
considerably increasing the time it takes to obtain the results of the query. The
difference is that in the one case the calculations can take place before the
results are returned, and in the other, they have to be performed in memory on
the client.
NOTE: Even if the calculated field is supported at the RDBMS level, there may be
other reasons why a search specification on a calculated field may result in poor
performance, such as the lack of an index supporting the search specification.
See Database Indexes in Sorting and Searching on page 16-7.
business components used in applets in a view can slow down the display of
data upon entry into that view. This is because each of the applets must be
populated with data.
Number of joins, extension tables, and primary ID fields in a business component. Joins
degrade performance by causing an extra row retrieval in the joined table for
each row retrieval in the main table. Extension tables and primary ID fields also
use joins, although implied rather than explicitly defined, adding a row retrieval
for each. The more joins, extension tables, and primary ID fields defined in a
business component, the higher the number of row retrievals required in tables
other than the main table, with a corresponding performance degradation.
Version 6.0
16-9
Improving Performance
Other Performance Bottlenecks
Use of Force Active property in fields. When fields in the business component have
TRUE settings in the Force Active property, performance may be slowed. The
Force Active setting of TRUE indicates to the system that it must obtain data for
the field every time the business component is accessed, even though the field
is not displayed in the current applet. This adds the field to the SQL query each
time.
While Force Active is necessary in some cases, it is often sufficient to put a
control or list column on an applet and hide it by setting the Visible property
to FALSE. This way the data does not have to be retrieved every time the
business component is instantiated, only when the relevant applet is used.
Use of Link Specification property in fields. TRUE settings in the Link Specification
property in fields may also slow performance. If TRUE, the fields value is passed
as a default value to a field in the detail business component through a link. This
is necessary if the master business component has a link relationship (in the
current business object) with one or more detail business components, and
these detail business components utilize the Parent: expression in the Pre
Default Value, Post Default Value, or Calculated Value properties in any fields.
The master business component must pass the field value to any detail records
displayed. As with the Force Active property, fields with the Link Specification
property set to TRUE will be retrieved every time the business component is
queried.
Use of outer joins Instead of Inner joins. Inner joins may be used for joined tables,
with a resulting savings in overhead, provided you are guaranteed that all
foreign key references are valid. For example, when the join is from a detail
business component to its master, you are guaranteed of the existence of the
master. You can configure the join as an inner join by setting the Outer Join Flag
property of the Join object to FALSE. This improves the performance of queries
that use the join.
Cascade Delete set in a many-to-many link. The Cascade Delete property in a Link
16-10
Version 6.0
Improving Performance
Performance Troubleshooting Using Spooled SQL
16
Version 6.0
16-11
Improving Performance
Performance Troubleshooting Using Spooled SQL
A sample SQL query and its bind variables and execute times appear below,
extracted from a trace file:
SELECT
T1.LAST_UPD,
T1.CREATED_BY,
T3.RSTRCT_DEL_FLG,
T3.RSTRCT_TRNS_FLG,
T1.DEFAULT_STATE_ID,
T2.LOGIN,
T3.DESC_TEXT,
T1.CONFLICT_ID,
T1.ACTIVATE_DT,
T1.CREATED,
T1.ROW_ID,
T2.ROW_ID,
T1.DESC_TEXT,
T3.VALUE,
T1.EXPIRE_DT,
T3.ROW_ID,
T1.NAME,
T3.RSTRCT_UPD_FLG,
T1.MODIFICATION_NUM,
T1.FIELD_NAME,
T1.BUSCOMP_NAME,
T1.LAST_UPD_BY
16-12
Version 6.0
Improving Performance
Performance Troubleshooting Using Spooled SQL
FROM
SIEBEL.S_STATE_MODEL T1
INNER JOIN SIEBEL.S_EMPLOYEE T2 ON T1.CREATED_BY = T2.ROW_ID
LEFT OUTER JOIN SIEBEL.S_SM_STATE T3 ON T1.DEFAULT_STATE_ID
= T3.ROW_ID
WHERE
(T1.BUSCOMP_NAME = ? AND T1.ACTIVATE_DT <= ? AND (T1.EXPIRE_DT
IS NULL OR T1.EXPIRE_DT >= ?))
ORDER BY
T1.NAME
NOTE: If the same statement is executed repeatedly, the Siebel application will
display the entire statement for the first query and only the bind variables for each
subsequent iteration of the query.
SQL statements are displayed for all queries, including housekeeping queries. These
are queries that are necessary for system operation, such as looking up the users
login to obtain responsibilities, and determining todays alarms in the calendar. You
will also see queries to the S_LST_OF_VAL table to populate picklists. The queries
that populate views are also present in the trace file, and should be easily
distinguishable based on the tables they access.
Version 6.0
16-13
Improving Performance
Performance Troubleshooting Using Spooled SQL
16
A query plan is a detailed reporting of various statistics about the query you
executed.
2 Copy and paste the SQL statement to analyze into the Command windowpane.
3 Replace bind variable references with the corresponding bind variable values.
4 Click the Execute button.
The query runs against the local SQL Anywhere database.
16-14
Version 6.0
Improving Performance
Performance Troubleshooting Using Spooled SQL
As you look through the trace file and run query plans, you should be aware of:
Version 6.0
16-15
Improving Performance
Performance Troubleshooting Using Spooled SQL
You can tell where each new business object is being opened by searching for the
S_APP_QUERY statement. You can determine which business object has been
accessed by checking the Bind Variable statements beneath the query. Bind
variables are the values that determine which records are brought back. The
database software substitutes the value of a bind variable into an SQL statement
when the same SQL statement is being reused, generally in place of each occurrence
of a question mark or series of question marks. A business object bind variable is
used in an S_APP_QUERY statement because the purpose of this statement is to
open the business object.
Watch for the following indications of potential problems:
Unnecessary fields are being accessed, especially ones not exposed in the user
interface and not needed for calculated fields, or used for passing values to child
records.
Unnecessary joins are occurring, particularly to tables that are not being
accessed
Unnecessary multiple joins are being made to the same table. This can indicate
duplicate join or multi-value link object definitions, or joins using the same
foreign key
When a short query appears many times, this generally indicates that a multivalue group without a primary join is being accessed by a list applet. The system
is running a secondary query for each master record to obtain its detail records.
The secondary queries are the short queries appearing in the log file. This is
usually your best diagnostic indicator of the need for a primary join.
When a short query appears only once, it indicates the same situation, but
accessed in a form applet. In either case, the cure is a primary join, as explained
in Multi-Value Group Performance on page 16-5.
16-16
Version 6.0
Improving Performance
Performance Troubleshooting Using Spooled SQL
Followup Analysis
16
If you identify a problematic query in the trace file, you can obtain more information
about it using the database query tool provided with the RDBMS (such as SQL*Plus
in Oracle). Copy and paste the SQL statement from the trace file into the database
query tool, and then execute the query against the database. This will provide the
following additional information:
Version 6.0
16-17
Improving Performance
Chapter Summary and Where to Get More Information
16
16-18
Multi-value groups
Chapter 21
Joins
Links
Version 6.0
Siebel Architecture
Part 5
Version 6.0
Version 6.0
17
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-48
Version 6.0
17-1
17
17
17-2
Version 6.0
Siebel applications store and retrieve all their data from a relational DBMS.
Figure 17-1 shows the database columns in a Siebel application database table,
S_ORG_EXT, as displayed in the SQL*Plus viewer in Oracle.
Version 6.0
17-3
Figure 17-2 shows the column object definitions in the S_ORG_EXT table object
definition in the Object List Editor of Siebel Tools.
Figure 17-2. S_ORG_EXT Columns in the Object List Editor of Siebel Tools
One Table object definition exists in Siebel Tools for each database table, and there
are similar correspondences between Column and Index object definitions in Siebel
Tools with physical columns and indexes.
17-4
Version 6.0
Tables
17
S_. Table names starting in S_ are standard tables for supplied with Siebel Sales
and Siebel Service. For example, the S_CONTACT table stores contact
information, and S_OPTY stores opportunity information. Nearly all standard
tables are of this type.
W_. Table names starting in W_ are warehousing tables used in Siebel Marketing
to normalize data used in the S_ tables.
Base Tables
17
The base table for an extension table is the table it extends. This is specified in
the Base Table property of the extension tables object definition. Extension
tables are discussed in Extension Tables on page 17-7.
The base table for a business component is the table that provides most of its
essential fields. This is specified in the Table property of the Business
Component object definition. The set of fields supplied by the base table is
supplemented by nonupdateable fields that are obtained from joins. Business
components are discussed in Business Components on page 18-3.
Tables have various styles based on the value in the Type property. They include,
among others, Data, Extension, Intersection, and Interface. Table styles are
summarized under the Type property heading in Properties of the Table Object
Type on page 17-6, and each is discussed in detail in a subsequent section.
Version 6.0
17-5
17
Type property. Indicates which of the following styles describes the table.
Data (Public) value. Public data tables are among the original set of tables
implemented in Siebel applications. They hold data that is made available
through business components to developers and users. Public data tables can
be extended using extension tables and, subject to database restrictions,
extension columns.
17-6
Version 6.0
Base Table property. Identifies the base table if the table in the object definition
is an extension table. If the table in the object definition is not a base table, this
property is blank. An extension table always identifies a base table.
User Name property. A longer, descriptive name that aids in identifying the table
Alias property. A name that can be used as a synonym for the table name to make
the name more understandable. For example, an alias such as
S_Organization_External could be specified for the S_ORG_EXT table.
Data Tables
17
Data tables comprise most of the tables in Siebel applications. They serve as base
tables for business components, and their columns provide the data for fields. Data
tables can be public or private.
Extension Tables
17
Version 6.0
17-7
Business Component
primary
key Field
standard
Field 1
standard
Field 2
base Table
primary key
Column
custom Field 1
custom
Field 2
extension Table
standard
Column 1
standard
Column 2
standard
Column 3
(foreign) key
Column
generic
Column 1
generic
Column 2
17-8
Version 6.0
Note the following distinctions between standard and custom extension tables:
Siebel provides standard extension tables for several of the standard data tables.
A standard extension table has a predefined relationship with a standard data
table. This relationship allows you to easily add columns for new functionality
without making alterations to the base table. You cannot create or delete
standard extension tables.
You can use the Siebel Database Extension Designer to create custom extension
tables to extend data tables, provided the data tables are of type Data (Public).
NOTE: Custom extension tables, once created by the developer, cannot be deleted
Version 6.0
17-9
Figure 17-4 illustrates how columns from a standard one-to-one extension table are
used in the Contact business component in Siebel applications.
Id Field
standard data
Fields
Approval Authority
Field
Married Field
Years At Account
Field
standard data
Columns
PAR_ROW_ID
Column
ATTRIB_15
Column
ATTRIB_O8
Column
ATTRIB_14
Column
There are eight fields in the Contact business component displaying data from
generic columns in S_CONTACT_X; only three are shown here. Extension tables
themselves are sparse; extension table rows exist only for those base table rows
that have extension data to store.
17-10
Version 6.0
In a one-to-many extension table, there are multiple extension table rows for
each base table row. There are standard one-to-many extension tables for certain
of the major business components, including Opportunity, Contact and Account.
These are used primarily to create multi-value groups based on user-created
business components. One-to-many extension tables are described in One-toMany Extension Tables on page 17-14.
Business Component
Fields based on base
originating Control
Columns
Fields based on extension
Columns
extension Table
Column property
generic Columns
(ATTRIB_xx)
Legend:
object definition
contained (child) object definition
property specifies other object def
Version 6.0
17-11
Fields based on base columns. Fields that represent data from columns in the
business components base table. They are unaffected by the extension table.
Fields based on extension columns. Represent data from columns in the extension
table.
Implied Joins
Underlying the one-to-one extension tables relationships with the base table and
business component is a set of hidden relationships called an implied join. The
implied join makes the extension table rows available on a one-to-one basis to the
business component that uses the extension table. Every extension table has an
implied join with the business component it extends. This join always has the name
of the extension table.
An implied join is different from joins defined as object definitions. Data can be
updated through an implied join. Data can be displayed only through other joins.
This update capability is important for extension table functionality.
When a field in the business component is based on a column in the extension
table, the Column property of the Field object is set to the name of the column, and
the Join property is set to the name of the extension table. For example, the Birthday
field in the Contact business component has a Column property value of ATTRIB_26
and a Join property value of S_CONTACT_X.
17-12
Version 6.0
The details of the object definition relationships in an implied join are illustrated in
Figure 17-6.
Business Component
Fields based on base
Columns
originating Control
extension Table
Column property
Join
property
Id Field
(implied)
generic Columns
(ATTRIB_xx)
Destination
Column
property
PAR_ROW_ID
Column
Source
Field
property
Table
property
Join (implied)
Join Specification
(implied)
Legend:
object definition
implied object definition
contained (child) object definition
property specifies other object
definition
Version 6.0
17-13
Id field. The Id field is a system field in the business component. It represents the
ROW_ID column in the base table, and it can be used in joins involving
extension tables and other joined tables.
PAR_ROW_ID column. PAR_ROW_ID stands for parent row ID. Every extension
table has this column, and every extension table row has a value there. It is used
as a foreign key to the base table that is extended by the extension table.
For more information, refer to the section titled Joins on page 18-27.
17-14
Version 6.0
master Business
Component
detail Business
Component
Key Field
Column property
generic Columns
(ATTRIB_xx)
custom Fields
Name Field
Column property
NAME Column
Destination
Link
property
Source
Field
property
Parent
Business
Component
property
Type Field
(predefaulted)
Column property
Column property
TYPE Column
PAR_ROW_ID
Column
Link
Child
Business
Component
property
Destination Field property
Legend:
object definition
contained (child) object definition
property specifies other object definition
Version 6.0
17-15
Key field. This is the key field in the master business component; it is used to
reference individual records. Typically, it is named Id. The Source Field property
of the Link object definition points to this field. The property value may be blank
because, by default, a blank Source Field value refers to the Id field.
value in the current record of the detail business component. The control or list
column that displays the multi-value field normally will be able to invoke a
multi-value group applet for display and maintenance of the detail records.
Multi-value link. The multi-value link provides access to the set of records in the
detail business component. One multi-value link is created for each multi-value
group that is created using the one-to-many extension table.
Link
The link object definition creates the one-to-many relationship between the master
and detail business components. There are no special link configuration issues
related to one-to-many extension tables. For more information on the configuration
of links, refer to Links on page 18-34.
17-16
Version 6.0
The following three fields are part of the User Key (U1), which uniquely identifies
a row for EIM:
Name field. The name field represents the NAME column from the extension
table. It provides the means for the user to enter an identifying value in each
record. For example, in a Hobbies business component, the name field might be
called Hobby. The user would enter the name of a hobby into each record in this
field.
Type field. The type field is usually named Type, and represents the TYPE
column. It contains the same value for all records in one multi-value group, and
distinguishes the records of that multi-value group from others. It should be set
in the Predefault property to some identifying word or phrase, such as HOBBY,
EXPERTISE or PRIOR JOB, and should not be exposed in the user interface.
Generally it is named Parent Contact Id, Parent Account Id, or something similar.
It identifies the row ID of the base table row corresponding to the parent record
in the master business component. The parent ID field is specified in the
Destination Field property of the Link object.
The detail business component contains one important property for use with a oneto-many extension table:
the records retrieved to only those with a specific value in the Type field. This is
the same value that is specified in the Pre Default Value property for that field.
In this way, the only records retrieved in the business component (and,
indirectly, the multi-value link and multi-value group applet) are those
designated as being in this multi-value group.
NOTE: Do not define tables with names longer than 18 characters in the DB2 or
Informix environments.
Version 6.0
17-17
Intersection Tables
17
17-18
Version 6.0
Figure 17-8 shows the Opportunity Detail - Contacts View, in which one
Opportunity displays with multiple detail Contacts.
Opportunity master record
Version 6.0
17-19
Figure 17-9 shows the Contact Detail - Opportunities View, in which one master
Contact is displayed with multiple detail Opportunities.
Contact master record
17-20
Version 6.0
Opportunity
business
component
many-to-many
relationship
Contact
business
component
implemented as
Opportunity
business
component
Contact
business
component
one-to-many
relationship
one-to-many
relationship
S_OPTY_CON
intersection table
Version 6.0
17-21
Business Object
1:2
Link
Business
Component
Field
Table (object
definition)
Column (object
definition)
Legend:
Object type
1:M relationship through object hierarchy
1:M relationship through properties
17-22
Version 6.0
The intersection table contains one row for each association between a row in one
business components base table and a row in the other business components base
table, regardless of which one-to-many relationship the association pertains to. The
association row in the intersection table stores the ROW_ID values of the row in
each business component base table. The details of intersection table relationships
are illustrated in Figure 17-12.
Business Object
master
Business
Object
Component
detail Business
Object
Component
Business
Component
property
master Business
Component
Table
property
base Table
ROW_ID
Column
Business
Component
property
Link
property
Parent Business
Component
property
Child Business
Component
property
Link
Inter Parent
Column
property
Inter
Table
property
Inter Child
Column
property
Table
property
base Table
intersection Table
inter
parent
Column
detail Business
Component
inter child
Column
ROW_ID
Column
Legend:
object definition
contained (child) object definition
property specifies other object definition
Version 6.0
17-23
Opportunity - Contacts
Detail View
Contacts - Opportunity
Detail View
Amy Miller
Opportunity
Business
Object
Contact
Business
Object
Cynthia Smith
George Gilley
Cynthia Smith
Link Opportunity
/Contact
Link Contact/
Opportunity
Business
Component Opportunity
Business
Component Contact
NAME
801
Hat Extravaganza
1022
1213
PER_ID
Column
(Contact)
ROW
_ID
FST
_NAME
LAST
_NAME
1022
371
197
Steve
Jones
1022
375
218
Amy
Miller
1022
218
371
George
Gilley
1213
375
375
Cynthia
Smith
801
197
17-24
Version 6.0
Notice how the associations stored in one intersection table serve both the
Opportunity/Contact and Contact/Opportunity links, and their corresponding
views. An association is simply a pair of ROW_ID values pointing to rows in their
respective business component base tables. One association may appear in both
views, for example, the association between Cynthia Smith and Smith Dry Goods in
Figure 17-13.
The set of object definitions and relationships in Figure 17-13 pertains to one of the
two links. The other link uses the same set of object types, but slightly different
relationships.
The following are descriptions of the object definitions in Figure 17-13:
Business object. The business object references the link (indirectly through the
business objects child business object component) that uses the intersection
table. It also contains the two business components included in the link.
the two business components in a particular direction. That is, the property
settings in the link specify that one business component is the master and the
other is the detail in the master-detail relationship.
Master and detail business components. The two business components are
specified in the link. They provide data to the user interface object definitions
that display the master-detail relationship. The base table of each business
component contains the ROW_ID column referenced by the Inter Child Column
(detail) and Inter Parent Column (master) properties of the Link object type.
Intersection table. The intersection table holds the associations between rows in
the base tables of the master and detail business components. Each row in the
intersection table represents one association between the two business
components. Two columns in the intersection table serve as foreign keys to the
base tables of the two business components. These columns are identified in the
Inter Parent Column and Inter Child Column properties of the link.
Version 6.0
17-25
Inter Parent column. This column in the intersection table holds the pointer to the
associated row in the master business components base table. It is identified in
the Inter Parent Column property of the Link object.
Inter Child column. This column in the intersection table holds the pointer to the
ROW_ID columns. The base table of each business component has a unique
identifier column for the rows in that table. This is the ROW_ID column.
NOTE: The Inter Table, Inter Parent Column, and Inter Child Column properties of
the Link object type are specific to links used in implementing many-to-many
relationships based on intersection tables, and are blank in other links.
17-26
Version 6.0
Figure 17-14 illustrates the property settings in the two links used to implement a
many-to-many relationshipin this case the relationship between Opportunities
and Contacts.
Contact/
Opportunity Link
Child Business
Component
property
Parent Business
Component
property
Inter
Child
Column
property
Opportunity
Business
Component
S_OPTY
Table
Inter
Table
property
Inter
Parent
Column
property
S_CONTACT
Table
S_OPTY_CON Table
Table
property
Table
property
ROW_ID
Column
OPTY_ID
Column
Inter
Parent
Column
property
Parent Business
Component
property
PER_ID
Column
Inter
Table
property
Opportunity/
Contact Link
Contact
Business
Component
ROW_ID
Column
Inter
Child
Column
property
Legend:
Child Business
Component
property
object definition
contained (child)
object definition
property specifies
other object def
Notice how the inter child column of one link is the inter parent column of the other,
and vice versa. Also notice how the parent business component in one link is the
child business component in the other, and vice versa. The two links are mirror
images of each other.
Version 6.0
17-27
17-28
Version 6.0
Joins are not the only way to expose intersection data. An alternative is to use the
intersection table as the base table for an intersection business component.
Intersection business components are described in Intersection Business
Components on page 18-15.
Column Objects
17
17
The column object corresponds to one database column in the database table that
is represented by the parent table object definition. Each database column in the
database table needs to have a corresponding column object definition. The
important properties of the Column object type are as follows:
Name property. Provides the name of the database column in the database table.
Default property. Provides a default value when new rows of this table are added.
Physical Type (Physical Type Name) property. Identifies the data type of the column
Version 6.0
17-29
Scale property. Specifies the maximum number of digits after the decimal point.
For noninteger columns, the scale is 7. For integer columns, the scale is 0.
Primary Key property. If TRUE, this column is the primary key for the table. With
minor exceptions, the ROW_ID column in a table is the primary key, and has a
TRUE value for this property.
Type property. Indicates which of the following styles describes the column:
Data (Public). Public data columns are among the original set of columns
implemented in Siebel applications. They hold data that is made available
through fields to developers and users.
Data (Private). Private data columns are reserved for Siebel use only; they
apply to tables used to manage the EIM process (for example, interface
tables).
Denormalized. A denormalized column duplicates the data in a column in
another (base) table, for performance reasons. The table and column names
of the duplicated column are specified in the Denormalization Path property
of the Column object definition of the denormalized column. The
denormalized column should not be in the same table as the column whose
data it duplicates.
Extension. An extension column is not used by standard Siebel applications.
It is used only in reconfigured applications. There are three kinds of
extension columns: standard extension columns, custom extension columns
in a base table, and custom extension columns in an extension table.
17-30
Version 6.0
IFMGR: xxx. These columns have names such as IFMGR: ROW_ID and
IFMGR: Status. They are found in interface tables, and are for internal use by
the Siebel Enterprise Integration Manager.
NOTE: Interface tables also contain special columns, such as IF_ROW_STAT
and IF_ROW_BATCH_NUM. These columns are related to EIM processing,
but you can modify the contents of these columns. They have a type of
System rather than IFMGR: xxx.
Data Columns
17
Data columns comprise most of the columns in Siebel applications. They are
sometimes referred to as base columns. Data columns provide the data for fields, or
serve as foreign keys that point to rows in other tables. The developer cannot modify
the properties of data columns, unlike extension columns. Data columns can be
public or private.
Extension Columns
17
Version 6.0
17-31
Custom extension columns in an extension table. These are columns added by the
Custom extension columns in a base table. These are columns added by the
developer to a base table. The relational database system that you use with
Siebel applications determines whether or not this is allowed. When the
database system supports custom extension columns in base tables, it may be
preferable for performance reasons to add them there, rather than to an
extension table. Performance may be affected if the extension columns are
added to an extension table, because extra SQL is generated to join to the
extension table.
Data Type
Number of Columns
Number
12
Date
10
VarChar(255)
VarChar(100)
1
5
VarChar(50)
10
VarChar(30)
Char(1)
The benefit of using standard extension columns is that they provide the means to
add fields to business components for new functionality with a minimum of effort
and database impact. If there is a need for a custom column, you can adapt an
existing standard extension column in an existing standard extension table without
adding any new columns to the database schema.
17-32
Version 6.0
Informix environments.
System Columns
17
System columns have a value of System in their Type property. System columns
appear in all tables in Siebel applications, although the same set of system columns
does not appear in every table. You can use the data in system columns for various
purposes; for example, the ROW_ID column in tables is used in the construction of
joins. Generally you should not modify the data in system columns. However, there
are exceptions, such as certain system columns in interface tables. Some common
system columns are described below:
Version 6.0
17-33
ROW_ID column. The ROW_ID column is present in all tables and provides a
unique identifier to the rows in the table. It is the typical destination column of
foreign key relationships from other tables. In standard data tables, it is often
represented by a field called Id for use in joins and links. For example, the
ROW_ID column in the S_ORG_EXT table is represented as the Id field in the
Account business component.
NOTE: The Id field that represents the ROW_ID column in business components
is an implied field, and does not appear in the Object Explorer as a child field of
any business components. However, every business component has an Id field,
which represents the ROW_ID column of its base table, as defined in the Table
property of the business component. The Id field is referenced in various
property settings throughout Siebel applications, such as in the Source Field
property of a link (in which a blank value also means the Id field).
CREATED column. Provides the creation date and time of each record.
person who created the recordnot to be confused with the user name that the
user logged in with.
person who last updated the recordnot to be confused with the user name that
the user logged in with.
NOTE: The CREATED, CREATED_BY, LAST_UPD, and LAST_UPD_BY columns
all provide date-time and logon stamps for record creation and update on the
client, not server, databases.
column of the base table. Extension tables, as well as _ATT and _T tables, have
this system column.
17-34
Version 6.0
Table 17-2 identifies the correspondences between system fields and system
columns.
Table 17-2.
Description
Id (or blank)
ROW_ID
Created
CREATED
Created By
CREATED_BY
Updated
LAST_UPD
Updated By
LAST_UPD_BY
These fields are automatically provided, and do not need to be explicitly declared.
You can reference them in the Field property of controls, list columns and other
object definitions, even though they do not display in the Object List Editor for the
business component.
Version 6.0
17-35
Indexes
17
You can create custom indexes if you determine that an additional index would
benefit your implementation. For information about adding custom indexes, see
Adding Custom Indexes on page 11-20.
The Index object type has the following key properties:
Unique. A TRUE/FALSE value indicating whether multiple rows with the same
Primary Key value. A primary key index is indexed on the ROW_ID column.
User Key value. A user key index is developer-created. The set of index
columns is developer-specified. It must consist of a unique combination of
columns.
Extension value. An extension index is created by default when the developer
adds an index. The set of index columns is system-specified.
System value. System indexes are included in standard Siebel applications,
and you cannot modify them.
17-36
Version 6.0
17
Index Column is a child object type of the Index object. An Index Column object
definition associates one column to the index that is the parent object definition of
the index column. The Index Column object type has the following important
properties:
Column Name property. The name of the column object definition to include in
Sequence property. The integer value that indicates the order of the column in the
Informix environments.
Version 6.0
17-37
17
Interface tables are intermediate database tables between the Siebel application
database and other databases. A database administrator populates these tables with
information to be processed by Siebel applications. You then invoke Siebel
Enterprise Integration Manager (EIM) to process this information. EIM manages the
exchange of data between Siebel database tables and other corporate databases. You
can use EIM to perform bulk imports, exports, merges or deletes.
Interface tables have names that end in _IF, _XMIF, or _DTLIF:
17-38
Version 6.0
17
EIM Interface
Table
Table
Column
Data
Objects
Layer
Index
User Key
Attribute
User Key
EIM
Interface
Table
Column
EIM
Table
Mapping
Interface
Table
User Key
Usage
User Key
Column
Attribute
Mapping
User Key
Attribute Join
Legend:
Name
Name
Foreign
Key
Mapping
Foreign
Key
Mapping
Column
Version 6.0
17-39
EIM Interface Table object type. The EIM Interface Table object type is an
alternative representation of the Table object type, for tables of type Interface
only. That is, each interface table has a table object definition (with a value of
Interface in the Type property) and an EIM interface table object definition. This
is illustrated in Figure 17-16.
S_PRI_LST
Data (Public)
S_PRI_LST_IF
Interface
S_PRI_LST_ITEM
Data (Intersection)
S_PRODINVLOC_IF
Interface
S_PROD_BASELINE
Data (Public)
The EIM Interface Table object type has all the properties of the Table object
type, plus several additional properties that are specific to interface tables. EIM
Interface Table has the following child object types: EIM Interface Table Column,
EIM Table Mapping, and Interface Table User Key Usage.
17-40
Version 6.0
EIM Interface Table Column object type. The EIM Interface Table Column object
type is an alternative representation of the Column object type, for columns that
are child object definitions of interface tables. For a given interface table, the
same list of columns appears as column children of the table object definition
and as EIM interface table column children of the corresponding EIM interface
table object definition. This is illustrated in Figure 17-17.
CONFLICT_ID
CONFLICT_ID
CREATED
CREATED
CREATED_BY
CREATED_BY
IF_ROW_BATCH_NUM
IF_ROW_BATCH_NUM
IF_ROW_MERGE_ID
IF_ROW_MERGE_ID
Figure 17-17. Relationship Between EIM Interface Table Column and Column
The EIM Interface Table Column object type contains all the properties of the
Column object type, in addition to some that are specific to EIM.
NOTE: The Price List interface table, S_PRI_LST_IF, is used in this and
Interface Table User Key Usage object type. This object type provides support for
alternative user keys for base tables. An interface table user key usage object
definition defines the use of a nontraditional user key for a given base table in a
specific interface table.
Version 6.0
17-41
EIM Table Mapping object type. Identifies a data table that is updated by the parent
EIM interface table object definition. One interface table may update one or
more data tables, and each data table to be updated requires an EIM Table
Mapping child object definition of the EIM Interface Table object. Each EIM
Table Mapping object definition identifies the name of the destination table (data
table to update) in its Destination Table property. This is illustrated in
Figure 17-18.
data Table
(S_PRI_LST)
EIM Table
Mapping
data Table
(S_PRI_LST_ITEM)
Legend:
object definition
contained (child) object definition
property specifies other object definition
EIM Table Mapping has two child object types: Attribute Mapping and Foreign
Key Mapping.
17-42
Version 6.0
the destination (base) table specified in the parent EIM table mapping. Each
Attribute Mapping object definition identifies the column in the interface table
that supplies the data (in the Interface Table Data Column property). It also
identifies the column in the destination table that receives the data (in the Base
Table Attribute Column property). This is illustrated in Figure 17-19.
data Table
(S_PRI_LST_ITEM)
Destination Table
Base Table
Attribute Column
Column
(CURCY_CD)
Base Table
Attribute Column
Column
(DESC_TXT)
Base Table
Attribute Column
Column
(PRI_CD)
Legend:
object definition
contained (child) object definition
property specifies other object definition
You can configure the Attribute Mapping object type. You should add a
corresponding Attribute Mapping object definition when you add an extension
column to a table, if the extension table is to be populated by an interface table.
Version 6.0
17-43
Foreign Key Mapping object type. Each Foreign Key Mapping object definition
identifies a foreign key column in the destination table that is to be populated
from the interface table. Because foreign key values are stored as numeric row
ID values in data tables, to populate one from an interface table it is necessary
to map from the interface column to a combination of user key columns in the
destination table, rather than directly to the foreign key column.
A foreign key mapping is not a one-to-one column mapping from interface table
to destination table, as occurs with non-foreign key columns. The numeric
foreign key does not even exist in the interface table, so it cannot be mapped.
Instead, a combination of attribute columns in the destination table of the
foreign key is used to access the desired row, and the foreign key value can be
obtained from that row. These relationships are illustrated in Figure 17-20 on
page 17-45.
17-44
Version 6.0
data Table
(S_PRI_LST_ITEM)
Destination
Table
Foreign
Key
Column
Foreign
Key Table
User Key
Attribute
User Key
Attribute
User Key
Attribute
Legend:
object definition
contained (child) object definition
property specifies other object definition
Version 6.0
17-45
Foreign Key Mapping Column object type. Each Foreign Key Mapping Column
object definition identifies a piece of the user key; that is, one of the attribute
columns used to locate rows in the table the foreign key points to. The user key
columns, taken together, uniquely identify rows in that table. The Foreign Key
Mapping Column object definitions identify these user key columns to the
interface table, so that foreign key values can be derived when import or export
takes place.
User Key object type. User Key is a child object type of Table. Each user key object
User Key Column object type. User key columns can be either attributes or foreign
keys. In most cases these are the columns in the user key index (usually the
index with a suffix of _U1), with the exception of the CONFLICT_ID column.
User Key Attribute object type. Each user key attribute object definition in the
parent user key specifies one in the set of attribute columns that collectively
identify rows in the grandparent table. The column name is specified in the
Name property of the User Key Attribute object definition. User Key Attribute
has one child object type, which is User Key Attribute Join.
User Key Attribute Join object type. Each User Key Attribute object definition has
one or more User Key Attribute Join child object definitions. The user key
attribute join specifies a join operation that can be used to convert a user key
attribute that is itself a foreign key to another table into attribute column values
in that table. For example, the S_PROD_INT (products) table has a user key
consisting of three attributes: PROD_NAME, PROD_VENDOR and
PROD_VEN_LOC. The PROD_NAME (product name) attribute column is directly
obtained from the S_PROD_INT table, so no join is required. However, the
PROD_VENDOR and PROD_VEN_LOC columns occur in the S_ORG_EXT
(accounts) table, and must be obtained via a join on VENDR_OU_ID, a foreign
key from S_PROD_INT to S_ORG_EXT.
17-46
Version 6.0
Adding and modifying attribute mappings are subject to the restrictions identified
in Table 17-3.
Table 17-3.
From
To
Conditions
Base column
Base column
Extension table
column
Extension table
column
NOTE: Do not map multiple interface table columns to a single column in a target
table. This creates ambiguity for EIM. However, you can map a single column in an
interface table to multiple base tables or extension tables.
Version 6.0
17-47
17
When you are loading data through EIM and a PR_TERR_ID has no match, it is
labeled as NULL, whereas loading it through the user interface would produce No
Match Row Id.
To fix the problem you need to open the record set in the client user interface and
manually step through each record created by EIMeach instance of a NULL value
for PR_TERR_ID will be replaced with No Match Row Id.
17
Field data types are used to identify the type of data retrieved from and sent to the
database server. These data types are not mapped to the physical data types defined
by the database. For example, a column defined as a date by the database could be
defined as DTYPE_TEXT instead of DTYPE_DATE by the field. If the data was readonly, this may be sufficient. However, because the DTYPE_DATE type has
knowledge about dates, such as valid date formats, using DTYPE_TEXT would be a
problem if the data could be changed and not entered in an appropriate format. All
field data types are prefaced with DTYPE_. Table 17-4 describes the Siebel field data
types.
NOTE: Most formatting is defaulted from the Microsoft Windows Control Panel.
Overriding the default format in the repository is possible but might lead to
confusion. For example, overriding a number format to show more or fewer decimal
places would be useful, but overriding a date format to DD/MM/YY would be
confusing to a user who has set the date format to MM/DD/YY in the Control Panel.
17-48
Version 6.0
Table 17-4.
(Sheet 1 of 4)
Description
DTYPE_BOOL
DTYPE_CURRENCY
trailing period
(.)
Version 6.0
Refers to the data as a date. When the date is returned, any additional information
(for example, time) is ignored. You can set the appearance of date values via the
Windows Control Panel, or you can specify an explicit date format using the
following symbols:
Y
YY
YYYY
YYY
MM
DD
slash (/)
17-49
Table 17-4.
(Sheet 2 of 4)
Description
DTYPE_DATETIME
Refers to the data as a date and time. You can set the appearance of time and date
values via the Windows Control Panel, or you can specify an explicit date format
using a combination of the symbols for DTYPE_DATE and DTYPE_TIME.
Alternatively, you can use one of the following three properties:
Date
displays only the date portion of the value, using the format
specified in the Windows Control Panel
Time
displays only the time portion of the value, using the format
specified in the Windows Control Panel
TimeNoSec
DTYPE_ID
Refers to the data as the primary key automatically generated by the application.
DTYPE_INTEGER
DTYPE_NOTE
Refers to the data as a long string less than or equal to 16 KB (16383 bytes); the
default, if the length is not explicitly defined, is 16 KB. When used with the Popup
Edit property in a control or list column, this data type is used to indicate to the
user interface that a multi-line edit box should be used.
DTYPE_NUMBER
Refers to the data as a number. You can control the appearance of numeric values
via the Windows Control Panel, or you can specify an explicit format mask using
the following symbols:
17-50
zero (0)
pound sign
(#)
comma (,)
period (.)
trailing period
(.)
Version 6.0
Table 17-4.
(Sheet 3 of 4)
Description
DTYPE_PHONE
Refers to the data as a phone number. The DisplayFormat property is ignored for
values of this type.
DTYPE_TEXT
Refers to the data as a string less than or equal to 4095 bytes; the default is 255.
The DisplayFormat property is ignored for values of this type.
You can use ForceCase = Upper, ForceCase = Lower, or ForceCase =
FirstUpper to force the text to all uppercase, all lowercase, or the first letter of
each word uppercase after the end user tabs out of the field. Otherwise, the text is
in mixed case as the user entered it.
Version 6.0
17-51
Table 17-4.
(Sheet 4 of 4)
Description
DTYPE_TIME
Refers to the data as a time. When the time is retrieved, any additional information
(such as date) is ignored. You can set the appearance of time values via the
Windows Control Panel, or you can specify an explicit time format using the
following symbols:
H
HH
hh
mm
ss
colon (:)
the position of the time separator (you specify the character in the
Windows Control Panel)
TimeNoSec
NOTE: Do not add long (16K limit) fields to Siebel base tables.
17-52
Version 6.0
17
Version 6.0
Chapter 3
17-53
17-54
Version 6.0
18
18-1
18-2
Version 6.0
18
This chapter describes objects in the Business Objects Layer of the Siebel eBusiness
Applications architecture. Siebel business objects consist of:
Business components
Fields
Joins
Links
Business Components
18
A business component is a logical entity that associates columns from one or more
tables into a single structure. Business components provide a layer of wrapping over
tables, so that applets reference business components rather than the underlying
tables. This creates convenience (all associated columns are together in one
bundle), developer-friendly naming, and the separation of the developer role from
the database administrator role. A business component can also have a default sort
specification and/or search specification, providing records to applets in a
predetermined sort order and according to a selection criterion.
When instantiated in a Siebel application, a business component is comparable to
a recordset. Its definition in Siebel Tools provides the foundation for controlling how
data is selected from, inserted, and updated within the tables it references.
Figure 18-1 illustrates business component records displayed in a list applet.
Business component records
18-3
Business Component
Field
Table
property
of BC
Column
property
of Field
Field
Column
property
of Field
Legend:
Table
object definition
Column
Column
contained (child)
object definition
property specifies
other object definition
In addition to connecting a column to the business component, the Field object type
also allows you to specify a meaningful name that refers to that column. Columns
in tables are often cryptically named to match the names in the DBMS, whereas
fields can have more meaningful and longer names than the columns they represent
(75 characters long as opposed to, typically, 30 characters).
NOTE: Not all fields are representations of columns. Some fields are calculated fields,
whose values are computed from the values in other fields. The data in calculated
fields is not stored separately in the database.
18-4
Version 6.0
18
M/F Field
SEX_MF
Column
OU_MAIL_STOP
Column
JOB_TITLE
Column
Every business component has a base table assigned to it. It is not essential that the
business component include all of the columns in the base table, although typically
it will include most of them. In particular, system columns in the base table such as
ROW_ID, CREATED_BY and LAST_UPD_BY are automatically represented in the
business component through implied fields. System columns do not require field
object definitions in the business component.
Version 6.0
18-5
18
Joined Tables
A joined table provides rows on a one-to-one basis to the business component as a
result of a foreign key relationship between the joined table and the business
components base table. That is, for every record in the business component (which
corresponds to a row in the base table) there can be a corresponding row in the
joined table. However, not every record in the base table will have a record in the
joined table.
The data obtained by a business component through a join (other than to an
extension table) is read-only in that business component.
The use of fields from both the base table and joined tables is illustrated in
Figure 18-4.
Business Component
primary
key Field
Field F1
Field F2
base Table
primary key
Column
Field F3
Field F4
joined Table
Column B1
Column B2
(foreign key)
Column B3
Column
J2
Figure 18-4. Fields from the Base Table and a Joined Table
18-6
Version 6.0
Account Id
Field
Account Location
Field
FST_ NAME
Column
Account Currency
Code Field
LOC
Column
BASE_CURCY
_CD Column
points to
Extension Tables
Extension tables are a special kind of joined table. Like other joined tables,
extension tables provide rows on a one-to-one basis in parallel with base table rows.
Extension tables are identified by the _X suffix in the table name, such as
S_ORG_EXT_X, which extends S_ORG_EXT.
Version 6.0
18-7
18
The value in the Sort Specification property, if nonblank, is the name of a field or
list of fields that imposes a sort order on the records returned to an applet that is
associated with this business component. The field or fields must be child object
definitions of the business component.
For example, the Account business component (as delivered in Siebel applications)
has a Sort Specification property value of Name, Location. This indicates that
account records are provided in Name (account name) order, and where multiple
account records have the same Name, they are to be sorted within Name by Account
Location.
Observe the following syntax considerations:
If the Sort Specification value is blank, Siebel applications returns the records in
the order in which they occur in the table.
When a check box field is included in a sort specification, there are three values
that are sorted: Y, N, and NULL. If you specify that the sorting is in Descending
order, the order is NULL, Y, and N.
18-8
Version 6.0
A sort specification that includes a multi-value field in the expression does not
sort the records in the underlying multi-value group. Instead, you create a sort
specification in the detail business component of the multi-value link to do this.
For sorting the values in a static picklist or pick applet differently than the
default sorting for the underlying business component, the sort specification on
the business component can be overridden with a sort specification on the
picklist. The default value for the Sort Specification property in a Pick List object
definition is blank, which means that the business components sorting is to be
used. If a sort specification appears in the picklist, this overrides the business
components sorting with that of the picklist.
NOTE: If a pre-defined query exists, it can potentially override a sort specification
Version 6.0
18-9
18
"N"
Search specification expressions are built according to the following syntax rules:
String constants are enclosed in double quotation marks. String values are case
sensitive, so the use of uppercase and lowercase letters in the search
specification should exactly match that of the records you want returned.
Example: [Type] <> "COST LIST"
The logical operators AND, OR, and NOT are used to negate or combine
expressions. Case is ignored in these operators; for example, and is the same
as AND).
Example: [Competitor] IS NOT NULL and [Competitor] <>
"N"
18-10
Version 6.0
The LIKE operator may be used to create text string comparison expressions in
which a field is compared to a constant, or a field to another field, and a match
on only the first several characters is required. The wildcard characters * and
? are used to indicate any number of characters, and a single character,
respectively.
Example: [Last Name] LIKE "Sm*"
In this example, the Last Name values of Smith, Smythe, Smallman, and so on
would cause the expression to evaluate to TRUE.
18
Version 6.0
BC Read Only Field user property. Specifies a TRUE/FALSE field in the record that,
when TRUE, causes the current record to become read-only.
Field Read Only Field: fieldname user property. Specifies a TRUE/FALSE test field
and a target field in the same business component. When the TRUE/FALSE field
is true, the target field becomes read-only.
18-11
Parent Read Only Field user property. Specifies a TRUE/FALSE test business
The three user properties do not function when used in an applet in a view
where the view's Admin Mode property is set to TRUE. Admin Mode turns off
all insert and update restrictions for the business components used by the view,
including those specified by business component user properties.
Value. Contains the name of a field in the same business component as the
parent object definition of the user property. This field must be a TRUE/FALSE
field.
An example of the use of BC Read Only Field is the situation in which you need to
prevent users from updating inactive accounts. The Inactive Account field in an
account record is a TRUE/FALSE field that, when TRUE, indicates that the account
is inactive. To configure dynamic read-only behavior for the Account business
component based on this field, add a business component user property child object
definition to the Account business component, with the following property settings:
18-12
Version 6.0
For example:
Field Read Only Field: Account Status
Note that there is only a single space between the colon and the field name.
Value. Contains the name of the test field. This is a TRUE/FALSE field in the same
Version 6.0
18-13
3 In the calculation property of the Competitor Calc field, enter the following
value:
IIf([Type] = "Competitor", "Y", "N")
4 Expand the Business Component object type in the Object Explorer, and select
the Business Component User Prop object type. Click the Object List Editor to
make it active, and choose Edit New Record.
5 Set the following values in the new Business Component User Prop object
definition:
Name. Field Read Only Field: Competitor
Value. Competitor Calc
buscompname.fieldname
where fieldname is the name of the test field, that is, the TRUE/FALSE field to
be evaluated, and buscompname is the name of the business component in
which the test field is located. For example:
Account.Inactive Account
18-14
Version 6.0
The business component to be conditionally restricted is the one to which you add
the user property as a child object definition. The business component containing
the test field must be a parent or grandparent of the restricted business component
by way of a link or series of link relationships.
An example of the use of this user property is the situation where you want to
disable the update of the Account Address multi-value group when the account
record has a Type of Competitor. To accomplish this, you add the same calculated
field as in the Field Read Only Field example, and then add a user property to the
Business Address business component with the following values:
This causes the Account Address multi-value group to be read-only when the
account record is for a competitor.
NOTE: When using the Parent Read Only Field user property, the test field must have
its Link Specification property set to TRUE. Otherwise the dynamic read-only
functionality doesnt work. However, if the child record is displayed in the multivalue field in the parent business component, it isnt necessary to have the Link
Specification property of the field set to TRUE.
18
Version 6.0
18-15
18-16
Version 6.0
The list applet in this view displays all current opportunity-product combinations.
The chart applet provides the means to perform analysis on this set of opportunity
products, such as comparing the total revenue or number of products for each sales
representative, territory, vendor, or other attribute.
When an intersection business component is used for the display and modification
of data in an intersection table, it is not necessary to use an association applet to
create new association rows. The user can add a new record in the list applet that
displays the intersection business component, and enter or pick values in list
columns that specify the two masters. In the case of the opportunity product list, an
Opportunity and a Product list column are provided, and selection is made in one
or the other, using the corresponding pick applet.
18
Represent external data (for example, data in an SAP R/3 database) as a virtual
business component within a Siebel applicationthe business component
configuration specifies the DLL to use to access the data
Version 6.0
18-17
Fields
18
A field associates a column with a business component. This is how columns are
assigned to a business component, and provided with meaningful names that do
not require knowledge of the tables or joins of their origin.
Fields are the source of data for controls and list columns in applets. Figure 18-7
illustrates data from fields displayed in a form applet.
Displays the Account field
from the Opportunity
business component
Displays the
Revenue field
18-18
Version 6.0
As you can see from Figure 18-7 and Figure 18-8, controls in a form applet and list
columns in a list applet obtain their data from fields in the business component
used by the applet. The Field property setting in a Control or List Column object
definition specifies the field. The Business Component property in the applet
specifies the business component. These property relationships are illustrated in
Figure 18-9.
Form Applet
Control
List Applet
List
Control
List
Column
Field
property
Business
Component
property
Field
property
Business Component
Field
Field
property
List
Column
Business
Component
property
Field
property
Business Component
Field
Field
Field
Legend:
object definition
contained (child) object definition
property specifies other object definition
Version 6.0
18-19
In the field object definition (for other than calculated fields), the column and Join
properties together specify the table and column from which the fields data is
obtained. The Join property, if blank, indicates that the column is obtained from the
business components base table. If nonblank, the Join property identifies the join
object definition that supplies data from an extension table or other joined table.
Based on the Join property, the table supplying the fields data is identified. The
Column property identifies the column to use within the specified table. These
relationships are illustrated in Figure 18-10.
Business Component
Business Component
Field
Column
property
Field
Join
property
(blank)
Table
property
Base Table
Column
Column
property
Join
property
Join
Table
property
Legend:
object definition
contained (child) object definition
property specifies other object definition
System Fields
System fields are provided in all business components in standard Siebel eBusiness
Applications. These fields represent the data from system columns, which are
described in System Columns on page 17-33.
18-20
Version 6.0
Table 18-1 identifies the correspondences between system fields and system
columns.
Table 18-1.
Description
Id (or blank)
ROW_ID
Created
CREATED
Created By
CREATED_BY
Updated
LAST_UPD
Updated By
LAST_UPD_BY
These fields are automatically provided, and do not need to be explicitly declared.
They may be referenced in the Field property of controls, list columns and other
object definitions even though they do not display in the Object List Editor for the
business component.
Calculated Fields
Calculated fields have a Calculated property of TRUE and a nonblank Calculated
Value property. Calculated fields obtain their values from other fields in the same
business component, or from the master business component in an active link in
which the current business component is the detail. The Calculated Value property
contains an expression built from field names, standard functions, and string,
numeric and logical operators. For example, the Full Name field in the Contact
business component has the following Calculated Value property setting:
IIf (Language () = "JPN", [Last Name] + ' ' + [First Name],
[First Name] + ' ' + [Last Name])
The meaning of this expression is as follows: if the active client language setting is
Japanese, construct the Full Name from the Last Name, a blank space, and then the
First Name. Otherwise, construct the Full Name from the First Name, a blank space,
and then the Last Name.
For information on the construction of calculated field expressions for the
Calculated Value property, refer to Calculated Field Values and Field Validation on
page B-13.
Version 6.0
18-21
Data Types
The Type property specifies the data type for the field. The data type of the field is
generally more specific than the data type of the underlying column (as identified
in the Physical Type property of the column). For example, both DTYPE_NUMBER
(decimal) and DTYPE_INTEGER field data types have the Number physical data
type in the column.
For information about data types, see Field Data Types on page 17-48.
Just as the data type of the underlying column restricts the set of field data types
that will work correctly, the data type of the field restricts the set of correctly
functioning format options in the control or list column that displays it.
NOTE: Multi-value fields (fields with a Multi Valued property setting of TRUE) have
a blank Type property, because the data type of the field is specified in the detail
business component that populates it.
Sequence Fields
18
Situations can occur in which you need to create a field that provides sequential
numbering for the parent business component. For example, you may need to
number line items in an Order or products in an Opportunity. Sequential numbering
is not automatically provided in any system columns in standard tables in Siebel
applications. However, you can configure a sequence field in a detail business
component by adding a business component user property called Sequence Field
and creating a sequence business component with a special business component
class called CSSSequence.
18-22
Version 6.0
Business Object
main
Business
Object
Component
Business
Component
property
sequence
Business
Object
Component
Link property
main
Link
Parent
Business
Component
property
Business
Component
property
Link property
Parent
Business
Component
property
master Business
Component
Child Business
Component property
sequence
Link
Child Business
Component property
sequence Business
Component*
"Sequence" Field
"Sequence Field"
Business Component
User Prop
* class=CSSSequence
Table
property
Legend:
detail
Table
object definition
contained (child) object definition
property specifies other object definition
Version 6.0
18-23
records are to be numbered, this is the business component that holds master
records. For example, the Opportunity business component is the master in the
master-detail relationship with Opportunity Product.
business component that holds detail records. For example, the Opportunity
Product business component is the detail in the master-detail relationship with
Opportunity. The numbered detail business component has the following
important child object definitions:
Line Number field. This field, named Line Number, is a field of type
DTYPE_NUMBER that holds the resulting sequence value.
Business component user property. A business component user property object
definition named Sequence Field needs to be present, with the Value property
set to Line Number.
Detail table. The detail table is the base table for both the numbered detail and
18-24
Version 6.0
Links. One link provides the master-detail relationship between the master and
numbered detail business components. The other link provides the master-detail
relationship between the master and sequence business components. The link
to the numbered detail business component is usually pre-existing, such as
Opportunity/Opportunity Product. The link to the sequence business
component is usually added by the developer, except when the sequence
configuration is included in standard Siebel applications. Opportunity/
Opportunity Product.Line Number (Sequence) is an example of a link to a
sequence business component.
Business Object. The second link is included in the same business object that
1 Verify that the business component to which you want to add a sequence field
is the detail business component in a master-detail relationship. This is the
numbered detail business component.
NOTE: The numbering of detail records will start from 1 within each master
record.
2 Add a child field object definition to the numbered detail business component.
Set the Name property value to Line Number, the Type to DTYPE_NUMBER and
the column to a numeric extension column such as ATTRIB_14.
Version 6.0
18-25
3 Add a child business component user prop object definition to the numbered
detail business component. Set the Name property value to Sequence Field, and
the Value property to Line Number.
4 Create a business component. Set the Class property to CSSSequence, the table
to the name of the base table of the numbered detail business component, and
the Name to xx.Line Number (Sequence), where xx is the name of the numbered
detail business component. This is the sequence business component.
5 Set the Sort Spec of the xx.Line Number (Sequence) business component to
Sequence (DESCENDING).
6 Add a child field object definition to the sequence business component. Specify
a Name property value of Sequence, and a column value the same as the
extension column specified for the Line Number field in the numbered detail
business component.
7 Add a child field object definition to the sequence business component. This is
the foreign key field that establishes the master-detail relationship to the master
business component. The Column property should be set to the same column as
the corresponding field in the numbered detail business component.
8 Create a link object definition that establishes a master-detail relationship
between the master and sequence business components.
9 Create a Business Object Component child object definition of the business
object or business objects that use the existing link between the master and
numbered detail business components. Specify the new link and the sequence
business component in the Link and Business Component properties,
respectively.
10 Expose the Line Number field in applets that display records from the numbered
detail business component.
18-26
Version 6.0
Joins
18
Version 6.0
18-27
master Table
key
Column
Column
B1
detail Table
Column
B2
Column
D1
Column
D2
foreign key
Column
18-28
Version 6.0
Figure 18-14 illustrates the set of rows resulting from a join between the Contacts
business component and S_ORG_EXT (accounts) table.
Contacts
Jenny Frank
Acct 1
Fred Carlson
Acct 2
Sam Hudson
Acct 3
Accounts
Acct 1
Acct 1
Cambridge
MA
Mike Fernside
Acct 2
Acct 2
Jones Cleaners
Berkeley
CA
Hans Baker
Acct 3
Acct 3
Minneapolis MN
join
Jenny Frank
Acct 1
Cambridge
MA
Fred Carlson
Acct 2
Jones Cleaners
Berkeley
CA
Sam Hudson
Acct 3
Minneapolis MN
Acct 1
Cambridge
MA
Mike Fernside
Acct 2
Jones Cleaners
Berkeley
CA
Hans Baker
Acct 3
Minneapolis MN
In the diagram, the account number (Acct 1, etc.) in Contacts is the foreign key.
A join is always one-to-one and it is always between a business component and a
table. Once a join is created, you can create additional fields in the business
component based on columns in the joined table. In the diagram, the account name,
city and state are fields that can be added to the Contact business component
because of this join.
Version 6.0
18-29
18
Business Component
joined
Field
Join
property
Join
Join
Specification
foreign key
Field
Table
property
Source
Field
property
Column
property
Destination
Column
property
Table
property
foreign
key
Column
mapped
Column
primary
key
Column
Column property
Legend:
object definition
contained (child) object definition
property specifies other object definition
18-30
Version 6.0
The roles of the object definitions in the diagram are summarized as follows:
Business Component object type. The business component is the parent object
definition of the join. Because of the join, fields in the business component
(called joined fields) can represent columns from the joined table.
Joined field. A joined field in the business component represents a column from
a table other than the business components base table. Therefore, a joined field
must obtain its values through a join. A joined field has the name of the join in
its Join property. Together the Join property and Column property identify the
column and how to access it.
Join object type. Join is a child object type of the Business Component object
type. The Join object definition uniquely identifies a join relationship for the
parent business component and provides the name of the destination (joined)
table. The join object definition identifies the joined table in the Table property.
The name of the base table is already known to the business component.
Typically, a join object definition is given the same name as the joined table.
Join Specification object type. The join specification object definition is a child of
the join object definition. It identifies the foreign key field in the business
component and the primary key column in the joined table (that the foreign key
points to).
The Source Field property identifies the foreign key field in the business
component. If left blank, the Source Field is the Id field, indicating a one-to-one
relationship between the business component and the joined table.
Occasionally, a system field such as Created By or Updated By may be specified
as the foreign key field in the Source Field property.
The Destination Column property identifies the primary key column in the
joined table. A nonblank Destination Column property value is required if the
join occurs on a column other than ROW_ID. A blank value in the Destination
Column property means that the destination column is ROW_ID, which is
typically the primary key in tables in Siebel applications.
NOTE: In rare circumstances, there can be multiple join specifications in a single
join. For example, the Sub Campaign business component has a join to the
S_LANG table that has two join specifications.
Version 6.0
18-31
Foreign key (source) field and foreign key column. The foreign key field is identified
in the Source Field property of the join specification. It represents a foreign key
column in the base table, pointing to rows in a particular table used in joins. For
example, in the Contact business component, the foreign key field to the join on
accounts data is the Account Id field, which represents the PR_DEPT_OU_ID
column in the base table.
Joined table. The joined table is the master table in the master-detail relationship.
It provides columns to the business component through the join. The joined
table is identified in the Table property of the Join object definition.
Primary key (destination) column. The join specification identifies the primary key
column in the joined table (in the Destination Column property). Every standard
table in standard Siebel applications has a ROW_ID column that uniquely
identifies rows in the table. ROW_ID is the destination in most joins.
18-32
Mapped column. Columns in the joined table are available for use in fields in the
business component.
Version 6.0
18
Since a join field cannot be updated, you cant use a pre-default value in the regular
way as a default field value if nothing is specified when a record is inserted. You
can use a pre-default value for a join field to show the join field value immediately
as the new record is being inserted.
Version 6.0
18-33
Links
18
18-34
Version 6.0
In this master-detail view, each Opportunity record can have many Product records.
The synchronization between the master and detail business components in a
master-detail view is accomplished with a link between the two business
components and the inclusion of the link and business components in a business
object. Business objects are described in Business Objects on page 18-59.
NOTE: Link destination fields are initialized automatically when you add a record to
Figure 18-17.
Version 6.0
18-35
The relationship between the business component of the originating applet and the
business component of the multi-value group applet is one-to-many; that is, a
master-detail relationship. This master-detail relationship, as with all master-detail
relationships in Siebel applications, is implemented through a Link object (in
addition to other object types). A multi-value link is necessary to adapt a link for
multi-value group applet use.
NOTE: The relationship between the two business components is one-to-many in the
context of the multi-value link and multi-value group. There may be, in fact, a
many-to-many relationship (for example, between opportunities and positions), but
in the context of the multi-value group, only one master-detail relationship is
presented.
18
Link
Parent
Business
Component
property
Source
Field
property
master Business
Component
Child
Business
Component
property
Destination
Field
property
detail Business
Component
foreign key
Field
key Field
Legend:
object definition
contained (child) object definition
property specifies other object definition
18-36
Version 6.0
Master business component. The master business component is the one in the
Detail business component. The detail business component is the many in the
Source (primary key) field. The source field, also known as the primary key field,
is a field in the master business component that uniquely identifies records in
the business component. It represents the ROW_ID column from the business
components base table. The name of this field is specified in the Source Field
property in the Link object definition. Source field typically, but not necessarily,
represents the row id column from the business components base table.
Destination (foreign key) field. The destination field, also known as the foreign key
field, is a field in the detail business component that points back to the master
record in the business component. Account Id and Opportunity Id are typical
foreign key fields. A foreign key field represents a foreign key column from the
detail business components base table, such as PR_DEPT_OU_ID (the base
table for the Account business component). The name of this field is specified
in the Destination Field property in the Link object definition.
In a link based on an intersection table, that is, one in which the Inter Table,
Inter Parent Column, and Inter Child Column properties are nonblank, you do
not specify the Source Field or Destination Field properties. Otherwise, the
Destination Field property needs to contain the name of a field in the base table
of the business component (not based on a join), and the field needs to be
updateable.
Version 6.0
18-37
NOTE: For a M:M link, you actually could specify a source field. Destination will
18
Applet
Business Object
Business Object
Component
Legend:
Object type
1:M relationship through
object hierarchy
Link
1:2
Business
Component
18-38
Version 6.0
18
A link object definition provides the basis for a multi-value link object definition,
which in turn is used to implement a multi-value group applet. A multi-value group
applet is a dialog box that provides the means to display and maintain multiple
records of data associated with one control in the originating applet.
Multi-value links are described in Multi-Value Links on page 18-40. Multi-value
group applets are described in Multi-Value Group Applets on page 21-2.
18
Two link object definitions with opposite master-detail settings are used to establish
a many-to-many relationship based on an intersection table. The Inter Table, Inter
Parent Column, and Inter Child Column properties of the two Link object definitions
are used to establish the connection between the links and the intersection table.
For information on this use of links and how to configure them for this purpose,
refer to Intersection Tables on page 17-18.
18
When you merge two records into a business component, any attached records (for
example, the record for another business component) are not re-assigned. For reassignment to take place, you need to define a link between the two business
components.
Version 6.0
18-39
18
The Cascade Delete property in a Link object definition indicates what action to
perform on detail business component records of the link if the master record is
deleted. The following three values are available for this property:
CLEAR. If CLEAR, the foreign key reference is removed if the master record is
deleted, but the detail records remain in place.
DELETE. If DELETE, the detail records are deleted along with the master.
deletion of the master, and the foreign key reference is not removed.
Caution: Do not use DELETE if the child business component in
this link is also a detail business component in another link. In
this case, you use CLEAR instead.
Cascade Delete is not available for many-to-many links. With a many-to-many link,
Siebel applications will automatically delete the intersection record but will leave
the child record intact, as it may have other parents.
When you delete a record which is pointed to by foreign keys of other tables, the
references to it may or may not be deleted. If those references are not deleted, the
user is left with row IDs which point to nonexistent records. In the case of multivalue groups, sometimes these foreign keys will be converted to say No Match
Row Id.
Multi-Value Links
18
The Multi Value Link object type is a child object type of the Business Component
object type. A multi-value link implements a special use of the Link object type,
which is the maintenance by the user of a list of records attached to a control or list
column in an applet. The group of attached detail records is called a multi-value
group.
18-40
Version 6.0
Figure 18-20.
An account can have multiple addresses. These are stored in the Business Address
business component. Clicking the ellipsis (...) button to the right of the Address text
box brings up a dialog box. This dialog box lists the attached addresses, including
the street address, city, state, and ZIP Code for each. It also provides the means for
the user to add, delete or modify individual records.
Version 6.0
18-41
In the Account Form Applet, the Address, City, State, Zip and Country text boxes
display the values from the corresponding fields in the primary record in the
Business Address business component. The primary record is indicated in the multivalue group applet with a checkmark in the list column labeled Primary. The user
can select a different primary record by clicking the Primary list column in a
different record.
The fields in the master business component (Account in the illustration) that are
populated by the primary record in the multi-value group business component are
called multi-value fields.
Multi-value fields are populated with data from a record in the detail business
component because of the multi-value link. Multi Value Link is a child object type
of Business Component that defines a master-detail relationship (based on a link)
to embed in the business component. These embedded master-detail relationships
are used to expose fields from the detail business component as fields directly in the
master business component.
NOTE: Most, but not all, multi-value links are set up to designate a primary record.
Those that do not designate a primary use the first record retrieved from the detail
business component. For more information, refer to Primary ID Field on
page 18-54.
18
A multi-value link is based on a link object definition; the link is referenced in the
Destination Link property of the Multi Value Link object definition. It is the link
object definition that specifies the one-to-many relationship between the master
and detail business components. The multi-value link object definition performs
two roles:
To give fields in the master business component access to primary record field
values through the link.
18-42
Version 6.0
1:2
Business
Component
(Multi Value)
Field
Figure 18-21.
The object type box in the diagram labeled (Multi Value) Field indicates that either
field or multi-value field is correct for referring to this object type in this context.
Multi Value Field is a distinct object type, but only in the sense that it can be
accessed in the Object Explorer. It is only a representation of the Field object type.
Multi-value fields are those fields that have a nonblank Multi Value Link property
and a Multi Valued property value of TRUE; all other fields are single-value fields.
Version 6.0
18-43
detail Business
Component
mvg Fields
Multi Value
Link property
primary key
Field (Id)
Source
Field
property
foreign key
Field
primary ID Field
Parent
Business
Component
property
Destination
Link property
Link
Child Business
Component property
Destination
Field property
Legend:
object definition
contained (child) object
definition
property specifies other
object definition
Figure 18-22.
The roles of the object definitions in Figure 18-22 are explained in the following list.
References to the address example refer to the Account Addresses dialog box
illustrated in Figure 18-20 on page 18-41.
the master-detail relationship specified in the link. Fields from this business
component are displayed in the applet from which the multi-value group applet
is initiated. The master business component in the Account Addresses dialog
box example is Account.
NOTE: The Account Addresses dialog box example is illustrated in Figure 18-20
on page 18-41. The explanations of object definitions below refer to this
example.
18-44
Version 6.0
Multi-value fields. Multi-value fields are fields in the master business component
that are populated by the current (typically primary) record in the detail
business component through the multi-value link and link object definitions.
Each of these fields has the name of the multi-value link specified in its Multi
Value Link property, and a Multi Valued property setting of TRUE. A multi-value
field has a blank Column property setting because its values are obtained from
the current record in the detail business component, rather than from the master
business component's base table.
Key field. The key field in the master business component is the primary key for
that business component. The key field is referenced in the Source Field property
of the Link object definition.
Multi Value Link object. The Multi Value Link object definition defines the
relationship between the link object definition and fields in the master business
component, using the following properties:
the two business components. The Link object definition can be used in other
contexts, such as master-detail views or other multi-value links. The multi-value
link identifies the link in its Destination Link property. In the address example,
the link is Account/Business Address.
Version 6.0
Detail business component. The detail business component supplies the detail
records in the master-detail relationship. In the address example, this is Business
Address.
18-45
Foreign key field. The foreign key field contains row ID values that point back to
records in the master business component and uniquely identify the master for
each detail business component record. The foreign key field is used in the
specification of the link; the link identifies the foreign key field in its Destination
Field property. In the address example, the foreign key field is Account Id.
NOTE: There is no foreign key field specified in a link based on an intersection
table.
Primary ID field. The primary ID field in the master business component holds the
row ID value of the primary record for each multi-value group in the detail
business component. It is identified in the Primary Id Field property of the multivalue link. The primary ID field allows the primary detail record to be identified
for each master record. For more information, refer to Primary ID Field on
page 18-54.
18-46
Version 6.0
18
If there is a join object definition that joins a master business component to the
master business component of the link, the existing link can be used in a multivalue link. In essence, the multi-value link is being based on a join to a link. Such
a multi-value link is known as an indirect multi-value link. The configuration of an
indirect multi-value link is illustrated in Figure 18-23.
detail Business
Component
(Business
Address)
Destination Business
Component property
joined Business
Component (Contact)
mvg Fields
Multi Value Fields
Primary ID Field property of MV Link
Multi Value
Link property
Destination
Link property
Source Field
property
master
Business
Component
(Account)
Join (S_ORG_EXT)
Join Specification
(Account Id)
Source Field
property
primary ID
Field
Table
property
Destination
Column
property
Column
property
key Field
base Table
(S_ORG
_EXT)
key
Column
foreign key
Field
Parent Business
Component property
Source
Field
property
Column
property
Child Business
Component
property
Link (Account/
Address )
Destination
Field
property
Legend:
object definition
contained (child) object definition
property specifies other object definition
Version 6.0
18-47
In Figure 18-23, the object definition names have been provided for an example
multi-value link called Business Address in the Contact business component.
Although given the same name as its counterpart in the Account business
component, this is a different object definition. For a comparison of conventional
and indirect multi-value links, review Figure 18-22 on page 18-44.
The primary difference between the Business Address multi-value link in the
Contact business component and in its Account counterpart is that the multi-value
link object definition is found in a business component other than the master
business component.
The Source Field property in the multi-value link in the Contact business
component is nonblank. In a conventional multi-value link this property is blank,
indicating that the Id field in the current business component is used
(corresponding to ROW_ID in the base table). In the indirect multi-value link, the
Source Field property specifies a field in the S_ORG_EXT join called Joined Account
ID. The Joined Account ID field provides the Account Id of the Account that
corresponds to the current Contact.
The roles of the object definitions in Figure 18-23 are explained as follows:
Multi-value fields. Multi-value fields are fields in the join business component that
are populated by the primary record in the detail business component through
the multi-value link and link object definitions. Each field has the name of the
multi-value link specified in its Multi Value Link property, a Multi Valued
property setting of TRUE, and a blank Column property.
Multi-value link. The Multi Value Link object definition defines the relationship
between the link object definition and fields in the master business component,
using the following properties:
Destination Link property. Identifies the link.
Destination Business Component property. Identifies the detail business
component.
Primary Id Field property. Identifies the field from the business component that
the MVL belongs to.
18-48
Version 6.0
Join and join specification. The Join and Join Specification object definitions make
Foreign key field (in the joined business component). The foreign key field represents
a foreign key column in the base table. The foreign key field points to rows in
the joined table, in this case the base table of the master business component.
The foreign key field is used in the implementation of the join.
Base table. The join, join specification, and foreign key field in the join business
component access the base table of the master business component. This makes
possible a join relationship that provides a master business component record
and, indirectly, a set of detail business component records for each join business
component record.
Key field. The key field in the master business component is the primary key for
that business component. The key field is referenced in the Source Field property
of the Link object definition.
Detail business component. The detail business component supplies the detail
records in the master-detail relationship.
Foreign key field (in the detail business component). The foreign key field contains
row ID values that point back to records in the master business component.
These row ID values uniquely identify the master for each detail business
component record. The foreign key field is identified in the link in the
Destination Field property.
Version 6.0
18-49
Primary ID field. The primary ID field in the master business component holds the
row ID value of the primary record for each multi-value group in the detail
business component. The primary ID field is identified in the Primary Id Field
property of the multi-value link. The primary ID field allows the primary detail
record to be identified for each master record. For more information, refer to
Primary ID Field on page 18-54.
The parent component of a multi-value link is usually the same as the business
component in which the MVL is defined. However, by using the Source Field
property of the Link object, it is also possible to create an MVL whose parent
business component is related to the current business component indirectly via a
join or another MVL.
Every MVL in a Siebel application is based on an underlying Link object, whose
name is specified by the Destination Link property of the multi-value link. Every
link, in turn, defines a one-to-many relationship between two business
components. Typically, the business component in which an MVL is defined is the
same as the parent business component of the underlying link on which the MVL
is based.
For example, consider the Business Address multi-value link in the Account
business component:
[MultiValueLink]
DestBusComp = Business Address
DestLink = Account/Business Address
PrimaryIdField = Primary Address Id
CheckNoMatch = TRUE
PopupUpdOnly = TRUE
NoCopy = TRUE
The Destination Link property indicates that this MVL is based on the Account/
Business Address link, which is itself defined as:
[Link]
Name = Account/Business Address
ParentBusComp = Account
ChildBusComp = Business Address
DestField = Account Id
CascadeDelete = Delete
18-50
Version 6.0
The parent business component of this link is the Account business component,
which is also the business component in which the MVL has been defined. In this
typical MVL configuration, the multi-value group will be populated with all the
children Business Address records for whichever Account is currently selected in
the Account business component.
The Destination Link property of this MVL is still the Account/Business Address
link, which defines the one-to-many relationship between Accounts and Business
Addresses. Therefore, in this case, the parent business component of the link (that
is, Account) is not the same as the business component in which the MVL is defined
(that is, Opportunity).
Version 6.0
18-51
In order to determine the appropriate Account record for which to get the children
Business Addresses, the Siebel application looks at the Source Field property of the
MVL. For this particular multi-value link, the Source Field property refers to the
Joined Account Id field in the Opportunity business component, which maps to the
ROW_ID database column from the joined S_ORG_EXT table. Therefore, for each
Opportunity record, the Siebel application will populate the MVG with all Business
Address records that are children of whichever Account is indicated by the ROW_ID
value stored in the Joined Account Id field.
18-52
Version 6.0
However, since Territories and Employees are related only indirectly through
Positions, the Territory MVL is actually based on the Position/Territory link and
must reference Position Id as its source field in order to find the appropriate Position
to use as the parent record for this link:
[MultiValueLink]
SrcField = Position Id
DestBusComp = Territory
DestLink = Position/Territory
NoInsert = TRUE
Since each Employee can hold multiple positions, the Position Id field is itself
defined as a multi-value field (from the Position MVG) in the Employee business
component:
[MultiValueField]
Name = Position Id
Field = Id
MultiValueLink = Position
ReadOnly = TRUE
In other words, the Position MVG in the Employee business component shows all
the child Position records for the current Employee, while the Territory MVG in this
same business component shows all the child Territory records for whichever
Position record is currently selected in the Position MVG.
NOTE: This type of nested multi-value group may have significant performance
implications due to extra sub-queries that the Siebel application must execute.
Furthermore, it is often unclear to the user that changing the currently selected
value in one MVG will cause another MVG to display an entirely new set of records.
Version 6.0
18-53
Primary ID Field
18
The Link and Multi Value Link object definitions have a set of properties that you
can use to specify to the system how to obtain the record ID of the first record to
display of the detail table each time the master record changes. These properties are
Primary Id Field, Use Primary Join, and Auto Primary. Together they implement the
primary ID field.
The basic concept behind a primary ID is that its faster for a Siebel application to
retrieve one primary record from the MVG business component through a join than
retrieve all of them through a subqueryespecially since users can see values from
only one child record until they open up the MVG applet.
For example, in the Account business component the primary ID field for the
Address multi-value group is called Primary Address Id. The Account Address Mvg
Applet displays the corresponding multi-value group. The primary record, indicated
with a checkmark in the list column labeled Primary, has its row ID stored in the
Primary Address Id field in the account record. Each time there is a different account
record displayed, the multi-value fields for the Address load the primary Business
Address records values only. It is not necessary to query the Business Address
business component for multiple rows. This can be a significant performance
enhancement, especially in list applets.
NOTE: In a multi-value group applet, the list column that displays the check mark
(indicating the primary/nonprimary status of each record) obtains its data from a
system field called SSA Primary Field. This field does not appear in the Object
Explorer or Object List Editor, but may be referenced by a list column for this
purpose.
The benefit of using a primary ID, from the systems standpoint, is that it converts
a one-to-many relationship into a one-to-one relationship. This enables the row
retrieval process to be simplified from a query with subqueries to a simple join
query. This substantially improves performance, especially when the user is
scrolling through the records of a list applet that displays the master.
18-54
Version 6.0
The properties of Link or Multi Value Link object types used to implement a primary
ID field are as follows:
Primary ID Field property. This property specifies the name of the field in the
master business component that holds the row ID values pointing to primary
records in the detail business component.
Use Primary Join property. The Use Primary Join property is a TRUE/FALSE
property that turns the Primary Join feature on or off. If TRUE, the primary detail
record is obtained for each master record through a join on the primary ID field.
If FALSE, the detail table is queried again with each master record change.
Auto Primary property. This property setting determines how row ID values are
populated in the primary ID field, based on a system-supplied list column
labeled Primary in the multi-value group applet. The user can manually select
the primary. Auto Primary determines how, if at all, the primary selection is
defaulted. The possible values for Auto Primary are DEFAULT, SELECTED, or
NONE as follows:
SELECTED only pertains when there are several multi-value links pointing to the
same detail business component. This is the case for the Bill To Business
Address and Ship To Business Address multi-value links in a standard Siebel
Sales application. These multi-value links exist under both the Order and
Account business components. In this case, an example of the desired behavior
is as follows: if a primary is not set for the Bill To address, then when the Siebel
application does a separate query to bring back all addresses associated with the
account (or order), it will check to see whether one of the addresses has already
been selected as primary for the Ship To address and, if so, it will SELECT (that
is, set) that address as the primary for Bill To address as well.
Version 6.0
18-55
When the application encounters a master record where the primary foreign key
is NULL or invalid, it performs a secondary query to determine if there are detail
records in the multi-value group. If it finds there are no detail records, it sets the
primary ID field to the special value NoMatchRowId.
When the application encounters a master record where the primary foreign key
has the value NoMatchRowId, this indicates to the system that there are no
detail records in the multi-value group and the secondary query is not
performed.
If you set Check No Match to TRUE, the Siebel application will perform a secondary
query whenever the outer join on the primary fails, or is set to NULL or
NoMatchRowId. If the secondary query finds a matching detail record, it updates
the foreign key with that records row ID, provided the MVL has an Auto Primary
property setting of DEFAULT. If no matching child record is found, or Auto Primary
is set to NONE, the application leaves the existing value intact.
A Check No Match setting of TRUE can have serious negative performance
consequences. If a multi-value group is sparsely populated (that is, most master
records dont have any detail records in the multi-value group) and has Check No
Match set to TRUE, it will be almost as slow as not having a primary join at all.
18-56
Version 6.0
Check No Match should be set to FALSE for most multi-value links because of the
performance consequences. It should only be set to TRUE if the multi-value group
could possibly have records added to it without going through the MVG itself. For
example, account addresses might actually be inserted by means of the Business
Address multi-value group on the Contact business component instead of the
Address multi-value group on the Account business component. Also, if records can
be added to the detail business component through EIM, the TRUE setting is the
appropriate one.
18
Destination Link property. The name of the link in which the master-detail
relationship is specified.
component.
Version 6.0
18-57
Cascade copy can be implemented for a many-to-many relationship, that is, where
the destination link has a nonblank Inter Table property value. In this circumstance,
new intersection table rows are created rather than new detail business component
records. New associations are created rather than new records. These associations
are between the new master and the existing detail records.
NOTE: Cascade copy has the potential to violate the requirement of uniqueness of
values in indexes. For this reason, if copying the detail records would cause any
unique index violations, the copy operation is aborted by the system.
18-58
Version 6.0
Business Objects
18
Version 6.0
18-59
Every view has a business object assigned to it. A master-detail view can implement
only a one-to-many relationship supported by its underlying business object. For
example, the view in Figure 18-24 can display a one contact to many opportunities
relationship because Contact and Opportunity have this kind of relationship in the
Contact business object, and the view (Contact Detail - Opportunities View) uses
the Contact business object. In order to implement a view displaying the reverse
relationship (one Opportunity master record to many Contact detail records), the
Opportunity (rather than Contact) business object would be required as the
business object of the view.
Figure 18-25 displays the abstract relationships between the Business Object object
type and two user interface object types, View and Screen.
assumed
relationship
Screen
Business
Object
required
relationship
through property
settings
Views
Many views are built based on the same business object. Typically only one screen
is associated with one business object. A business object is not assigned to a screen
through a property setting the way a business object is assigned to a view. The
relationship between a business object and a screen is an informal one dictated by
good design practice, and it is not strictly enforced by the Siebel Tools software. In
general, all of the views in a screen are implementations of the same business
object.
The logical database diagram in Figure 18-26 illustrates the complete set of one-tomany relationships between business components in a single business object, in
this case the Account business object.
18-60
Version 6.0
Account
Account
Attachment
Account External
Product
Baseline
Consumption
Account Product
Shipments
Action
Contact
Store Conditions
Customer Product
In Store Visit
In Store Activity
MDF
MDF Checkbook
MDF Promotion
Account
MDF Allocation
No Join
MDF Promotion
Account Product
Opportunity
Proposal
Promotion
Account
Recommended
Activity
Service
Agreement
Promotion
Account Note
Promotion
Account Product
MDF Allocation
Order
Quote
Legend:
Business Component
Service Request
1:M relationship
(through a Bus. Object
Component and a Link)
Sub Account
Version 6.0
18-61
The boxes represent business components, and the three-way connectors represent
one-to-many relationships. A one-to-many relationship is implemented with a
business object component and a link, as is explained in How a Business Object Is
Constructed on page 18-63.
The business object collects a logical grouping of business components and a set of
links that associate them. Some of the same business components and links may
appear in other business objects. The same two business components may have a
one-to-many relationship in one business object, and the opposite one-to-many
relationship (or no relationship) in another business object.
However, within the context of one business object, there is an unambiguous set of
relationships between the business components in the grouping. When a particular
business object is active because a view that uses it is active, the population of data
records in business components in the business object is based on the relationships
in the business object.
The benefit of business objects is reusability. The same business component can be
used in various different sets of relationships by including it in multiple business
objects.
NOTE: Not all business components included in a business object participate in
master-detail relationships. Business components that are not part of the business
model may also be incorporated in the business object. A Business Component
object makes such a business component available for use in views based on the
specified business object.
18-62
Version 6.0
18
Screen View
View
Business Object
Component
Link
1:2
Business
Component
Legend:
Object type
1:M relationship through object hierarchy
1:M relationship through properties
Version 6.0
18-63
Business Object
Business Object
Component
Link
property
BusComp
property
Link
Parent
Business
Component
property
Child
Business
Component
property
master
Business
Component
Legend:
object definition
detail
Business
Component
contained (child)
object definition
property specifies
other object def
Business Object object type. The business object is a parent for multiple business
18-64
Version 6.0
Link object type. One link is referenced by each business object component. The
Link object definition specifies the master-detail relationship that is being
included in the business object by way of the business object component. Links
are described in Links on page 18-34.
Master business component. The master business component is the one in the
Detail business component. The detail business component is the many in the
18
Version 6.0
User properties
Appendix E
Chapter 3
18-65
18-66
Version 6.0
19
. . . . . . . . . . . . . . . . . . . . . . . . 19-8
Applets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-9
Applet Styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-14
Form Applets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-14
List Applets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-23
Display Format Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-31
Popup Edit and Multi Line Properties . . . . . . . . . . . . . . . . . . . . . . 19-31
Type Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-32
Configuring Field Level Prompts . . . . . . . . . . . . . . . . . . . . . . . . . 19-32
Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-33
Configuring Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-36
List-Form Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-38
Master-Detail Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-40
Thread Bars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-43
Drilldown Behavior in a View . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-44
Applet Toggle Behavior Within a View . . . . . . . . . . . . . . . . . . . . . . . . . .19-49
Screens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-52
Finds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-53
Configuring the Find Dialog Box . . . . . . . . . . . . . . . . . . . . . . . . . 19-54
Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-56
Version 6.0
19-1
Toolbars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-58
The Toolbar Object Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-60
The Command Object Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-60
The Toolbar Item Object Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-62
Chapter Summary and Where to Get More Information . . . . . . . . . . . 19-63
19-2
Version 6.0
19
This chapter describes objects in the User Interface Objects Layer in the Siebel
application architecture.
Figure 19-1 shows user interface objects in a typical Siebel application session.
Screen: Opportunities
View: Contacts
Applet: Opportunity
Entry
Applet: Contact List
Application: Siebel
Sales Enterprise
Version 6.0
19-3
19
As shown in Figure 19-2, the Application, Screen, View, and Applet object types
have hierarchical (one-to-many) and peer-to-peer (one-to-one) relationships based
on parent/child object type relationships and property settings.
Screen
View
Applet
Control or List
Column
Legend:
Field
Object type
1:M relationship through object hierarchy
1:M relationship through properties
19-4
Version 6.0
Two additional object types are introduced in Figure 19-2, Control and List Column,
shown together in a single box:
Control object type. One Control object definition corresponds to one data control
in a form applet, such as a text box, check box, or command button. A control
is something in the applet with which the user can interact. A control usually
either exposes data from one field in the business component, or invokes
programming logic (in the case of a PushButton control).
For more information, refer to Form Applet Controls on page 19-16.
List column object type. A List Column object definition corresponds to one
column in the scrolling list table in a list applet, and to one field in the business
component.
For more information, refer to Configuring the List Columns on page 19-27.
Version 6.0
19-5
The full set of user interface object types and their relationships is illustrated in
Figure 19-3.
Application Find
Page Tab
Screen Menu
Item
Find
Screen
Screen View
Find Field
Find View
View
Applet
List
Control
List Column
Business Object
Component
Field
Pick Map
Business
Component
Pick List
Legend:
Link
Join
Object type
1:M relationship through
object hierarchy
Join
Specification
19-6
Version 6.0
The following additional user interface object types are introduced in Figure 19-3:
List object type. List is a child object type of Applet. A List object definition
specifies property values that pertain to the entire scrolling list table and
provides a parent object definition for the list columns.
Screen View object type. A screen view object definition associates a view with
the screen views parent screen object definition.
Page Tab object type. A page tab object definition associates a screen to the page
tabs parent application object definition and includes it as a tab in the Tab bar.
Screen Menu Item object type. A screen menu item object definition associates a
screen to the application and includes the screen as a menu item in the Screens
menu.
Find object type. A Find object definition adds a type of record to search for to
the Find dialog box for the application.
Refer to Finds on page 19-53 for information on the Find, Application Find,
Find Field, and Find View object types.
Find Field object type. A Find Field object definition adds a search field to a find.
Find View object type. A Find View object definition adds a view to the list of
Version 6.0
19-7
19
You can centrally control the font characteristics of the user interface of your
dedicated client, Windows thin client, or Java thin client application by setting
properties of various object types. User interface elements you can define using this
method include controls, applets, and views.
You can also set an application-wide default text style in the application
configuration (.cfg) file.
There is a top-level object type called Text Style.
The following object types also support a Text Style property:
Applet (specifies the default text style to be used by the controls in the applet)
View (specifies the default text style to be used by the controls in the applets
that appear in the view)
In addition, the Control object type has these properties that control color and text
style:
Foreground Color (space-separated RGB valuesfor example, 255 255 255 for
white)
Background Color
Text Style
19-8
Version 6.0
Applets
19
An applet is a data entry form, composed of controls, that occupies some portion of
the Siebel application window. An applet can be configured to allow data entry,
provide a scrolling table of data rows, or display business graphics, a navigation
tree, or a Web browser. It provides viewing, entry, modification, and navigation
capabilities for data in one business component.
An applet is always associated with a business component. Although the same
business component can be associated with multiple applets, an applet is associated
with only one business component.
NOTE: To add a static image to an applet, you can create and import a new bitmap
List applet. A list applet displays data in a scrolling list table format, much like a
spreadsheet or word processor table. Rows in the list applet correspond to
records in the business component; list columns in the list applet correspond to
fields in the business component. A list applet appears in Figure 19-4.
Version 6.0
19-9
Form applet. A form applet displays data in a data entry form. Fields in the
business component appear on the form applet as text boxes, check boxes, and
other standard Windows controls. A form applet appears in Figure 19-5.
Pick applet. A pick applet is a dialog box window that appears when a selection
is to be made in a control or list column that has the drop-down arrow icon to
its right. The pick applet provides a list or table of selection values, from which
the user selects a value or record.
In contrast to an association applet, a pick applet is M:1.
A pick applet appears in Figure 19-6.
19-10
Version 6.0
Chart applet. A chart applet graphically displays data from a business component
in a bar chart, line graph, pie chart, scatter diagram or other format. It
summarizes and illustrates data relationships. A chart applet appears in
Figure 19-8.
Version 6.0
19-11
Association applet. An association applet provides the user with the ability to
associate records of two business components that have a many-to-many
relationship. It is invoked from the New button in a multi value group applet, or
the Edit Add New Record menu option in a master-detail view. An association
applet appears in Figure 19-9.
Web applet. A Web applet contains a Web browser that displays Web documents
called Briefings, and may display regular Web pages as well. For more
information about Web applets, see Web Browser Applets on page 22-46.
19-12
Version 6.0
Tree applet. A tree applet is used to create an explorer view that allows the user
to navigate hierarchically through a structured list of object instances. A tree
applet appears in Figure 19-10.
The Applet object type is discussed in general in the following section, followed by
discussion of each applet style in subsequent sections.
Version 6.0
19-13
Applet Styles
19
Applets are created and modified in the Applet Designer in Siebel Tools. In
particular, the Applet Designer is used to add controls to the applet. The Applet
Designer is described in The Applet Designer on page 12-3. In addition to visual
attributes that are manipulated in the Applet Designer, there are properties to
configure in the applet object definition and its child object definitions.
Prior to laying out the applet in the Applet Designer, and configuring the applet and
child object definitions in the Object List Editor, you should complete the following
prerequisites:
Form Applets
19
A form applet presents business component information in a data entry form layout.
An example of a form applet in Siebel Sales appears in Figure 19-12.
19-14
Version 6.0
Data entry is performed with text boxes, check boxes, buttons, and similar visual
constructs known collectively as controls (also called data controls). The Control
object type implements data controls. The controls that display data show a value
from a particular field in the current business component row. The relationships
between objects used to implement a form applet appear in Figure 19-13.
Applet
Control
Legend:
Object type
Field
The applet object definition provides the properties that belong to the entire
applet, such as the Name, Business Component, Width, and Height, and
specifies in the Class property that the applet is a form applet (CSSFrame class).
The control object definitions typically identify individual data controls in the
data entry form, such as text boxes and command buttons. A control either
corresponds to one field in the business component, or invokes program logic
(in the case of a button control).
Version 6.0
19-15
Each data control is added to the applet using the Applet Designer. The Applet
Designer is a visual application design editor in which you add, reposition and
resize data controls and other user interface constructs such as list columns, chart
elements, and tree nodes. When a data control is added to the applet in the Applet
Designer, a control object definition is automatically created for it. You assign
properties to each control object in the Object List Editor (or Properties window)
following its creation. For information on the process of adding data controls to
Applets using the Applet Designer, see The Applet Designer on page 12-3.
Name property. The name of the control, for identification by other objects.
Type property. Specifies the style of the control. Valid values are ActiveX Control,
Caption property. The Caption property provides descriptive text in, on or near the
control, depending on the type of the control. The caption specified for a button
control is the text that appears on the button face. The caption in a label control
is the text of the label. The caption in a text box control is the text that appears
above or to the left of the control, although generally a separate label control is
used to identify a text box, and the text box caption is left blank. The Caption
property is unspecified for control styles which do not have identifying text. An
example of a text box with a caption or separate label is shown in Figure 19-14.
Caption in a separate label control, or
specified as a property of the text box
Text box control
19-16
Version 6.0
Sequence property. An integer value specifying the tab sequence of this control
relative to other controls in the applet that have the Tab Stop property set to
TRUE. Tab sequence is the order in which the tab key moves the highlight from
control to control on the applet. The lower the integer value you enter for
sequence in a particular control in the applet, the sooner the tab key will access
this control relative to others.
A faster way to set tab order for the controls in the applet is to use the
Format Set Tab Order menu option when the Applet Designer is active, rather
than individually setting Sequence values.
Tab Stop property. This is a TRUE/FALSE value indicating whether the control is
included in the tab sequence. If set to FALSE, the control will not be in the tab
sequence.
Each control style (as specified in the Type property) is described briefly in the
following sections.
A text box allows the entry and editing of text, unless the text box is read-only
(in which case it has a gray background, and displays text which cannot be
altered).
Text boxes can be restricted to one line of text in height, or can allow for multiple
lines for description information that typically takes the form of paragraphs.
When it is specified as multiple-line, a vertical scroll bar can be attached at the
right edge to enable the user to scroll up and down through the contents.
Version 6.0
19-17
An ellipsis (...) button is automatically attached to the right edge of a text box
when the MVG Applet property has a non-blank value or the Popup Edit
property is TRUE. This enables the user to call up a multi-value group applet or
multi-line edit box by clicking the button.
The Runtime property must also be TRUE any time the field is supposed to pop
up an MVG, picklist, or widget (for example, a Calendar).
A drop-down arrow () button is attached to the right edge of a text box when
the Pick Applet property has a non-blank value. This enables the user to call up
a picklist or pick applet by clicking the icon.
Static picklists and pick applets are discussed in Chapter 20.
NOTE: Trailing spaces are truncated in data displayed through the Siebel application
Field property. The field in the business component from which the text box
displays data.
Display Format property. A format specification for data displayed by the text box,
used for numeric, date, currency, and similar non-text data types. Used as
follows:
For DTYPE_NUMBER data, the property can be left blank (indicating that the
appearance of numeric values should be as set in the Regional Settings
section of the Windows Control Panel) or explicitly specified using 0, #, +,
minus sign, comma, and period symbols.
For DTYPE_CURRENCY data, the property can be left blank (indicating that
currency should be as set in the Windows Control Panel), or explicitly
specified using the same symbols as for DTYPE_NUMBER, plus the dollar
sign. The display of currency values can also be controlled in the Currency
Administration view in Applications Administration.
For DTYPE_DATETIME data, one of the keywords Date, Date Time, Date
TimeNoSec, and TimeNoSec may be specified.
19-18
Version 6.0
For DTYPE_DATE data, the property can be left blank (indicating that the
appearance of date values should be as set in the Windows Control Panel) or
explicitly specified using combinations of M, D, Y, and / symbols.
For DTYPE_TIME data, the keyword TimeNoSec can be entered, the property
may be left blank (indicating that the appearance of time values should be as
set in the Windows Control Panel), or a format mask may be explicitly
specified using combinations of H, h, m, s, and : symbols.
For DTYPE_PHONE data, the Display Format property is left blank, and the
Windows Control Panel setting is used.
NOTE: Postal code formatting options are not explicitly provided, and hyphens in
a postal code are not supported. Generally, for postal codes you should use the
DTYPE_NUMBER data type, and a format mask in the Display Format property
consisting of number signs and blank spaces, such as ##### #### for U.S. Zip+4
postal codes.
MultiLine property. A TRUE/FALSE value indicating whether or not the text box is
a multiple-line control (for text box controls displaying data of type
DTYPE_NOTE or DTYPE_TEXT). The default is single line.
return is inserted when the user presses the Enter key while entering text into a
multiple-line text box control. If FALSE, pressing the Enter key has the same
effect as clicking the applet's default button. This property has no effect on a
single-line text box control.
Version 6.0
Vertical Scroll property. A TRUE/FALSE value indicating whether or not the text
box has a vertical scroll bar.
Read Only property. A TRUE/FALSE value. Indicates if the user can edit the value
displayed in the text box.
19-19
Runtime property. This is a TRUE/FALSE value. When the text box control has an
MVG Applet or Pick Applet property setting other than blank, a value of TRUE
in the Runtime property directs the system to activate the ellipsis or drop-down
arrow icon to the right of the text box. A FALSE value directs the system not to
provide the icon. This makes the multi value group or pick applet inaccessible.
NOTE: A Runtime setting of TRUE, combined with blank MVG Applet and Pick
Applet property settings, directs the system to determine from the data type of
the underlying field if an ellipsis icon for a calculator, calendar, or currency
popup applet should be provided.
MVG Applet property. Identifies the applet to use for the multi-value group dialog
box (multi-value group applet). The field for the control must be a multi-value
field, and the Runtime property must be set to TRUE.
Pick Applet property. Identifies the applet to use for the picklist dialog box (pick
applet). The field for the control must have a picklist specified, and the Runtime
property must be set to TRUE.
Popup Edit property. A TRUE/FALSE value indicating whether or not the control
can be expanded into a multi-line edit control for editing values (for text box
controls displaying data of type DTYPE_TEXT).
Text Alignment property. Indicates how to align the text in the control. The value
Button Controls
A button control (Type property value of PushButton) initiates an action when
clicked. A group of four button controls is illustrated in Figure 19-16.
19-20
Version 6.0
Method Invoked property. This is the name of the method invoked when the
Version 6.0
19-21
Group Controls
A group control is a rectangular box that is drawn on the applet, and serves as a
visual aid for organizing the controls in the applet. It does not have data editing or
display capabilities. A group control appears in Figure 19-19.
Caption
Group control
19-22
Version 6.0
The box that surrounds the name and address text box controls in the illustration is
a group control. It is drawn using the Applet Designer. The caption appears in the
upper left corner of the group box, and is specified in the Caption property of the
control.
Label Controls
A label control, like a group control, is a visual aid only. It has no data display or
entry capabilities. Use a label control when you need to place wording somewhere
inside the form applet. Typically a separate label control is used to identify a text
box or check box, rather than the Caption property of the control. There are also
some specialized label controls, such as the Applet Title. These are discussed on
page 19-30.
NOTE: To display the ampersand symbol (&) in a label, you need to use two
consecutive ampersands (&&) so that it will convert to a single ampersand at run
time.
List Applets
19
Version 6.0
19-23
Columns in a list applet are called list columns, and have a corresponding object
type (List Column). Data entry in a list applet is performed in the cells that are at
the intersections of rows and list columns. Cells in different list columns can
function in different ways, depending on the properties of their list columns. Some
examples of cell behavior based on list column properties are:
Cells in some list columns function like text box controls in a form applet. This
kind of cell is used for the display and editing of a text, numeric, date, or
currency value. If the list column is not read-only, you can click the cell to
activate an editing cursor, and edit the text.
Cells in some list columns function like check box controls in a form applet. A
check mark in the box is a TRUE value; an empty box has a FALSE value.
NOTE: When TRUE a check box in a list column holds a check mark symbol,
Cells containing underlined, colored text are drilldown fields. Drilldown fields
let the user navigate from the cell to another view that presents detailed
information about the selected row.
19-24
Version 6.0
The relationships between object types used to implement a list applet appear in
Figure 19-21.
List
Control
List Column
Field
Legend:
Object type
1:M relationship through object hierarchy
A list applet consists of an applet object definition, a list object definition, multiple
list column object definitions, and multiple control object definitions (including, at
a minimum, the list control). These object definitions have the following roles in a
list applet:
Applet object. The applet object definition provides the properties that apply to
the entire applet, such as the Name, Business Component, Width, and Height.
It specifies in the Class property that the applet is a list applet (CSSFrameList
class). Configuration of the applet is described in Applet Styles on page 19-14.
Version 6.0
List object. The list object definition provides properties that govern how the
scrolling list table operates, such as whether or not totals appear at the bottom
of numeric columns, and whether or not to include an alphabetical search tab
bar. Configuration of the list object definition is described in Configuring the
List on page 19-26.
19-25
List Column object. Each list column object definition identifies one list column
in the scrolling list table. A list column corresponds to one field in the business
component. Configuration of the list columns is described in Configuring the
List Columns on page 19-27.
Control object. Each Control object definition identifies one visual construct in
the list applet. With the exception of the list control, they all appear outside of
the scrolling list table. Typical controls in the list applet include the Title control,
which indicates the current record and the total number of records listed.
Sometimes a set of navigation command buttons are also included in a list
applet. Configuration of the controls in the list applet is described in
Configuring the Controls on page 19-30.
NOTE: The list object definition and the list control are two different object
definitions, although both are used in the configuration of the scrolling list table
that provides most of the list applets functionality. The list object definition
serves as a parent to the list column object definitions, and has properties that
govern list table behavior. The list control is the visual construct that is initially
drawn on the applet, and governs the height, width, and location of the list table
in the applet layout.
19-26
Version 6.0
Name property. The name of the list column, for reference by other object
definitions. The Name must be unique among the child list column object
definitions of the list.
Field property. This property identifies the field from which the list column
derives its values.
Sequence property. An integer value that determines the order in which the list
column appears relative to the other list columns (from left to right) when the
applet appears in a Siebel application. The lower the integer value you enter for
the sequence in a particular list column in the list, the closer to the left edge this
list column initially appears relative to others.
The sequence specified in Siebel Tools is a default only. The user can reposition
list columns.
NOTE: The Sequence property values are automatically set in the Applet Designer
Display Name property. The text which appears at the top of the list column,
identifying the column.
Display Format property. A format specification for data displayed by the list
column. It is used for numeric, date, currency, and similar non-text data types.
For details, refer to Form Applet Controls on page 19-16.
Version 6.0
MVG Applet property. This property identifies which applet to use for the pop-up
multi-value group if the field for the list column is a multi-value field.
Pick Applet property. This property identifies the applet to use for the pop-up pick
applet if the field for the list column has a pick list specified.
19-27
Popup Edit property. A TRUE/FALSE value indicating whether or not the cell in
the list column can be expanded into a multi-line edit box for editing values.
Generally, a pop-up edit box is used for the entry of longer text, such as a
sentence or paragraph. A pop-up edit box is appropriate for entry of notes,
comments, and instructions. The user clicks the cell to obtain an ellipsis button
at the right edge of the cell. When the user subsequently clicks the ellipsis icon
button, the pop-up edit box appears. An example of a pop-up edit box appears
in Figure 19-22.
Text Alignment property. Specifies the alignment of text in the list column. Valid
19-28
Version 6.0
For a complete description of properties of the List Column object type, see the
Siebel Object Types Reference.
Version 6.0
19-29
Button controls
The controls illustrated in Figure 19-24 are not necessarily typical for a list applet,
except for the list control and applet title. The controls in Figure 19-24 are described
as follows:
ListControl value. The list control is a control with a Type property setting of
ListControl. It is named List. Its properties primarily govern the size and position
of the scrolling list table in the list applet. It is automatically added when a new
list applet is created in the Applet wizard.
NOTE: The list control is a different object definition than the list object
AppletTitle label control. This is a label control named AppletTitle. The applet title
appears in the tab at the upper left of the applet. The title text in the control is
automatically populated by the value in the Title property of the applet at run
time.
19-30
Version 6.0
New button. This button control inserts a new, blank record in the list table for
user data entry. The New, Delete, Copy, and Cancel buttons appear in
Figure 19-24.
Delete button. This button control deletes the current record in the list table.
Copy button. This button control duplicates the current record in the list table.
The user can then edit the newly created copy row.
19
You can specify an explicit format mask in the Display Format property of a control
(in a form applet) or list column (in a list applet) using various symbols.
For DTYPE_DATETIME you can also specify Date, Time, or TimeNoSec in the
Display Format property that will display the specified portion using the format in
the Windows Control Panel. The Display Format property is ignored for values of
DTYPE_PHONE.
19
You can define list columns and controls with a Popup Edit property set to TRUE.
This allows the user to click on an ellipsis to bring up a window that displays and
allows editing of multiple lines.
Set this property to DTYPE_TEXT or DTYPE_NOTE.
A textbox control can be defined as Multi Line. This allows multi-line editing and
use of scroll bars and does not require invoking an additional window, but takes up
more space in the applet. You can also define the same control with Popup Edit to
allow a greater number of lines to be displayed.
Version 6.0
19-31
Type Property
19
For a control or list column based on a field with type of DTYPE_DATE, Siebel
applications enable the pop-up of a calendar control at run time.
For a control or list column based on a field with type of DTYPE_TIME, Siebel
applications enable the pop-up of a time control at run time.
If the underlying field has a type of DTYPE_DATETIME, Siebel applications enable
the pop-up of a combination calendar/time control at run time.
For a control or list column based on a field with DTYPE_NUMBER and
DTYPE_INTEGER, Siebel applications enable the popup of a calculator at run time.
To cause a run-time pop-up control to appear, the run-time property of the list
column or control must be set to TRUE.
If there is a picklist defined for a field that has one of the types mentioned above,
then a picklist pops up at run time, instead of a calculator or calendar.
19
There are two places where users can get field level prompts:
Messages Screen.
4 In Siebel Tools (connected to the same database where the message texts are
stored), select the correct language, and then compile the projects you have
modified.
19-32
Version 6.0
Views
19
A view is a collection of applets that appear at the same time on the same screen.
A view can be thought of as a single windows worth of data forms (applets). A
Siebel application window displays one view at any one time. The currently active
view is changed by selecting a different view from the View bar or from a menu
suboption in the Screens menu.
NOTE: You should not modify server views.
List-form view. In a list-form view, a list applet and a form applet display data from
the same business component. The list applet appears above the form applet.
The form applet presents the same information as the currently selected record
in the list applet, with a different arrangement that may include more fields. The
form applet also has buttons that provide Add, Delete, and Copy functionality.
Version 6.0
19-33
19-34
Version 6.0
Master-detail view. In a master-detail view, a form applet and a list applet display
data from two business components related by a link. The form applet appears
above the list applet. The form applet displays one record from the master
business component in the master-detail relationship. The list applet displays all
of the records from the detail business component that have as their master
record the record currently displayed in the form applet. A master-detail view
appears in Figure 19-26.
The record displayed
in the form Applet...
a different applet for display of records from each detail business component.
Version 6.0
19-35
Configuring Views
19
A view displays one or more applets in rectangular regions of the display area called
sectors. Sectors are numbered zero through seven, as illustrated in Figure 19-27.
An applet can occupy any contiguous set of sectors that forms a rectangle. Two
applets cannot share the same sector; they must be non-overlapping.
On certain video monitors, especially laptops (or computers configured to display
in VGA rather than Super VGA mode), only a three-sector high grid will display,
rather than the four sectors. One row of two sectors will be unavailable for display
in such an environment. For this reason a horizontal pair of sectors is designated
by the developer as the drop sectors. The drop sectors will display on monitors with
sufficient space, and be removed from the applet(s) containing them on other
monitors. For example, a list applet can be configured to use sectors 2, 3, 6, and 7,
with sectors 3 and 7 designated as drop sectors.
19-36
Version 6.0
Version 6.0
19-37
List-Form Views
19
In a list-form view, a list applet and a form applet display data from the same
business component. The list applet appears above the form applet. The form applet
presents the same information as the currently selected record in the list applet.
Figure 19-28 illustrates the Account List View, which is a list-form view.
List Applet listing
all records
19-38
Version 6.0
The form applet displays information from the same account, but in a form which
can be viewed without scrolling. Notice the ellipsis and down-arrow icons to the
right of some text boxes in the form applet. These indicate picklists and multi-value
group applets that are also available from the list applet. Ellipsis and down-arrow
icons are not visible in the list applet until list column cells containing them are
clicked.
The applets in this view are Account List Applet and Account Entry Applet. Both
are based on the Account business component. The list applet occupies the first
three rows of sectors; the third row is dropped for small screens. The form applet
occupies the last row of sectors (3 and 7).
The Account List View uses the property settings in Table 19-1.
Table 19-1.
Version 6.0
Property
Value
Business Object
Account
Drop Sectors
2and6
Title
My Accounts
19-39
Master-Detail Views
19
In a master-detail view, typically a form applet and a list applet display data from
two business components related by a link. The form applet appears above the list
applet. The form applet displays one record from the master business component
in the master-detail relationship. The list applet displays all of the records from the
detail business component that have as their master record the record currently
displayed in the form applet.
NOTE: In another variant of the master-detail view style, the view can consist of two
list applets. The records in the detail list applet are detail records of the currently
selected record in the master list applet.
Figure 19-29 illustrates the Opportunity Detail - Products View, which is a masterdetail view.
Form applet containing
the master record
19-40
Version 6.0
The list of Products for this Opportunity appears in the list applet. If a different
Opportunity appeared in the form applet, a different set of Products would appear
in the list applet.
The applets in this view are Opportunity Form Applet and Opportunity Product
Applet. They are based on the Opportunity and Product business components,
respectively. The business object associated with the view is Opportunity. In the
context of the Opportunity business object, the master-detail relationship between
Opportunity and Product is based on the Opportunity/Opportunity Product link.
These relationships are indicated in Figure 19-30.
Business Object
master-detail View
Business
Object
property
master Business
Object
Component
SectorN
Applet
properties
master
Applet
detail
Applet
detail Business
Object
Component
BusComp
property
Business
Component
property
Business
Component
property
master Business
Component
detail Business
Component
Link
property
Parent
Business
Component
property
BusComp
property
Link
Child Business
Component property
Legend:
object definition
contained (child) object definition
property specifies other object definition
Version 6.0
19-41
The object definitions in this diagram are briefly described in the following:
Master applet. The form applet used to display the master record.
Detail applet. The list applet used to display the corresponding detail records.
Business object. Business object associated with the view by means of the
Business Object property of the View object. The business object establishes the
context that determines the active link between the business components
associated to the two applets.
Business object components. The business object components are child objects of
Master business component. The business component associated with the master
applet.
Detail business component. The business component associated with the detail
applet.
Link. The link that specifies the master-detail relationship between the master
and detail business components. It is identified in the Link property of the detail
Business Object Component object.
19-42
Version 6.0
Thread Bars
19
The Thread Bar is a navigational tool for the user. It provides the means to navigate
from view to view among the views previously visited in the current screen. The
Thread Bar is identified in Figure 19-31.
Thread Bar
Each arrow-shaped box in the Thread Bar identifies a view (based on a different
business object) that the user has visited. The name of the view is given in the box.
Typically, the name of the business component record which was active in the
upper applet is also shown.
The following properties in each view object definition are set in order to configure
thread behavior:
Thread Applet property. Specifies which of the applets appearing in the view
supplies the data value for the thread field.
Thread Field property. The name of the field whose data value is included in the
arrow box, following the Thread Title. This is a field in the business component
associated with the applet identified in the Thread Applet property.
Thread Title property. The text used in the thread to identify the view. For example,
in most of the views displaying Accounts (such as Account List View and
Account Detail - Contacts View), the Thread Title is Acct.
Version 6.0
19-43
19
The Drilldown Object object type is a child of Applet, used primarily in list applets.
It enables the user to drill down from a cell in a list applet (or via a popup menu in
either a form or list applet) to a particular view. Drilldown controls or list columns
in a list applet in Siebel applications consist of colored, underlined text, much like
a hypertext link in a Web browser. Drilldowns in a list applet are illustrated in
Figure 19-32.
Drilldowns in Opportunity
list column
In the standard (or static) drilldown configuration, a specific view is referenced for
each hyperlink list column or control. Clicking the hypertext in the list column or
control takes you to that view under all circumstances. Another kind of drilldown
configuration, dynamic drilldown, is discussed in Dynamic Drilldown Behavior
on page 19-47.
19-44
Version 6.0
The drilldown options available in the pop-up menu are in the format Goto xx,
where xx is the title of a list column, or it can be explicitly specified by the value in
the Menu Text property of the Drilldown object. The Goto Opportunity and Goto
Account options in the pop-up menu in Figure 19-33 parallel the underlined text in
the Opportunity and Account list columns, respectively, in Figure 19-32.
Drilldowns are available in the right-click popup menu for both list applets and form
applets. Drilldowns are available as hypertext only in list applets.
Version 6.0
19-45
Figure 19-34 displays the property relationships between the list applet, business
component, and view in a static drilldown configuration.
Business
Component
Applet
hyperlink
Control or
List Column
Drilldown
Object
View
Field
Hyperlink
Field
source Business
Component
hyperlink
Field
source Field
Source
Field
Business Component
Destination Field
View
destination Business
Component
Id Field
Legend:
object definition
contained (child) object definition
property specifies other object definition
One Drilldown Object object definition is specified for each list column in the list
applet to have drilldown functionality.
19-46
Version 6.0
Business
Component
property
Applet
Business Component
hyperlink Control
or List Column
Field property
Hyperlink
Field property
Drilldown Object
Dynamic Drilldown
Destination
hyperlink Field
Field property
type Field
Destination Drilldown
Object property
View
property
View
Legend:
object definition
contained (child) object definition
property specifies other object definition
Version 6.0
19-47
19-48
Version 6.0
19
In this applet, clicking the toggle button activates the Opportunity Contact Form
Applet in place of the current applet. Clicking it again in the Opportunity Contact
Form Applet reactivates the Opportunity Contact List Applet. The applet toggle
feature enables the user to cycle between applets that display the same information
in different formats (such as form, list or chart), or between applets that display
portions of a form too large for the view.
Version 6.0
19-49
For applets involved in a toggle cycle the search spec on a form or detail applet will
be applied first. Therefore, to apply a search spec on a list applet in a toggle cycle,
you need to add the search spec for the form or detail applet involved, as well.
Static toggle behavior for an applet is configured with one or more Applet Toggle
child object definitions of the applet object definition. The parent applet object
definition specifies the first applet to appear in the view. Each child applet toggle
specifies an additional applet to which the user can cycle. In the case of the
Opportunity Contact list and form applets, the list applet is the parent object
definition and the form applet is identified in the Applet Toggle child object
definition.
All applets in the toggle cycle must have the same size and shape in sectors.
Whenever an applet has one or more Applet Toggle child object definitions, you will
need to configure the applet so that the toggle icon appears. In applets that do not
have applet toggle children, it should not be present. The easiest way to add the
toggle icon button to the applet is to open an applet in the Applet Designer that
contains this icon button, and copy and paste the button into the applet you are
configuring.
For the purposes of static toggle configuration, the Applet Toggle object type has the
following properties:
Sequence property. Identifies the order in which the applets identified in applet
toggles appear in the toggle cycle relative to one another. The lower the number,
the earlier in the sequence.
The applets specified in the applet toggle object definitions and their parent applet
do not have to be based on the same business component. Any combination of
business components is permitted. This is true only for static applet toggle behavior,
and not dynamic.
In addition to configuring the Applet Toggle object definitions, you must add the
toggle icon button to the applet in the Applet Designer. This is a standard button
control, with a Method Invoked property setting of CycleToggle.
19-50
Version 6.0
Because both are based on comparing a field to preset values, dynamic applet toggle
behavior is very similar to dynamic drilldown. The difference is that dynamic
drilldown navigates to one of various views based on the field value, and applet
toggle navigates to one of various applets. Also, dynamic drilldown is in response
to a user action (the user clicks on hypertext) whereas dynamic applet toggle is in
response to movement from record to record.
Dynamic applet toggle behavior, like static toggling, is configured with Applet
Toggle child object definitions of an applet. The parent applet should be the one you
want displayed when all of the test conditions fail; that is, the default applet. One
child applet toggle is specified for each applet you want to have appear when a
specific condition is met. All applets specified in the child applet toggles, as well as
the parent applet, must be based on the same business component. This is true only
for dynamic applet toggle, not static.
NOTE: Activities with a Start Time are displayed in the Daily Agenda applet, and
Activities without a Start Time are displayed in the Activity List Applet. An activity
never appears in both the applets at the same time.
Version 6.0
19-51
Screens
19
Tab bar
A screen is implemented as a Screen object definition with Screen View child object
definitions. Each Screen View object definition associates an existing view to the
screen. Properties within each screen view object definition specify the screen's
appearance in the View bar and Screens submenus.
NOTE: You can create two different views based on different business components;
however, in that situation the Siebel application cannot keep track of record context
and you will not be able to navigate between them.
19-52
Version 6.0
Finds
19
Find object definitions specify the Find dialog box that is invoked from the
Edit Find menu option in a Siebel application. This is illustrated in Figure 19-38.
Each item in the Find What? list on the left identifies a business component whose
records can be searched for matching values that have been entered in one or more
of the text boxes on the right. In the illustration, Contact is currently selected in the
Find What? box (also indicated in the title bar). This means that the user can search
for Contact records based on some combination of last name, first name, account,
and site search values. The records will be searched based on the contents of the
Last Name, First Name, Account, and Account Location fields in the Contact
business component.
The user may enter partial search strings in any of the search field text boxes. When
searching for a character combination at the beginning of the field values, the
combination can be entered without any special characters, as in Bo to locate all
account names beginning with Bo. When searching for the combination anywhere
in the field values, the search string should be preceded by the asterisk (*)
character, as in *bo. The search values are not case-sensitive.
After the user clicks the Find button, the system navigates to a predetermined view,
and displays all records matching the users criteria.
Version 6.0
19-53
19
The Find dialog box is configured by means of Find object definitions and their child
definitions. Find object definitions are added to the application by means of its child
application find object definitions. The Find dialog box is implemented by using
object types illustrated in Figure 19-39.
Application Find
Legend:
Find
Object type
1:M relationship through
object hierarchy
Find Field
Find View
19-54
Find object type. A find object definition creates one entry that can be added to
the Find dialog box.
Application Find object type. An application find object definition associates one
find object definition to one application. Application Find is a child object type
of Application.
Find Field object type. A Find Field object definition adds a search field to its
parent find object definition. The search field appears as a text box on the Find
dialog box when the parent find is active.
Version 6.0
Find View. Each Find View object definition specifies a view that can be activated
from the find. Multiple find views are provided for a find, each with different
visibility, so that one of these views will provide the broadest possible visibility
for the user.
Version 6.0
19-55
Applications
19
Siebel applications are primarily a collection of screens that users can invoke from
the desktop by double-clicking an icon. Each combination of screens that is
appropriate to a specific class of users can be provided as an application. Siebel
Sales, Siebel Service, and Siebel eMarketing are examples of applications. Custom
applications can be configured as well, uniquely combining user interface object
definitions to meet particular requirements of the organization.
In addition to collecting a group of screens and their views, an application object
definition includes the following:
19-56
Version 6.0
Version 6.0
19-57
Toolbars
19
In Siebel applications the user can choose View Customize in the menu bar to
display the Customize dialog box for toolbars. The Toolbars tab in this dialog box
presents a list of existing Toolbars to the user, as shown in Figure 19-40.
On the Toolbars tab, the user can check or uncheck individual Toolbars to indicate
which ones will appear.
The Commands tab of the Customize dialog box lets the user drag-and-drop icons
between the dialog box and Toolbar in the Siebel application window.
19-58
Version 6.0
These two tabs in the Customize dialog box let the user rearrange, remove, and add
existing icons to existing toolbars, and to activate or deactivate particular toolbars.
The user cannot create new toolbars or new icons, but the developer can create new
toolbar icons in Siebel Tools.
The following object types in Siebel Tools are relevant to Toolbar configuration:
Toolbar. One Toolbar object definition is created for each toolbar available to the
user.
Command. One Command object definition is created for each icon button which
can be used as a toolbar icon.
Toolbar Item. A Toolbar Item specifies the default association of a Command (icon
button) to a Toolbar. The user can override the default associations of icon
buttons to Toolbars, but this is how the Toolbars are initially configured until the
user makes such changes.
Bitmap and Bitmap Category. All of the commands that appear in the various
Toolbars within the product use icons that are found in the Command Icons
bitmap category. The name of the bitmap is specified as a property of the
Command object definition.
Version 6.0
19-59
19
For each Toolbar, you create a Toolbar object definition in the Object List Editor.
This provides a named toolbar that the user can activate or deactivate in Siebel
applications, and to which command icons (Toolbar Item object definitions) can be
associated or removed in Siebel Tools or Siebel applications.
The only required property is the Name, which is the name of the Toolbar. This
name will appear in Siebel applications in the list in the Customize dialog box
(Toolbars tab).
19
A Command object definition specifies which method is invoked when the toolbar
icon associated to a command is executed. It also specifies which bitmap appears
on the toolbar icon. Command object definitions are referenced by Toolbar Item
object definitions.
Target property. Specifies the object definition to which the command should be
routed.
The object definition the command should be routed to either Active Applet or
Service. (Do not use Application; it is for internal Siebel use only.)
If your target is Active Applet, your item will be visible in all clients.
If your target is Service, the method to be invoked is defined in the business
service specified by the Business Service property. Your command appears only
in clients implementing that particular service. Your service must handle
CanInvokeMethod and InvokeMethod to enable or invoke your command.
19-60
Version 6.0
Method property. This is the name of the method to invoke when the user clicks
DeleteRecord
GotoFirst
GotoPrevious
GotoNext
GotoLast
NewQuery
ExecuteQuery
ExportQuery
SortAscending
SortDescending
SortDialog
Cut
Copy
Undo
Redo
UndoRecord
GoBack
GoForward
Paste
Search
NewCorrespondence
SynchronizeCalendars
MessageBar
ContextHelp
Find
Dock
Command icons for users into categories such as Edit, File, Help, and View. The
category name appears on the Commands tab of the Customize dialog box in
Siebel applications.
Tooltip Text property. This is the tooltip text which appears when the cursor
lingers on a toolbar icon. For built-in methods, the tooltip text should be left
blank; blank indicates that the method will dynamically supply the text, and
language localization takes place as a part of this process. For developer-defined
methods, you should enter literal text (but note that this turns off language
localization for this tooltip text).
Version 6.0
19-61
19
Command property. Name of the Command object definition that is to provide the
bitmap and method for the toolbar item.
Name property. Name of the Toolbar Item. Used internally in Siebel Tools only.
Sequence property. Integer that orders the toolbar item in the parent toolbar from
left to right. A higher sequence number relative to other toolbar items places this
icon further to the right than the others.
A Toolbar Item object definition can contain one or more hyphens in the Command
property, instead of the name of a Command object. This tells the system to insert
a separator there between icons.
19-62
Version 6.0
19
This chapter described user interface object types and how to use them.
Table 19-2 lists sources of additional information about topics discussed in this
chapter.
Table 19-2.
Version 6.0
Chapter 3
Siebel VB
Siebel eScript
19-63
19-64
Version 6.0
Part 6
Version 6.0
Version 6.0
20
Version 6.0
20-1
20
This chapter explains how to implement pick applets and static picklists in Siebel
applications.
There are two wizards that guide you through many of the steps (outlined in this
chapter) in configuring picklists and pick applets. For more information about the
wizards, see Chapter 13.
Pick Applets
20
Pick applets (shown in Figure 20-1) enable users to select a value from a list, and
have the selection entered into controls or list column cells.
Combo box that initiates
the pick applet
Pick applet
Originating applet
20-2
Version 6.0
When the user clicks the drop-down button in certain text boxes or list column cells,
a dialog box appears. The dialog box is called a pick applet. The pick applet
contains a scrolling list table of available selections in one list column, and the
information from related fields in adjacent list columns. The user selects a row in
the list table and clicks the Pick button to accept the selection (or double-clicks the
selection). The pick applet is dismissed, and the users selection populates the text
box or list column cell in the originating applet (the applet from which the pick
applet was invoked). The users selection can also populate other controls or list
column cells in the originating applet.
For example, when a user clicks the drop-down button in the Account text box, in
the applet labeled Opportunity (the Opportunity Form applet, which is the
originating applet), the Pick Account dialog box (pick applet) appears for the
selection of an account (as illustrated in Figure 20-1 on page 20-2). Once an account
has been selected, and the Pick Account dialog box dismissed, the Account text box
contains the selected account, and the Site text box in the originating applet
contains the site that corresponds to the selected account.
Version 6.0
20-3
Normally the data in the pick applet is from a different business component than
the data in the originating applet. There can be exceptions, for example, picking a
parent Account to an Account or a parent Position to a Position record. When the
user selects a record in the pick applet, the values in certain list columns in the
selected record are copied to corresponding list columns in the originating applet.
This is illustrated in Figure 20-2.
Opty 1
Acct 1
Organic cereals
Smith's Dry Goods
Cambridge
Acct 1
Cambridge
MA
Acct 2
Jones Cleaners
Berkeley
CA
Acct 3
Minneapolis
MN
Opty 1
Organic cereals
Acct 1
Opty 2
Baseball equipment
Acct 3
Opty 3
Chemicals reorder
Acct 2
Opty 4
Plastic bags
Acct 2
Opty 5
Workout videos
Acct 3
Opty 6
Pet food
Acct 1
Account Business
Component
20-4
Version 6.0
1 In the Opportunity Form applet, the user enters information for the Organic
Cereals opportunity.
2 In the Opportunity Form applet, the user clicks the drop-down button (to the
right of the Account text box).
3 The Account pick applet appears.
4 The pick applet displays rows from the Account business component.
5 The user selects Account 1, Smiths Dry Goods, in the pick applet, and dismisses
the pick applet.
6 Account data for Smiths Dry Goods moves to controls in the Opportunity form
applet.
Pick applets maintain the foreign keys that facilitate join relationships. In the
opportunity and account example, there is a foreign key in the Opportunity business
component identifying the account for each opportunity. When the user selects an
account in the pick applet, it populates this foreign key field. This selection
associates the account with this opportunity for future use by the join that uses the
foreign key.
Version 6.0
20-5
Pick applets are implemented using object types illustrated in Figure 20-3.
List
Control
List Column
Field
Pick Map
Join
Legend:
Object type
Join
Specification
20-6
Version 6.0
Figure 20-4 shows the object definitions used in the implementation of a pick applet
in greater detail, and identifies the interrelationships.
originating Applet
Controls populated by
pick Applet & Join
originating Control
pick Applet
List
Controls unrelated to
pick Applet
Field
property
List Columns
Field
property
Pick button
Control
originating Field
Fields populated by
pick Applet & Join
Pick Maps
Field
property
Field
property
Join property
Field
property
join Field
Join
property
Fields unrelated to
Pick Applet
Join
Join
Specification
Pick List
Field
property
PickList
property
Pick List
Business
Component
property
Legend:
object definition
Table
property
Table property
base Table
contained (child)
object definition
property specifies other
object definition
Version 6.0
20-7
The roles of the object definitions in Figure 20-4 are summarized in the following
list and discussed in greater detail in the subsequent subsections. The pick applet
example referenced is the Account pick applet illustrated in Figure 20-1 on
page 20-2.
Originating applet. Contains the control or list column that invokes the pick
applet. After the pick applet is invoked and a value is selected, specific controls
in the originating applet display revised values. In the example the originating
applet is called Opportunity form applet.
Pick applet. Dialog box that is invoked for the selection of a value. The dialog box
is a list applet containing scrolling list table rows. Each row corresponds to a
business component record. In the example, the pick applet is called Account
pick applet.
Pick business component. Business component of the pick applet. Data from fields
in this business component is displayed in the list columns of the pick applet. In
the example the pick business component is Account.
When you click the originating control or list column, it invokes the pick applet.
In the example, the originating control is the Account control.
Originating field. Field in the originating business component that the originating
control represents. It has pick map child object definitions that define the
mapping of fields from the pick business component into the originating
business component. In the example the originating field is the Account field.
Pick list. Referenced by the field of the originating control, and identifies the pick
applets business component. In the example, the Pick List is called PickList
Opportunity Account.
20-8
Version 6.0
Pick maps. Children of the originating field. Each pick map object definition
Version 6.0
Join and join specification. Child object definition of the originating business
component. The join specification is a child of the join and is referenced by the
join field. One of the pick maps updates the join field. A change in the value of
the join field results in the update of all fields whose values are derived from the
join. This update is not as immediate as the update performed by the pick maps.
In the absence of the other pick maps, the data would not be updated until the
user left the view and returned to it. In the example the join is called
S_ORG_EXT and the join specification is Account Id.
20-9
20
The originating applet contains the control or list column that invokes the pick
applet. It may also contain other controls or list columns that are populated by the
users selection from the list applet. The originating applet itself requires no special
configuration.
Figure 20-5 is a detail of the originating applet in Figure 20-3 on page 20-6.
originating Applet
originating Control
Pick Applet
property
Controls populated
by pick Applet & Join
pick Applet
Controls unrelated to
pick Applet
Field property
Business
Component
property
Field
property
Legend:
object definition
originating Field
Fields populated by
pick Applet & Join
contained (child)
object definition
property specifies
other object def
20-10
Version 6.0
As indicated in Figure 20-5, the important property setting for the originating applet
is as follows:
The important child object definitions of the originating applet are the following:
Originating control. Invokes the pick applet, as the result of the users clicking the
drop-down icon. The originating control has the name of the pick applet in its
Pick Applet property. The field specified in the Field property of the originating
control is the originating field, and has pick map child object definitions, as
discussed in Configuring the Originating Business Component on page 20-13.
The control or list column must have its Runtime property set to TRUE.
Controls populated by the pick applet. Each control for which some field in the
Version 6.0
20-11
20
The pick applet is the dialog box that is invoked for the selection of a value. It is a
list applet containing a scrolling list of rows. Each row corresponds to a business
component record in the pick business component.
Figure 20-6 shows a detailed definition of the pick applet from Figure 20-3 on
page 20-6.
originating Applet
originating Control
pick Applet
List
List Columns
Field
property
Pick button
Control
Business
Component
property
pick Business
Component
Fields displayed
in pick Applet
Legend:
object definition
contained (child) object
definition
property specifies other
object definition
20-12
Version 6.0
The pick applet (Applet object type) has the following important property settings:
Type property. A value of Pick List is entered, to indicate that this is a pick applet.
This setting configures the behavior of the dialog box and button controls.
Title property. Name of the pick applet that appears in the title bar.
The pick applet has the following important child object definitions:
Pick button control. Invokes the PickRecord method when clicked. The
PickRecord method locates the pick map child object definitions of the
originating field and, from these, determines which fields to update in the
originating business component. These fields are updated based on the record
selected from the pick business component by the user.
20
Version 6.0
20-13
originating Applet
Controls populated by
pick Applet & Join
originating Control
Field
property
Field
property
Field
property
Fields populated by
pick Applet & Join
Pick Maps
Join
property
Field property
join Field
Join property
Fields unrelated to
pick Applet
Join
Join
Specification
PickList
property
Business
Component
property
Pick List
pick Business
Component
Fields
Legend:
object definition
contained (child)
object definition
Table
property
base Table
20-14
Version 6.0
The originating business component has no important property settings that are
related to its role in the pick process.
The originating business component has the following important child object
definitions:
Originating field. The originating control displays the data from this field. The
originating field has no special role other than being the parent of the pick map
object definitions. Otherwise, it is equivalent to the other fields populated by the
pick applet and join. In the Siebel application architecture, pick maps are
children of an originating field, rather than the originating business component,
in order to support pick applets on more than one field in the business
component.
Pick maps. Children of the originating field. Each pick map defines a
correspondence between a field in the pick business component and one in the
originating business component. These correspondences provide the
information required to immediately update the current originating business
component record with information from the pick business component record
when a record is picked. Additionally, one of the pick maps updates the join
field, and eventually this causes the join to update the fields in the business
component that are dependent on the join.
Each Pick Map object definition has two important properties:
Field property. Identifies a field in the (grandparent) originating business
component that is to be populated by data from a field in the pick business
component, when the PickRecord method is invoked.
Pick List Field property. Identifies a field in the pick business component that
is the source of data for the field in the Field property of the Pick Map object.
Fields in Pick Map objects are updated when the user picks a value from an
unbounded picklist. However, fields in Pick Map objects are not updated by
the picklist when the user types in a new value (the field the user typed
something into is, however, obviously updated with the users entry).
NOTE: Typing a new value into an unbounded picklist does not automatically
Version 6.0
20-15
Join field. Serves as a foreign key in the join used by the pick applet. Typically,
the join field contains Id in its name, such as Account Id or Key Contact Id. It is
identified in the Source Field property of the join specification. The join field is
one of the fields identified in a pick map object definition. When the user selects
a record from the pick applet, the join field is updated (because of the pick map
in which it is identified), and this results in the update of all fields that are based
on the join.
NOTE: Fields in the originating business component, and the controls or list
columns that represent them, initially are updated by the action of the pick
maps. The join and join specification do not update the contents of the applet
until the user leaves the view and returns to it.
Join and join specification. The join and join specification object definitions set up
the join between the base tables of the originating and pick business
components. This join populates those fields in the originating business
component that have this join's name in their Join property.
Fields populated by the pick applet and join. Fields that have the joins name in their
Join property are updated when the join fields value changes. Fields that are
identified in the Field property of Pick Map object definitions are updated when
a selection is made from the pick applet. There is some overlap in the roles of
the pick maps and join, in that both generally update the same fields, but the
action of the pick maps is immediate and that of the join is somewhat delayed.
That is, even though pick maps can update the display value of joined fields (for
example, Account Name) when the user picks a record, pick maps dont
physically copy a value to the joined fieldsonly to the foreign key field (for
example, Account Id).
20-16
Version 6.0
20
The pick business component is the business component of the pick applet. Data
from fields in this business component is displayed in the list columns of the pick
applet.
Figure 20-8 shows a detailed definition of the pick business component from
Figure 20-3 on page 20-6.
pick Applet
originating Business Component
List
originating Field
List Columns
Pick Maps
Join
Field
property
pick Business
Component
Fields displayed in
pick Applet
PickList
property
Pick List
Business
Component
property
Legend:
Table
property
object definition
contained (child)
object definition
base Table
Table property
The pick business component has no important property settings with respect to its
role in the pick process.
Version 6.0
20-17
The pick business component has the following important child object definitions:
Fields displayed in the pick applet. Populate the list columns in the pick applet.
They are referenced in the Field property of corresponding list columns in the
pick applet. Some of the same fields may be identified in the Pick List Field
property of Pick Map object definitions and, hence, have a role in updating
corresponding fields in the originating business component.
Fields not displayed in the pick applet. Although not displayed in list columns in
the pick applet, some of these fields may be identified in the Pick List Field
property of Pick Map object definitions and therefore have a role in updating
corresponding fields in the originating business component.
Configuring Picklists
20
The field of the originating control references the Pick List object definition. The
Pick List object definition identifies the pick business component. In this way, the
identity of the pick business component is made known to the pick applet.
Figure 20-9 shows the detailed definition of the Pick List object definition from
Figure 20-3 on page 20-6.
originating Business
Component
originating Field
PickList
property
Pick List
Business
Component
property
Legend:
object definition
contained (child)
object definition
property specifies
other object def
20-18
Version 6.0
The Pick List object definition has the following important property, when used in
pick applet configuration:
component.
NOTE: When configuring a pick applet invoked from a multi-value group applet,
define the picklist on the originating field in the originating business component,
not on fields in the multi-value group business component. For more information
on multi-value group applets, refer to Chapter 21.
Constraining a Picklist
20
You can dynamically filter a pick applet to display only records that have field
values matching corresponding fields in the originating business components
records. This is called constraining a picklist. For example, a Contacts pick applet
invoked from an applet that displays quotes could be configured to display only
contacts for the current quotes account.
Pick applet constraints are defined using the Constrain property in the Pick Map
object type.
Pick maps can be either of two types: copy pick maps or constraint pick maps. Copy
pick maps perform the role described in Configuring the Originating Business
Component on page 20-13: a copy pick map updates the current originating
business component record with information from the pick business component
record when a record is picked. A constraint pick map also configures a mapping
between the originating and pick business components, but its purpose is different.
It is used to filter the list of records displayed in the pick applet to present only those
that have matching values in corresponding fields in the originating and the pick
business component.
A pick map is configured as a constraint pick map by setting its Constrain property
to TRUE. If FALSE (which is the default), the pick map is a copy pick map.
Version 6.0
20-19
An example of a constrained pick applet is the Contact pick applet, as invoked from
the Contact Last Name field in the Quote Entry applet. This pick applet appears in
Figure 20-10.
Contacts are displayed in
the pick applet only if they
are contacts for the current
quotes account.
The pick applet displays only contacts with the same Account, Account Id and
Account Location as the quote. To accomplish this, define a constraint pick map as
a child object of the Contact Last Name field (in addition to the various copy pick
map object definitions provided in order to implement pick behavior). The presence
of this constraint pick map indicates to the system that it is to filter the displayed
records in the pick applet.
20-20
Version 6.0
Static Picklists
20
A static picklist is a selection list that is invoked from a particular text box or list
column in an applet. A static picklist in a Siebel application is shown in
Figure 20-11.
Picklist
Drop-down button
When the user clicks the drop-down button to the right of the text box, a singlecolumn picklist appears. The user selects a value from the list by clicking the
desired value. The selected value replaces the previous value in the text box.
NOTE: You cannot delete the lookup value. You can set the picked field (for example,
They are similar in that a static picklist enables the user to select a value to
populate a text box with data.
They are different in that a static picklist does not draw values dynamically from
a pick business component. A static picklist is a static list of available selection
values. Configuration of these values is an administration activity that is
performed in the List of Values Administration view in a Siebel application.
NOTE: Static picklist values are cached, so if the administrator changes values in
a picklist that has been accessed by users during their current session, they will
need to reopen the application before the new values will appear.
Version 6.0
20-21
They are different in that a static picklist generally does not invoke a dialog box
with multiple list columns and buttons. All that appears is a simple one-column
pop-up list, without buttons.
NOTE: It is possible to use a pick applet rather than a one-column pop-up to
They are different in that a static picklist does not populate multiple controls in
the originating applet. It populates a single control in the applet, and the
corresponding field in the underlying business component.
Static picklists are implemented using object types illustrated in Figure 20-12.
List
Control
List Column
Pick List
Business
Component
Field
Legend:
Object type
Pick Map
20-22
Version 6.0
Figure 20-13 shows the object types used in the implementation of a static picklist
in greater detail, and identifies their interrelationships.
originating Applet
originating Control
originating Business
Component
originating Field
Business
Component
property
Pick Map
PickList
Field
property
Picklist Generic
Business
Component
PickList
property
"Value" Field
Legend:
Pick List
Type Field
property
Business
Component
property
object definition
"Type" Field
contained (child)
object definition
property specifies
other object def
NOTE: When you add new values to a list of values, users do not immediately see
the new values if they are in the screen alreadythey need to refresh the screen for
the pick list to be populated with the new values.
Version 6.0
20-23
The roles of the object definitions in Figure 20-13 are summarized in the following
list, and discussed in greater detail in the subsequent sections. The static picklist
example refers to the Quality picklist illustrated in Figure 20-11 on page 20-21.
Originating applet. Contains the control or list column that invokes the picklist.
After the selection of a value from the picklist, the originating control displays a
revised value. In the example, the originating applet is the Opportunity form
applet.
initiates the picklist when clicked. In the example, this is the Quality control.
Originating field. Field in the originating business component that the originating
control represents. Generally, it has one pick map child object definition that
defines the mapping of a field from the PickList Generic business component
into the originating business component. In the example, the originating field is
Quality.
list-of-value lists that are used in static picklists. It is administered through the
List Of Values view in the System Administration screen in Siebel applications.
To access the System Administration screen you select Screens Application
Administration List of Values from the menu bar.
Pick List object. The field of the originating control references the Pick List object
definition. The Pick List object definition identifies the pick applets business
component, which is always PickList Generic. In the example, the Pick List is
called Picklist Quality.
Pick Map object. Child of the originating field. The pick map defines a
20-24
Version 6.0
20
The originating applet (Applet object type) has the following important properties:
The originating control (Control object type) or list column (List Column object
type) has the following important properties:
component.
Runtime property. Set to TRUE to indicate that a static picklist is attached, and
needs to be activated in response to a user click on the control or list column.
20
The originating field has one important child object definition, the Pick Map object.
Unlike dynamic picklists, static picklists generally have exactly one Pick Map object
definition. The Pick Map object has the following important properties:
Version 6.0
20-25
Pick List Field property. In this property enter Value. This setting references the
Value field in the PickList Generic business component.
NOTE: You would use multiple pick maps only if you use a multiple column selection
list.
20
The Pick List object is referenced by the originating field and identifies the business
component and field that populate the pick applet. The Pick List object definition
has the following important properties:
Business Component property. In this property enter the value PickList Generic.
This indicates that the list of values comes from the system tables.
Type Field property. In this property enter the value Type. This indicates that Type
is the field in the PickList Generic business component to search for types. Each
list of values has a type, which uniquely identifies the list and each value in it.
Type Value property. In this property enter the relevant type for the list of values.
For example, in the Lead Quality picklist in Figure 20-11 on page 20-21, the
values that appear in the list have a Type field value of LEAD_QUALITY in the
List of Values View in Siebel applications.
Sort Specification property. If a Sort Specification value appears in the Pick List
object definition, this overrides the business components sorting with that of
the Pick List. The default value for the Sort Specification property is blank,
which tells the system to use the business components sorting.
This feature is useful for non-standard sorting of values in a static picklist that
is based on a list of values in the PickList Generic business component. By
default, a list of values is sorted in ascending order on the Order By field within
a Type. If the Order By values are blank, the entries for the Type are
alphabetically sorted on the Value field, in ascending order. You can alter this
behavior for one static picklist by setting a sort specification in its picklist.
20-26
Version 6.0
20
Version 6.0
LEAD_QUALITY
Excellent
LEAD_QUALITY
Very Good
LEAD_QUALITY
High
LEAD_QUALITY
Fair
LEAD_QUALITY
Poor
PERSON_TITLE
Mr.
PERSON_TITLE
Ms.
PERSON_TITLE
Dr.
ACCOUNT_TYPE
Commercial
ACCOUNT_TYPE
Competitor
ACCOUNT_TYPE
Customer
20-27
Two of the fields in the Picklist Generic business component together define and
group the lists of values, as follows:
Type. Each list of values has a type. The type groups together all records that are
in one list of values. For example, a type of LEAD_QUALITY identifies a record
as a member of the Lead Quality list of values, and the type ACCOUNT_TYPE
refers to the Account Type list of values.
Value. The Value is the portion of the record that actually appears in the static
picklist. For example, Lead Quality values are Excellent, Very Good, High, Fair,
and Poor.
20
You can limit picklist visibility by organization or responsibility, using the Popup
Visibility Type property of the Business Component object type. Valid values for
Popup Visibility Type are:
Auto All/Org
Used in Siebel eChannel applications. If users have access to any All views,
then pop-up visibility is All. If they doesnt have visibility to any All views,
then pop-up visibility is by organization.
Other values:
All
Contact
Manager
Organization
Personal
Sales Rep
20-28
Version 6.0
20
This chapter explained how to implement pick applets and static picklists in Siebel
applications.
Table 20-2 lists sources of additional information about topics discussed in this
chapter (or related topics).
Table 20-2.
Version 6.0
Chapter 21
Applet Designer
Chapter 12
20-29
20-30
Version 6.0
21
. . . . 21-19
Version 6.0
21-1
21
This chapter explains how to implement multi-value group and association applets
in Siebel applications.
For information about the wizards that guide you through creating MVGs and MVG
applets, see Chapter 13.
21
A multi-value group (MVG) applet (shown in Figure 21-1) is a dialog box that
provides the means to display and maintain a set of records of data from another
business component associated with the currently displayed business component
record. The multi-value group applet is invoked from a control or list column in the
originating applet.
Originating applet
Ellipsis button
that initiates the
multi-value
group applet
Multi-value group
applet window
21-2
Version 6.0
Figure 21-1 shows the Account Address multi-value group applet. It is invoked
when the user clicks the ellipsis (...) button to the right of the Address text box. This
multi-value group applet lists one or more addresses for the account. Each address
includes a Primary check box, Street Address, City, State, Zip, Country, Phone
Number, and Fax Number. The record with a check mark in the Primary check box
is the one whose data appears in corresponding controls in the originating applet.
While the multi-value group applet is open, the user can view the entire list of
address records for this account, not just the primary one. The user can also add,
edit, and delete address records in this window.
Multi-value group applets are implemented using object types illustrated in
Figure 21-2.
List
Control
Link
Business
Component
List Column
Field
Legend:
Object type
1:M relationship through obj. hierarchy
1:M relationship through properties
Version 6.0
21-3
Figure 21-3 shows the object definitions used in the implementation of a multi-value
group applet in greater detail, and identifies their interrelationships.
originating Applet
MVG Applet
property
originating Control
List Columns
Field property
Business
Component
property
Field
property
Multi Value
Fields
Multi Value
Link property
Multi Value
Link property
Destination
Business
Component
property
Destination Link
property
Link
Child Business
Component
property
Legend:
object definition
Destination Field
property
21-4
Version 6.0
The roles of the object definitions in Figure 21-3 are summarized in the following
list and discussed in greater detail in the subsequent sections. The multi-value
group example refers to the Account Address MVG applet illustrated in Figure 21-1
on page 21-2.
Each of the following objects is discussed in greater detail in the following sections.
Originating applet. Contains the control or list column that invokes the multi-
value group applet. In the example, the originating applet is called Account
Entry applet.
This business component (in the example, the Account business component)
supplies the data presented in the originating applet (Account Entry applet).
Multi-value fields. Fields in the originating business component that are populated
by the multi-value link. Data population relationship is indicated by the
presence of the multi-value links name in their multi-value link property. The
Field property in each identifies the corresponding field in the multi-value group
business component that provides its data. Multi-value fields used in this multivalue group situation are Street Address, Address Id, City, Country, Fax Number,
Postal Code, and State.
NOTE: If the field is a multi-value field, then the Required attribute will be
ignored. In this case you can use a script in Siebel VB or Siebel eScript or the
primary address field, if it exists.
link that provides the field values from the multi-value group business
component. In the example, the multi-value link is Business Address.
Links. Specifies the master-detail relationship between the originating and multi-
value group business components. This is a property of the Multi Value Link
object definition from which the fields in the originating business component
obtain their values. In the example, the link is Account/Business Address.
Multi-value group applet. Dialog box that appears when the user clicks on the
ellipsis button in the originating applet. It lists the multi-value group business
component records that are detail records in the master-detail relationship with
the current originating business component record. It also provides the means
to add, edit, and delete detail records. In the example, the multi-value group
applet is called Account Address MVG Applet.
Version 6.0
21-5
Multi-value group business component. Stores the detail records of the master-detail
21
The originating applet contains the control or list column that invokes the multivalue group applet. The originating applet has the following important property:
The originating Control object or List Column object has the following important
properties:
component.
21
21-6
Version 6.0
Multi Value Link property. Identifies the multi-value link that provides values, by
way of the link object definition, from the multi-value group business
component.
Field property. Identifies the field in the multi-value group business component
that, by way of the multi-value link and link object definitions, provides values
for the field in the originating business component.
NOTE: When configuring a pick applet invoked from a multi-value group applet,
define the Pick List on the originating field in the originating business component,
not on fields in the multi-value group business component.
21
Destination Link property. Identifies the link object definition that provides the
Primary Id Field property. Identifies the foreign key field in the originating, or
joined, business component. The foreign key field identifies the primary record
in the set of records for one multi-value group (in the multi-value group business
component). The primary record is the one that displays in the originating or
employing business component.
NOTE: An indirect multi-value link may be used in place of a conventional multivalue link when there is an existing link object definition which would be
appropriate for use in a multi-value link, but the originating business component is
different from the master business component. If there is a Join object definition
that joins the desired master business component to the master business
component of the link, the existing link can be used in the multi-value link.
Version 6.0
21-7
Configuring Links
21
The Link object definition specifies the master-detail relationship between the
originating and multi-value group business components. This makes possible the
Link object definition from which the fields in the originating business component
obtain their values. The Link object type has the following important properties:
component.
component.
Source Field property. Identifies the field in the originating business component
Destination Field property. Identifies the field in the multi-value group business
component that identifies the master record for each detail record. It is a foreign
key that points back to the originating business component.
NOTE: In a link based on an intersection table (the relationship between the
originating and MVG business component is many-to-manythat is, one in
which the Inter Table, Inter Parent Column and Inter Child Column properties
are non-blank), you do not specify the Source Field or Destination Field
properties. You can specify a source field (although its not common to do so).
Destination field always defaults to Id.
21-8
Version 6.0
21
This applet is the dialog box that appears when the user clicks the ellipsis button in
the originating applet. It lists the multi-value group business component records
that are detail records in the master-detail relationship with the current originating
business component record. It also provides the means to add and delete detail
records. The multi-value group applet contains list column object definitions that
present the data from corresponding fields in the multi-value group business
component.
The multi-value-group applet has the following important properties:
component.
Type property. Enter a value of MVG in this property. This setting indicates that
this is a multi-value group applet. This configures the behavior of the dialog box
and button controls.
Title property. Identifies the multi-value group applet to appear in the title bar.
The List Column object definitions in the multi-value group applet have the
following important property:
Version 6.0
Field property. Identifies the field in the multi-value group business component
from which the list column displays data.
21-9
21
This business component stores the detail records of the master-detail relationship
with the originating business component. The records displayed in the multi-valuegroup applet are from the multi-value group business component.
The multi-value group business component has no important properties with
respect to its role in the implementation of a multi-value group. It has field child
object definitions that are used in the following ways:
21-10
Version 6.0
Association Applets
21
An association applet (shown in Figure 21-4) provides users with the ability to
associate a parent record with one or more children through an intersection table.
For example, association applets are provided for assigning Team Members to an
Account, Contacts to an Opportunity, and Products to a Price List.
An association applet is a dialog box.
The association applet lists the records from a business component. The user selects
one or more records with the aid of the Find and Starting With controls, if needed,
and clicks the Add button to associate the selected record to the active master
record.
Association applets are used only with pairs of business components that have a
many-to-many relationship. A many-to-many relationship in Siebel applications is
implemented by means of an intersection table and a pair of links.
When a one-to-many (simple master-detail) relationship exists between business
components, an association applet is unnecessary, and records can be directly
added or inserted in the applet displaying the detail business component. The
means to add and delete records can be provided by using a master-detail view or
a multi-value group applet. When a many-to-many relationship exists, an
association applet provides the only means to associate a pair of records from their
respective business components. Figure 21-5 and Figure 21-6 illustrate the reason
for this.
Version 6.0
21-11
This one-to-many
relationship
Account Business
Component
Contacts Business
Component
is implemented as
S_ORG_EXT Table
S_CONTACT Table
Row
Row
Row
Row
Row
Row
The two applets in a master-detail view display one master record and a list of detail
records in their respective business components. A foreign key in each of the detail
records points to the one master record. To add another detail row, a row is added
to the detail table (S_CONTACT in the illustration), and a value is set in the foreign
key that points back to the master row. Every row in the detail table has a master
row because of the link relationship between the master and detail business
components. Adding a row to the detail table always results in the linkage of the
new row to a row in the master table. No additional applet is necessary to create an
association between a new detail row and some master row.
21-12
Version 6.0
This many-to-many
relationship
Opportunity Business
Component
Contacts Business
Component
is implemented as
S_OPTY Table
S_OPTY_CON Table
S_CONTACT Table
Row
Row
Row
Row
Row
Row
Row
Row
Row
Version 6.0
21-13
In the association applet, the Add button performs association and the New button
performs addition.
In Siebel applications, association applets are invoked in one of two ways:
Add New
21-14
Version 6.0
21
Figure 21-7 illustrates an association applet invoked from a list applet in a masterdetail view.
The Add New Record
option in the Edit menu...
Version 6.0
21-15
The master-detail view in Figure 21-7 is Opportunity Detail - Contacts View, one of
two master-detail views displaying opportunity and contact information. The other
is Contacts Detail - Opportunity View, which displays the inverse master-detail
relationship. When the user selects Add New Record from the Edit menu, the Add
Contacts dialog box appears for selection of an existing contact record to insert, or
for creation of a new contact record. A new contact record is created by clicking the
New button and then entering data into the new record in the Add Contacts dialog
box.
The Add Contacts dialog box is implemented as an association applet called Contact
Assoc applet.
Association applets are implemented using the object types illustrated in
Figure 21-8.
View
Applet
List
Legend:
Object type
List Column
Control
21-16
Version 6.0
Opportunity
Detail - Contacts
View
Sectorn Applet
properties
Sectorn Applet
properties
Opportunity
Form Applet
Business
Component
property
Business
Component
property
Opportunity
Contact List
Applet
Business
Component
property
Associate
Applet
property
Contact Business
Component
Legend:
Opportunity
Business
Component
List Columns
Field
property
Fields
object definition
contained (child)
object definition
property specifies other
object definition
Controls
View (Opportunity Detail - Contacts view). Provides the context in which the
association applet is invoked, although no properties of the view directly identify
the association applet. The Business Object property of the view establishes the
master-detail relationship between the business components whose data is
displayed.
Master applet (Opportunity form applet). Form applet that displays one record from
Detail applet (Opportunity Contact list applet). List applet that displays a list of
records from the detail business component that are detail records for the
current master record in the master business component. The name of the
association applet is specified in its Associate Applet property.
Version 6.0
21-17
Business components (Opportunity and Contact). Provide the data for their
respective applets in the view. The detail business component also provides the
data displayed in the association applet.
NOTE: In the association applet, all records from the detail business component
are displayed; in the detail applet, the only records displayed are those which
have already been associated to the current master record.
Association Applet (Contact Assoc applet). Implements the dialog box that appears
when the user attempts to add or insert a record in the detail applet. It has a Type
property value of Association List, which indicates that it is an association
applet, and a Class property value of CSSFrameList, indicating that it is a list
applet. The association applet is configured as a standard list applet, with a List
child object definition that, in turn, has List Object child object definitions.
List columns. Specify the fields that are displayed in the association applet, and
in what order. They duplicate some or all of the list columns in the detail applet
in the view.
the following:
Add button. Associates selected records to the current parent. The result at the
table level is to create an intersection table row between the row identified
in the master applet and the row identified in the association applet. The
control is named PopupQueryAdd and has a method invoked of AddRecord.
New button. Creates an empty scrolling table row in the association applet for
user entry of a new detail business component record. Following entry of the
new record, it is inserted in the detail applet. The result at the table level is
to create a new row in the detail table, and an intersection table row between
the row identified in the master applet and the row created in the association
applet. The control is named ButtonNew and has a method invoked of
NewRecord.
Close button. Dismisses the dialog box.
Find combo box. In combination with the Starting With text box and Find
button, provides the user with search capabilities for locating the desired
record in the association applet. The user selects in this combo box the field
to search.
21-18
Version 6.0
Starting With text box. Text box where the user enters the search value.
Find button. The user clicks this button to initiate the search specified in the
Find combo box and Starting With text box.
21
...invokes an
association applet.
Version 6.0
21-19
The applet in the upper sectors of the view shown in Figure 21-10 is Account form
applet, which is used in various views to display a single record of account
information at the top of the view. Five of the text boxes in this applet display multivalue fields: Industries, Account Team, Address, Synonyms, and Territories. Each of
these text boxes has an ellipsis button that invokes a specific multi-value group
applet when clicked.
Some multi-value-group applets add and remove records without the use of an
association applet. Such applets are based on a one-to-many relationship between
the master and detail business components, and no intersection table is involved.
The Account Address MVG applet (invoked from the Address text box in the
Account form applet) is that kind of multi-value group applet. You can confirm that
no association applet is involved by examining the value in the Associate Applet
property in the multi-value group applets object definition, which is blank in this
case.
Other multi-value group applets are based on a many-to-many relationship
implemented through an intersection table. The user may either create or associate
records. This requires that an association applet be invoked when the New button
in the multi-value group applet is clicked. The Industry Mfg applet, invoked from
the Industries text box, is of this type. The name of an association applet (Industry
Assoc applet) appears in the Associate Applet property in the multi-value group
applets object definition.
In Figure 21-10 on page 21-19, the user has clicked the ellipsis button to the right of
the Industries text box, and the Add Industries dialog box has appeared. The Add
Industries dialog box (association applet) allows the user to add an existing industry
record to the multi-value group, or to create a new industry record in the multivalue group. A new Industry record is created by clicking the New button, and
entering data into the new record in the Add Industries dialog box.
21-20
Version 6.0
Industry Control
Business
Component
property
Account Business
Component
Industry (Multi
Value) Field
Field
property
MVG Applet
property
Business
Component
property
Industry Assoc
Applet
Business
Component
property
Industry Business
Component
Field property
List Columns
Fields
Legend:
object definition
Controls
contained (child)
object definition
property specifies other
object definition
Figure 21-11. Association Applet (Invoked from Multi-Value Group Applet) Details
Version 6.0
21-21
The roles of the object definitions in Figure 21-11 are the following:
Form applet (Account Form applet). Contains one or more text box controls
displaying multi-value fields. The MVG Applet property for each of these text
box controls identifies a multi-value group applet that is invoked when the user
clicks the ellipsis button to the right of the text box.
Multi-value group applet (Industry Mfg. applet). Displays the list of records assigned
to the multi-value field in the form applet. The Associate Applet property in the
multi-value group applets object definition identifies the association applet to
invoke when the user clicks the New button in the multi-value group applet.
group records for each master business component record. The multi-value
group business component supplies records to both the multi-value group applet
and the association applet.
Association applet (Industry Assoc applet). Implements the dialog box that appears
when the user attempts to add or insert a record in the multi-value group applet.
The association applet has a Type property value of Association List, which
indicates that it is an association applet. It has a Class property value of
CSSFrameList, indicating that it is a list applet. The association applet is
configured as a standard list applet, with a List child object definition that has
List Object child object definitions.
The child object definitions for the association applet are described in greater detail
at the end of Association Applets Invoked from Master-Detail Views on
page 21-15. Typically Association applets are based on the same business
component as multi-value group applets.
NOTE: An association applet cannot be configured to be constrained or filtered
through properties the way a pick applet can (using the Constrain property of a Pick
List). To constrain an association applet, you must use Siebel VB or Siebel eScript
to query using the Exists clause in the applet_GotFocus event on the association
applet.
21-22
Version 6.0
21
This chapter explained how to implement multi-value group and association applets
in a Siebel application.
Table 21-1 lists sources of additional information about topics discussed in this
chapter.
Table 21-1.
Version 6.0
Chapter 20
21-23
21-24
Version 6.0
Special-Purpose Applets
22
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-3
Version 6.0
22-1
Special-Purpose Applets
About This Chapter
22
Chart applets
Tree applets
File attachment applets
Web browser applets
22-2
Version 6.0
Special-Purpose Applets
Chart Applets
Chart Applets
22
Version 6.0
22-3
Special-Purpose Applets
Chart Applets
This view, entitled Opportunity Size Analysis (Oppty Chart View - Opportunity Size
Analysis in Siebel Tools), lists all opportunities in the upper (list) applet and
aggregates them by size in the lower (chart) applet. By default, the chart applet in
this view (Oppty Chart Applet - Competitor Frequency Analysis) displays the data
in bar chart format, in a specific type of bar chart called 3dBar. The user can select
different chart types from the Type picklist at upper right in the applet. Chart types
are discussed in Chart Layout Options on page 22-5.
Axis Terminology
22
Specialized terminology is used for axes in Siebel Tools and Siebel applications.
Each axis has a special name, as shown in Table 22-1.
Table 22-1.
22-4
Axis Terminology
Axis
Name
X axis
Category
Y axis
Data
Values
The percentage of
the circle occupied
by each pie slice,
and the
corresponding
numeric value.
Z axis
Series
Version 6.0
Special-Purpose Applets
Chart Applets
An example of a chart with all three axes is the Product Analysis chart, in the
Service Request Product Analysis view in Siebel Service, shown in Figure 22-2.
Set of bar colors
corresponding to
Z, or series, axis
X, or category, axis
In this chart, the number of service requests is plotted on the Y (data values) axis,
product name abbreviations appear on the X (category) axis, and each bar color (Z,
or series, axis) identifies a level of service request severity.
NOTE: In charts with two Y axes, the first Y axis refers to the vertical axis on the left
side, while the second Y axis refers to the one on the right side.
22
The user can select different chart types from the Type picklist at the upper right in
most chart applets. Chart types provide various layout options, including horizontal
bar, stacked bar, pie, line, scatter, spline, and combo (combined line and bar).
Several of these are available in either 2- or 3-dimensional format. The 3dimensional types are functionally the same as the corresponding 2-dimensional
types, but provide the illusion of bar, line, or pie thickness for visual attractiveness.
Version 6.0
22-5
Special-Purpose Applets
Chart Applets
The following styles of charts are available (although not all styles are supported
for all chart applets).
Bar Charts
Bar charts are typically used to compare the absolute difference in data from one
category to another.
3dBar. The 3dBar type divides data from the source records into categories, and
displays the total for each category as a vertical bar. This is shown in
Figure 22-3.
If the chart is configured with a Z (series) axis, a cluster of bars appears for each
category rather than a single bar. This is shown in Figure 22-4.
22-6
Version 6.0
Special-Purpose Applets
Chart Applets
Version 6.0
22-7
Special-Purpose Applets
Chart Applets
displays a single stack of bars for each category, within which appears a bar of
a different color for each series. Stacked bar charts are useful for seeing the
individual value for each series within the category as well as their total for the
category. An example of a 3dStackedBar chart appears in Figure 22-7.
This figure displays a Service Request Product Analysis chart from Siebel
Service. The data values axis corresponds to the number of service requests, the
category axis corresponds to products, and the series axis corresponds to service
request severity levels. So for each product along the X axis, there is a stack of
bars. Each bar in the stack indicates the number of service requests of a
particular severity. The total number of service requests for each product can be
determined from the height of its stack.
22-8
Version 6.0
Special-Purpose Applets
Chart Applets
Like the 3dBar chart, a 2dBar chart displays bars in clusters if a series axis is
present.
Version 6.0
22-9
Special-Purpose Applets
Chart Applets
22-10
Version 6.0
Special-Purpose Applets
Chart Applets
Line Charts
Line Charts are used to observe trends across categories or over time.
2dLine. The 2dLine chart type displays one or more line curves plotted against
the X-Y grid. If there is no series axis, a single line curve appears. If there is a
series axis, one line curve appears for each color in the legend. A 2dLine chart
appears in Figure 22-11.
3dLine. The 3dLine chart type is functionally equivalent to the 2dLine type, but
appears with the illusion of depth. A 3dLine chart (showing the same data as the
2dLine chart in Figure 22-11) appears in Figure 22-12.
Version 6.0
22-11
Special-Purpose Applets
Chart Applets
2dSpline. The 2dSpline chart type displays one or more line curves plotted
against the X-Y grid, with the points plotted accurately but the line between
them smoothed mathematically. If there is no series axis, a single curve and set
of points appear. If there is a series axis, one curve and corresponding set of
points appear for each color in the legend. A 2dSpline chart appears in
Figure 22-13.
3dSpline. The 3dSpline chart type is functionally equivalent to the 2dSpline type,
but appears with the illusion of depth, and does not display the actual data
points, only the smoothed curve. A 3dSpline chart (showing the same data as
the 2dSpline chart in Figure 22-13) appears in Figure 22-14.
22-12
Version 6.0
Special-Purpose Applets
Chart Applets
Combo. A chart of the Combo type displays a single bar chart with a single line
chart superimposed on it. The two charts share the category axis, but each has
its own data points axis (on the left for the bar chart, and on the right for the
line chart). A sample Combo chart appears in Figure 22-15.
Pie Charts
Pie Charts are used to compare the relative difference across categories by dividing
a circle into segments that represent each categorys percentage of the whole.
Version 6.0
22-13
Special-Purpose Applets
Chart Applets
3dPie. The 3dPie chart type aggregates data point data in the records by category,
and displays each category as a separate segment in the pie. The category (X)
axis is the set of pie slices and corresponding labels. The data points (Y) axis
determines the relative size of each pie slice as a percentage of the total. You
cannot specify a series axis for pie charts. The 3dPie chart type gives the illusion
of depth, for visual attractiveness. A sample 3dPie chart appears in Figure 22-16.
2dPie. The 2dPie chart type is functionally the same as the 3dPie type, but
without the illusion of depth. A sample 2dPie chart appears in Figure 22-17.
22-14
Version 6.0
Special-Purpose Applets
Chart Applets
Scatter Charts
22
A chart is built as an applet containing one or more Chart object definitions. The
Chart object type is a child of applet. The Chart object type has Chart Element
children.
This section describes how chart applets are configured.
Version 6.0
22-15
Special-Purpose Applets
Chart Applets
In the simplest casea single bar or line graph, with no series axisa category field
and a data point field are specified. Pairs of category and data point field values are
plotted as points or bars. If multiple records have the same category value, their
data point values are added together.
The Oppty Chart Applet - Source Analysis applet, in Figure 22-19, provides an
illustration of this process.
This applet displays the number of opportunities on the data point axis plotted
against the source of the opportunity (referral, magazine article, Web site, and so
on) on the category axis. To generate the data required for the curve, the Source field
in each record is checked and the number of opportunities for each distinct source
value is tallied. The result is a two-row temporary table with a column for each
source, as shown in Figure 22-20.
category
(Source)
heading
count
Magazine
Web Page
Referral
Mailer
Unspecified
data point
value
22-16
Version 6.0
Special-Purpose Applets
Chart Applets
For a multiple-curve chart, such as the Request Chart Applet - Product Analysis
applet in Figure 22-21, a row is added to the temporary table for each curve in the
series.
category
(Product)
series
(Severity)
Hard Disk
CD-Rom
RAM
Laser
Printer
Monitor
Critical
High
Medium
Low
Question
Unspecified
data
point
value
Version 6.0
22-17
Special-Purpose Applets
Chart Applets
To define the data mapping from the business component into the chart applet, you
need to define the following properties in the Chart object:
Category Field property. Contains the name of a text or date field in the business
component (except for scatter charts, which use a numeric category field).
When the business component records are scanned, the different values found
in this field are mapped into different categories. These values are displayed on
the charts X-axis labels.
Data Point Field property. Contains the name of a numeric field in the business
Series Field property. Contains the name of a text field in the business component,
Data Function property. The Data Function property determines how the data
point field values get converted into the new tables cell values. Possible values
are Sum (simple addition), Count (number of occurrences of a cell value),
Average (average value per record), and Plot (different from Count only in that
when a cell is empty, it is charted as NULL instead of 0).
The preceding descriptions cover the use of these properties for the most general
cases. There are a number of special cases in which these properties are configured
differently than described. Some special case configuration scenarios are described
in the sections that follow. For complete descriptions of the properties, refer to the
property descriptions in the Siebel Object Types Reference.
22-18
Version 6.0
Special-Purpose Applets
Chart Applets
By picklist
Type picklist
Type picklists. This is the most common of the four picklists, and appears in most
chart applets. It provides the user with the means to select a different type of
chart for the same data, such as a pie chart instead of a bar chart, or a 2dimensional line chart instead of a 3-dimensional one. The chart types are
described in detail in Chart Layout Options on page 22-5.
The options for the Type picklist are specified in the Picklist Types property of
the Chart object definition, as a comma-separated list of chart type names such
as the following:
3dBar,3dStackedBar,3dPie,3dHorizBar,2dBar,2dStackedBar,2dPie,
2dHorizBar
There cannot be any spaces between the elements in the comma-separated list.
The default typethe chart type to appear when the chart is initially displayed
is specified in the Type property. Charts without a Type picklist use the Type
property to specify the chart type of the chart; in that situation the chart type
cannot be changed by the user.
Version 6.0
22-19
Special-Purpose Applets
Chart Applets
Show picklists. This picklist allows the user to change what is displayed on the Y
By Picklist. This picklist allows the user to change what is displayed on the X
axis. This can provide any one of three roles, depending on the configuration of
certain properties in the Chart object definition:
22-20
Second By picklists. This picklist enables the user to choose which source field
populates the Z axis. For information on configuring the second By picklist, refer
to Configuring the Second By Picklist on page 22-24.
Version 6.0
Special-Purpose Applets
Chart Applets
Picklist
Control Name
MethodInvoked
Type
ChartPicktype
PickChartType
Show
ChartPickfunction
PickYAxis
By
ChartPickby
PickXAxis
By #2
ChartPickby2
PickZAxis
The simplest way to add these controls is to copy them in the Applet Designer from
a chart applet in which they are present.
Data Point Field property. You enter a comma-separated list of source fields, one
for each entry that is to appear in the Show picklist. The first entry in the list is
the default. If only one field name is entered, it applies to all functions in the
picklist.
Version 6.0
22-21
Special-Purpose Applets
Chart Applets
which are also the text which appears in the picklist. The order in the comma
list determines the association with a data point field and data function.
For example, you could configure a Show picklist with explicit syntax that offers
three choices: Number of Opportunities, Opportunity Revenue and Opportunity
Expected Revenue. This is configured with the property settings shown in
Table 22-3.
Table 22-3.
Property
Value
Picklist Functions
Data Function
Count,Sum,Sum
Name,Revenue,Expected Revenue
As can be seen from the table, there are three values in each comma-separated list.
The first entry, Number of Opportunities, performs a Count function on the Name
field. The second entry, Opportunity Revenue, performs a Sum function on the
Revenue field. The third entry, Opportunity Expected Revenue, performs a Sum
function on the Expected Revenue field.
An example of a Show picklist configured with implicit syntax and the standard
function list is in the Lead Source Analysis chart in the Opportunity New Business
Analysis view in Siebel Sales (Oppty Chart Applet - New Business). The picklist
offers three choices: Number of Opportunities, Opportunity Revenue, and Average
Opportunity Revenue. This is configured with the property settings shown in
Table 22-4.
Table 22-4.
22-22
Property
Value
Picklist Functions
Data Function
Count
Revenue
Version 6.0
Special-Purpose Applets
Chart Applets
The value of Revenue in the Data Point Field property applies to all entries in the
picklist.
The value of Count in the Data Function property is unnecessary; it could be left
blank instead. Whenever the number of entries in the Data Function property is not
the same as the number in the Picklist Functions property, the system supplies a
standard Data Function list. This list is the following:
Count,Sum,Average,Plot
The first picklist entry, Number of Opportunities, performs a Count function on the
Revenue field. The second entry, Opportunity Revenue, performs a Sum function on
the same field. The third entry, Avg Opportunity Revenue, performs an Average
function.
This means of configuring Show picklist behavior predates the ability to specify
triplets of name, function, and field, and is more restrictive. It has been retained for
backwards compatibility with earlier versions of Siebel applications. Generally it
makes more sense to explicitly specify the values in the three properties.
Calendar increments in the picklist and X axis. If the Category Field property
contains the name of a single field that has a DTYPE_DATE data type, the X axis
displays calendar increments and the chart is considered a period chart. In this
situation, the picklist is populated with calendar increment options, including
user defined periods (specified in Screens Application Administration
Periods) such as Day, Week, Month, Quarter, and Year.
For example, in the New Business Analysis chart, the category field is Created
(the date of creation of the record, hence of the opportunity). As a result, the
category axis contains date increments, based on the increment the user selects
in the By picklist.
Version 6.0
22-23
Special-Purpose Applets
Chart Applets
Text labels in the X axis, category and series field names in the picklist. If the
Category Field property contains the name of a single text field from the business
component, and a series field has also been specified (in the Series Field
property), the By picklist is populated with the names of the category field and
the series field. The user can select either field to populate the X axis with labels
derived from the contents of that field; the unselected field populates the legend
box (Z axis) with labels. The category field is the default, and is initially
displayed on the X axis.
For example, the chart in the Service Request Product Analysis view in Siebel
Service has a category field of Product and a series field of Severity. When the
chart is initially displayed, the X axis labels are product names and the legend
labels are severity levels. However, the field names Product and Severity appear
in the By picklist, and the latter selection enables the user to display severity
levels in the X axis and product names in the legend.
Text Labels in the X axis, multiple field names in the picklist. If the Category Field
Numeric values in the X axis, no picklist. If the Category Field property contains the
name of a single numeric field, the X axis is populated with numeric increments,
similar to the process of generating increments for the Y axis. In this situation,
the By picklist is not shown.
For example, the Probability Cluster Analysis chart in the Opportunity
Probability Cluster Analysis view has a category field of Rep % (the probability
of a sale). In this chart, probability is plotted against the X axis, the X axis
increments are percentages from 0% to 100%, and no By picklist appears.
If the Series Field property is blank, all records get mapped into a single series.
If the Series Field property contains the name of a field from a business
component, the Z axis (legend) is populated with labels derived from the
contents of that field.
22-24
Version 6.0
Special-Purpose Applets
Chart Applets
If the Series Field property contains a comma-separated list of field names, the
user is provided with this list of fields at run time in the second By picklist. The
users selection determines the field which populates the Z axis. The first value
in the comma-separated list is the default.
Data Point Field property. Provide a comma-separated list of source fields, one for
identify the individual curves in the Legend. The list of titles must have the same
number of entries as the Data Point Field list. The order in the comma list
determines the association with a data point field and data function.
Series Field property. Remove any existing value(s) from this property; it must be
Multi Data Point property. Set to TRUE. This indicates that multiple curves are to
be plotted.
You should also remove the Show combo box and its label in the Applet Designer.
Version 6.0
22-25
Special-Purpose Applets
Chart Applets
Data Point Field property. Specify two fields, separated by a comma. The first is
for the left Y axis, the second is for the right Y axis.
Data Function property. Specify two functions, separated by a comma. The first is
for the left Y axis, the second is for the right Y axis.
Note that the AxisId property must be set to YAxis and the Type property must
be AxisLabel.
You can set up a sort specification on the Y axis independent of limiting the number
of X or Z axis divisions. A sort specification on Y will order the data points
regardless of whether you are limiting the display to the first N points. The converse
is not true, however; it would not make sense to set a number of X or Z axis
divisions without also setting a sort specification on Y.
22-26
Version 6.0
Special-Purpose Applets
Chart Applets
You also can sort on X axis or Z axis labels instead of Y axis values. To accomplish
this, you set the Sort Specification in the X axis (or Z axis) label Chart Element
object definition rather than in the Y axis label. For example, if the X axis is
displaying country names, they can appear alphabetically from left to right. This is
different from sorting on Y axis values, which are numeric values from a field in a
business component or function based on that field.
AxisLabel. Displayed along each axis, with one label for each division of the axis.
AxisLineGrid. Grids make it easier to comprehend a Chart. You can set various
grid properties, such as grid color, width, and visibility, on an axis-by-axis basis.
AxisTitle. Displayed along each axis, with one title per axis.
Legend. The list of colored rectangles with accompanying category labels on the
left side of the Chart.
Plot. The area that contains the graphs, usually in the center of the Chart.
Font, Color, and Size. For most Chart Elements that contain text, you can set such
Fill color. You can set the fill color of the Chart and Plot Chart Element types.
The properties of the Chart Element that apply to the axis label for the X axis
(Coordinates, Display Format, Divisions, List Of Values, Sort Specification, and
Text) should not be used when specifying a list of X axis source fields, as they can
be relevant only for one X axis field. Also, the text of the X axis title is determined
dynamically from the combo box selection if the By combo box provides a list of
source fields. Whatever is in the Text property in the AxisTitle chart element for the
X axis is overridden at run time.
The same restrictions are relevant for the Z axis.
Version 6.0
22-27
Special-Purpose Applets
Chart Applets
Performance Considerations
22
22-28
Version 6.0
Special-Purpose Applets
Tree Applets
Tree Applets
22
A tree applet is used to create a view, called an explorer view, that allows the user
to navigate hierarchically through a structured list of records of related business
components. An example of a tree applet and explorer view in Siebel Service is the
applet entitled Service Requests in the view entitled Service Request Explorer,
shown in Figure 22-24.
Version 6.0
22-29
Special-Purpose Applets
Tree Applets
This view (SR Explorer View) contains a tree applet (SR Tree Applet) in the lefthand sectors, and one of various predefined list applets in the right-hand sectors.
The particular list applet that appears on the right depends on which node is
selected in the tree on the left. For example, if the user double-clicks on the Product
Defects folder in the tree hierarchy, the list applet on the right changes to display
product defect records.
A tree applet in an explorer view is similar in operation to the Object Explorer and
Object List Editor in Siebel Tools. The user may expand and collapse folders in the
tree applet, and view the records in that folder in the list applet. The hierarchy
displayed in the tree applet represents master-detail relationships between records
of different business components.
For example, when the user expands a service request (document icon) by doubleclicking, a set of folders appears hierarchically beneath it including Activities,
Attachments, Product Defects, and so on. When the user expands one of these child
folders, a list of records appears of the corresponding business component. If the
user expands the service request numbered 2-1CR, then expands the Activity folder
beneath it, the list of records displayed is the set of activity records for that service
request. In the master-detail relationship between service requests and activities,
these activity records are detail records of the master service request record that was
expanded.
The user can also add or associate detail records of various kinds to particular
master records. For example, the user could navigate through the hierarchy to the
Product Defects folder beneath a particular service request, click in the list applet,
and choose Edit Add Record to associate a product defect record from an
association applet. The product defect record would become a detail record of the
service request.
22-30
Version 6.0
Special-Purpose Applets
Tree Applets
Figure 22-25 shows the full set of master-detail relationships in the Service Request
business object.
S e rvice R e q u e st
A cco u n t E xte rn a l
P ro d u ct
A ctio n
A ctivity P la n
A ctivity P la n
A ctio n
A sse t M g m t A sse t
C o n ta ct
C u sto m e r
P ro d u ct
C u sto m e r S u rve y
O rd e r E n try O rd e rs
O E L in e Ite m s
O E L in e Ite m
A ctio n
P ro d u ct D e fe ct
RMA
R M A A ffe cte d
P ro d u ct
S R E xte rn a l
P ro d u ct
S e rvice
A g re e m e n t
S e rvice A g re e m t
C o n ta ct
S e rvice A g re e m t
M e tric
S e rvice R e q u e st
A tta ch m e n t
S h ift H o u r
S o lu tio n S R /P D
Legend:
B u sin e ss
Com ponent
1 :M re la tio n sh ip
(th ro u g h a B u s.
O b je ct C o m p o n e n t
a n d a L in k)
Version 6.0
22-31
Special-Purpose Applets
Tree Applets
The portion of the Service Request business object used in the Service Request
Explorer view is shown in Figure 22-26.
S e rvice R e q u e st
A ctio n
O rd e r E n try O rd e rs
P ro d u ct D e fe ct
S R E xte rn a l
P ro d u ct
S e rvice R e q u e st
A tta ch m e n t
S o lu tio n S R /P D
Legend:
B u sin e ss
Com ponent
1 :M re la tio n sh ip
(th ro u g h a B u s.
O b je ct
Com ponent and a
L in k)
Figure 22-26. Service Request Business Object Components Used in SR Explorer View
22-32
Business Component
Service Request
Service Requests
Action
Activities
RMAs/Service Orders
Product Defect
Product Defects
SR External Product
Service Profile
Attachments
Solution SR/PD
Solutions
Version 6.0
Special-Purpose Applets
Tree Applets
The tree applet and explorer view for service requests can be reconfigured to
include additional business components. For example, Contacts, Customer Surveys,
and Service Agreements folders could be added as child folders of Service Requests,
and a Line Items folder could be added as a child of RMAs/Service Orders. However,
only business components from the business object (Service Request in this case)
can be added in an explorer view based on that business object. Furthermore, a
business component can only be added as the immediate child folder of the
business component that is its master in the business object. For example, you
could add Order Entry Line Items as a child of RMAs/Service Orders, but not of
Activities.
22
A tree applet appears in the left sectors of an explorer view. The applet has a tree
object definition as a child. The tree object definition has tree node children. Each
tree node child object definition implements one folder symbol. These object types
are described in greater detail below.
View
An explorer view has a tree applet in the left sectors (0 through 3) and nothing
specified in the right sectors (4 through 7). The applet that appears in the right
sectors is determined dynamically by the folder (Tree Node) that is currently
highlighted by the user. The View object has the following significant property
settings:
Business Object property. The business object selected will determine which
Vertical Line Position property. This property, when specified, controls the position
of the vertical boundary between the sectors. Typically, the vertical boundary is
in the middle. The possible values range from 0 to 12, where 0 is all the way to
the left, 12 is all the way to the right, and 6 is in the middle. A setting of less
than 6 will make the tree applet smaller than the dynamic applet to its right.
Note that this setting should be in the 48 range; otherwise one or the other
applet is likely to be distorted by stretching or compression.
Version 6.0
22-33
Special-Purpose Applets
Tree Applets
Tree Applet
A tree applet has no special property settings in the applet object definition, other
than the class, which is set to CSSFrameTree. The Applet object type has the
following important property settings:
Class property. Set to CSSFrameTree. This is required in order for the tree applet
functionality to work.
Business Component property. Points to the same business component as the top-
Height and Width properties. 4 and 2, respectively, indicating that the applet
potentially could fill the entire view. In practice, the system will reduce the tree
applet to fit in the left portion of the view.
Tree
The Tree object definition provides only a name; it is an object definition to which
tree nodes can be attached, and which itself can be attached to the applet object
definition. It always has the name Tree. The Tree object type is similar to the List
object type used in list applets, in that it serves as an attachment point for child
object definitions.
Tree Node
Each folder symbol is implemented using one tree node object definition. This
includes the top-level node (Service Requests in the example). All of the tree node
object definitions are immediate child object definitions of the tree object definition.
There is no hierarchy of child and grandchild tree node object definitions (reflecting
the hierarchy in the tree applet) under the tree; this is not feasible in the object
definitions hierarchy in the repository. Instead, each tree nodes hierarchical
position in the tree applet is specified in the Position property of the tree node object
definition.
22-34
Version 6.0
Special-Purpose Applets
Tree Applets
The Tree Node object definition has the following important properties:
Display Name property. This property specifies the name of the tree node (folder)
as it will appear in the tree applet in Siebel applications. The display name
appears to the immediate right of the folder symbol.
Applet property. This property specifies the applet that is opened in the right half
of the view when the user opens the corresponding folder. Generally a list applet
is specified. The applet must be based on a business component that is in the
appropriate hierarchical position in the business object.
Position property. The tree nodes hierarchical position relative to other tree
nodes, and its sequence on its level, are specified with this property. The
Position value consists of an integer, or a set of integers separated by periods,
such as 1.1.2. The top-level node (Service Requests in the example) is specified
as having a position of 1. All immediate child nodes of the top-level node have
values of the form 1.x, where x specifies the nodes order relative to other nodes
on the same level. For example, in order for the Activities folder to appear after
the Attachments folder rather than before it, their Position values (1.1 and 1.2,
respectively) should be swapped.
To attach a child node at the third level, you specify a Position value for the new
node with its first two integers matching the position of the node to attach it to.
For example, to attach a node to the RMAs/Service Orders node (currently 1.4),
you would give the new node a position of 1.4.1. In general, the rightmost digit
in a position specifies its order relative to others on the same level, and all other
digits specify the position it attaches to.
Label Field property. This property points to the name of the field that is used to
populate the names in the record list that appears when the node is expanded
by the user. For example, the Order Number field would provide the values for
the RMAs/Service Orders node, and the Description field for the Activities node.
Selected Bitmap Index property. This should be set to the value 5, which
Version 6.0
22-35
Special-Purpose Applets
Tree Applets
22
Tree applets can be created and modified in the Applet Designer. A TreeControl
button is provided in the Applet Designer toolbar. When you drag a TreeControl
onto the applet, the tree controls and the Tree object definition are created.
When you right-click over the tree control, a pop-up menu appears with the
following tree-specific options:
Select Tree option. Enables you to copy and paste the tree control into another
applet.
Create New Tree Node option. Adds a new tree node to the tree. The tree node is
created at the top level, and is subsequently moved using the Move Selected Tree
Node option.
Move Selected Tree Node option. Enables you to change the position of the tree
node in the tree. You first click on the tree node you wish to move. Then you can
use up, down, left, and right arrow keys, with the SHIFT key depressed, to move
the node up or down a level or change its position within its level.
The Position property on all of the nodes is automatically updated for all operations.
Pressing the DELETE key when the tree appears in the Applet Designer deletes the
currently selected tree node. The Undo and Redo options in the Edit menu are active
for all tree manipulation operations in the Applet Designer.
Recursive Trees
22
In a recursive tree, all levels in the hierarchy are of the same object type. For
example, the Account Explorer Applet consists of a tree applet in which the only
node is for the Account business component, and sub-accounts appear beneath
accounts which have them. Recursive trees are provided in standard Siebel
applications for accounts, activities, campaigns, opportunities, positions, and
various other business components in which records can have sub-records. Almost
any number of levels of sub-records are possible in a recursive tree.
22-36
Version 6.0
Special-Purpose Applets
File Attachment Applets
In order for a recursive tree to be implemented, the business component used must
contain a pointer to the record of the same type at the next level up in the hierarchy.
In the accounts tree example, the Account business component has a Parent
Account Id field which points to its parent account. A Link object definition must
exist that references this field in its Destination Field property. In the accounts
example, this link is Account/Account.
A recursive tree is implemented with a tree object definition to which only one tree
node object definition is attached. In the Tree Node object definition, the following
special properties are set:
Recursive property. This property is set to TRUE to indicate that this is a recursive
tree.
Recursive Link property. This property points to the link object definition that
22
Enables the user to add document files to a list, edit them, or remove them.
Provides synchronization and shared access support for attached documents.
Version 6.0
22-37
Special-Purpose Applets
File Attachment Applets
Figure 22-27.
Figure 22-27 shows the Account Attachment view. The upper applet is the standard
Account Form Applet. The lower applet is a file attachment applet called Account
Attachment Applet. There is a master-detail relationship between the account and
the list of account attachments, so that all file attachments for the current account
are listed in the lower applet.
22-38
Version 6.0
Special-Purpose Applets
File Attachment Applets
By opening the Windows Explorer application, and dragging the icon of the
desired file from Windows Explorer to the heading bar of the attachment applet.
This is known as drag-and-drop.
By right-clicking anywhere in the attachment list, and selecting the New Record
option in the dialog box which appears. A browser dialog box appears for
selection of the document file, as shown in Figure 22-28.
Version 6.0
22-39
Special-Purpose Applets
File Attachment Applets
22
Attachment applets utilize functionality built into the Siebel file system. Various
specialized objects and methods are provided in the Siebel File System that provide
the attachment support and synchronization capabilities:
The Name list column or text box control has a Detail Applet property setting of
File Popup Applet. This refers to the dialog box that appears when you click on
the ellipsis (...) button in the list column or text box, when a file attachment link
currently exists. This dialog box appears in Figure 22-29.
When a link to a file attachment has not yet been created, the user sees the
Select File dialog box shown in Figure 22-28 instead of the Edit Links dialog box.
22-40
Version 6.0
Special-Purpose Applets
File Attachment Applets
Several of the list columns or controls in the applet are based on corresponding
fields in the attachment business component. This business component is described
in Configuring Attachment Business Components on page 22-42. These will
typically include those listed in Table 22-6.
Table 22-6.
Display Name
Field
Type
Name
xxxFileName
TextBox
Local
Dock Status
CheckBox
Request
xxxFileDockReqFlg
CheckBox
Size
xxxFileSize
TextBox
Type
xxxFileExt
TextBox
Modified
xxxFileDate
TextBox
Auto Update
xxxFileAutoUpdFlg
CheckBox
The xxx prefix refers to a standard prefix found in the names of the fields in the
attachment business component. For example, for account attachments the prefix
is Accnt and the actual field names referenced from the applet would be
AccntFileName, AccntFileDockReqFlg, and so on.
Version 6.0
22-41
Special-Purpose Applets
File Attachment Applets
22
The Business Component property of the attachment list applet identifies the
business component that the Siebel file system uses to store the attachment list
data. For the Account Attachment Applet, this business component is called
Account Attachment. The attachment business component must adhere to the
following requirements:
The Class property of the Business Component object must be set to CSSBCFile.
The Table property must refer to an attachment table, as described in the section
Configuring Attachment Tables on page 22-44. In the Account Attachment
Applet, this table is S_ACCNT_ATT.
22-42
Version 6.0
Special-Purpose Applets
File Attachment Applets
The field names of file engine-supplied fields have to adhere to a special format, and
map to specific column names in the attachment table. These names consist of the
prefix, as specified in the DefaultPrefix user property, followed by a required set of
suffixes. These field names, corresponding columns, and data types are listed in the
Table 22-7.
Table 22-7.
Name
Column
Type
Text Length
xxxFileAutoUpdFlg
FILE_AUTO_UPD_FLG
DTYPE_BOOL
xxxFileDate
FILE_DATE
DTYPE_DATETIME
xxxFileDeferFlg
FILE_DEFER_FLG
DTYPE_TEXT
xxxFileDockReqFlg
FILE_DOCK_REQ_FLG
DTYPE_TEXT
xxxFileDockStatFlg
FILE_DOCK_STAT_FLG
DTYPE_TEXT
xxxFileExt
FILE_EXT
DTYPE_TEXT
10
xxxFileName
FILE_NAME
DTYPE_TEXT
220
xxxFileRev
FILE_REV_NUM
DTYPE_ID
15
xxxFileSize
FILE_SIZE
DTYPE_NUMBER
xxxFileSrcPath
FILE_SRC_PATH
DTYPE_TEXT
220
xxxFileSrcType
FILE_SRC_TYPE
DTYPE_TEXT
30
Table 22-8 lists a non-file engine field that will usually be present, although it is not
required.
Table 22-8.
Version 6.0
Name
Column
Type
Calculation
Dock
Status
(calculated)
DTYPE_BOOL
IIf ([AccntFileDockStatFlg] = N OR
[AccntFileDockStatFlg] IS NULL,N,Y )
22-43
Special-Purpose Applets
File Attachment Applets
22
Attachment tables provide the underlying data storage for the attachment business
components. Unlike the attachment business component, which can support
purposes in addition to file engine functionality, the attachment table stores file
engine data only.
Users will not populate the attachment table directly. Rather, users are provided
with an initially empty attachment table, and populate it one file at a time using
drag and drop or the browser dialog box in the corresponding file attachment
applet.
22-44
Version 6.0
Special-Purpose Applets
File Attachment Applets
Table 22-9 lists the columns that appear in an attachment table. Note that the
columns whose names begin with FILE_ are required columns, and must be named
as specified in the table. The User Name values can be the same as or different from
those listed.
Table 22-9.
Name
User Name
Type
Physical Type
Length
FILE_AUTO_UPD_FLG
Data (Public)
Character
FILE_DATE
File Date
Data (Public)
Date Time
FILE_DEFER_FLG
Data (Public)
Character
FILE_DOCK_REQ_FLG
Data (Public)
Character
FILE_DOCK_STAT_FLG
Data (Public)
Character
FILE_EXT
File Ext
Data (Public)
Varchar
10
FILE_NAME
File Name
Data (Public)
Varchar
255
Data (Public)
Varchar
15
FILE_SIZE
File Size
Data (Public)
Number
22
FILE_SRC_PATH
Data (Public)
Varchar
255
FILE_SRC_TYPE
Data (Public)
Varchar
30
FILE_REV_NUM
Default
Various system columns not related to the file engine will also be present, such as
CREATED, LAST_UPD_BY, and ROW_ID.
A table that has file engine columns must be flagged as such with a TRUE value in
the File property of the corresponding table object definition.
Version 6.0
22-45
Special-Purpose Applets
Web Browser Applets
22
Web browser applets can run either Microsoft Internet Explorer or Netscape
Navigator. You select one of these Web browsers in Siebel applications by selecting
View Options menu and then selecting the Web Browser tab.
Web browser applets are used in Siebel eBriefings, a module of Siebel applications
that uses Internet technology to provide sales, marketing, and customer service
professionals with automated access to internal and external information about
customers, competitors, and others.
By merging information from external sources (including news wires, company
profiles, and links to SEC filings) with information from Siebel applications, Siebel
eBriefings supplies the user with business intelligence and company sales
resources.
22-46
Version 6.0
Special-Purpose Applets
Web Browser Applets
For detailed information on Siebel eBriefings, refer to the Siebel eBriefings Guide.
Version 6.0
22-47
Special-Purpose Applets
Web Browser Applets
Property
Description
Class
Business Component
(Sheet 1 of 2)
Name
Description
SWE:Login
This Y/N value tells the system whether the browser applet can log on to the Siebel Web
engine server without the users being prompted for a logon ID and password. If Y is
entered in the Value property, the user will be automatically logged in. If N, the user is
prompted to log in.
SWE:
LoginAuxCmd
This Y/N value tells the browser whether to open with an empty window (and wait for
the user to indicate that it is OK to proceed to the URL). Y in the Value property indicates
to open with an empty window and wait; N indicates to go directly to the URL. The default
is N. If this user property record is omitted this default will be assumed.
Used when an applet control (button) is associated with the browser navigation method.
22-48
Version 6.0
Special-Purpose Applets
Web Browser Applets
Table 22-11.
(Sheet 2 of 2)
Name
Description
BrowserType
This user property tells the system which kind of Web browser to open, whether it is to
open within the Siebel application window, and what to do if unsuccessful. The
BrowserType value can be:
RTF. Indicates that the destination is an .rtf (Rich Text Format) file, and that an .rtf
viewer application is to be used rather than a Web browser.
Web. Indicates that Internet Explorer is installed and that the applet is to run Internet
Explorer from within the Siebel application window. If unsuccessful, the browser
should be launched from Windows, outside of Siebel applications.
Embedded. Indicates that the applet is to run Internet Explorer from within the
This is either a complete Web address or the first piece of a Web search specification, as
described in Web Search Specifications on page 22-50. This is a required parameter.
The following pair of user property object definitions (Table 22-12) will result in
logon of the Web browser applet to the indicated Web address, with the logon name
and password passed to the Web address automatically.
Table 22-12.
Name
Value
SWE:Login
URL00:
http: //www.mycompany.com/HomePage.html
A particular Web browser applet has the destination Web address attached to it via
the applet user property object definition, and this value cannot be changed at run
time. For this reason, if a fixed Web address is specified in the URL0 user property
row (as in Table 22-12), the applet will always navigate to this address (until
reconfigured via Siebel Tools).
Although the URL feature is primarily intended for accessing the Siebel Web engine
server, it can be used to access any valid Web site address.
Version 6.0
22-49
Special-Purpose Applets
Web Browser Applets
22
In many situations the Web browser applet cannot navigate to a fixed Web address
(URL) when accessing Web pages. To allow flexible addressing, you can construct
search specification URLs. A search specification URL performs a lookup on a Web
site based on a combination of special symbols and text.
NOTE: The syntax for construction of Web search URL strings is outside the scope
of this book, and you should consult a book on the HTML language and Web page
construction for this information. Syntax and special character limitations depend
on the embedded viewer that is used in an applet.
The search specification URL can also include values derived from the current
business component record, to make the search specific to the context in Siebel
applications. To accomplish this, replace URLnn: with URLnn:Field in the Name
property in a user property row, and enter the name of the field in the business
component in the Value property.
Special user property names can be substituted for URLnn: in the Name property.
These include the following:
22-50
URLnn:LoginId. This property name returns the User ID of the current Siebel
application user.
Version 6.0
Special-Purpose Applets
Web Browser Applets
client user.
URLnn:Samp. This property name returns the Web address for running against
URLnn:Emb. This property name returns the Web address for running against the
URLnn:Ext. This property name returns the Web address for running against the
production (Server or Local) database with an external browser.
NOTE: There can be more than one property following URLnn. For example, if you
are running against the Siebel Sample database and want to retrieve the System
preference, the syntax would be URL00:Samp:SystemPreference.
Version 6.0
22-51
Special-Purpose Applets
Web Browser Applets
22
To create the layout for a Web browser applet, open the applet in the Applet
Designer, and add a set of buttons along the top of the applet. The Web browser will
use all remaining space from the bottom edge of the lowest user-defined object to
the bottom of the applet. A Web browser applet in the Applet Designer window
appears in Figure 22-31.
You can add buttons to support basic Web browser functionality, such as Back,
Forward, Stop, and Refresh. If the Web browser is running in embedded mode
(inside the Siebel application window), the typical buttons and menus normally
found in Internet Explorer will be missing, and you will want to add these to the
applet. These buttons are dynamically enabled and disabled as the user navigates
within the browser. The user cannot enter a Web address directly in the Web
browser applet. The user may follow hypertext links to other Web pages, however.
22-52
Version 6.0
Special-Purpose Applets
Web Browser Applets
BrowserBack method. Moves back to the previous Web address, if the user has
BrowserForward method. Moves forward to the next Web address, if the user has
BrowserLaunch method. Launches the external browser and loads the current
page.
Maximize method. Maximizes the embedded browser applet to fit the entire view.
Used when the view contains other applets besides the embedded browser.
Note that most of these buttons have predefined icons. In general, the easiest
method for adding buttons to a Web browser applet is to copy them from another
Web browser applet.
Version 6.0
22-53
Special-Purpose Applets
Chapter Summary and Where to Get More Information
22
Chart applets
Tree applets
File attachment applets
Web browser applets
Table 22-13 lists sources of additional information about topics discussed in this
chapter.
Table 22-13.
22-54
User properties
Appendix E
Siebel eBriefings
Version 6.0
Special-Purpose Controls
23
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-2
Version 6.0
23-1
Special-Purpose Controls
About This Chapter
23
This chapter describes special-purpose controls whose roles and configuration are
more complex than those of text boxes, check boxes, buttons, and so on. These are
image controls and ActiveX controls.
Image Controls
23
23-2
Version 6.0
Special-Purpose Controls
Image Controls
In this view, the image control resides in a separate applet. As the user moves
between product records (using the Next Record and Previous Record buttons while
the Product applet is active), the image displayed in the image applet changes. The
file attachment table row that holds the information for the bitmap file attachment
is obtained through a join from the current product record.
Version 6.0
23-3
Special-Purpose Controls
Image Controls
Alternatively, an image control can be implemented within a form applet that also
displays text data. For example, the Account Entry Applet can be reconfigured to
display the company logo for each account. Here the displayed image changes with
the other data in the form applet. When a different account record is highlighted in
the list applet, both the text data and the logo bitmap image in the form applet
change correspondingly.
In either implementation scenario, a user can associate a bitmap file to a record
using either drag-and-drop (from the Windows Explorer or My Computer window)
or by right-clicking in the image area and choosing New Record. An image is deleted
by deleting the corresponding file attachment record. Only Windows .bmp format
is supported (although all Windows .bmp resolutions are supported).
The configuration of a standalone image applet differs slightly from that of an image
control integrated into a form applet, so the two configurations are explained in
separate sections.
23
The Internal Product Image Display Applet illustrated in Figure 23-1 is the only
standalone image applet in standard Siebel applications, and it uses a business
component based on a specialized class, so this applet is not used in the explanation
here. Instead, a custom configuration is explained in which you create your own
product image applet based on an existing product attachment business
component.
23-4
Version 6.0
Special-Purpose Controls
Image Controls
Alternatively, for an image control displaying company logos, you might want to
restrict the records to those named Logo, as follows:
[ActFileName] IS NULL or [ActFileName] = 'Logo'
The purpose of the search specification is to ensure that at most one file attachment
is accessed for each master record. If no record is returned, the image control is
blank, which is the desired behavior in that circumstance.
Version 6.0
23-5
Special-Purpose Controls
Image Controls
5 In the Field property, enter the name of the field in the attachment business
component that identifies the file name of the bitmap file associated with each
record.
This field has a name of the form xxxFileName, where xxx is a prefix whose text
is stored in a user property child object definition of the business component.
23
Integration of an image control into an existing form applet requires that you set up
a join from the applets business component to a file attachment table, and set up
fields based on the join.
You cannot configure an integrated image control for an applet based on a
specialized business component such as Action or Opportunity. The class of the
business component must initially be CSSBusComp or CSSBCBase, although you
change the business component class to CSSBCFile to enable file attachment
functionality.
For specialized business components, it is often possible to display the image in a
standalone applet, as described in Implementing an Image Control in a Standalone
Applet on page 23-4, or configure a new business component on the same base
table.
23-6
Version 6.0
Special-Purpose Controls
Image Controls
New Record.
5 Set the Table and Alias properties to the name of the attachment table.
6 Set the Outer Join Flag property to TRUE.
To create the join specification between the business component and the
attachment table
1 With the new join object definition highlighted in the Object List Editor, select
join specification in the Object Explorer.
2 Make the join specifications list editor window active.
3 Choose Edit
New Record.
4 In the new join specification record, set the Name property to the name of the
primary ID field in the business component.
5 Set the Destination Column property to the name of the foreign key field in the
attachment table that identifies the parent business component record for each
attachment row. Generally this is PAR_ROW_ID.
Version 6.0
23-7
Special-Purpose Controls
Image Controls
23-8
Version 6.0
Special-Purpose Controls
ActiveX Controls
ActiveX Controls
23
An ActiveX control is a self-contained program unit that can be run from within
other programs. An ActiveX control typically registers itself in the Windows registry.
In Siebel applications, any registered ActiveX control can be incorporated in an
applet. This provides the means to add one or more specialized features to an
applet, such as a slider or media player. You can also embed entire applications that
are available as ActiveX controls.
NOTE: ActiveX controls will work in most environments, but the programming
environment itself may or may not support it. For example, trying to insert a Siebel
ActiveX application control into an Excel worksheet generates a Cannot insert
object error.
Version 6.0
23-9
Special-Purpose Controls
ActiveX Controls
The illustration shows a movie player control called ActiveMovie Control in a form
Applet.
23-10
Version 6.0
Special-Purpose Controls
ActiveX Controls
23
An ActiveX control includes its own property list, which varies from control to
control. In addition, an ActiveX control in an applet has the full set of properties of
the Control object type. There are two ways to view and modify properties for an
ActiveX control in an applet: by using the Properties window, or by activating the
controls built-in property sheet.
3 Click the Categorized (as opposed to Alphabetic) tab at the top of the Properties
window.
This clusters all of the controls native properties under the ActiveX heading, and
all of the standard Control object type properties under the Misc. heading.
4 Make changes to property settings as you would in any Siebel object definition.
The changes you make to the controls native properties are generally displayed in
the Applet Designer window, such as when you change a text color or font property.
Additionally, changes you make to the controls native properties are saved with the
applet, just as with the Siebel properties.
The alternative approach to changing property settings is to use the controls native
property sheet. When you make property changes using the controls native
property sheet, you can modify only the properties of the ActiveX object, not those
of the standard control object definition. To alter the standard control properties,
you must use the Properties window.
Version 6.0
23-11
Special-Purpose Controls
ActiveX Controls
3 Make any desired changes to property settings. These settings are saved with the
applet when you exit the Applet Designer or do a Save.
The Control object definition has two properties that are blank for non-ActiveX
controls, but may have values for ActiveX controls. These are ActiveX Bind Property
and ActiveX Properties:
ActiveX Bind Property property. The ActiveX Bind property is used in conjunction
with the Field property to bind a field to a native ActiveX control property. When
the field value changes, this value is saved to the ActiveX controls property. This
feature has many uses. For example, in the ActiveMovie control you can have
the field in the business component supply the filename of the movie to run.
You specify the name of the native ActiveX control property in the ActiveX Bind
Property. You specify the name of the field to bind in the Field property. The field
must be a child object definition of the business component of the applet.
Only one field can be bound to one ActiveX control property through this
mechanism. To update more than one property or field requires writing a Siebel
VB script.
23-12
Version 6.0
Special-Purpose Controls
ActiveX Controls
23
An ActiveX control in an applet exposes a set of methods and events that are
provided with the control. The methods may be called from scripts written in Siebel
VB or Siebel eScript attached to the control or other objects, and event procedures
can be programmed in to respond to the events the control generates.
This dialog box lists the methods, and specifies the syntax for calling them. It is
for reference purposes only.
Version 6.0
23-13
Special-Purpose Controls
ActiveX Controls
The ActiveX control appears in the Object list in the Siebel VB window, along
with the applets other controls and the applet itself.
3 Select the ActiveX control in the Object list to view the list of events to which
you can attach event procedures.
23-14
Version 6.0
Special-Purpose Controls
ActiveX Controls
23
Version 6.0
23-15
Special-Purpose Controls
Chapter Summary and Where to Get More Information
23
23-16
Siebel VB
Version 6.0
Part 7
A d d i t i o n a l To p i c s
Version 6.0
Version 6.0
Version 6.0
A-1
This appendix lists and describes all the menus and toolbars in the Siebel Tools user
interface.
The drop-down menus in the menu bar operate as standard Microsoft Windows
menus. Select the item and a drop-down menu appears. Active menu items are
displayed in the standard font. Menu options that are not available due to the
current state of the program are grayed out.
Siebel Tools contains the menus and menu options described in the following
sections. Where keyboard shortcuts exist, they are included after the option name.
File Menu
The File menu contains the following options for repository and object definition
saving and management:
New Object option. Invokes the New Object Wizard for creation of a list applet,
form applet, chart applet, tree applet, business component, report, or view.
Save option (CTRL+S). Saves changes in the current editing window when you are
A-2
Import option. Imports text from an external text file into the Siebel VB Editor
window. This text should be in an .sbl file formatthis is the format that is
generated when it is exported from the Siebel VB editor.
Version 6.0
Export option. Enables you to create a text file in delimited or HTML format,
listing the property values in the current object definition or all object definitions
currently displayed in the Object List Editor.
Print Setup option. Changes the printer and printing options for printing object
Print Preview option. Opens a print preview window for display of an object
visualization view.
Print option (CTRL+P). Prints the active object visualization view diagram.
Edit Menu
The Edit menu options apply to individual object definitions in the Object List
Editor. The Edit menu consists of the following options:
Undo option (CTRL+Z). Reverses the last change to a property value in the Object
List Editor or Property window before the object definition is committed.
Redo option (CTRL+Y). Reapplies to a property value the change that was just
undone.
Undo Record option (CTRL+S). Reverses the creation of a new object definition or
all modifications to an existing object definition, so long as the record hasnt yet
been committed.
Cut option (CTRL+X). In a text property, copies the selected text to the clipboard
and deletes the existing text. In the Applet Designer, copies the selected control
to the clipboard and deletes the existing control.
Copy option (CTRL+C). In a text property, copies the selected text to the clipboard
without deleting it. In the Applet Designer, copies the selected control to the
clipboard without deleting it.
Paste option (CTRL+V). Inserts text from the clipboard into a text property at the
insertion point. Inserts a control from the clipboard in the Applet Designer.
Version 6.0
Delete option (DELETE). In a text property, deletes the selected text. In the Applet
Designer, deletes the selected control.
A-3
Select All option (CTRL+A). Selects the entire document. In the Applet Designer,
New Record option (CTRL+N). Creates a new object definition in the Object List
Copy Record option (CTRL+B). Creates a new object definition that is a copy of the
currently selected object definition, and duplicates all child object definitions.
NOTE: Avoid using the Copy Record option, except when the reuse and extension
of an existing object definition would be completely impractical. For more
information, see Copying vs. Modifying Object Definitions on page D-4.
Delete Record option (CTRL+D). Deletes the currently selected object definition
Find option (CTRL+F). Finds the specified text in the Siebel Script Editor window.
Replace option (CTRL+H). Replaces the specified text with different text in the
View Menu
The View menu options are used to change display environment settings, including
those determining which windows and toolbars to show, and also invokes
visualization views (which are diagrams showing object definition relationships).
The View menu options are:
Object Explorer option (CTRL+E). Shows or hides the Object Explorer window.
Applets Window option. Shows or hides the Applets window. This window is used
A-4
Version 6.0
Refresh Windows option. Requeries and updates the state of dockable windows.
Edit Layout option. Opens the Applet Designer for the currently selected Applet
object definition, or the View Designer for the currently selected View object
definition.
Web Script Editor option. Opens the Siebel Web Script Editor, which is used to
access scripts that control the presentation and behavior of applet controls and
list columns in a Web applet template.
View Details option. Generates and displays a Details visualization view for the
currently selected business component or business object.
View Hierarchy option. Generates and displays a Hierarchy visualization view for
the currently selected applet, application, business component, screen, or view.
Calls option (CTRL+L). Opens the Calls window for display of the call stack of the
Watch option (SHIFT+F9). Opens the Watch window for display of the values of
local variables in the Siebel VB or Siebel eScript script currently being debugged.
Errors option. Opens the Errors window for display of the run-time errors in the
ActiveX Methods option. Enables you to view the methods for the current ActiveX
Toolbars option. Displays or hides the various toolbars: Edit, History, List, Debug,
Status Bar option. Displays or hides the Status bar at the bottom of the Siebel
Tools window.
Version 6.0
A-5
Screens Menu
The Screens menu is empty unless you log on to Siebel Tools as a system
administrator. If you have system administrator rights, the following menu options
and suboptions appear:
System Administration option. The suboptions of this menu option provide access
Go Menu
The Go menu contains options for creating and navigating to bookmarks, which flag
object definitions for easy return navigation. Bookmarks are a helpful navigation
aid, allowing you to move around quickly among the object definitions of different
types you are working on. The Go menu contains the following options:
Add Bookmark option. Invokes the Add Bookmark dialog box, for creation of a
A-6
Bookmark List option. Invokes the Bookmarks dialog box, for selection of an
existing bookmark to navigate to. You can also use this dialog box to rename or
delete existing bookmarks.
Version 6.0
Query Menu
The Query menu options enable you to create and refine Object List Editor queries,
which restrict the list of object definitions that appear in the current Object List
Editor window. An option is provided that lets you change the sort order of object
definitions in the window. The Query menu options are as follows:
New Query option (CTRL+Q). Enables you to specify restrictions on the set of object
Refine Query option (CTRL+R). Enables you to add additional restrictions to the
Execute Query option (ENTER). Executes the query you have just specified,
causing the restrictions to take effect. This has the same effect as pressing Enter.
Sort Order option. Invokes the Sort Order dialog box, for specification of sort order
criteria for the list of object definitions in the Object List Editor window.
Reports Menu
The Reports menu may be empty or may list one or more available reports of object
definitions and properties, depending on which object type is currently active in the
Object Explorer:
Applets by BusComp option. Generates a report listing the applets assigned to each
business component. Available when applet is selected in the Object Explorer.
Business Component and Fields option. Generates a report listing all business
components and the fields within each. Available when Business Component is
selected in the Object Explorer.
Business Object and Components option. Generates a report listing all business
objects and the business components within each. Available when Business
Object is selected in the Object Explorer.
Version 6.0
Project List option. Generates a report listing all projects. Available when Project
is selected in the Object Explorer.
Tables option. Generates a report listing all tables and the columns and Indexes
within each. Available when Table is selected in the Object Explorer.
A-7
Workflow Policy Objects option. Generates a report listing all Workflow Policy
Repository Dock Objects option. Generates a report listing all Dock Objects.
Available when Dock Object is selected in the Object Explorer.
Application Upgrade Object List option. Generates a report listing all object
Application Upgrade Attributes List option. Generates a report listing all attribute
Format Menu
The Format menu options are used in the Applet Designer. They provide the means
to align, resize, and reposition controls; configure the snap grid; and adjust tab or
list column order. Options are also provided for performing an Applet Designer
Preview. The Format menu options are as follows:
Align option. Aligns the selected items with the selected model.
Make Same Size option. Makes all selected items the same size as the selected
model.
Grid Settings option. Sets the horizontal and vertical grid to an integer between
A-8
Set Tab Order option. Active only when a form applet is open in the Applet
Designer. Enables you to change the tab sequence of the controls in the applet,
resetting the values in the Sequence property of each control. Tab sequence is
the order in which the Tab key cycles the user through the controls. Numbers
appear next to each control, indicating the order of each in the current tab
sequence. You click on each control in the order you want used for the tab
sequence, changing the numbers displayed in the Applet Designer and the
values in the Sequence properties of the controls.
Version 6.0
List Columns option. Displays the List Column Fields dialog box, in which you can
add, remove, and reorder the list columns.
Preview option. Invokes the Applet Designer Preview, which enables you to
preview the applet as it would appear at run time in a specified language and
with specified viewing options. Refer to the section entitled Applet Designer
Preview on page 12-9.
Select Truncated Controls option. In the Applet Designer Preview, selects all
Select Untranslated Controls option. In the Applet Designer Preview, selects all
Debug Menu
The Debug menu options control the Siebel VB or Siebel eScript debugger, for use
when a script is open in the Siebel Script Editor:
Start option (F5). Starts the application. A dialog box with start-up parameters is
also displayed.
Break option (CTRL+BREAK). Stops the execution of the currently running script.
End option. Stops the execution of the application and returns to the Siebel Script
Editor window.
Step Into option (F8). Executes the next line of script code. If this is a subroutine
or procedure call, then execution will continue within that procedure.
Step Over option (SHIFT+F8). Advances the application to the script code line just
after the current subroutine or procedure. Execution remains at the level of the
current procedure.
Step To Cursor option (CTRL+F8). Executes all lines of code up to the line selected
by the cursor.
code.
Version 6.0
A-9
Clear All Breakpoints option (CTRL+SHIFT+F9). Removes all breakpoints from the
Check Syntax option. Compiles the current script and verifies syntax.
Repository Menu
Compile option (F7). Opens the Object Compiler window to compile one or more
projects, or all projects in the repository, into an .srf file.
Check Out option (F10). Opens the Check Out window, to copy one or more
Check In option (CTRL+F10). Opens the Check In window, to copy one or more
Lock Project option. Locks the project that the currently selected object definition
is assigned to.
Unlock Project option. Unlocks the project that the currently selected object
definition is assigned to.
Add To Archive option. Opens the Export To Archive dialog box, for adding the
Import From Archive option. Initiates the Import wizard for importing object
definitions from an archive file.
Build Patch option. Initiates the Patch Builder wizard to create a patch file.
Apply Patch option. Opens the Apply Patch window to initiate the patch
application process.
String Search option. Opens the String Search window, which provides the ability
A-10
Version 6.0
Find in Repository option. Opens the Find in Repository window for performing a
search for object definitions based on the text in their names (or other
properties) and their object types.
Tools Menu
Check Labels option. Opens the Check Labels dialog box to check the labels in the
currently selected applet for sufficient horizontal space when translated into a
particular language.
Generate Actuate Report option. When a Report object definition is selected, this
menu option generates a data stream file for use in the creation of an Actuate
report.
Generate Help IDs option. This option generates the sshelp.hm file, containing
correspondences between context ID numbers and text help identifiers that have
been specified in Help ID object definitions for applets. This file is used in online
help development in which context-sensitive help is employed.
Get Strings option. This option brings the contents of the strings table (S_MSG)
from the server to the local database. The translation records in this table are
needed to compile the application with language translation enabled.
Map Fax Properties option. When the business component object type is selected
in the Object Explorer, this option opens the Map Fax Properties dialog box for
the current business component object definition. This dialog box is used to
create mappings between fields in the business component and fax software
property sheet properties. These mappings support customization of the fax
cover sheet and message.
Options option. Opens the Development Tools Options dialog box for the
Version 6.0
A-11
Window Menu
The Window menu lists the currently open Object List Editor, Application Designer,
visualization view, and other windows, and provides the means to navigate to
windows that are currently hidden from view.
Help Menu
Contents option. Opens Siebel Tools Online Help, which includes a .pdf version of
this book.
Using Help option. Opens the online help window for the Microsoft Windows help
engine.
Technical Support option. Displays the Technical Support Information dialog box,
informing you of the phone numbers for calling or faxing Siebel technical
support. The dialog box also displays information that technical support will
need from you, such as the version number of your Siebel Tools installation and
the command line syntax used to open Siebel Tools.
About Record option. Opens a dialog box that displays information about the
current object definition, including its creator and creation date.
About SRF option. Opens a dialog box that displays information about the most
recent full and incremental compilations.
About Siebel Tools option. Opens a dialog box identifying the version of Siebel
Tools.
A-12
Version 6.0
There are six toolbars and a status bar in the Siebel Tools window. The toolbars in
the Siebel Tools window are identified in Figure A-1.
Edit toolbar
Debug toolbar
Figure A-1.
Control toolbar
List toolbar
History toolbar
The toolbars, like menu items, are active only when the object type or window that
utilizes them is current. Toolbars may be shown or hidden, by using the
corresponding View menu options. You can also rearrange the toolbars at the top of
the Siebel Tools window by dragging, or you can make a toolbar free-floating by
dragging it to the middle of the window.
Version 6.0
A-13
Edit toolbar. This toolbar contains edit tools, the New Object wizard, and undo/
redo options.
List toolbar. This toolbar contains options that apply to object definitions in the
Object List Editor. They insert a new record, move forward and backward, start
a query, and sort object definitions in ascending or descending order.
Debug toolbar. This toolbar contains Siebel VB and Siebel eScript debugging
tools.
Control toolbar. This toolbar contains Applet Designer user interface control tools.
Edit Toolbar
Copy
Save All
Save
Figure A-2.
Cut
Undo
Paste
Redo
Edit Toolbar
New toolbar button. Invokes the New Object Wizard, which enables you to create
Save toolbar button. Saves changes in the current editing window when you are
A-14
Save All toolbar button. Saves changes in all open editing windows.
Version 6.0
Cut toolbar button. In a text property, copies the selected text to the clipboard and
deletes the existing text. In the Applet Designer, copies the selected control to
the clipboard and deletes the existing control.
Copy toolbar button. In a text property, copies the selected text to the clipboard
without deleting it. In the Applet Designer, copies the selected control to the
clipboard without deleting it.
Paste toolbar button. Inserts text from the clipboard into a text property at the
insertion point. In the Applet Designer, inserts a control from the clipboard.
Undo toolbar button. Reverses the last change to a property value in the Object
List Editor or Property window if the object definition has not been committed.
Redo toolbar button. Reapplies to a property value the change that was just
undone.
Several of these tools are also available from the Edit menu. You can also display a
menu of edit tools by selecting a field and right-clicking while the cursor is
positioned over the Object List Editor window.
List Toolbar
The List toolbar, shown in Figure A-3, helps you navigate through and alter the
listing of object definitions in the Object List Editor.
Go to Top
of List
Version 6.0
Go to Next
Record
New
Record
Go to
Previous
Record
Figure A-3.
List Toolbar
Go to
End
of List
New
Query
Sort
Ascending
Execute
Sort
Query Descending
A-15
New Record button. Creates a new object definition in the Object List Editor, with
Go to Top of List button. Goes to the first object definition in the list.
Go to Previous Record button. Goes to the object definition above the current
selection.
Go to Next Record button. Goes to the object definition below the current
selection.
Go to End of List button. Goes to the last object definition in the list.
New Query button. Enables you to specify one or more restrictions on the set of
object definitions to be displayed in the current Object List Editor window.
Execute Query button. Executes the query you have just specified, causing the
restrictions to take effect. This has the same effect as pressing Enter.
A-16
Sort Ascending button. Changes the order in which object definitions appear by
sorting them in ascending order on the currently selected property column.
Sort Descending button. Changes the order in which object definitions appear by
sorting them in descending order on the currently selected property column.
Version 6.0
History Toolbar
The History toolbar contains two toolbar buttons for creating and navigating to
bookmarks, which flag object definitions for quick return navigation. Bookmarks
are a helpful navigation aid, allowing you to move around quickly among the object
definitions of different types you are working on. The History toolbar is shown in
Figure A-4.
Bookmark List
Add
Bookmark
Figure A-4.
History Toolbar
Add Bookmark button. Invokes the Add Bookmark dialog box, for creation of a
Version 6.0
Bookmark List button. Invokes the Bookmarks dialog box, for selection of an
existing bookmark to navigate to. You can also use this dialog box to rename or
delete existing bookmarks.
A-17
Figure A-5.
Password button. Creates a text box where the user enters a password during
logon.
A-18
Version 6.0
Version 6.0
LOV administration
A-19
A-20
Version 6.0
. . . . . . . . . . . . . . . . . . . . . . . B-20
Version 6.0
B-1
This appendix describes the supported syntax elements for queries and for sort and
search specifications.
Precedence
Precedence is the order in which Siebel applications evaluate the various operators
within a single expression. The system will evaluate operators with higher
precedence before operators with lower precedence. In addition, operators with
equal precedence will be evaluated left to right.
Table B-1 lists the levels of precedence for the various Siebel application operators.
Table B-1.
Level of Precedence
Level
Operator
()
OR logical operator
B-2
Version 6.0
Comparison Operators
Table B-2 describes the purpose of each comparison operator and gives an example
of how it is used.
Table B-2.
Comparison Operators
Operator
Purpose
Example
Equality test
<>
Inequality test
>
Greater than
<
Less than
[Probability] < .7
>=
<=
[Probability] <= .7
Logical Operators
Table B-3 explains what a value of TRUE or FALSE means for each logical operator.
Table B-3.
Version 6.0
Logical Operators
Operator
Returns TRUE
Returns FALSE
NOT
AND
OR
B-3
NOTE: The Search Engine Table property for View and Applet must be based on the
same table as the index. For example, if the search index is based on S_EVT_ACT,
then the view should be based on action and the applet should be based on action.
The LIKE operator is used in character string comparisons with pattern matching.
The syntax is as follows:
char1 LIKE char2
where char1 is the value to be compared with the pattern and char2 is the pattern
to which char1 is compared. The NOT logical operator can be used in conjunction
with LIKE to exclude patterns. The syntax including the NOT logical operator is:
char1 NOT LIKE char2
or
NOT (char1 LIKE char2)
While the equal ( = ) operator does exact matching, the LIKE operator matches a
portion of one character value to another. Patterns can use special characters to
denote different characters. These characters are given in Table B-4.
B-4
Version 6.0
Table B-4.
Character
Purpose
Example
Zero or more
characters
[Last Name] LIKE Sm* would return all records whose [Last Name]
value starts with the characters Sm, as in Smith, Smythe, Smart,
and so on.
[Last Name] LIKE *om* would return all records whose [Last Name]
field contains the characters om, as in Thomas, Thompson,
Tomlin, and so on.
One character
[First Name] NOT LIKE Da? would return all records whose [First
Name] value was three characters long and did not start with the letters
Da. Records with Ted, Tom, and Sam would be returned, but
Dax and Dan would not.
NOT ([First Name] LIKE ?o?) would return all records whose [First
Name] value was three characters long and did not have as its middle
character o. Records with Ted and Sam would be returned, but
Tom and Bob would not.
NULL
NULL in SQL represents a value that is not known or is not applicable. Expression
evaluation with NULL is somewhat different than with other values. Since NULL is
not a value, comparison functions do not operate normally when one or both of the
operands are NULL. For instance, NULL = NULL is not TRUE.
SQL and Siebel applications provide special functions and grammar to support
NULL, including the IS NULL unary operator and IfNull function. Comparisons,
string concatenations, and Boolean operations have special behavior to handle
NULL.
NULL is typed like a value. An operand or result can be NULL string, NULL number,
NULL Boolean, and so on.
Version 6.0
B-5
IfNull Function
The IfNull function has two arguments and returns the value of either the first or
second argument depending on whether the first argument is NULL. IfNull (a,b)
returns a if a is not NULL or returns b if a is NULL.
The return type of IfNull is the type of its first argument, even if the first argument
is NULL. The second argument is converted to the type of the first argument before
its value is returned.
B-6
Version 6.0
Calculation expressions are calculated field and validation expressions. Table B-5
describes the functions you can use in these expressions.
Table B-5.
(Sheet 1 of 3)
Function
Result Type
Query
Description
Count (mvlink)
Integer
No
Currency ()
String
Yes
Type of expr1
Yes
Type of expr1
No
JulianDay ()
Date
Yes
JulianMonth ()
Date
Yes
JulianQtr ()
Date
Yes
JulianWeek ()
Date
Yes
JulianYear ()
Date
Yes
Language ()
String
Yes
Version 6.0
B-7
Table B-5.
(Sheet 2 of 3)
Function
Result Type
Query
Description
String
Yes
LocalCurrency ()
String
Yes
LoginId ()
String
Yes
LoginName ()
String
Yes
String
No
String
No
B-8
Version 6.0
Table B-5.
(Sheet 3 of 3)
Function
Result Type
Query
Description
String
No
ParentBCName ()
String
Yes
ParentFieldValue (field_name)
String
Yes
PositionId ()
String
Yes
PositionName ()
String
Yes
Sum (mvfield)
Integer
No
Timestamp ()
DateTime
Yes
Today ()
Date
Yes
Version 6.0
B-9
NOTE: Use only numbers between -2147483647 and 2147483648 in field validation
expressions.
The Julian functions (described in Table B-5) must have as a parameter either
Today() or a field name.
For example, you need to use either JulianMonth([Created]) (of a field) or
JulianMonth(Today()) (of the current date).
Calculated fields do not support updates (even simple expressions like [Field]),
unless specialized business components override SqlSetFieldValue.
B-10
Version 6.0
Alternatively, the next expression contains just Bob if the [Last Name] field is
NULL and the [First Name] field is Bob. (The CalculatedValue expression must be
all on one line.)
CalculatedValue = "[Last Name] + IIf ([Last Name] IS NULL, "", ",")
+ [First Name]"
Version 6.0
B-11
Function
Result Type
Description
System: Creator
String
System: CreatorId
String
System: Position
String
System: PositionId
String
System: Today
Date
System: Timestamp
DateTime
System: Currency
String
System: LocalCurrency
String
String
Field: FieldName
String
Expr: Today() - 1
String
Value of expression.
Example: Today() - 1.
B-12
Version 6.0
The Calculated Value property specifies an expression for calculating the value of a
field. A fields Validation property restricts the values for a field or ensures the
correctness of data entered, for a single value field (validation is not supported for
MVFs).
NOTE: The property text is limited to 255 characters for Sort Specification, Search
condition
expression
condition
:
:
comparison
condition [AND | OR] condition
comparison
:
expression
:
:
:
Version 6.0
constant
identifier
function
B-13
constant
:
:
:
:
:
:
:
:
:
number
string (double quoted)
integer
currency
date (double quoted)MM/DD/YY
(separator must be /)
time (double quoted)HH:MM:SS
(separator must be :)
date and time (double quoted)
MM/DD/YY HH:MM:SS(space required)
Boolean
phone number (double quoted)
identifier
:
[field name]
NOTE: For date and time formats in controls or list columns, use the format specified
in the Control Panel. In Search Specification or predefined query form, use the
business component format.
To reference a field value, you must use [Field Name]. Also, string constants must
be enclosed in double quotation marks (string).
B-14
Version 6.0
All Field objects have a data type. Single-value fields have a data type value. Multivalue fields inherit the data type from the source field. Many types can convert to
other types during calculations. Many operations produce different results with
different types. For example, 10 + 10 produces 1010, while 10 + 10 produces
20.
Siebel applications calculations are left-centric; for example, 10 + 10 produces
1010, while 10 + 10 produces 20. In the first example, the right argument 10
converts itself to a string, but in the second example, the right argument 10
converts itself to a number.
Field objects can have any of the following Siebel data types:
DTYPE_BOOL
DTYPE_CURRENCY
DTYPE_DATE
DTYPE_DATETIME
DTYPE_ID
DTYPE_INTEGER
DTYPE_NOTE
DTYPE_NUMBER
DTYPE_PHONE
DTYPE_TEXT
DTYPE_TIME
Siebel data types are discussed in more detail in the Siebel Object Types Reference.
Version 6.0
B-15
Search Syntax
Query By Example
Searching or query by example (QBE) can be performed through the user interface
list columns or controls as predefined queries, or specified in the Search
Specification property. The syntax is slightly different when done through the user
interface but, in all cases, the syntax is simple BNF (Backus-Naur Format).
QBE Statement
:
:
condition
expression
condition
:
:
:
comparison
NOT condition
condition [AND | OR] condition
comparison
:
expression [~] [= | < | > | <= | >= | [NOT] [~] LIKE] expression
expression
:
:
:
constant
identifier
function
constant
:
:
:
number
string (double quoted)
date (double quoted)MM/DD/YY
(separator must be /)
: time (double quoted)HH:MM:SS
(separator must be :)
: date and time (double quoted)
MM/DD/YY HH:MM:SS(space required)
B-16
Version 6.0
identifier
:
[field name]
NOTE: For date and time formats in controls and list columns, use the format
specified in the Control Panel. In Search Specification or predefined query form, use
the business component format.
Search Specification
sensitive. You can use the ~ modifier, however, to make the search case insensitive.
Version 6.0
B-17
You can specify the [NOT] EXISTS operator in a QBE or Search Specification
referring to a multi-value group field. A multi-value group field is the user interface
mechanism for displaying the child records of a parent record within the parent
records applet. For example, assume the following:
A form applet views the Opportunity business component with the following
fields: Opportunity Name, Contact First Name, and Contact Last Name.
The form applet is opportunity-focused; that is, the purpose of the form applet
is to display and manage opportunity information (any contact information
displayed is specific to the opportunity).
Because the form applet is opportunity-focused, the opportunity name would be a
standard text box control, whereas the contacts first and last names would be
defined as multi-value group fields. Why multi-value group fields and not standard
edit controls? Because, for each opportunity, there can potentially be more than one
contact; the only way to display multiple contacts for an opportunity in an
opportunity-focused applet is through a multi-value group field.
When you enter Wine Festival as a search specification in the opportunity name,
you are asking the Opportunity business component to return all opportunities that
have a name of Wine Festival. When you enter Smith as a search specification
in the contact last name, however, you are asking the Opportunity business
component (not the Contact business component) to return all opportunities that
have contacts with a last name of Smith. This type of query transcends business
components and, therefore, requires the [NOT] EXISTS keyword, as shown in the
following syntax examples:
Syntax for QBE (placed directly in the last name field in the user interface):
EXISTS(Smith)
B-18
Version 6.0
NOTE: If you have an MVF with a primary ID field specified and the Use Primary
Join attribute checked, then typing in a query that does not use EXISTS will find all
the records where the primary record in the MVG matches that particular search
spec. If you specify EXISTS then it will find every record where any of the records
in the MVG match the search spec. If you do not specify a primary ID field for the
MVG or set the Use Primary Join attribute to unchecked, then the only available
query is one that uses EXISTS. In this case, if you specify a query that does not use
EXISTS, it will automatically be assumed and inserted as part of the search spec.
Version 6.0
B-19
Sort Syntax
If you have saved a query, you can modify the expression through the PreDefined
Query view and add a sort expression. You can specify one or more fields, with each
field further refined as either ascending or descending. The syntax for the
predefined query is as follows:
Business Component.Sort = [Field] [[(DESC[ENDING])], [Field]
[(DESC[ENDING]],...]
Sort is a reserved word that indicates a sort expression follows (as opposed to
Search).
1 [Close Date]
2 [Opportunity] (DESCENDING)
3 [Revenue]
4 [Revenue] (DESCENDING)
5 [Revenue] (DESC), [State]
B-20
Version 6.0
You can contrast sorting through the user interface with sorting through a
predefined query or through the Search Specification property. Sorting through the
user interface is available by using the sort buttons, to list applets only, not to form
applets.
To specify sort ascending or descending, after retrieving data, the end user selects
a list column to sort on by clicking on the list column header and clicking one of
the sort buttons. Currently, there is no user interface method for sorting on more
than one field.
Version 6.0
B-21
B-22
Version 6.0
Version 6.0
C-1
This appendix describes the Siebel application run-time environment for dedicatedclient applications.
Run-Time Model
This section explains what happens, step-by-step, between the time you start a
Siebel application and the time you first begin to interact with the displayed data.
When you start the application:
When you invoke Siebel applications from an icon on the desktop or in the Start
menu, you are executing the command line specified in the properties of the icon.
That command line is similar to the following:
SIEBEL /D datasource /U username /P password /C SIEBEL.CFG
The word Siebel at the beginning of the command line calls for the execution of the
SIEBEL.EXE program, which is the Siebel application engine. The Siebel application
engine is the software that runs Siebel applications.
C- 2
Version 6.0
The /D, /U, /P, and /C expressions are command line switches or flags. These are
parameters being passed to the SIEBEL.EXE program. Table C-1 defines these and
other switches.
Table C-1.
Command-Line Switches
Switch
Definition
/D
/U and /P
/C
/X
/H
/L
/S
The configuration file contains initialization settings for the application engine. It
specifies how the application engine is to load up and run, where it is to obtain its
data from, and so on. It is similar to the .ini files used by many Windows programs.
If a configuration file is not specified in the command line with the /C switch, the
SIEBEL.CFG file in the same directory as SIEBEL.EXE (generally c:\siebel\bin) is
used by default. A sample of the beginning of a configuration file follows:
[Siebel]
RepositoryFile="siebel.srf"
ApplicationName="Siebel Sales"
DataSource="Local"
ClientRootDir="c:\siebel"
TempDir="c:\siebel\temp"
(etc.)
Version 6.0
C-3
The [Siebel] section at the top of the configuration file contains global settings that
indicate to the application engine how to start up. Of particular importance for
startup are the RepositoryFile and ApplicationName settings:
C- 4
Version 6.0
After loading the configuration file and repository, the Siebel engine brings up the
logon dialog box. Although it would appear that the user is logging on to the Siebel
application, this happens only indirectly. The user is being prompted to select a
DBMS and database, and to enter the DBMS username and password that provides
entry into that database. Siebel applications does not maintain its own usernames
and passwords. Instead, it passes the username and password to the DBMS for
validation and to obtain access to database resources. The database username is
associated with privileges in Siebel Applications, but no separate username and
password for Siebel applications are used.
The Connect To picklist in the Logon dialog box allows you to specify a database to
log on to. The set of available databases appearing in the picklist is configured in
the [DataSources] section of the configuration file. A portion of the [DataSources]
section and related sections in a configuration file follow:
[DataSources]
Local="Local"
Server="Server"
Sample="Sample"
Internet="Internet"
Nameserver="Nameserver"
[Local]
Docked="FALSE"
ConnectString="c:\SIEBEL\local\sse_data.dbf -Q -m"
TableOwner="SIEBEL"
DLL="SSCDW55.DLL"
SqlStyle="Watcom"
MaxCachedCursors="16"
MaxCachedDataSets="16"
ReverseFillThreshold="100"
CaseInsensitive="FALSE"
InsensitivityFactor="2"
DockTxnsPerCommit="500"
DockConnString="CHANGE_ME"
SearchStyle="Fulcrum"
SearchConnectString="SEA Search c:/siebel"
SearchDefName="Fulcrum Sample"
[Server]
Docked="TRUE"
ConnectString="CHANGE_ME"
Version 6.0
C-5
TableOwner="CHANGE_ME"
DLL="sscdo73.dll"
SqlStyle="Oracle"
MaxCachedCursors="16"
MaxCachedDataSets="16"
ReverseFillThreshold="100"
CaseInsensitive="FALSE"
InsensitivityFactor="2"
FileSystem="CHANGE_ME"
SearchStyle="Fulcrum"
SearchConnectString="SEA Search c:/siebel"
SearchDefName="Fulcrum Sample"
The [DataSources] section provides the list of database names that appear in the
Connect To picklist, and associates each database name with the name of a
configuration file section, such as [Local], [Server], and [Sample], that contains the
connection parameters for that database. Within each named datasource section
([Local], [Server], and so on) in the configuration file are parameters such as DLL,
which specifies the DBMS connector. Other parameters, such as ConnectString and
TableOwner, determine the database to use within the DBMS. The set of parameters
in each named datasource section is highly vendor-dependent.
NOTE: The term datasource in the [DataSources] section of the configuration file is
C- 6
Version 6.0
After a successful logon to the DBMS, the Siebel application engine locates the
users database logon ID in the Employee business component in Siebel
applications. Anyone with administration access rights can view and maintain
employee records in Siebel applications. (To do that, you select the Screens
Application Administration Employees menu option.) Sample employee records
are shown in Figure C-1.
Login Name
text box
Responsibility
picklist
Position picklist
Version 6.0
C-7
Each employee record has a Login Name value assigned, which is the same as that
persons database username. This value makes it possible for the system to access
the users Employee record following database logon. Each employee record also
has a Position field and a Responsibility field. These two fields (each of which can
hold multiple values), in addition to the user logon, establish visibility for that user.
Visibility refers to the set of access rights that identify the portions of the application
and data that are visible to specific employees (users). The roles of Responsibility,
Position, and Login Name are explained briefly as follows:
responsibility is a class of multiple users who require access to the same set of
application features. A users responsibility (or set of responsibilities, if more
than one) identifies the views the user can navigate to in Siebel Applications. A
view is a set of applets (visual application units) that appear on the screen at the
same time. A user navigates to a view through menu options, screen tabs, or
drilldown features in other views. When a users responsibility does not include
a specific view, the ability to navigate to that view is disabled.
Login Name. The users login name is recorded in records that the user creates,
thereby providing Personal visibility to these records. In some business
components, such as Contact, it is also possible for an authorized user to assign
Personal visibility to a particular user.
Position. A user can have one or more positions assigned. The position describes
the persons job title in the organization, such as Marketing Assistant, Lead
Engineer, or Call Center Agent. The users position may appear in the Sales Team
for particular records, which provides Sales Team visibility to those records.
Sales Teams are updated through the territory assignment process. The position
is also used in determining if the user supervises persons who have visibility to
particular records. In this case the user has Manager visibility to those records.
In addition to visibility rules, which establish the users access rights to records
through a network to which the user is directly connected, there are routing rules.
The routing rules specify which records are to be propagated to mobile users. For
example, routing rules may limit a particular user to receiving only certain accounts,
thereby eliminating the unnecessary transmission of records for which the user has
no need.
Visibility and routing are described in detail in Chapter 8.
C- 8
Version 6.0
After visibility has been established, the user begins to navigate between user
interface features and to view the data. Object definitions are drawn from the .srf
file as needed.
The .srf file holds the same contents as the Siebel repository which is viewed and
maintained in Siebel Tools. However, the compilation process has converted the .srf
file to a form that is smaller and, due to internal indexes, faster at performing object
definition lookups.
When the application is loaded, the Siebel application engine loads and interprets
user interface object definitions, such as the application, screens, screen menus,
and page tabs, to lay out the workspace. It also interprets the users preferences file,
which stores information that the user has maintained in the Options dialog box in
Siebel applications. The preferences file settings control what default view (if any)
to load on startup, the colors and fonts, and so on. The users responsibilities and
other administration features related to user access to views are also checked, and
the set of menus and tabs adjusted accordingly.
When the default view appears, or when the user clicks a tab or menu item to
navigate to a view, queries obtain the database data for the first time. The applets
(individual application units) within the loaded view have a business component
assigned to each of them. Each business component specifies which columns from
which tables (and joins) are to be accessed to populate each applet. It also specifies
various other attributes and restrictions such as visibility rules based on position,
searching and sorting criteria, and so on.
The business object (logical business model) associated with the view also
establishes some context for the business components. For example, in a view in
which a one-to-many relationship is displayed with a master record in one applet at
the top and detail records from a different business component in another applet at
the bottom, the business object specifies the one-to-many relationship between the
two business components.
After the necessary business object and data object definitions are loaded and
interpreted, the application engine generates queries to send to the DBMS, and
obtains results tables. From the results of queries, data is available to populate the
controls and list columns in the applets. The application engine requests as little
data as possible in order to improve performance. For example, if not all of the fields
in a business component are displayed, only the displayed ones are requested (with
the exception of fields for which the ForceActive or LinkSpec property is set).
Version 6.0
C-9
An important concept, especially for programmers who will use the OLE interface,
is that of object instances. An object instance in Siebel Applications is a user
interface, business or data object that is active (present in memory) at the current
time. In the case of user interface object types, an instance refers to little more than
the object definition that is currently on screen. In the case of business object
definitions, especially business components, an instance also includes the set of
data records that are presently loaded as the result of queries.
You can have several instances of the same business component in memory at once,
each with its own result set. This is not possible with user interface object instances,
such as applets and views, since theres only one Siebel application window open
at any one time.
An object instance is ephemeral; it is generally released from memory as soon as
the user navigates to a view based on a different business object.
C- 1 0
Compiling projects
Chapter 8
Version 6.0
Configuration Guidelines
Version 6.0
D-1
Configuration Guidelines
. . . . . . . . . . . . . . . . . . . . . . . D-22
D-2
Version 6.0
Configuration Guidelines
About This Appendix
This appendix describes guidelines to follow when you are doing Siebel application
configuration. It explains when to modify, copy, or create object definitions; lists
visibility considerations; and discusses how to work with specialized business
classes. It also includes recommendations on naming conventions.
customer use, even though they are present in standard Siebel applications.
Version 6.0
D-3
Configuration Guidelines
Copying vs. Modifying Object Definitions
Sometimes developers and development teams create their own copies of standard
(Siebel-provided) business components and applets, using the Copy Record option,
and use these instead of the corresponding standard object definitions. This is a
risky practice that could easily cause problems during subsequent upgrades of
Siebel applications. Here are some of the reasons why copying can be problematic:
Copying can create problems difficult to debug. Functionality is often added to most
of the standard business components during major releases. Very often this new
functionality depends on the existence of new fields, joins, and so on, that are
added to the standard business components. During the upgrade these new
fields are only added to the standard business components in your merged
repository. The Application Upgrader does not look through the repository for
all your custom business components to bring them into line with the standard
ones that you copied them from.
Copying results in problems following the upgrade, and these are difficult to
locate and debug. The errors often occur because some C++ code for the
business component or applet class is trying to find a field that does not exist in
your custom copy of that business component or applet. The only way to debug
the problem is to compare your custom business component with the standard
business component and add any new fields and other child object definitions
that may have been added in the new release. This may be a complex process,
requiring detailed knowledge of what has changed in the new release.
D-4
Version 6.0
Configuration Guidelines
Copying vs. Modifying Object Definitions
Copying increases, not reduces, difficulties. Developers can make copies of object
definitions because they mistakenly believe that doing so will reduce problems
during an upgrade. The assumption is that if the business component is called
My Account, the Application Upgrader will leave it alone during the upgrade,
resulting in no problems after the upgrade. However, this is not the case, and the
problems you will have with an upgraded configuration containing copied object
definitions will typically be more complex to solve, by a considerable margin,
than the problems you'll have with reused object definitions. It is far easier to
go through your application after an upgrade and remove various new controls
and list columns from a standard applet than it is to go through each custom
business component and applet and work out what fields, joins, multi-value
links, and so on to add.
In short, you should modify existing object definitions wherever possible, and avoid
using the Copy Record option except when it is truly needed. This being said, there
are nevertheless a few special situations in which you should make a copy of an
existing object definition. Some of these situations are described in detail in the
subsections below. As a general rule, unless you are certain that you need to make
a copy of an object definition, you should modify an existing object definition
instead.
Applets
Modify, rather than copy, an applet, unless you are making extensive modifications
to the applet. This avoids having to change all references of that applet to the new
copy.
The following are examples of situations in which you might need to copy an applet:
Version 6.0
D-5
Configuration Guidelines
Copying vs. Modifying Object Definitions
Modify, rather than copy, business components and business objects, except in the
following instances:
Controls
Controls are only associated with one applet, so you may safely copy a control from
one applet to another.
Pick Applets
Try to reuse pick applets, rather than creating new ones. If different fields are
exposed in the applet, specify a different pick map. If a different user interface is
required in a dialog box, specify a different pick applet.
Occasionally you may need to create a new pick applet if one doesnt already exist
with the required properties (such as Bounded or NoInsert) for the business
component.
D-6
Version 6.0
Configuration Guidelines
Guidelines for Business Components
Version 6.0
D-7
Configuration Guidelines
Guidelines for Business Components
You should not modify the business object and business component definitions that
you are not using in your implementation. Do not delete or inactivate these
definitions as they may be referenced (and thus needed) by other object definitions
in other projects.
If they are not included in your application, you may receive compile or run-time
errors.
Do not explicitly define system fields for a business component. Siebel applications
automatically populates the UPDATE, UPDATED_BY, CREATED, and CREATED_BY
columns during insert. If you define fields that are based on these columns, Siebel
applications will attempt to write a value to these columns twice in the Insert
statement and this will cause a duplicate column SQL error.
D-8
Version 6.0
Configuration Guidelines
Guidelines for Business Components
Visibility Considerations
Although it is possible to modify the visibility rules defined by the user interface,
Siebel Remote visibility rules will still determine which records are downloaded to
a remote users machine.
For example, you can configure a view to give an end user access to all opportunities
in the database. When connected to the server database, the end user would then
see all opportunities in the database. However, when running in disconnected mode
against their local database, users would still see only the opportunities that Siebel
Remote determines should be downloaded to the local database. That is, users will
see only the opportunities on which they are sales team members and which are
associated with an account, contact, or activity to which they have access.
When creating a new business component, always check that your visibility
requirements are satisfied by the Siebel Remote visibility rules applied to the parent
business component, and to the base table for the business component.
For example, Siebel Remote does not consider the S_NOTE table when finding notes
associated with an account. If you create a business component that stores accountrelated records in the S_NOTE table, these records are not synchronized by Siebel
Remote.
Naming Conventions
You should name all new business components and business objects with a
prefix that identifies your company. For example, ABC Incorporated could name
a new object definition ABC Telesales Account. This approach makes it easy to
identify the object definitions in the repository that are not object definitions
defined by Siebel. This approach also makes it easy to query for your newly
defined object definitions and simplifies upgrading your repository.
Version 6.0
D-9
Configuration Guidelines
Guidelines for Applets
Your design and configuration projects should produce a consistent and intuitive
user interface. Where possible, applets that display the same business component
should be consistent across different screens and views. For example, the contact
list displayed for an opportunity should be consistent with the contact list displayed
for an account. Where possible, reuse applet definitions between different views
and screens. Obvious exceptions include redundant fields and fields that are
relevant only to the current master business component. For example, you would
display the contacts account information when displaying opportunity contacts,
but not when displaying account contacts.
This recommendation does not necessarily apply when comparing list and form
applets. When space is limited, it may be practical to include list columns at the end
of a list applet that are not displayed on the associated form applet.
Most applet modifications can be grouped in one of the following categories:
Applets that closely align with an existing list applet in Siebel applications but
require minor configurations such as a title change, commenting out or adding
controls or list columns, and changing labels. The recommended approach for
this category of applet is to modify the existing applet definition and layout.
List applets that do not have equivalent applets in Siebel applications. These are
typically applets that expose a new business component. In these instances you
should create a new applet.
D-10
Version 6.0
Configuration Guidelines
Guidelines for Applets
Certain business components, such as Territory, Employee, and Position, are not for
direct modification in applets and views, although developers sometimes assume
that these can be exposed. These can only be modified through the corresponding
administration views.
Applet Classes
Applet behavior is managed by the C++ class specified in the applets Class
property. This value is typically one of the following four standard classes provided
by Siebel:
Version 6.0
D-11
Configuration Guidelines
Guidelines for Applets
Unused Applets
Do not modify or delete applets that are not used in your implementation. Also, you
do not need to set the Inactive property for the definition to TRUE. Simply leave the
applet as defined, and dont include it in any views.
You incur minimal overhead from the unused applets during compilation.
Online Help
Always define HelpIds for applets and list columns. Also, for every control and list
column in the product, define a hint prompt in the Messages view. For all standard
list columns and controls that you have changed, verify that the HelpIds and hint
prompts are still appropriate. For more information on HelpIds, refer to the Siebel
Online Help Developers Guide.
Naming Conventions
Name all new applets with a prefix that identifies your company. For example,
ABC Incorporated could name a new applet ABC Opportunity List Applet.
Initial-capitalize applet names, for example, Account List Applet rather than
account list applet.
D-12
Version 6.0
Configuration Guidelines
Guidelines for Applets
The type of applet should be included in the name just before the word applet, as
shown in Table D-1.
Table D-1.
Type of Applet
Name Format
Example
Association applets
Pick applets
List applets
Form applets
Version 6.0
Chart applets
Tree applets
D-13
Configuration Guidelines
Guidelines for Applets
Applet Titles
The applet title is the value in the Title property. It determines what displays in the
tab at the upper left of an applet in a view, or in the title bar of a popup applet.
Follow these general guidelines when creating applet titles:
Type of Applet
Title Format
Example
Association applets
Add buscomp_name(s)
Add Opportunities
buscomp_name(s)
Contacts
Pick applets
Pick buscomp_name(s)
Pick Product
List applets
buscomp_name List
Account List
Form applets
buscomp_name Form
Account Form
buscomp_name Entry
Account Entry
xxx Analysis
Chart applets
or
Tree applets
D-14
xxx by yyy
buscomp_name(s)
Opportunities
Version 6.0
Configuration Guidelines
Guidelines for Controls and List Columns
The following sections list general guidelines for creating and modifying controls
and list columns.
To expose system fields in the user interface, you create either a list column (within
a list applet) or a control (within an entry applet).
Field
Description
Updated
Updated by
Created
Created by
Id
3 Enter a display name property for the list column (for example, Last Updated).
Version 6.0
D-15
Configuration Guidelines
Guidelines for Controls and List Columns
Set the Visible property to FALSE if the control or list column is Siebel-created, and
delete it if user-created.
Use the appropriate pop-up device wherever possible to ease data entry. For
instance, you should associate a calendar widget with a date field, and a multiline edit box with a multi-line text field.
Left-align data unless you have a specific reason to center or right-align it.
Buttons
To create a new button, click the button icon in the Control toolbar and draw the
button on the applet layout. You can alter the size of a button to accommodate a
longer or shorter button label.
Check Boxes
In form applets, position the label to the left of the check box. Right-align and
vertically center the label.
Consider whether a check box is the appropriate way to display the data. In
situations where the data does not map well to a yes/no response, or where the
meaning of the unchecked value is not obvious, it is better to use a list of values.
For example, instead of a check box labeled Standard, use a text box labeled
Shipping Method, with a list of values containing Standard and Next Day.
D-16
Version 6.0
Configuration Guidelines
Guidelines for Controls and List Columns
Version 6.0
D-17
Configuration Guidelines
Guidelines for Controls and List Columns
A control (except for a button, prompt, or system control) must correspond to a field
on the business component on which the applet is based. The controls Name
property should have the same value as the fields Name property.
Follow these guidelines when creating display names:
Use the same display name for an underlying field in every applet in which it
appears.
Avoid using abbreviations when enough room is available for you to spell out
the word. For example, when there is sufficient space, use Opportunity instead
of Oppty.
When you must abbreviate, use the same abbreviation throughout the
application. For example, always use Account Num and do not switch between
Account Num, Account No., and Account #.
Initial-capitalize control and list column names, for example, Account Num
rather than account num. This prevents unexpected sorting behavior in the
Object List Editor.
D-18
Version 6.0
Configuration Guidelines
Guidelines for Views
The following sections give guidelines for naming views, handling unused views,
and choosing a view layout.
Threads
Views associated with more than one screen in a given application will cause
incorrect behavior in Siebel applications. When the thread is saved in the session
file, the name of the view is saved without the name of the associated screen. When
the end user chooses a thread that navigates to a duplicated view, the Siebel
applications will always navigate to one screen onlyeven if the thread was created
in the other screen. Furthermore, if the duplicate view is defined as the default view
on both tabs, the end user will see an anomaly in the user interface. Siebel
applications will select one tab as the active tab when either of the tabs is selected.
The duplicate tab will never appear to be active.
Unused Views
If your implementation does not utilize a view definition provided by Siebel, use the
Responsibility List Administration view to disassociate the redundant view from any
responsibilities used by your organization. Inactivation or deletion of the view
definition is not required. This approach helps to reduce the amount of
configuration that you need to maintain and upgrade. It also provides for an easy
upgrade path should you decide to expose the view in a later phase. At that time no
configuration or software upgrade would be required; you would merely reassign
the view to the relevant responsibility.
Version 6.0
D-19
Configuration Guidelines
Guidelines for Views
Naming Conventions
Name a new view using a prefix that identifies your company. For example, a
new view created for ABC Incorporated could be named ABC Opportunity
Detail - Tasks View.
Initial-capitalize view names, for example, Opportunity List View rather than
opportunity list view.
In addition, note the conventions in Table D-4 for specific view types.
Table D-4.
D-20
Type of View
Name Format
Example
List-form view
Master-detail view
Explorer view
Chart view
Version 6.0
Configuration Guidelines
Guidelines for Views
View Titles
Title bar of the Siebel application window. The title appears in the title bar, prefixed
by the application name and a hyphen, as in Siebel Sales - Account List View.
This is specified in the Title property of the view.
View bar tab. In the View bar in the appropriate screen, the tab that navigates to
this view. This is specified in the Viewbar Text property of the corresponding
screen view object definition.
Keep these three title definitions consistent for one view. If at all possible, the text
should be identical in all three.
If a view specifies a visibility mode, as indicated by a non-blank Visibility Applet
Type property, the title (in all three locations) needs to identify the visibility mode,
as indicated in Table D-5.
Table D-5.
Visibility Mode
Title Format
Example
My buscomp(s)
My Contacts
Personal visibility
My Personal buscomp(s)
My Personal Contacts
Manager visibility
My Teams buscomp(s)
My Teams Opportunities
All visibility
All buscomp(s)
All Accounts
Version 6.0
D-21
Configuration Guidelines
Additional Guidelines
Additional Guidelines
Brief guidelines that do not fit in any of the preceding sections are included here.
Naming conventions that were not discussed in the preceding sections are listed in
Table D-6.
Table D-6.
Object Type
Name Format
Example
Column
X_HOBBY
Join
S_ORG_EXT
S_CONTACTS
Link
buscomp1/buscomp2
Account/Account Service
Agreement
List
List (a literal)
List
Screen
busobject(s) Screen
Opportunities Screen
Table
S_CONTACT
S_ACCNT_SRC_X
S_ASSET_XM
S_PRI_LST_IF
S_ORG_EXT_XMIF
D-22
Version 6.0
Configuration Guidelines
Appendix Summary and Where to Get More Information
Version 6.0
Configuration Guidelines:
Architectural Considerations on
page 3-23
D-23
Configuration Guidelines
Appendix Summary and Where to Get More Information
D-24
Version 6.0
User Properties
Version 6.0
E-1
User Properties
About This Appendix
User properties are object definitions that are added as children to an applet,
business component, control, field, or list column to configure specialized behavior
beyond what is configured in the parent object definitions properties.
E-2
Version 6.0
User Properties
Supported User Properties
The user properties that are supported for customer use are listed in Table E-1.
.
Table E-1.
(Sheet 1 of 8)
User
Property
Functional
Area
Parent
Object Type
DataCleansing Field n
(where n is an integer)
Data Quality
Business
Component
Chapter 15
DataCleansing Type
Data Quality
Business
Component
Chapter 15
Version 6.0
Description
Where
Documented
E-3
User Properties
Supported User Properties
Table E-1.
(Sheet 2 of 8)
User
Property
Functional
Area
Parent
Object Type
Data Quality
Business
Component
Chapter 15
DeDuplication Field n
(where n is an integer)
Data Quality
Business
Component
Chapter 15
E-4
Description
Where
Documented
Version 6.0
User Properties
Supported User Properties
Table E-1.
(Sheet 3 of 8)
User
Property
Functional
Area
Parent
Object Type
DeDuplication Results
Applet
Data Quality
Applet
Chapter 15
DeDuplication Results
BusComp
Data Quality
Business
Component
Chapter 15
Data-Driven
Access
Control
Business
Component
Configuring
Data-Driven
Read-Only
Behavior on
page 18-11
Data-Driven
Access
Control
Business
Component
Configuring
Data-Driven
Read-Only
Behavior on
page 18-11
Data-Driven
Access
Control
Business
Component
Configuring
Data-Driven
Read-Only
Behavior on
page 18-11
Recipient E-mail
Address Field
Email/Fax
Business
Component
Chapter 9
Version 6.0
Description
Where
Documented
E-5
User Properties
Supported User Properties
Table E-1.
(Sheet 4 of 8)
User
Property
Functional
Area
Parent
Object Type
Email/Fax
Business
Component
Chapter 9
Recipient Id Field n
(where n is an integer)
Email/Fax
Business
Component
Chapter 9
Description
Where
Documented
E-6
File
Attachments
Business
Component
File
Attachment
Applets on
page 22-37
Version 6.0
User Properties
Supported User Properties
Table E-1.
(Sheet 5 of 8)
User
Property
Functional
Area
Parent
Object Type
FileMustExist
File
Attachments
Business
Component
File
Attachment
Applets on
page 22-37
SequenceField
Sequence
Fields
Business
Component
Sequence
Fields on
page 18-22
Version 6.0
Description
Where
Documented
E-7
User Properties
Supported User Properties
Table E-1.
(Sheet 6 of 8)
User
Property
Functional
Area
Parent
Object Type
BrowserType
Web Applets
Applet
Description
This user property tells the system
which kind of Web browser to
open, whether it is to open within
the Siebel applications window,
and what to do if unsuccessful.
The BrowserType value can be:
Where
Documented
Web
Browser
Applets on
page 22-46
E-8
Web Applets
Applet
Web
Browser
Applets on
page 22-46
Version 6.0
User Properties
Supported User Properties
Table E-1.
(Sheet 7 of 8)
User
Property
Functional
Area
Parent
Object Type
SWE:LoginAuxCmd
Web Applets
Applet
Description
This Y/N value tells the browser
whether to open with an empty
window (and wait for the user to
indicate that it is OK to proceed to
the URL). Y in the Value property
indicates to open with an empty
window and wait; N indicates to
go directly to the URL. The default
is N. If this user property record is
omitted this default will be
assumed.
Where
Documented
Web
Browser
Applets on
page 22-46
Web Applets
Applet
Web
Browser
Applets on
page 22-46
URLnn:
(where n is an integer)
Web Applets
Applet
Web
Browser
Applets on
page 22-46
Version 6.0
Web Applets
Applet
Web
Browser
Applets on
page 22-46
E-9
User Properties
Supported User Properties
Table E-1.
(Sheet 8 of 8)
User
Property
Functional
Area
Parent
Object Type
URLnn:Ext
Web Applets
Applet
Web
Browser
Applets on
page 22-46
URLnn:Field
(where n is an integer)
Web Applets
Applet
Web
Browser
Applets on
page 22-46
URLnn:Login
PositionId
Web Applets
Applet
Web
Browser
Applets on
page 22-46
URLnn:LoginId
Web Applets
Applet
Web
Browser
Applets on
page 22-46
URLnn:Samp
Web Applets
Applet
Web
Browser
Applets on
page 22-46
URLnn:System
Preference
Web Applets
Applet
Web
Browser
Applets on
page 22-46
E-10
Description
Where
Documented
Version 6.0
User Properties
Appendix Summary and Where to Get More Information
Version 6.0
E-11
User Properties
Appendix Summary and Where to Get More Information
E-12
Version 6.0
Version 6.0
F-1
Databases
The relational model is a logical data model in which all data is represented as a
collection of related tables. A table is a set of rows or records of data with a uniform
structure. Tables are similar to indexed files in pre-database technology, with the
difference that tables are stored internally within the database management system,
not as independent files.
Tables have rows and columns, explained as follows:
Rows are comparable to records in indexed files. A row holds data about a
specific business entity of the type stored in the table, such as a single purchase
order in the Purchase Order table, an employee in the Employee table, or an
inventory item in an Inventory table.
F-2
Version 6.0
Employees Table
Row #
Column
Emp #
Column
Name
Column
Street Address
Column
City
Column
State
Column
30101
Jenny Frank
Cambridge
MA
1456
Fred Carlson
Berkeley
CA
3399
Sam Hudson
Minneapolis MN
10221
Cambridge
MA
8086
Mike Fernside
Berkeley
CA
1411
Hans Baker
22 E. 79th Ave.
Minneapolis MN
Certain columns may be designated as key columns of either of the following types:
Version 6.0
F-3
A foreign key column (or foreign key) is a column in one table that uniquely
identifies a row in a different table. For example, in the Employees table in
Figure F-1, the Row # column is used as a primary key. A second table called
Projects could have a column called Team Leader ID which points back to the
Row # of the Employees table. By specifying a value in the Team Leader ID
column in Projects, you identify the person in the Employees table who is the
team leader for that project. This is illustrated in Figure F-2.
Employees Table
Row #
Column
Emp #
Column
Name
Column
Street Address
Column
City
Column
State
Column
30101
Jenny Frank
Cambridge
MA
1456
Fred Carlson
2212 Fernside
Berkeley
CA
3399
Sam Hudson
Minneapolis
MN
10221
Cambridge
MA
points to record
points to record
Projects Table
Row #
Column
Project Name
Column
Team Leader
ID Column
ABC Products
Consolidated Inc
Acme Industries
Team Leader ID in the Projects table is a foreign key column. From the data in
the two tables in Figure F-2, it can be determined that Fred Carlson is the team
leader for the ABC Products project, and Sally Van Doren is the team leader for
the Acme Industries project.
F-4
Version 6.0
Order #
Column
Order Date
Column
Status
Column
40101
03/21/98
completed
41456
04/02/98
processing
53399
04/09/98
processing
10221
03/31/98
completed
point to record
Line Items Table
Row #
Column
PO ID
Column
Item
Column
Quantity
Column
grommets, pkg
10
Version 6.0
F-5
The PO ID column in the Line Items table is a foreign key to the Purchase Orders
table. Multiple rows in the Line Items table point to a single row in the Purchase
Orders table. The rows in the subordinate table that point back to one row in the
master table can be considered the detail or child rows, and the row in the master
table can be considered the master or parent row. Any row in the master table can
have multiple detail rows in the detail table, based on the value in a foreign key in
the detail table. The result is a one-to-many relationship, also called a master-detail
or parent-child relationship.
NOTE: The term master-detail is used throughout the book (for relationships
between tables) rather than parent-child, as the latter has a different meaning in the
context of object types and object definitions.
Customers
Table
Purchase
Orders Table
Inventory
Table
Legend:
Line Items
Table
Table
1:M relationship
between tables
F-6
Version 6.0
Queries
column names from a table or dataset along the top of a grid. You enter a value
or expression underneath a column name that pertains to that column. For
example, you might enter the expression >5000 in the Revenue column, and
direct the system to perform the query. The system would respond with a set of
table rows that matches the criterion Revenue > 5000. More complicated
queries can be created by entering expressions into more than one column.
Siebel client and code use QBE.
SQL windows or programs. These allow for the entry of a query in the form of an
Version 6.0
F-7
directs the system to create from the S_CONTACT (contacts) table a results table
containing three columns (first name, middle name, and last name) and consisting
of one row for each S_CONTACT row that has the value 12AC in the
PR_DEPT_OU_ID (primary account) column. In other words, the query generates a
contact list for a given account.
For more information on how to construct SQL queries, consult a book on SQL.
Join Queries
A JOIN clause in an SQL query combines the contents of two existing tables into a
third (results) table based on comparison of the contents of two columns, one in
each table. Any combination of rows from each table with matching values in the
designated, matching columns generates a result table row.
For example, assume you have a RETAILERS table and a CUSTOMERS table, and
each has a column indicating the city that the retailer or customer is in
(RETAIL_CITY and CUST_CITY, respectively). You would like a list of all possible
combinations of retailers and customers that are in the same city. The following SQL
clause would return this result:
Select CUSTOMER_NAME, RETAILER_NAME, CITY, STATE
From CUSTOMERS JOIN RETAILERS ON CUSTOMERS.CITY=RETAILERS.CITY
Where RETAILERS.CITY=Chicago
F-8
Version 6.0
Customers
Retailers
Jenny Frank
Cambridge
MA
Fred Carlson
Berkeley
CA
Sam Hudson
Cincinnati
OH
St. Paul
MN
Mike Fernside
Berkeley
CA
Hans Baker
Dallas
TX
Cambridge
MA
Jones Cleaners
Berkeley
CA
Cincinnati
OH
Pterodactyls Shop
Berkeley
CA
join
Jenny Frank
Cambridge
MA
Sam Hudson
Cincinnati
OH
Fred Carlson
Jones Cleaners
Berkeley
CA
Mike Fernside
Jones Cleaners
Berkeley
CA
Fred Carlson
Pterodactyls Shop
Berkeley
CA
Mike Fernside
Pterodactyls Shop
Berkeley
CA
Notice how cities not found in both source tables (such as St. Paul and Dallas) do
not go into the results table. Cities with one customer and one retailer (such as
Cambridge and Cincinnati) result in one row in the results table. Cities with
multiple customers or multiple retailers result in one row for each possible
combination of retailer and customer, which is the product of the number of
retailers in that city and the number of customers in that city.
Version 6.0
F-9
F-1 0
Appendix B
Version 6.0
Index
Version 6.0
Symbols
Numerics
/1 parameter
argument passed to repimexp.exe 14-24
/2 parameter
argument passed to repimexp.exe 14-24
/3 parameter
argument passed to repimexp.exe 14-24
/4 parameter
argument passed to repimexp.exe 14-24
/5 parameter
argument passed to repimexp.exe 14-24
/B parameter
argument passed to repimexp.exe 14-24
/C parameter
argument passed to repimexp.exe 14-24
/D parameter
argument passed to repimexp.exe 14-24
/F parameter
argument passed to repimexp.exe 14-24
/L parameter
argument passed to repimexp.exe 14-24
/M parameter
argument passed to repimexp.exe 14-24
/N parameter
argument passed to repimexp.exe 14-24
/P parameter
argument passed to repimexp.exe 14-24
/R parameter
argument passed to repimexp.exe 14-24
/T parameter
argument passed to repimexp.exe 14-24
/U parameter
argument passed to repimexp.exe 14-24
/V parameter
argument passed to repimexp.exe 14-24
6 Sectors property
Screen View object type 6-34
8 Sectors property
Screen View object type 6-34
A
abbreviations
in naming conventions D-18
About Record option
Help menu A-12
About Repository File window 5-7
About Siebel Tools option
Help menu A-12
About SRF option
Help menu A-12
access list
contact 8-18
Account business component
and data cleansing and
deduplication 15-14
Account Synchronization Selection
view 8-44
Account value
DataCleansing Type user property 15-6
Accounts and Sub-Accounts calculation
used to generate a dedup token 15-8
action argument
srcctrl.bat batch file 14-38
ActiveX Bind Property property
Control object type 23-12
ActiveX Control Methods dialog box 23-13
ActiveX Control tool
Applet Designer 12-6
ActiveX controls 2-17, 23-9
Index
All visibility
about 8-15, 8-16, 8-26, 8-35
All visibility access
mobile users 8-12
Always value
Visibility Rule Applied property of Link
object type 8-33
AND operator 18-10
applet control toolbar 12-5
Applet Designer 2-10, 13-9, 13-19, 19-14
about 6-20
Control toolbar 12-5
Format menu 12-6
Image controls 23-2
invoking 6-21
Preview capability 12-9
Preview window 12-7, 13-24
toolbar 22-36
Applet Designer tab
Development Tools Options
window 13-23
Applet Editor option
View menu A-5
Applet object type 11-23, 11-24, 19-13,
19-25, 20-25, 21-9, 22-34
Applet property
Applet Toggle object type 19-50
Tree Node object type 22-35
Applet Title property
Control object type 6-19
Applet Toggle object type 19-50
applet Web layout
configuring 7-11
applet_GotFocus event 21-22
applet-level menus 12-14
applets 19-9
about 3-13
adding fields to 23-2
Assignment Criteria 10-15
association 19-12, D-17
attachment 22-40
chart 19-11
Class property of D-11
Version 6.0
Index
Version 6.0
Index
B
Background Bitmap Style property
Applet object type 6-48
Background Color property
Control object type 19-8
backing up repositories 14-18
Backus-Naur Format (BNF) B-16
Base Table Attribute Column property
Attribute Mapping object type 17-43
base table extension column data
displaying 11-23
Version 6.0
Index
Version 6.0
Index
C
calculated field and validation expressions
functions you can use in B-7
calculated fields
about 18-4, 18-19
properties of 18-21
rules and restrictions of B-10
Calculated Value property
Field object type 16-10, B-13
CalculatedValue expression B-7
calculation expressions
functions you can use in B-7
Calendar business component
and links 18-37
calendar controls
configuring 19-32
Calendar Duration Column property
Assignment Object object type 10-11
Calendar Start Time Column property
Assignment Object object type 10-11
Calls option
View menu A-5
Campaign dock object 8-37
Cancel button
example in a list applet 19-31
Object Compiler window 5-33
Caption property
Control object type 6-19, 19-16, 19-23
Cascade Clear property
Column object type 11-14
cascade copy
about 18-57
Version 6.0
Index
Version 6.0
Index
CHECKOUT variable
srcctrl.bat batch file 14-42
Child Business Component property
Link object type 18-37, 18-65, 21-8
Child value
Visibility Rule Applied property of Link
object type 8-33
Class property
Applet object type 20-13, 21-9, 22-34
Business Component object type 6-6,
10-25, 18-26, 22-42, D-7
Single Value Field object type 6-18
classes
CSSBCBase 10-25, 18-25, 23-6
CSSBCFile 22-42, 23-4, 23-6
CSSBusComp 23-6
CSSFrame 19-15, 23-5
CSSFrameFile 22-40
CSSFrameList 19-25, 20-13, 21-18
CSSFrameListFile 22-40
CSSFrameTree 22-34
CSSFRBase 10-25
CSSFRListBase 10-25
CSSSequence 18-22, 18-24, 18-26
Clear All Breakpoints option
Debug menu A-10
CLEAR value
Cascade Delete property of Link object
type 18-40
Click event 23-15
Close button
in association applets 21-18
Close option
File menu A-2
Column Name property
Index Column object type 17-37
Column object type 17-4, 17-29, 18-4
Column property
Field object type 11-5, 11-23, 17-12, 18-20,
18-45, 18-48
Single Value Field object type 6-8
columns 17-2
about F-2
attribute 17-38
data 17-31
extension 3-6, 17-31, 17-32
foreign 17-38
foreign key F-4
in standard tables 3-6
intersection data 17-28
list 6-24
naming conventions for D-22
primary key F-3
standard 3-5
system 3-6, 17-33
COM interfaces 2-8, 2-18
combo boxes
about 19-21
ComboBox button
Web Controls toolbar A-18
ComboBox tool
Applet Designer 12-6
ComboBox value
Type property of Control object type 6-26,
19-21
command line execution process C-2
command line switches C-3
Command object type 19-59, 19-60
Command property
Toolbar Item object type 19-62
Command windowpane
Data window in Interactive SQL 16-14
Commands tab of the Customize dialog
box 19-58
Comment property
Dock Object Visibility Rule object
type 8-41
comment_file argument
srcctrl.bat batch file 14-38
Comments property
Column object type 17-31
COMMENTS variable
srcctrl.bat batch file 14-42
Version 6.0
Index
Version 6.0
Index
Copy button
example in a list applet 19-31
Copy method 19-61
Copy option
Edit menu A-3
Copy Record option
Edit menu A-4
Copy toolbar button
Edit toolbar A-15
copying object definitions
about 4-14
CopyRecord method 19-61
COUNT function 22-21
Count function B-7
Count value
Data Function property of Chart object
type 22-18
Create New Tree Node option
Applet Designer 22-36
CREATED system column 17-34
CREATED_BY system column 8-24, 17-34
creating new object definitions
about 4-14
CSSBCBase class 10-25, 18-25, 23-6
CSSBCFile class 22-42, 23-4, 23-6
CSSBusComp class 23-6
CSSFrame class 19-15, 23-5
CSSFrameFile class 22-40
CSSFrameList class 19-25, 20-13, 21-18
CSSFrameListFile class 22-40
CSSFrameTree class 22-34
CSSFRBase class 10-25
CSSFRListBase class 10-25
CSSSequence class 18-22, 18-24, 18-26
Currency function B-7
Current Query option
Apply Server Schema dialog box 11-22,
11-27
Current Row option
Apply Server Schema dialog box 11-22,
11-27
custom extension columns 17-32
custom extension tables 11-12, 17-9
10
custom indexes
adding 11-20
customer.dat text file 14-19
Customize dialog box 19-59
Commands tab 19-58
Toolbars tab 19-58
Cut method 19-61
Cut option
Edit menu A-3
Cut toolbar button
Edit toolbar A-15
D
Data (Intersection) value
Type property of Table object type 17-6,
17-21
Data (Private) value
Type property of Column object
type 17-30
Type property of Table object type 11-13,
17-6
Data (Public) value
Type property of Column object
type 17-30
Type property of Table object type 17-6,
17-9
data cleansing
about 15-3
data columns 17-31
about 3-6
private 17-30
data computational routines 2-25
Data Function property 22-21
Chart object type 22-18, 22-25, 22-26
data manipulation routines 2-25
Data Model
Siebel 11-3, F-2
Data Objects Layer
in Siebel application architecture 3-3, 3-5
Data Point Field property
Chart object type 22-18, 22-21, 22-25,
22-26
data tables 3-5, 17-7
Version 6.0
Index
Version 6.0
DATABASE_PLATFORM parameter
dev2prod.ksh batch file 14-29
DATABASE_PLATFORM parameter for
ddlsync.ksh 11-31
databases
applying changes to server 11-26
applying server database changes to
other 11-29
extracting developers local 1-18
initializing developers mobile client
database 1-18
migrating repositories between 14-25
relational F-2
Siebel 3-21
DataCleansing Field n user property 15-7
DataCleansing Field user property 15-5
defined E-3
DataCleansing Type user property 15-5,
15-6
defined E-3
datasets F-7
Date data type
Physical Type property of Column object
type 17-30
Date Time data type
Physical Type property of Column object
type 17-30
DB_LANG parameter
imprep.ksh batch file 14-22
dbrepos.log for ddlsync.ksh 11-32
DBSRVR _ROOT parameter
imprep.ksh batch file 14-22
dbxtract.exe utility 1-18
DDLSync.ksh 11-30
ddlsync.ksh 11-15, 11-28, 11-30
ddlsync1.log for ddlsync.ksh 11-32
ddlsync1.log text file
dev2prod.ksh batch file 14-30
ddlsync2.log for ddlsync.ksh 11-32
ddlsync2.log text file
dev2prod.ksh batch file 14-30
deactivating mappings 17-47
Debug menu A-9
11
Index
12
Delete button
example in a list applet 19-31
Delete option
Edit menu A-3
Delete Record option
Edit menu A-4
DELETE value
Cascade Delete property of Link object
type 18-40
DeleteRecord method 19-61
deleting
extension tables or columns 11-16
repositories 14-16
deleting projects
facility not available in Siebel Tools 5-15
Denormalization Path property
Column object type 17-30
Denormalized value
Type property of Column object
type 17-30
Description list column
Responsibility Administration view of
Siebel applications 8-12
Destination Business Component property
Link object type 18-48
Multi Value Link object type 18-45, 18-57
Destination Column property
Join object type 18-32
Join Specification object type 18-31
Destination Field property
Drilldown object type 8-28
Link object type 17-17, 18-37, 18-46, 21-8,
22-37
destination fields 18-37
Destination Link property
Business Component object type 18-45
Link object type 18-48, 18-50, 18-51
Multi Value Link object type 18-42, 18-45,
18-57, 21-7
Destination Table property
EIM Table Mapping object type 17-42
detail business components 17-16, 18-37,
18-45, 18-65, 19-42
Version 6.0
Index
Detail tab
Object Explorer window 4-7
Details Visualization views 4-39
Dev2Prod.ksh
log files 14-30
dev2prod.ksh batch file
about 14-25, 14-26
executing 14-28, 14-29
parameters of 14-28
developers
granting position/responsibility to 1-17
initializing Mobile Client Database
of 1-18
setting up as mobile users 1-17
development environment
creating 1-16
managing 1-16
Development Tools Options dialog box 7-19,
14-37, 14-45
diagrams
architectural Intro-6
property Intro-8
dialog boxes
Development Tools Options 7-19
Dictionary value
Type property of Table object type 17-6
dir argument
srcctrl.bat batch file 14-38
directory structure
Siebel Tools 1-9
dirty data
and data cleansing and
deduplication 15-14
Display Format property
Control object type 19-18, 19-31
List Column object type 19-27
Display Name property
List Column object type 19-27
Tree Node object type 22-35
DisplayFormat property
Field object type 17-51
displaying totals in list applets 16-8
Version 6.0
Divisions property
Chart Element object type 22-26
Dock method 19-61
Dock Object object type 8-35
Dock Object Table object type 8-38
Dock object type 8-36
Dock Object Visibility Rule object type 8-40
dock objects
Campaign 8-37
Contact 8-36
DocQuote (quote) 8-37
Opportunity 8-36
Organization (Account) 8-36
ProductDefect 8-37
ServiceRequest 8-36
visibility rules for 8-40
dock_log.log for ddlsync.ksh 11-32
docking
visibility rules of 8-35
docking and undocking windows 4-10
Docking: Transaction Logging system
preference 14-31
DocQuote (quote) dock object 8-37
documents
access to external 22-37
adding to attachments list 22-39
drag-and-drop method of adding file
attachments 22-39
drilldown behavior
dynamic 19-47
in views 19-44
pop-up menus 19-45
static 19-45
visibility and 8-27
drilldown fields
about 19-24
Drilldown Object object type 8-28, 8-34,
19-44
Drilldown value
Visibility Rule Applied property of Link
object type 8-33
driving table
dock objects 8-39
13
Index
14
E
Edit Definition option
Visualization view shortcut menu 4-43
Edit Layout option
View menu A-5
Visualization view shortcut menu 4-43
Edit Links Dialog Box 22-40
Edit menu A-3
Edit toolbar A-14
EIM Interface Table Column object
type 17-40, 17-41
EIM Interface Table object type 11-19, 17-40
EIM Interface Table project 11-4
EIM interface tables 17-2
EIM object types 17-39
EIM Table Mapping object type 11-19, 17-40,
17-42
ellipsis buttons 19-18
e-mail
setting up a client machine for 9-6
Embedded value
BrowserType user property 22-49, E-8
Employee Administration view 8-13, 8-18
Employee Column property
Assignment Object object type 10-13
Employee Primary Column property
Assignment Object object type 10-13
Employee Primary Denorm Column
property
Assignment Object object type 10-13
Employee Primary Manual Column property
Assignment Object object type 10-13
Version 6.0
Index
Version 6.0
EXP_ODBC parameter
exprep.ksh batch file 14-19
EXP_PSWD parameter
exprep.ksh batch file 14-19
EXP_REPOS _NAME parameter
exprep.ksh batch file 14-19
EXP_TBLO parameter
exprep.ksh batch file 14-19
EXP_USR parameter
exprep.ksh batch file 14-19
Expand All option
Visualization view shortcut menu 4-42
explorer views 22-33
Export option
File menu A-3
Export to Archive File dialog box 14-4, 14-6
exporting
projects 14-6
repository objects 14-3, 14-4
ExportQuery method 19-61
exprep.ksh batch file
about 14-17, 14-18, 14-19
executing 14-21
parameters of 14-19
exprep.log text file 14-21
dev2prod.ksh batch file 14-30
expressions
calculation B-7
precedence of operators in B-2
search specification 18-10
expschem.log for ddlsync.ksh 11-32
expschem.log text file
dev2prod.ksh batch file 14-30
extension columns 17-31, 17-32
about 3-6
adding to tables 11-13
configuring 11-15
creating/mapping interface 11-19
custom 17-32
deleting 11-16
displaying base table 11-23
names of 11-8
populating 11-30
15
Index
F
fax
setting up a client machine for 9-6
field data types 17-48, 18-22
Field object type 6-8, 6-9, 11-4, 11-23, 11-24,
11-25, 18-4
data types of B-15
16
Field property
Business Component object type 21-7
Control object type 6-19, 17-35, 18-19,
19-18, 20-25, 21-6
List Column object type 17-35, 18-19,
19-27, 20-25, 21-6, 21-9
Pick Map object type 20-15, 20-16, 20-26
Field Read Only Field user property 18-13,
E-5
Business Component object type 18-11
field validation B-13
fields
about 18-18
adding to business component
definitions 6-7
calculated 18-4, 18-19, 18-21
data types of 17-48, 18-22, B-15
destination 18-37
expanded and collapsed lists of in
visualization diagrams 4-42
foreign key 18-37
in a search specification 18-10
in attachment business
components 22-43
multi-value 18-22, 18-42, 18-45
originating 20-24
Position C-8
primary key 18-37
Responsibility C-8
rules of calculated B-10
source 18-37
syntax for predefault B-12
system 18-20
file attachment applets 19-13, 22-37
file attachments
adding using drag-and-drop
method 22-39
File menu A-2
FILE prefix
file attachment column names 23-8
file system
Siebel 22-40
Version 6.0
Index
FILE variable
srcctrl.bat batch file 14-42
FILE_NAME parameter
exprep.ksh batch file 14-20
imprep.ksh batch file 14-22
FileMustExist user property 23-8, E-7
Business Component User Prop object
type 22-42
files
.srf 5-31
Find button
in association applets 21-19
Find combo box
in association applets 21-18
Find dialog box
configuring 19-54
invoking 8-17, 19-53
Find Field object type 19-7, 19-54
find fields
configuring 19-55
Find in Repository option
Repository menu A-11
Find In Repository window 4-33
Find method 19-61
Find object type 19-7, 19-53, 19-54
Find option
Edit menu A-4
Find View object type 19-7, 19-55
find views
configuring 19-55
FindActiveXControl method 23-15
finds
architecture of 19-54
configuring 19-53, 19-55
Firstlogic Corporation
products for data cleansing and
deduplication 15-4
FLAG value
Check Bitmap Identifier property of List
Column object type 6-27
Flat tab
Object Explorer window 4-8
Version 6.0
17
Index
JulianYear B-7
Language B-7
Left B-8
LocalCurrency B-8
LoginId B-8
LoginName B-8
Lookup B-8
LookupExpr B-8
LookupValue B-9
ParentBCName B-9
ParentFieldValue B-9
PLOT 22-21
PositionId B-9
PositionName B-9
SUM 22-21
Sum B-9
Timestamp B-9
Today B-9
H
G
Generate Actuate Report option
Tools menu A-11
Generate Help IDs option
Tools menu A-11
generic columns
in extension tables 17-9
gennewdb executable 11-29
get
about 5-10
Get Strings option
Tools menu A-11
getting projects 5-10
initial get 5-10, 5-11
Go menu A-6
Go to End of List button
List toolbar A-16
Go to Next Record button
List toolbar A-16
Go to Previous Record button
List toolbar A-16
Go to Top of List button
List toolbar A-16
18
Height option
Applet Designer tab of Development Tools
Options window 13-23
Height property
Applet object type 22-34
Single Value Field object type 6-18
Help menu A-12
hiding windows 4-9
Hierarchy visualization views 4-47
History toolbar A-14, A-17
hoteling
about 8-4
HTML Attributes property
Single Value Field object type 6-18
HTML Display Mode property
Single Value Field object type 6-18
HTML Only property
Single Value Field object type 6-18
HTML Row Sensitive property
Single Value Field object type 6-18
HTML thin clients
configuration approach 7-10
configuration scenario 7-8
Version 6.0
Index
I
icons
in Siebel Tools 1-11
Id field
business component 17-14
IF suffix 17-38
interface table names 17-6
ifb files 14-18
IFMGR value
Type property of Column object
type 17-29
IFMGR: xxx value
Type property of Column object
type 17-31
IfNull function B-6, B-7
Ignore Extra Attributes property
Assignment Object object type 10-11
IIf function B-7
image controls 23-2
ImageControl tool
Applet Designer 12-6
ImageControl value
Type property of Control object type 6-27
images
dynamic 6-27
static 6-27
implied joins
extensions tables and 17-12
Import From Archive option
Repository menu A-10
Import option
File menu A-2
Import wizard 14-8, 14-12
Import Wizard - Preview window 14-9
importing
repository objects 14-3
importlog.txt file 14-15
Version 6.0
19
Index
J
Join object type 18-27, 18-31, 18-49, F-10
Join property
Field object type 11-5, 11-24, 17-12, 18-20,
18-31, 20-16
join queries F-8, F-10
Join Specification object type 18-31, 18-49
joined fields 18-31
joined tables 18-32
about 18-6
and business components 18-6
joins
configuring 18-30
Field property and 20-16
implied 17-12
20
K
Keep Creator property
Assignment Object object type 10-11
Keep Manual Assigned property
Assignment Object object type 10-11
Keep Manual Assignment Primary
Employee property
Assignment Object object type 10-11
Keep Manual Assignment Primary Position
property
Assignment Object object type 10-11
Keep Manual Assignment Primary Rule
property
Assignment Object object type 10-11
Key field
business components 17-16
keyboard shortcut keys
defining 12-14
L
Label button
Web Controls toolbar A-19
label controls 19-23
Label Field property
Tree Node object type 22-35
Label tool
Applet Designer 12-5
Label value
Type property of Control object type 6-26,
19-30
Version 6.0
Index
Version 6.0
21
Index
M
Macromedia Dreamweaver 7-11
MailTo button
Web Controls toolbar A-18
Maintain Lock option
check in procedure 5-19
22
Version 6.0
Index
Version 6.0
methods
ActiveX 23-13
AddRecord 21-18
BrowserBack 22-53
BrowserForward 22-53
BrowserLaunch 22-53
BrowserNavigate 22-53
BrowserRefresh 22-53
BrowserStop 22-53
ContextHelp 19-61
Copy 19-61
CopyRecord 19-61
Cut 19-61
DeleteRecord 19-61
Dock 19-61
ExecuteQuery 19-61
ExportQuery 19-61
Find 19-61
FindActiveXControl 23-15
GoBack 19-61
GoForward 19-61
GotoFirst 19-61
GotoLast 19-61
GotoNext 19-61
GotoPrevious 19-61
Maximize 22-53
MessageBar 19-61
Minimize 22-53
NewCorrespondence 19-61
NewQuery 19-61
Paste 19-61
PickChartType 22-21
PickRecord 20-13
PickXAxis 22-21
PickYAxis 22-21
PickZAxis 22-21
Print 19-61, 22-53
Redo 19-61
Search 19-61
SortAscending 19-61
SortDescending 19-61
SortDialog 19-61
SynchronizeCalendars 19-61
23
Index
TraceOff 16-11
TraceOn 16-11
Undo 19-61
UndoRecord 19-61
Microsoft Component Object Model
(COM) 2-26
Microsoft FrontPage 7-11
Microsoft Internet Explorer
displaying Web applets in 22-46
Microsoft Visual Basic 2-24
Microsoft Visual SourceSafe
examples of using in Siebel repository
management 14-44
using in repository management 14-36
migrating
repositories 14-25
schemas 14-25
Minimize methods
attaching to buttons in Web applets 22-53
mobile databases
upgrading 14-31
mobile users
about 8-35
implementing custom attributes for 11-9
setting up developers as 1-17
modifying object definitions
about 4-14
Move Selected Tree Node option
Applet Designer 22-36
Multi Data Point property
Chart object type 22-25
Multi Line property
Control object type 19-31
List Column object type 19-31
Multi Value Field object type 6-9, 18-43
Multi Value Group wizard 13-28
Multi Value Link object type 18-40, 18-42,
18-45, 18-54
Multi Value Link property
Business Component object type 21-7
Field object type 18-43, 18-48
Multi Valued property
Field object type 18-43, 18-48
24
MultiLine property
Control object type 19-19
multiple organizational visibility 8-6
about 8-4
multiple tenancy
about 8-4
Multi-value field
business components 17-16
multi-value fields 18-22, 18-42, 18-45, 21-5
about 18-42
multi-value group applet
about 21-2
multi-value group applets 18-35, 18-39,
19-11, 21-2, 21-4, 21-9, D-17
multi-value groups B-18
about 18-40
architecture of 21-3
configuring 21-6, 21-10
example of 18-41
performance and 16-5
searching B-18
using links in 18-39
Multi-value link
business component 17-16
multi-value links
about 18-40, 18-47, 21-5
architecture of 18-36, 18-43, 18-44
configuring 21-7
how to construct 18-42
indirect 18-47, 21-7
object definitions in 18-48
primary Id field of 18-54
MVG Applet property
Control object type 19-18, 19-20, 21-6
List Column object type 19-27, 21-6
MVG Applet wizard 2-13
MVG wizard 2-13
My
in view names 8-17
My Team
in view names 8-17
Version 6.0
Index
N
NAME column
tables 17-17
Name field
Business Component object type 17-17
Name property
Assignment Object object type 10-11
Business Component object type 6-6,
10-25
Business Component User Prop object
type 15-6
Business Object object type 6-11
Column object type 17-29, 17-31
Control object type 6-19, 19-16
Index object type 17-36
List Column object type 19-27
Repository object type 14-16
Screen object type 6-32
Single Value Field object type 6-8, 6-18
Table object type 17-6
Toolbar Item object type 19-62
Toolbbar object type 19-60
User Key Attribute object type 17-46
View object type 6-30
names
choosing repository 14-27
extension column 11-8
naming conventions
applets D-12
business components D-9
business objects D-9
columns D-22
controls D-18
extension tables and columns 11-7
joins D-22
links D-22
list columns D-18
lists D-22
repository 1-15
repository objects D-22
screens D-22
Siebel objects 3-19
Version 6.0
tables D-22
views D-20
Netscape Navigator
displaying Web applets in 22-46
Never value
Visibility Rule Applied property of Link
object type 8-33
New Applet wizard
using in HTML thin client
configuration 7-11
New button
example in a list applet 19-31
in association applets 21-18
New Form Applet wizard 13-12
New List Applet wizard 13-4
New Object option
File menu A-2
New Object wizards 2-13
New Query button
List toolbar A-16
New Query option
Query menu A-7
New Record button
List toolbar A-16
New Record option
Edit menu A-4
New toolbar button
Edit toolbar A-14
New View wizard 13-20
NewCorrespondence method 19-61
NewQuery method 19-61
Newtable project 11-4
No Copy property
Multi Value Link object type 18-57
Single Value Field object type 6-8
No Delete property
Business Component object type 6-6
Single Value Field object type 6-18
No Insert property
Business Component object type 6-6
Single Value Field object type 6-18
25
Index
No Update property
Business Component object type 6-6
Single Value Field object type 6-18
NONE value
Auto Primary property of Llink object
type 18-55
Cascade Delete property of Link object
type 18-40
NOT LIKE operator B-4
NOT operator 18-10
NULL
SQL value B-5
NULL operator B-6
Nullable property
Column object type 17-31
Number data type
Physical Type property of Column object
type 17-30
O
OBJ_ID column
S_DEDUP_RESULT table 15-15
object and data interaction process C-9
Object Compiler window 5-32
object definitions
copying 4-15
creating 4-16
in Data Objects layer 3-9
modifying 4-14
modifying, copying, creating new 4-14
moving between projects 5-18
undoing 4-18
validating 4-19
viewing 4-11
Object Differences windowpane
Project Differences window 5-26
Review Conflicts and Actions window of
Import wizard 14-13
Object Explorer
making visible 4-5
Object Explorer option
View menu A-4
26
Version 6.0
Index
LIKE 18-11
LIKE and NOT LIKE B-4
logical B-3
NULL B-6
OR 18-10
Opportunity dock objects 8-36
Options option
Tools menu A-11
OPTIONS variable
srcctrl.bat batch file 14-42
OR operator 18-10
ORDER BY clause
and Sort Specification property of
business components 16-7
Organization (Account) dock objects 8-36
Organization value
Popup Visibility Type property of
Business Component object
type 20-28
Visibility Applet Type property of View
object type 8-32
Organization Visibility Field property
Business Component object type 8-30
Organization Visibility MVField property
Business Component object type 8-30
Organization Visibility MVLink property
Business Component object type 8-30
Organizational visibility 8-16
organizational visibility
multiple 8-6
single 8-4
originating applets 20-10, 20-24, 20-25, 21-6
originating business components 20-13,
20-24, 20-25, 21-6
originating controls 20-24
originating fields 20-24
child object definition for 20-15
originating list columns 20-24
Outer Join Flag property
Join object type 16-10, 23-7
Owner Delete property
Business Component object type 8-31
Version 6.0
P
Page Tab object type 6-38, 19-7
PAR_ROW_ID column
table 17-14
tables 17-17
PAR_ROW_ID system column 17-34
Parent Business Component property
Link object type 18-37, 18-65, 21-8
Parent ID field
business components 17-17
Parent Read Only Field user property 18-14,
E-5
Business Component object type 18-12
ParentBCName function B-9
parent-child relationships
foreign keys and F-6
ParentFieldValue function B-9
Password button
Web Controls toolbar A-18
password encryption
problems in using when checking out
projects 5-12
Paste method 19-61
Paste option
Edit menu A-3
Paste toolbar button
Edit toolbar A-15
Patch Builder window 14-35
patch file
about 14-32
patches
creating 14-2
PATH variable
srcctrl.bat batch file 14-42
performance
multi-value groups and 16-5
period charts 22-23
27
Index
Personal value
Popup Visibility Type property of
Business Component object
type 20-28
Visibility Applet Type property of View
object type 8-32
Personal visibility 8-16, 8-22
Physical Type Name property
Column object type 17-29
Physical Type property
Column object type 11-16, 17-29, 17-31
Pick Applet property
Control object type 19-20, 20-11, 20-25
List Column object type 19-27, 20-25
Pick Applet wizard 2-13
pick applets 19-10, 20-8
architecture of 20-6, 20-7
configuring 20-12
constraining 20-19
data flow in 20-4
execution procedure for 20-5
Field property and 20-18
guidelines for configuring D-6
object definitions for 20-7
property settings in 20-13
static picklists compared to 20-21
Pick button 20-3
Pick List Field property
Pick Map object type 20-15, 20-26
Pick List object type 20-24
Pick List wizard 2-13, 13-26
Pick Map object type 20-9, 20-15, 20-24,
20-25
pick maps
using multiple 20-26
PickChartType method 22-21
Picklist Functions property 22-22
Chart object type 22-25
PickList Generic business
components 20-24, 20-27
Picklist Types property
Chart object type 22-19
28
picklists
By 22-20, 22-21, 22-23
By #2 22-21
configuring 20-26
dynamic 13-26
Show 22-20, 22-21
static 13-26, 20-21
Type 22-19, 22-21
unbounded 20-15
PickRecord method 20-13
PickXAxis method 22-21
PickYAxis method 22-21
PickZAxis method 22-21
placeholders in HTML thin client
templates 7-11
PLOT function 22-21
Plot value
Data Function property of Chart object
type 22-18
Type property of Chart Element object
type 22-27
Popup Edit property
Control object type 17-50, 19-18, 19-20,
19-31
List Column object type 17-50, 19-28,
19-31
Popup Visibility property
Business Component object type 8-30
Popup Visibility Type property
Business Component object type 20-28
PopupQueryAdd control 21-18
Position Administration view 8-18, 8-21
Position Column property
Assignment Object object type 10-14
Position fields C-8
Position Primary Column property
Assignment Object object type 10-14
Position Primary Denorm Column property
Assignment Object object type 10-14
Position Primary Manual Column property
Assignment Object object type 10-14
Position Primary System Column property
Assignment Object object type 10-14
Version 6.0
Index
Position property
Tree Node object type 22-35
Position Table property
Assignment Object object type 10-14
Position Team Copy Column property
Assignment Object object type 10-14
Position Team Denorm Column property
Assignment Object object type 10-14
Position team Manual Column property
Assignment Object object type 10-14
Position Team System Column property
Assignment Object object type 10-14
Position text box
Menu Item Properties dialog box 12-14
Position Visibility Field property
Business Component object type 8-24,
8-30
PositionId function B-9
PositionName function B-9
positions 8-4, 8-15, 8-17, 8-25
setting up 1-17
Post Default Value property
Field object type 16-10
postal code formatting options 19-19
post-installation tasks
Siebel Tools 1-8
Pre Default Value property
Field object type 16-10, 17-17
precedence of operators in expressions B-2
Precision property
Column object type 17-30, 17-31
Predefined property
Bitmap Category object type 6-43, 6-44
predefined queries B-20
pre-installation tasks
Siebel Tools 1-2
PreInvokeMethod script 12-14
PreInvokeMethod scripts 12-14
Preview option
Applet Designer 12-7
Format menu A-9
Preview window
Applet Designer 12-7, 13-24
Version 6.0
29
Index
project_file argument
srcctrl.bat batch file 14-38
projects 5-12
about 5-3
archiving 14-2
assigning object definitions to 5-17
canceling check out 5-28
checking in 5-19
checking out 11-11
compiling 5-31
creating new 5-15
deleting 5-15
EIM Interface Table 11-4
ERP Interface Table 11-4
exporting 14-2, 14-6
getting 5-10
importing 14-2
locking 11-11
locking and unlocking 5-29
meaning of suffix names of 5-4
names in standard Siebel applications 5-4
Newtable 11-4
renaming 5-16
Scopus Migration 11-4
structure of 5-34
viewing object definitions by 5-8
Projects list box
Object Compiler window 5-32
Projects radio button group 5-32
properties
object sort specification B-20
Properties window 4-43
about 4-9
docking 4-10
hiding 4-9
Properties Window option
View menu A-4
property diagrams Intro-8
Prospects calculation
used to generate a dedup token 15-9
public data tables 17-14
PushButton tool
Applet Designer 12-5
30
PushButton value
Type property of Control object type 6-27,
19-20
Q
queries F-7
compound 4-32
JOIN clause in F-8
simple 4-31
sorting through predefined B-20
that search for objects 4-28
types of F-7
Query By Example search syntax B-16
Query List Business Component property
Business Object object type 6-11
Query menu A-7
query operators 4-31
query plans 16-14
query-by-example queries 4-28, F-7
question (?) character
using in pattern matching B-5
R
Read Only property
Control object type 6-19, 19-19
Single Value Field object type 6-8
Recipient E-mail Address Field user
property 9-11, E-5
Recipient Fax Phone Field user
property 9-11, E-6
Recipient Id Field user property 9-12, E-6
record access visibility 8-15, 8-16
records
creation/updating 4-26
Recursive Link property
Tree Node object type 22-37
Recursive property
Tree Node object type 22-37
recursive trees 22-36
Redo method 19-61
Redo option
Edit menu A-3
Version 6.0
Index
Version 6.0
repositories
backing up 14-2
deleting 14-2, 14-16
establishing naming conventions for 1-15
getting information about 5-6
managing 14-2
migrating 14-2
migrating between databases 14-25
renaming 14-2, 14-16
selecting the current one 5-5
repository
about 3-21
Siebel C-9
Repository Dock Objects option
Reports menu A-8
Repository Dock Objects report 4-37
repository file (.srf extension) 2-20
Repository menu A-10
Repository object type 14-16, 14-17
repository objects
archiving 14-2
exporting 14-2, 14-3, 14-4
importing 14-2, 14-3
Repository value
Type property of Table object type 17-6
RepositoryFile setting
Siebel configuration file C-4
Required property
Single Value Field object type 6-8
Resolution option
Applet Designer tab of Development Tools
Options window 13-23
responsibilities 8-8
about 8-4, 8-8
adding and removing for employees 8-14
adding views to 8-11
creating 8-11
setting up 1-17
Responsibility Administration view 8-10
Responsibility fields C-8
Restart option
Debug menu A-9
results tables F-7
31
Index
S
S prefix
table names 17-5
32
S_APP_QUERY statements
in trace files 16-16
S_CONTACT table 16-7
S_DEDUP_RESULT table 15-11, 15-14, 15-15
clearing out old records from 15-16
S_LST_OF_VAL table 16-13
S_NOTE prefix
in table names 17-38
Sales Rep value
Popup Visibility Type property of
Business Component object
type 20-28
Visibility Applet Type property of View
object type 8-32
Sales Team visibility
about 8-15, 8-16, 8-17
sales teams 8-16
Save All option
File menu A-2
Save All toolbar button
Edit toolbar A-14
Save option
File menu A-2
Save toolbar button
Edit toolbar A-14
Scale property
Column object type 17-30, 17-31
schemas
migrating 14-25
Scopus Migration project 11-4
Screen Menu Item object type 6-39, 19-7
Screen Menu property
View object type 6-30
Screen object type 18-60, 19-52
Screen property
Page Tab object type 6-39
Screen Menu Item object type 6-40
Screen View object type 6-34, 19-7, 19-52
screens
about 3-16, 6-32, 19-52
applications as collections of 19-56
business objects and 18-60
Version 6.0
Index
defining 6-32
naming conventions for D-22
Screens menu 19-52, A-6
Script Editor option
View menu A-5
scripts
about 2-25
PreInvokeMethod 12-14
Search method 19-61
search specification B-17
search specification expressions
syntax rules for 18-10
Search Specification property
Business Component object type 6-6,
17-17, 18-10
Business Component, Applet, Link, or
Picklist object types 16-7
Single Value Field object type 6-19
search syntax
multi-value groups B-18
Query By Example B-16
search specification B-17
searching
for object definitions 4-33
performance and 16-7
Sector n Applet property
View object type 22-33
Sector0(-7) Applet property
View object type 6-30
sectors
about 19-36
in views 6-28, 12-12, 19-36
Select All option
Edit menu A-4
Select Business Component menu
option 12-9
Select button
Web Controls toolbar A-18
Select File dialog box 22-39
Select tool
Applet Designer 12-5
Select Tree option
Applet Designer 22-36
Version 6.0
33
Index
34
Version 6.0
Index
Version 6.0
35
Index
36
Version 6.0
Index
Version 6.0
syntax
for predefault fields B-12
of LIKE and NOT LIKE operators B-4
search specification expressions 18-10
Sort Specification property 18-8
sorting B-20
System Administration option
Screens menu A-6
system columns 3-6
about 17-33
compared with system fields 17-35
system fields
about 18-20
compared with system columns 17-35
defining in business components D-8
System Preferences option
Screens menu A-6
System value
Type property of Column object
type 17-29, 17-31, 17-33
Type property of Index object type 17-36
system.ini file 14-43
T
T suffix
extension table names 17-6
table names 17-11
Tab bar 19-52
tab bar 19-57
Tab Stop property
Control object type 6-20, 19-17
Table object type 11-6, 11-12, 11-13, 11-15,
11-16, 11-17, 11-20, 11-21, 11-26, 17-4,
17-5, 17-6, 18-4
Table property
Business Component object type 6-6,
11-6, 11-25, 17-5, 18-5, 22-42
Column object type 17-34
Join object type 18-31, 18-32, 23-7
tables 17-2
about 17-5, F-2
attachment 23-7
beginning with S 17-5
37
Index
38
Version 6.0
Index
TGT_USR parameter
dev2prod.ksh batch file 14-28
thin clients
about 7-3
configuration scenario for 7-8
configuring HTML 7-10
HTML 7-3
Java 7-3
Windows 7-3
WML 7-3
Thread Applet property
View object type 19-43
Thread Bar
configuring 19-43
Thread bars
configuring 19-43
Thread Field property
View object type 19-43
Thread Title property
View object type 19-43
threads
configuration guidelines for D-19
Tile value
Background Bitmap Style property of
Applet object type 6-48
time control
configuring 19-32
Time data type
Physical Type property of Column object
type 17-30
Timestamp function B-9
Title property
Applet object type 20-13, 21-9, D-14
Single Value Field object type 6-19
View object type 6-30, D-21
Title value
Type property of Chart Element object
type 22-27
Today function B-9
Toggle Breakpoint option
Debug menu A-9
Version 6.0
toggling
about 19-49
dynamic 19-51
Toolbar Item object type 19-59, 19-60, 19-62
Toolbar object type 19-59, 19-60
toolbars
adding new icons to 6-49
configuring Intro-20
Control A-14
creating new 6-49
Debug A-14
Edit A-14
History A-14
in Siebel applications 19-58
in Siebel Tools A-13
List A-14
Web Controls A-18
Toolbars option
View menu A-5
Toolbars tab
Customize dialog box 19-58
Tools menu A-11
Tools Options dialog box
Check In/Out tab 5-23
Tooltip Text property
Command object type 19-61
Top Left value
Background Bitmap Style property of
Applet object type 6-48
TOT_SCORE_VAL column
S_DEDUP_RESULT table 15-14
Total Displayed property
List object type 16-8
Total Required property
List Column object type 16-8, 19-29
List object type 16-8
totals
displaying in list applets 16-8
trace files 16-15
trace files (SQL)
generating 16-11
TraceOff method 16-11
TraceOn method 16-11
39
Index
Translate property
Column object type 11-14
tree applets 19-13, 22-29, 22-34
tree controls 22-36
Tree Node object type 22-35, 22-37
Tree object type 22-34, 22-36
TreeControl button 22-36
TreeControl tool
Applet Designer 12-6
TreeControl value
Type property of Control object type 6-27
trees
recursive 22-36
Truncation Checking option
Repository menu A-11
Type field
business components 17-17
Picklist Generic business
components 20-28
Type Field property
Pick List object type 20-26
Type picklists 22-19, 22-21
Type property 18-22
Applet object type 20-13, 21-9
Chart object type 22-26
Column object type 17-29, 17-30, 17-33
Control object type 6-20, 19-16, 19-18
Index object type 17-36
List Column object type 6-25, 19-29
Single Value Field object type 6-8
Table object type 11-6, 11-12, 11-13, 17-5,
17-6
Type Value property
Pick List object type 20-26
Types tab
Object Explorer window 4-5
Typical Setup option
Siebel Tools installation 1-3
U
unbounded picklists
typing new values into 20-15
Undo method 19-61
40
Undo option
Edit menu A-3
Undo Record option
Edit menu A-3
Undo toolbar button
Edit toolbar A-15
undocking and docking windows 4-10
UndoRecord method 19-61
Unique property
Index object type 17-36
Unlock Project option
Repository menu A-10
unused business components D-8
unused business objects D-8
unused controls and list columns D-16
unused views D-19
upgrading
mobile databases 14-31
URL0 user property
in Web applets 22-49
URL00 user property E-9
URLn:Ext user property E-10
URLn:LoginId user property
in Web applets 22-50
URLn:LoginPositionId user property, in Web
applets 22-51
URLn:SystemPreference user property
in Web applets 22-50
URLnn user property E-9
URLnn:Emb user property E-9
URLnn:Field user property E-10
URLnn:LoginId user property E-10
URLnn:LoginPositionId user property E-10
URLnn:Samp user property E-10
URLnn:SystemPreference user
property E-10
Use FKey property
Column object type 11-14
Use Primary Join property
Link object type 18-55
Llink object type 18-54
Multi Value Link object type 18-55
Version 6.0
Index
Version 6.0
V
Validate window 4-20
validating object defintions 4-19
Validation options window 4-22
Validation property
Field object type B-13
Value field
Picklist Generic business
component 20-28
Value property
Business Component object type 10-25,
18-24
Business Component User Prop object
type 15-6
41
Index
values
null B-5
Values applet 10-17
Varchar data type
Physical Type property of Column object
type 17-29
vertical boundaries between sectors in
views 22-33
Vertical Line Position property
View object type 12-12, 22-33
Vertical Scroll property
Control object type 19-19
VGA monitors
support for 12-12
view access visibility 8-5, 8-8
View Administration view
in Siebel applications 8-9
View bar 19-52
impact of visibility on 8-15
View Designer 6-30, 12-10, 13-21
View Details option
View menu A-5
View Details Visualization view 4-38
View Hierarchy option
View menu A-5
View Hierarchy Visualization view 4-38
View menu A-4
View Mode property
Report object type 8-34
View Name list column
Responsibility Administration view of
Siebel applications 8-12
View object type 18-60
explorer views 22-33
View Relationships option
View menu A-5
View Relationships Visualization view 4-38
View wizard 2-13
Viewbar Text property
Screen object type 6-33
Viewbar width option
Applet Designer tab of Development Tools
Options window 13-23
42
viewing
object definitions 4-11
views
about 3-15, 19-33
Assignment Criteria 10-15
business objects and 18-60
configuration guidelines for D-19
configuring 19-36
configuring applets within 6-32
defining using the Object List Editor 6-30
defining using the View Designer 6-30
drilldown behavior in 19-44
Duplicate Account Administration 15-12
Duplicate Account Resolution
Administration 15-12
Duplicate Contact Account
Administration 15-12
Duplicate Contact Administration 15-12
Duplicate Prospect Administration 15-12
Duplicate Prospect Resolution
Administration 15-12
Employee Administration 8-18
explorer 22-33
list-form 19-38
master-detail 19-40
naming conventions for D-20
Position Administration 8-18
properties related to visibility 8-31
providing users access to 6-50
sectors in 6-28
server 19-33
styles of 19-33
titles of D-21
unused D-19
vertical boundaries between sectors
in 22-33
virtual business components 3-11, 3-22
Virtual Table value
Type property of Table object type 17-6
visibility 8-15
about 8-4, C-8
All 8-15, 8-16, 8-26, 8-35
considerations in configuring D-9
Version 6.0
Index
Version 6.0
W
W prefix
table names 17-5
Want Return property
Control object type 19-19
Warehouse value
Type property of Table object type 17-6
Watch option
View menu A-5
Web Applet Editor 7-13
Web applets 19-12
about 22-46
Web search specifications for 22-50
Web browser applets
layout 22-52
Web controls 7-12
Web Controls toolbar A-18
Web Layout Editor 13-10
Web Layout editor 13-19
Web Page object type Intro-10
Web Script Editor option
View menu A-5
Web Template Editor tab
Development Tools Options dialog
box 7-19
Web value
BrowserType user property 22-49, E-8
Web View Editor 7-16
WHERE clause
Search Specification property and 16-7
Width option
Applet Designer tab of Development Tools
Options window 13-23
Width property
Applet object type 22-34
Single Value Field object type 6-19
wildcard characters
in search specifications 18-11
Window menu A-12
windows
About Repository File 5-7
Applet Designer Preview 13-24
43
Index
44
X
X suffix
extension table names 11-7, 17-6
in table names 17-11, 17-38, 18-7
XM suffix
extension table names 11-7, 17-6
in table names 17-14, 17-38
XMIF suffix
in table names 17-38
interface table names 17-6
XVGA monitors
how sectors display in 6-29
Z
Zoom option
Visualization view shortcut menu 4-42
Version 6.0