+ All Categories
Home > Documents > Krishna Siebel Notes

Krishna Siebel Notes

Date post: 14-Oct-2014
Category:
Upload: mohamed-abrar-meeran
View: 119 times
Download: 1 times
Share this document with a friend
21
Business Components A business component is a logical representation of one or more tables. Business components provide the foundation for controlling how data is selected, inserted, and updated in underlying tables. The information stored in a business component is usually specific to a particular functional area, such as a product, a contact, or an account. This information may or may not depend on other business components. Business components can be included in one or more business object definitions. They can have default sort or search specifications that allow you to expose records in the user interface in a predetermined sort order and according to a set of selection criteria. Multiple users can instantiate copies of the same business component. Data changes made by any one user are reflected in all instances of the business component. The main data for a business component comes from a base table and one or more joined extension tables. For example, the Account business component is based on the S_PARTY table, but most of the data retrieved by the business component is stored in the joined extension table, S_ORG_EXT. Business Components Include Data From Base Tables Each standard business component has a base table assigned to it. For non-party business components the base table provides the most important columns for use as fields in the business component. The base table is assigned to the business component with the Table property in the Business Component’s object definition. Fields in the business component map to columns in the base table. Configuring Data-Driven Read-Only Behavior Business components and fields can be configured as dynamically accessible, with their read- only status turned on and off depending on the value in a particular field in the current record. This is accomplished using one of the following business component user properties, depending on the requirement: BC Read Only Field This user property specifies a Boolean field that, when TRUE, causes all fields in the current record to become read-only. This also prevents the user from updating or deleting the record, but does not prevent the addition of new records to the business component. The Name and Value properties in the user property record are specified as follows: Name. Contains the literal text BC Read Only Field. 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 or FALSE field.
Transcript
Page 1: Krishna Siebel Notes

Business Components

A business component is a logical representation of one or more tables. Business components

provide the foundation for controlling how data is selected, inserted, and updated in

underlying

tables.

The information stored in a business component is usually specific to a particular functional

area,

such as a product, a contact, or an account. This information may or may not depend on other

business components. Business components can be included in one or more business object

definitions. They can have default sort or search specifications that allow you to expose

records in

the user interface in a predetermined sort order and according to a set of selection criteria.

Multiple

users can instantiate copies of the same business component. Data changes made by any one

user

are reflected in all instances of the business component.

The main data for a business component comes from a base table and one or more joined

extension

tables. For example, the Account business component is based on the S_PARTY table, but

most of the data retrieved by the business component is stored in the joined extension table,

S_ORG_EXT.

Business Components Include Data From Base Tables Each standard business component has a base table assigned to it. For non-party business

components the base table provides the most important columns for use as fields in the

business

component. The base table is assigned to the business component with the Table property in

the

Business Component’s object definition. Fields in the business component map to columns in

the

base table.

Configuring Data-Driven Read-Only Behavior Business components and fields can be configured as dynamically accessible, with their read-

only

status turned on and off depending on the value in a particular field in the current record. This

is

accomplished using one of the following business component user properties, depending on

the

requirement:

BC Read Only Field This user property specifies a Boolean field that, when TRUE, causes all fields in the current

record

to become read-only. This also prevents the user from updating or deleting the record, but

does not

prevent the addition of new records to the business component. The Name and Value

properties in

the user property record are specified as follows:

■ Name. Contains the literal text BC Read Only Field. ■ 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 or FALSE field.

Page 2: Krishna Siebel Notes

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 or 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:

■ Name. BC Read Only Field. ■ Value. Inactive Account.

Field Read Only Field This user property is similar to BC Read Only Field, in that it tests the field specified in the

Value

property and enforces a read-only restriction when the test field has a value of TRUE in the

current

record. However, unlike BC Read Only Field, the Field Read Only Field user property restricts

one field

in the same business component, rather than the entire business component record.

The Name and Value properties in the user property record are specified as follows:

■ Name. Contains an expression in the following format:

Field Read Only Field: fieldname 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 or FALSE field in the same

business

component as the parent object definition of the user property.

One Field Read Only Field user property must be created for each field you want to make

conditionally

read-only.

An example of the use of Field Read Only Field is the situation in which you want to make the

Competitor field in an account record read-only when the Type field has a value of Competitor.

In

other words, if an account record has been included because that account is a competitor, you

do not

want users to be specifying that account’s competitors. The following procedure describes how

to

accomplish this.

To restrict the Competitor field in an account based on the account’s type

1 Navigate to the Business Component object type in the Object Explorer, and then to the

Account

object definition in the Object List Editor.

2 Create a calculated Boolean field in this business component that will have a value of TRUE

when

the Type field has a value of Competitor.

For purposes of the example, the name of this test field can be Competitor Calc, although the

name is unimportant as long as it is referenced correctly in the user property.

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 then add

a

record.

5 Set the following values in the new Business Component User Prop object definition:

Page 3: Krishna Siebel Notes

■ Name. Field Read Only Field: Competitor

■ Value. Competitor Calc

Parent Read Only Field This property, like BC Read Only Field, places a read-only restriction on an entire business

component, rather than a single target field. This restriction occurs when a TRUE or FALSE test

field

has a TRUE value. However, unlike BC Read Only Field and Field Read Only Field, this user

property

is used to place a restriction on a child business component of the business component

containing

the test field. In the other user properties, the read-only restriction is placed on the business

component containing the test field, or on another field in the same business component.

Parent Read Only Field is used primarily to restrict the detail records in a multivalue group. It

could

also be used to restrict the detail records in a master-detail view, but in that case you need to

make

sure that the restricted business component is not also used in the context of some other

business

object than the intended one.

The Name and Value properties in the user property record are specified as follows:

■ Name. Contains the literal text Parent Read Only Field. ■ Value. Contains an expression in the following format:

buscompname.fieldname where fieldname is the name of the test field, that is, the TRUE or 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 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

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 multivalue 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:

■ Name. Parent Read Only Field ■ Value. Account.Competitor Calc

This causes the Account Address multivalue 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 does not

work.

However, if the child record is displayed in the multivalue field in the parent business

component, it

is not necessary to have the Link Specification property of the field set to TRUE.

Parent Read Only Field: buscompname This user property allows a child business component to have TRUE/FALSE tests on multiple

parent

business components. The behavior of Parent Read Only Field: buscompname is similar to that

of

Page 4: Krishna Siebel Notes

Parent Read Only Field, but its name, rather than its value, specifies the parent business

component.

When the calculated value of the specified field evaluates to TRUE or Y, the child business

component

becomes read-only.

About Joins A Join object definition creates a relationship between a business component and a table other

than

its base table. This relationship allows the business component to use columns from the other

table.

The join uses a foreign key in the business component to obtain rows on a one-to-one basis

from the

joined table, even though the two tables do not necessarily have a one-to-one relationship.

About Implicit Joins Implicit joins exist as part of the Siebel object architecture. They are not explicitly defined

using

Siebel Tools. Unlike joins that you define in Siebel Tools, users can update the columns from

implicit

joins.

Implicit joins exist for the following:

■ All 1:1 (_X) extension tables and all relevant intersection tables. ■ Extension tables of S_PARTY, such as S_ORG_EXT, S_CONTACT, S_POSTN, and S_USER. These

implicit joins are used to map data to party business components. For example, if you were to

add a field to the Account business component and then selected the Join property, you would

see several implicit joins that do not appear in the Join list displayed in the Tools Object List

Editor, including joins with an alias of S_ORG_EXT and S_USERs.

Implicit joins usually use the table name as the Join Alias.

NOTE: Set the Outer Join Flag to TRUE if you want to retrieve all the records in the business component even when the joined fields are empty.

Using a Predefault Value for a Joined

Field Because a joined field cannot be updated, you cannot use a predefault value in the regular

way as a

default field value if nothing is specified when a record is inserted. You can use a predefault

value

for a joined field to show the field value immediately as the new record is being inserted.

The following procedure uses the Opportunity Product business component as an example.

To use a predefault value for a joined field

1 Define a join to S_OPTY in the Opportunity Product business component.

2 Define two new fields based on the join to show Opportunity Sales Stage and Name.

3 Add the two fields to the Opportunity Product applet.

4 Compile and test using the standard Opportunities—Products view.

a Add a new Product for an Opportunity. b Note that the joined fields are not populated until you requery the applet.

(However, the source field—Oppty Id—for the join is populated.)

5 Set the Predefault properties of the new fields to Parent: 'ParentBusinessComponent.JoinedField'.

Page 5: Krishna Siebel Notes

For example, predefault Opportunity Name with Parent: 'Opportunity.Name' and predefault

Opportunity Sales Stage with Parent: 'Opportunity.Sales Stage'.

6 Set the Link Specification property of the joined fields (Name and Sales Stage) in the parent

business component to TRUE.

7 Compile and then add a new product for an Opportunity.

The joined fields are populated immediately, and you do not need to requery the applet to see

them.

About Links A link defines a one-to-many (or master-detail) relationship between two business

components. The

Link object type makes master-detail views possible, in which one record of the master

business component displays with many detail business component records that correspond to the

master.

About the Cascade Delete Property The Cascade Delete property determines whether a child record is deleted when the parent

record

is deleted. Take special precautions when determining this property. If set incorrectly, it may

cause

data integrity issues or orphaned records.

The Cascade Delete property can be set to the following values:

■ Delete. The detail records are deleted along with the master. This is most appropriate for

values

stored on _XM tables where the only related record is the parent record.

Do not use DELETE if the child business component in this link is also a detail business

component

in another link. In this case, use CLEAR instead.

■ Clear. The foreign key reference is removed if the master record is deleted, but the detail

records

remain in place. However, the value in the foreign key column is cleared. This is most

appropriate

for child values that might be shared with other parent records.

■ None. No records are deleted and the foreign key column is not cleared. This is the default

setting.

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.”

Using the Check No Match Property with

a Primary Join

Page 6: Krishna Siebel Notes

When a multivalue link has been configured with a primary join—which is the typical

situation—there

are circumstances in which the foreign key used by this join to identify the primary record is

unable

to find the primary. For example, this can happen when the primary record has been deleted

from

the multivalue group or the multivalue group is newly created and has no records. In such

cases, the

multivalue link can be configured to update the primary foreign key to a value of NULL, or to a

special

value of NoMatchRowId, depending on your requirements. This behavior is configured through

the

Check No Match property of the Multi Value Link object type, and has performance

consequences.

The purpose of the special NoMatchRowId value is to prevent secondary queries on foreign key

values

that are known to have failed, thereby improving performance, much in the same way that

using a

primary join improves performance.

The NoMatchRowId generating and testing behavior is activated by setting Check No Match to

FALSE

for the MVL. This setting has the following results:

■ 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 multivalue

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 multivalue

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 record’s 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

multivalue group is sparsely populated (that is, most master records do not have any detail

records

in the multivalue group) and has Check No Match set to TRUE, it will be almost as slow as not

having

a primary join at all.

Check No Match should be set to FALSE for most multivalue links because of the performance

consequences. It should only be set to TRUE if the multivalue 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 multivalue group on the Contact business

component

instead of the Address multivalue 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.

The Use Primary Join property should be set to TRUE if CheckNoMatch is TRUE. If

CheckNoMatch is

Page 7: Krishna Siebel Notes

set to TRUE and Use Primary Join is FALSE, then the Siebel application will always do the

secondary

query to find the child records.

Configuring the Primary ID Field 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 it is 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 subquery—especially because users can see values from only one child record until they

open up

the MVG applet. To create a primary field for a one-to-many or many-to-many relationship,

complete

the following procedure.

To configure a primary field for a 1:M or M:M relationship

1 Create a Primary Id column.

2 Create a field based on that Primary Id column.

3 In a Multi Value Link object, set the Primary Id Field attribute to the new Primary Id field.

4 Set the Use Primary Join attribute to TRUE.

For example, in the Account business component the primary ID field for the Address

multivalue

group is called Primary Address Id. The Account Address Mvg Applet displays the

corresponding

multivalue group. The primary record, indicated with a check mark 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 multivalue fields for the Address load the primary

Business

Address record’s 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 multivalue group applet, the list column that displays the check mark (indicating

the

primary or 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 system’s standpoint, is that it converts a one-to-

many

relationship into a one-to-one relationship. This allows 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.

The properties of Link or Multi Value Link object types used to implement a primary ID field

are as

follows:

■ Primary ID Field. This property specifies the name of the field in the master business

Page 8: Krishna Siebel Notes

component that holds the row ID values pointing to primary records in the detail business

component.

NOTE: Do not display primary ID fields in the user interface. Exposing primary ID fields using

an editable control or list column on an applet causes the update of the primary from the MVG

applet not to be triggered. If you wish to expose primary ID fields on the UI, such as for

testing,

use a read-only control or list column.

■ Use Primary Join. The Use Primary Join property is a TRUE or 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. 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 multivalue 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:

■ DEFAULT. The first record automatically becomes the primary.

■ SELECTED. The highlighted record becomes the primary when the user views the multivalue

group applet and then exits.

■ NONE. The user must specify the primary manually.

SELECTED only pertains when there are several multivalue links pointing to the same detail

business component. This is the case for the Bill To Business Address and Ship To Business

Address multivalue links in a standard Siebel Sales application. These multivalue 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.

When the Auto Primary property of a Multi Value Link object has a value of SELECTED, setting

read-only properties at the applet level still does not force the SSA Primary Field to be read-

only.

NOTE: If the destination business component of the Multi Value Link object is read-only, you

may

receive the following error message, “This operation is not available for a read-only field ‘SSA

Primary Field’.” This is because the Primary ID field is automatically updated through the

system

field ‘SSA Primary Field’, which belongs to the destination business component. Additionally, if

this business component is read-only, the field is read-only as well and cannot be updated.

Configuring a Hierarchical Picklist To configure a hierarchical picklist

1 Configure a parent and a child picklist.

a Set the Business Component property of the parent picklist to Picklist Hierarchical.

b Set the Business Component property of the child picklist to PickList Hierarchical Sub-Area.

2 Go to the business component that contains the fields that you want to associate the

hierarchical

picklists with.

Page 9: Krishna Siebel Notes

a Set the Picklist property of the parent field to the parent picklist.

b Set the Immediate Post Changes property of the parent field to TRUE.

c Set the PickList property of the child field to the child picklist.

d For the child field, create the following Pick Map objects. Field picklist field constrain

Field PickList Field Constrain [name of parent field] Parent TRUE

[name of child field name] Value Leave blank.

3 Compile changes to a repository file.

4 Add LOV values using the Parent LIC column to designate the parent value.

Party Data Model The S_PARTY table is the base table for all of the partiesPerson

(Contact), User, Employee, Partner User, Position, Account, Division, Organization, Partner

Organization, Household, User List, and Access Group.

For each party record stored in the S_PARTY table, the value of the PARTY_TYPE_CD column

denotes

the party type. Along with the party type, extension tables provide the primary differentiation

between the different parties.

The party model organizes entities such as Person, Organization, Position, and Household. A

party

always represents a single person or a group that can be translated into a set of people such

as a

company or a household. Siebel data access technology makes use of the Party model. Certain

parts

of the data model use the Party model to abstract the difference between people, companies,

households and other legal entities. This covers relationships between your company and

people

(contacts, employees, partner employees, users) and other businesses (accounts, divisions,

organizations, partners). The base table for all such access is S_PARTY. Related tables are

implicitly

joined as extension tables.

Because these extension tables are implicitly joined to S_PARTY, they are available through

S_PARTY.

Two preconfigured intersection tables (S_PARTY_PER and S_PARTY_REL) implement M:M

relationships between party business components, such as Account and Contact. Which one

you use

depends on whether or not you need to enforce access control.

Use S_PARTY_PER when implementing M:M relationships between two party business

components

where you need to define access control. Records in S_PARTY_PER propagate data access

rights from

the parent to the child parties. However, it is important to minimize the number of rows in

S_PARTY_PER to maintain good response times in visibility-constrained queries. Therefore,

when

implementing M:M relationships where you do not need to enforce access control, such as

when

implementing a recursive M:M relationship between a party business component and itself,

use

S_PARTY_REL.

For example, use S_PARTY_PER to implement relationships between members:

■ Access groups and members

Page 10: Krishna Siebel Notes

■ Accounts and contacts ■ Employees and positions

■ User lists and users If you need to extend tables in the party model, you need to create an extension table from

S_PARTY.

For example, S_CONTACT is an extension table of S_PARTY. Because S_CONTACT is of type

Extension

(Siebel), you cannot use it as a base table for an extension table. You must create an

extension table

and use S_PARTY as the base table. To display data from the new extension table, create a

Join object (explicit join) to bring in data from the new extension table to the business component you are

using.

How Parties Relate to Each Other Parties have some required relationships, as described below.

■ Divisions, organizations, and accounts are instances of the Organization party type. ■ A division, internal or partner, is also an organization if its internal organization flag is TRUE (INT_ORG_FLG = “Y”) and it has an associated S_BU record.

■ Every division is associated with one organization: either itself or the closest ancestor division

that is also an organization.

■ Every position is associated with a division. The position is then also automatically associated

with one organization: the organization with which the division is associated.

■ Persons (contacts), users, employees, partner users are instances of the Person party type.

■ Typically, you associate each employee and partner user with one or more positions. The

employee or partner user has only one active position at one time. The employee or partner

user

is automatically associated with one division and one organization at a time—the division and

organization associated with the active position.

■ For purposes of granting visibility to data, associations of parties of type Person with other types

of parties are stored using the S_PARTY_PER table. For example, accounts are associated with

contacts, users are associated with positions, and so on. A user associated with a position can

see data for accounts or opportunities assigned to the position (when this is the active

position).

Relationships stored in S_PARTY_REL also affect data routing for mobile users.

■ For purposes of storing ad hoc, informational relationships between parties, such

associations

are stored using the S_PARTY_REL table. For example, a company and its accounting firm may

both be stored as accounts. Assuming that your application provides the capability to define

this

relationship, it can be stored in the S_PARTY_REL table.

■ Ad hoc and informational relationships between parties are stored in the table S_PARTY_REL.

For

example, a company and its accounting firm may both be stored as accounts. The relationship

between these two accounts can be stored in the S_PARTY_REL table, assuming that your

application has been configured to define these relationships.

Person (Contact) Data Model

Page 11: Krishna Siebel Notes

the base table and extension table (S_CONTACT) that define a Person, or

Contact .A Person is the simplest representation of an individual in the database.

User Data Model

the base table and extension tables (S_CONTACT and S_USER) that define

a User. A User is a Person with the following added qualities:

■ The S_USER table contains a login for this user. ■ The S_PER_RESP intersection table (not shown) specifies a responsibility for this user. ■ It is possible to promote a contact to a user. For example, adding a User ID value for a

person

in the All Persons view in the Administration - User screen causes the person to appear as a

user

in the Users view.

Employee Data Model

the base table and extension tables (S_CONTACT, S_USER, and

S_EMP_PER) that define an Employee.

Internal Employees and Partner Users are each

represented as Employee records.

An Employee is a User with the following added qualities:

■ S_EMP_PER provides employee data for this user.

■ A position defined using the S_POSTN table is typically (but not necessarily) associated with an

employee.

■ If the organization to which the position belongs is not a partner organization, then the employee is an internal employee.

■ If the organization is a partner organization, then the employee is a partner user.

Division Data Model

the base table and extension table (S_ORG_EXT) that define a Division.

In S_ORG_EXT, the flag INT_ORG_FLG = Y specifies that a division is an internal organization.

(For

an account, this flag is set to N.)

(Accounts, Divisions, Organizations, and Partner Organizations share many of the same data

model

elements.)

Organization Data Model

the base table and extension tables (S_ORG_EXT and S_BU) that define

an Organization

An Organization, sometimes known as a business unit, is also a Division, but has a record in

the

Page 12: Krishna Siebel Notes

S_BU table.

Partner Organization Data Model

the base table and extension tables (S_ORG_EXT, S_BU, and

S_ORG_PRTNR) that define a Partner Organization

A Partner Organization is the same as an Organization but the flag PRTNR_FLG in S_ORG_EXT

qualifies it as a Partner Organization.

Functions Used in Calculation Expressions

Count (“mvlink”) Returns the number of rows in the multi-value group

defined by the MVL mvlink.

Max ([mvfield]) Returns the Maximum value from a field in child records. You must

define the child record being examined as a multivalue field that is part of a multivalue group.

The multivalue group is associated with the business component of the field being evaluated.

For example: Max ([Number of Employees]) gives the maximum number of employees of all the locations.

Min ([mvfield]) Returns the minimum value from a field in child records.

You must define the child record being examined as a multivalue field that is part of a

multivalue group. The multivalue group is associated with the business component of the field

being evaluated.

For example: Min ([Number of Employees]) gives the minimum number of employees of all the locations.

ParentBCName () Parent (master) business component name for active link (for

example, Opportunity).

ParentFieldValue

(field_name) Returns the value of the field_name field in the parent business

component. The result is not typed correctly but is always of type String. Also, the result does

not change if the parent row is updated. The parent business component field must be

exported by using Link Specification = TRUE. NOTE: If there is no parent business component,

or if the parent business component has not yet been instantiated (such as in a script), the

error “No active link” is returned.

RowIdToRowIdNum ([Id]) Converts an alphanumeric row ID to a unique, pure numeric row ID in the

Service Request business component.

Sum ([mvfield]) Sums the values from a field in child records into a field in a parent

record. The child record being summed from must be defined as a multivalue field that is part

of a multi-value group that is associated with the business component of the field being

summed to.

About User Properties 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

Page 13: Krishna Siebel Notes

object definition’s properties. These user properties belong to the following Siebel object

types:

■ Applet ■ Application ■ Assignment

■ Business Component

■ Business Service ■ Business Service Method Arg ■ Control ■ Field ■ Integration Component

■ Integration Component Field

■ Integration Object ■ List Column

■ View ■ Virtual Business Component

PDQDisabledViewn This user property allows you to disable the Predefined Query (PDQ) dropdown for the view

name

defined for the property.

NOTE: As of release 8.0, you no longer set this property in the application .cfg file; instead, you set

it as an application user property in Siebel Tools.

Value Name of the view for which you want to disable the Predefined Query (PDQ)

dropdown.

Some of the predefined property values include:

PDQDisabledView0 = Order History View (eSales)

PDQDisabledView1 = Order History View - My Company (eSales)

PDQDisabledView2 = Order History Summary View (eSales)

PDQDisabledView3 = Order Confirmation View (eSales)

PDQDisabledView4 = Order Approval View (eSales)

PDQDisabledView5 = Saved Quotes View (eSales)

PDQDisabledView6 = Saved Quotes View - My Company (eSales)

PDQDisabledView7 = Saved Quote Detail View (eSales)

PDQDisabledView8 = Quote Summary View (eSales)

Usage This user property is used to disable the Predefined Query (PDQ) dropdown for

the view name defined for the property.

Parent Object Type Application

Functional Area Query

CanInvokeMethod: MethodName This user property allows you to enable and disable methods, such as buttons, declaratively at

the

applet level. It is easier to use than PreCanInvokeMethod scripting and in many cases can be

used

instead. Name CanInvokeMethod: MethodName Value Value or expression that returns TRUE or FALSE

Page 14: Krishna Siebel Notes

Usage This user property is used to enable and disable methods declaratively.

For example, Copy Record on the Partner Product List Applet is disabled by

default:

■ Name: CanInvokeMethod: CopyRecord

■ Value: N You can inactivate or modify the value for this user property. You can also create

new instances of this user property as needed.

Parent Object Type Applet

Functional Area CSSFrame, CSSFrameList, and their subclasses

Default Applet Method The Default Applet Method user property specifies the method that is executed when the user

presses

the Enter key in the applet.

Value The value of this user property must be the name of a method that is accessible

from the applet.

Usage The method specified in this user property is executed when the Enter key is

pressed.

You can inactivate and modify values for this user property. You can also create

new instances of this user property, but only one such user property on each

applet.

Parent Object Type Applet

Functional Area CSSSWEFrame

DefaultFocus User Properties These applet user properties set the field or control within an applet that receives focus by

default—

that is, before a user interacts to dynamically change the field or control with focus. This user

property is provided to allow overriding the field or control that receives default focus as

determined

by the applet’s mode. The modes in which an applet can be deployed are defined in Object

Explorer

> Applets > Applet Web Templates.

CAUTION: If you set default focus to a field or control that is off the screen, one of two things may

happen:

■ The user may not know where focus is.

■ The application may try to adjust the vertical position of the view to try to show the in-focus

field

or control. In either case, the behavior may be disruptive to end users.

Named Method n (Applet) This user property allows you to invoke a business component or business service method, or

set a

field value. It can be used in place of scripting.

Value The value you provide for the Named Method user property depends on the action

you want to perform.

For setting a field value, the value consists of three quoted parameters separated

by a comma and a space, as follows: "Name", "SET", "Field", "Expression" When Name is called, the value of Field is set using Expression.

For invoking a business component method, the value consists of four quoted

parameters separated by a comma and a space, as follows:

Page 15: Krishna Siebel Notes

"Name", "Action", "BusComp", "Method" When Name is called, Method is invoked on the BusComp business component

based on the defined Action. For a list of actions, see Table 16 on page 94.

For invoking a business service method, the value consists of five quoted

parameters separated by a comma and a space, as follows: "Name", "Action", "BusComp", "Service", "Method" When Name is called, Method from the Service business service is invoked on the

BusComp business component based on the defined Action. For a list of actions,

see Table 16 on page 94.

You can optionally append an additional parameter that defines an expression. If

you use a business service action, the expression is passed as a property set, so

you must use name-value pairs rather than an array of strings (“NameExpr”,

“ValueExpr”).

Usage Sometimes it is necessary to trigger actions in response to data changes, for

example when records are created, deleted, or updated. The response can be

required to be triggered before or after the date change has been applied.

Within the Siebel Application there is standard functionality, including user

properties, to allow you to implement automated responses to data changes

without the need to use custom scripts.

The Named Method n applet user property can be used to invoke methods in a

certain order.

For example, the Named Method n applet user property can be used to update a

legacy system with new Account records after a new record is created in the

Siebel application. It first commits the record in the Siebel application, and then

invokes a workflow process to update the legacy system.

■ Named Method 2: WriteRecord ■ 'INVOKE', 'WriteRecord', 'INVOKESVC', 'Workflow Process Manager', 'Run Process', '"ProcessName"', '"Account - New Order"', '"RowId"','[Id]' This user property is supported for applets based on the CSSFrameBase and

CSSFrameListBase classes.

You can create additional instances of this user property as needed. If you have

more than one instance of this user property for a business component, each

instance is executed sequentially by number (for example, Named Method 1, then

Named Method 2, and so on). If there is only one such user property, then no

number is required.

See also “About Setting Numbered Instances of a User Property” on page 78 and

“Named Method n (Business Component)” on page 143.

Parent Object

Type Applet

Functional Area CSSFrameBase, CSSFrameListBase

Always Enable Child: buscompname This user property allows you to specify whether a child business component of a service

request can

be updated after the service request is closed.

Always Enable Field n This user property allows fields in a closed service request to be updated.

Value TRUE Specifies that child business components of service requests can be

updated when the service request is closed.

Usage Closing a service request does not prevent updates to the child Customer

Satisfaction business component, so you can survey your customers even if a

service request has been resolved.

The user property for the Service Request business component, named Always

Enable Child: Customer Survey, allows you to enable and disable customer

surveys.

Page 16: Krishna Siebel Notes

You can allow updates to other business components by adding user properties to

the Service Request business component and substituting the appropriate

business component name for Customer Survey.

NOTE: Another way to make a closed service request and its child business

components accessible for additions and edits is to change its status to Open.

Parent Object Type Business Component

Functional Area Service Request Value The name of the field you wish to keep updatable.

Usage In standard Siebel applications, when a user sets the Status field on a service

request to Closed, the Sub-Status field is updated to Resolved. The record

becomes read-only except for the Status and Sub-Status fields. This behavior is

controlled by the specialized business component class CSSBCServiceRequest.

To allow fields to be updated after the service request is closed, use the Always

Enable Field n user property.

You can inactivate and modify values for this user property. You can also create

new instances of this user property as needed.

Parent Object Type Business Component

Functional Area Service Request

No Change Field n This user property disallows changing a field’s value after the record is committed.

Value The value of this user property must be the name of a field in the business

component, not enclosed in quotes.

Usage This property can be specified with or without the numeric suffix. Append the

numeric suffix to differentiate between multiple instances on a business

component. For example, add No Change Field 1 and No Change Field 2 user

properties to a business component to specify two different fields which cannot

be changed after a record is committed.

You can inactivate or modify the values for this user property. You can also create

new instances of this user property as needed.

Parent Object Type Business Component

Functional Area Various

No Clear Field n This user property disallows setting a field’s value to NULL.

NoDelete Field This user property allows you to restrict the deletion of records based on the value of the

specified

field.

Value The value of this user property must be the name of a field in the business

component, not enclosed in quotes.

Usage This property can be specified with or without the numeric suffix. Append the

numeric suffix to differentiate between multiple instances on a business

component. For example, add No Clear Field 1 and No Clear Field 2 user

properties to a business component to specify two different fields whose values

cannot be set to NULL.

You can inactivate or modify the values for this user property. You can also create

new instances of this user property as needed.

Parent Object Type

Business Component

Functional Area Various

Page 17: Krishna Siebel Notes

Value The value of this user property must be the name of a field in the business

component.

Usage When you specify a field in this user property, the business component does not

allow records to be deleted that have a value of Y in the specified field. For

example, a record on the Contact business component cannot be deleted if

NoDelete Field has a value of Protect Internal Employee Flag and the value of the

Protect Internal Employee Flag field in the record is Y.

You can inactivate or modify the values for this user property. You can also create

new instances of this user property as needed, but you cannot create more than

one instance for a business component.

Parent Object

Type Business Component

Functional Area CSSBCBase

On Condition Set Field Value This user property allows you to specify the value of a field to be set under a specified

condition.

Value The value for the On Condition Set Field Value user property consists of three quoted

parameters, separated by a comma and a space, as follows:

"Condition", "FieldName", "FieldValue"

Condition specifies the condition to be evaluated. FieldName specifies the name of

the field on the business component. FieldValue specifies the value.

Usage When the specified condition evaluates to TRUE, the specified field (FieldName) is

set to the specified value (FieldValue).

For example: "[Primary Held Position Id] is not null and [Primary Held Position Id] <> ""No Match Row Id""", "Employee Flag", "Y" In this example, the Employee Flag field is set to Y when the condition is TRUE.

You can modify the value for this user property and create new instances of it. You

can also inactivate this user property.

On Field Update Invoke n This user property allows you to invoke the specified business component method when a field

is

updated.

Parent

Object Type Business Component

Functional Area CSSBCUser

Value The value of the On Field Update Invoke user property consists of three quoted

parameters separated by a comma and a space, as follows: “[FieldToCheck]”, “[BusCompName]”, “[MethodName]” [MethodName] is invoked on the [BusCompName] business component when

[FieldToCheck] is updated. If [FieldToCheck] is not defined, the method is invoked

when the user saves the record.

You can optionally use a fourth parameter that defines a condition. If you define

a condition, the method is only invoked if the condition evaluates to TRUE.

Usage You can create additional instances of this user property as needed. If you have more than one instance of this user property for a business component, they are

executed sequentially by number (for example, On Field Update Invoke 1, then

On Field Update Invoke 2, and so on). If there is only one such user property, then

no number is required.

See also “About Setting Numbered Instances of a User Property” on page 78.

For example, the Asset Mgmt - Asset (Order Mgmt) business component has four

such user properties:

Page 18: Krishna Siebel Notes

■ On Field Update Invoke "Product Name", "Asset Mgmt - Asset", "CopyXA"

■ On Field Update Invoke 1 "Product Name", "Asset Mgmt - Asset",

"GeneratePartNumber"

■ On Field Update Invoke 2 "Product Name", "Asset Mgmt - Asset",

"SaveCxProd"

■ On Field Update Invoke 3 "Quantity", "Asset Mgmt - Asset",

"SetExtendedQuantity"

When the Product Name field in the Asset Mgmt - Asset (Order Mgmt) business

component is updated, the CopyXA, GeneratePartNumber, and SaveCxProd

methods are invoked on the Asset Mgmt - Asset business component.

When the Quantity field in the Asset Mgmt - Asset (Order Mgmt) business

component is updated, the SetExtendedQuantity method is invoked on the Asset

Mgmt - Asset business component.

In this example, where no [FieldToCheck] is specified, the CopyXA method is

invoked on the Asset Mgmt - Asset business component when the user saves the

record:

■ On Field Update Invoke "", "Asset Mgmt - Asset", "CopyXA"

NOTE: The empty quotes followed by the comma are necessary.

Parent Object Type

Business Component

Functional Area CSSBCBase

On Field Update Set n This user property allows you to set the value of a field in the business component when

another

field is updated.

Value The value of the On Field Update Set user property consists of three quoted

parameters separated by a comma and a space, as follows: "FieldToCheck", "FieldToSet", "Value", "Condition" where Value and Condition are optional parameters.

The field FieldToSet is set to Value when the field FieldToCheck is updated. If the

Value parameter is not defined, FieldToSet is set to the value of FieldToCheck. If the Condition parameter is defined, then FieldToSet is updated only if Condition evaluates to TRUE.

Use the following guidelines when using this user property:

■ Do not use this user property to set a multivalue or calculated field. That is,

if FieldToSet is a multivalue or calculated field, it does not update when

FieldToCheck is updated.

■ Do not define FieldToCheck as a field on a multivalue group. This user

property does not recognize changes to a multivalue group field, including

changing the primary field by changing the primary record of a multivalue

group.

For example, if On Field Update Set has the value "Primary Address Id", "Email Address", "[email protected]" on the Contact business component, it fails to update Email Address when the primary on the multivalue group Street Address is changed. Usage The Value parameter may be an expression. In the following example, the Done field is set using an expression when the Done Flag field is updated: "Done Flag", "Done", "IIF ([Done Flag] = "Y", Today (), "")" NOTE: If you use an expression, it must evaluate to the data type of the targeted

field. In the following example, the ToChar function is used to convert the date to

a string before concatenating with another string and setting the value of the

field. "Agreement Start Date", "Name", "ToChar([Agreement Start Date]) + [Agreement Type]"

Page 19: Krishna Siebel Notes

The following example shows how the Condition parameter is used. The Revenue field of the Opportunity business component is set when the Primary Revenue Amount field is updated, but only when the IsParentBCRevn field has a value of N: "Primary Revenue Amount", "Revenue", "[Primary Revenue Amount]", "[IsParentBCRevn] = 'N'" Various address business components, such as Business Address, populate their Address Name field with a concatenation of street address, city, and state. This field is updated, or not, by using a few On Update Field Set instances and the

value of a calculated field whenever the street address, city, or state are updated.

For example, when the city is updated, an On Update Field Set user property with

the following value is used: "City", "Address Name", "IIF( [Address Name Locked Flag] = ""N"", [Calculated Address Name], [Address Name])" Similar numbered instances of the user property are used to update the Address Name field when the street address or state are updated. You can create additional instances of this user property as needed. If you have

more than one instance of this user property for a business component, they are

executed sequentially by number (for example, On Field Update Set 1, then On

Field Update Set 2, and so on). If there is only one such user property, then no

number is required.

Parent Object Type Business Component

Functional Area CSSBCBase

Picklist Pre Default Field n Within a view based on a parent business component, such as Action, the user may be able to

create

a new record of a child business component, such as Opportunity, through a picklist for the

child

business component. The Picklist Pre Default Field user property is used to default fields on

the new

record of the child business component to field values from the parent business component

record.

Value "field", "'buscomp1.field1','buscomp2.field2',' . . .'"

where

■ field is a field on the current business component

■ buscompn.fieldn is a field name on a parent business component

NOTE: The space after the first comma (the comma after field) is required. In

addition, the list of buscompn.fieldn entries is enclosed in double quotes, and each

buscompn.fieldn entry is enclosed in single quotes.

Usage This property can be specified with or without the numeric suffix. Append the

numeric suffix to differentiate between multiple instances on a business

component. For example, add Picklist Pre Default Field 1 and Picklist Pre Default

Field 2 user properties to a business component to specify two different fields that

assume default field values from the parent business component.

For example, a new opportunity can be created through an Opportunity picklist in

each of the following applets:

■ Activity Form Applet, based on the Action business component

■ Comm Outbound Item Form Applet, based on the Comm Outbound Email

business component

When a new opportunity is created from the picklist in either context, the

opportunity’s Account and Account Id fields can be defaulted to the corresponding

field values on the parent record by adding the following user properties to the

Opportunity business component:

■ Picklist Pre Default Field 1 with value "Account", "'Action.Account Name',

'Comm Outbound Email.Account Name'"

Page 20: Krishna Siebel Notes

■ Picklist Pre Default Field 2 with value "Account Id", "'Action.Account Id', 'Comm Outbound Email.Account Id'"

You can inactivate or modify the values for this user property. You can also create

new instances of this user property as needed.

Parent Object Type Business Component

Functional Area Picklist generation

Sequence Field This user property allows you to define a sequence field for a business component.

Value The value for the Sequence Field user property must be the name of the field

(typically Line Number or Sequence Number) in the business component that

corresponds to the sequence number column in the underlying table.

Usage This user property is used to configure a sequence field to create a sequential

auto-generating line number on new record and copy record events. A sequence

business component must be defined in the business object.

For new record and copy record events, this user property specifies a field on the

business component whose value is a number in a sequence that is autogenerated.

A sequence business component must also be defined in the business

object.

NOTE: When defining a Sequence Field user property, set the Insert Position

property to LAST for the applets that display records from the numbered detail

business component. Leaving the Insert Position property blank can cause

unexpected behavior in the line numbers generated in the applet.

Configuring a sequence field on a business component requires several tasks to

be completed. For detailed information on creating sequence fields, see

Configuring Siebel Business Applications.

Parent Object

Type Business Component

Functional Area Record sequencing

Url This user property specifies the URL to which to go when the GotoUrl method is invoked for an

applet

control.

View This user property specifies the view to display when the GotoView method is invoked for an

applet

control.

DisableSearch This single-value field user property allows a Siebel developer to specify whether an end user

can

execute a wildcard query on a particular field.

Value TRUE or FALSE Usage The intent of this field user property is to allow a Siebel developer to prevent

users (and the Siebel query engine) from performing queries on non-indexed or

text fields. If its value is TRUE, wildcard searching on the field is disabled, but

exact match searching is allowed. If its value is FALSE or not specified, searching

is allowed on the field.

For example, if the [Name] field has the DisableSearch field user property set to

TRUE, wildcard searches such as [Name] LIKE 'S*' are suppressed, and an error

message is displayed. Exact searches such as [Name] = 'Siebel' are allowed.

This user property is enforced when the following query options are exercised:

query by example, Query Assistant, Search Center, queries initiated through

Page 21: Krishna Siebel Notes

programmatic or message-based interfaces, and pre-defined queries.

You can inactivate and modify the values for this user property, and you can

create a new instance of this user property if it is not already defined on the field.

Parent Object

Type Field

Functional Area Search

DisableSort (Field) This single-value field user property allows a Siebel developer to specify whether an end user

can

sort a result set on a specific field of a business component.

Display Mask Char This field user property allows you to display a masked version of secure data, typically a

credit card

number or account number.

Value TRUE or FALSE Usage The intent of this business component field user property is to provide finergrained

control over field-level sorting. If its value is TRUE, all sorting capabilities

on the field are disabled in all applets based on the business component. The sort

icons and tool tips do not appear in the list column header, and the field is not

displayed in the Advanced Sort window. If its value is FALSE or not specified,

sorting is enabled on the field.

For example, if the Name field for a particular business component has the

DisableSort user property set to TRUE, the sort icons and (Sortable) tool tip do

not appear in the Name list column, and the Name field is not displayed in the

Advanced Sort window. If a user attempts to perform a sort on the Name field in

any applet based on that business component, an error message displays.

You can inactivate and modify the values for this user property, and you can

create a new instance of this user property if it is not already defined on the field.

Parent Object Type Field

Functional Area Sorting Value The value of this user property is a character. This character is used to mask

characters in a secure data field, typically a credit card number or account

number. By default, its value is x.

Usage This user property is used with the Encrypt Source Field user property to display only the last 4 digits of a credit card number or account number, such as

xxxxxxxxxxxx9999. This user property is set on a separate calculated field that is

displayed in the UI instead of the field containing the entire credit card number or

account number.

For example, in the Quote business component, the Credit Card Number field is

the encrypted field that stores the credit card number. The Credit Card Number -

Display field is a calculated field on which the following user properties are set:

■ Display Mask Char with a value of x ■ Encrypt Source Field with a value of Credit Card Number

The applet field that displays the masked credit card number must reference the

Credit Card Number - Display field.


Recommended