Siebel Dock Objects-An Outline.

Prepared by Omkar Mazumdar Email: [email protected]

Version 1.00a

Date th 6 Feb 2004

Updated By Omkar Mazumdar

Contents

1.Dock Objects 2.Dock Object Types 3.Dock Object Visibility Rule 4.Dock Object Table 5.How Siebel Determines whether a record should come in a Remote Client’s Local Database? 6.The Visutl Utility 7.Appendix 8.References

1. Dock Objects Dock objects are the foundation of Siebel Remote Application. These are used to selectively replicate server data into the local database of the remote user. Different data is replicated to different local databases, depending upon various rules defined in the Dock Objects. These rules are collectively known as routing rules or Dock Object Visibility Rule child objects. These rules basically comprise of the following factors: Local database owners’s employee identity, position, organization, visibility to data from different dock objects and the relationship between the dock objects. Dock objects are collections of related tables. Each Dock Object has a primary table and several other related tables as Dock Object Table child objects. There can be only one Dock Object based on a particular table as the primary table.

2. Dock Object Types This is the ‘Visibility Level’ field in the Dock Object in Siebel Tools. There are three types of dock objects:

¦ Private. Private dock objects are used exclusively for routing of non-configurable data. This setting makes sure that the rows in these dock objects are never routed to any mobile clients. All records from tables that are part of a private dock object are uploaded to the server during synchronization. None of these records are downloaded to remote users. ¦ Enterprise. Enterprise dock objects involves a distribution of records without restriction. All records from tables that are part of an Enterprise dock object are uploaded to the server during synchronization. Most of these tables should only be updated by an administrator and are typically downloaded but not uploaded by mobile users. To minimize synchronization time, Enterprise dock objects should only be used with tables that contain small volumes of data or are semistatic in nature (that is, the contents change infrequently). ¦ Limited. Limited dock objects contain numerous individual rules for determining the records that should be downloaded to particular users; these users should only get those records with which they have some direct or indirect involvement .

3. Dock Object Visibility Rule There are nine types of visibility rules (Dock Object Visibility Rules child objects) used for Limited dock objects: ¦ Employee. Evaluates record according to whether it has a foreign key to the mobile user’s Employee record. This type requires ‘Employee Table’ and ‘Employee Column’ fields in Siebel Tools to be non null.

Essentially the remote Employee’s Id (from S_USER table) is compared with the ‘Employee Column’ of ‘Employee Table’. If these match, then the concerned record in the Primary table of the Dock object is replicated in the remote with a visibility strength corresponding to this Visibility Rule. ¦ Employee Manager. Evaluates record according to whether it has a foreign key to the Employee record of someone who directly reports to the mobile user. This too requires ‘Employee Table’ and ‘Employee Column’ fields in Siebel Tools to be non null. But in this case the ‘Employee Table’.’Employee Column’ is compared with the mobile user’s subordinates’ employee Id. That is the concerned record in the primary table of the Dock Object has to be associated to a subordinate of the mobile user. ¦ Position. Evaluates record according to whether it has a foreign key to the mobile user’s primary Position record. Position record is taken from S_POSTN table. The fields ‘Position Table’ and ‘Position Column’ should be non null. The employee’s active position id is matched with the ‘Position Column’of ’Position Table’. The ‘Position Table’ should have a foreign key to the primary table. ¦ Position Manager. Evaluates record according to whether it has a foreign key to the Position record of someone who directly reports to the mobile user. ¦ Organization. Evaluates record according to whether it is associated with the same business unit as the mobile user. The fields ‘Orgnisation Table Name’ and ‘Organisation Column Name’ have to be non null. ¦ Check Dock Object. Evaluates record according to whether it is related to another record that the user receives. The relationship between data in other dock objects and the current dock object determine which records from the current dock object are replicated. The fields ‘Check Dock Obect’, ‘Check Dock Object Visibility Strength’, ‘Source Table’, ‘Source Column’, ‘Target Table’ and ‘Target Column’ in Siebel Tools should be non null. The current Dock Object’s visibility rule succeeds only if the visibility strength of the destination Dock Object’s record is greater than or equal to ‘Check Dock Object Visibilty Strength’. ¦ Calendar. Applies only to calendar appointment records. Evaluates record according to whether the mobile user has access to the calendar of the record’s owner. ¦ Category. Evaluates record according to whether it is in a category visible to the user. ¦ SQL Rule. Used to handle special exceptions through custom SQL.

4. Dock Object Table This is used to specify the the tables whose records are actually transferred in conjunction with the Dock Object. All of the tables identified in the dock object tables for a given dock object are related through foreign keys in the data model, to one driving table(primary table of the dock object). This primary table is also present in the Dock Object Tables list.

5. How Siebel Determines whether a record should come in a Remote Client’s Local Database? 1.

For each Dock Object record, and each mobile user Siebel sequentially evaluates the rules in order of descending visibility strength and ascending sequence until one of them ‘passes’ ie evaluates to TRUE. As soon as one of the rule passes Siebel stops the evaluation process and gives the current Dock Object Record(record of the Primary Table) to the mobile user with a visibility strength value corresponding to the Visibility Rule that ‘passed’. This is the ‘User’s Visibility Strength’ for the primary table’s record.

2.

Now records in every table listed in the Dock Object Table are fetched as per the Dock Object Table Definition. These records are replicated to the mobile user only if the ‘Visibility Strength’ of the concerned Dock Object Table definition is less than the ‘User’s Visibility Strength’ obtained from the evaluation process in Step 1.

6. The Visutl Utility. Visutl can be used to determine if a particular row is visible to a particular node(the Mobile User) and identify the visibility rule that was applied in that case. If a row is visible to the node then it will be: • •

Routed to that node and will be visible after synchronization. Included in a database extract for that node and will be visible after database initialization.

Visutl is available in all Siebel versions. If there is any question about records that should or should not get routed to specific mobile clients, then those records should be checked with visutl. In order to do this, the ROW_ID of the record in question is needed. The easiest way to find this is through the Help > About Record > Details menu option in the Siebel User Interface (UI).

Please note that prior to Running VISUTL, ALL Transaction Routers must be stopped. For further information please see ALERT 243: Unsupported use of VISUTL utility can cause corruption of dobjinst.dbf. Usage of visutl Arguments: /U Username (Required) /P Password (Required) /C ODBC Data Source (Default Env Variable: SIEBEL_DATA_SOURCE) /D Siebel Table Owner (Default Env Variable: SIEBEL_TABLE_OWNER) /N Node Name (Required) /V Details: (N)one|(L)ow|(M)edium|(H)igh|(R)ecursive (Default: Low)

/F Use forceplan (Default: Y) /L Log Filename (Default: visutl.log) /A AppServer name (Required) Note: the /A argument was added in version 7.5.x, it is not used in prior versions. 1. On the Unix Shell prompt, go to SIEBEL_ROOT directory ie siebsrvr directory 2. Run siebenv.sh to set environment variables related to the Siebel environment. 3. Verify the following environment variables by using the 'env' command prior to running the command in step 3. • • •

SIEBEL_DATA_SOURCE (Default: siebsrvr_X, where X is the enterprise server name) SIEBEL_REPOSITORY (Default: Siebel Repository) SIEBEL_TABLE_OWNER (Default: SIEBEL)

3. Run the following command, substituting the arguments shown above. visutl /u SADMIN /p SADMIN /n /v Where, Node is the node name or mobile client name and it is case sensitive, and Details is one of the following detail levels: • • • •

L: Low M: Medium H: High R: Recursive (most useful, since it follows the complete chain of visibility rules for the record)

4. When prompted for the table name, type the corresponding table for the record to be verified, for example, S_ORG_EXT for Accounts, S_CONTACT for Contacts etc. Press enter. 5. When prompted for the table where clause, respond as follows substituting the row_id identified earlier, then press enter. where ROW_ID = 'row_id' 6. When prompted for the next where-clause, just press enter. 7. To exit, just press enter again. Note the examples in the appendix of this FAQ. Troubleshooting visutl: All versions: By default the output is written to visutl.log in the same directory, however users can change the directory and filename by specifying this information with the /L parameter. If there are any problems with visutl, please review visutl.log in the \log\directory, to diagnose the problem. The most common problems have to do with missing environment variables. For example: Error: Unable to get value for environment variable SIEBEL_DATA_SOURCE.

Check the value of SIEBEL_DATA_SOURCE by typing 'env' from the command prompt. If this variable is not set or is not set correctly, then fix this by typing the following command: SIEBEL_DATA_SOURCE=siebsrvr_siebel; export SIEBEL_DATA_SOURCE Where siebsrvr_siebel is the ODBC data source for this Siebel server. Alternatively, this argument can be specified in the visutl command itself using the /C argument followed by the correct value.

7. Appendix This is what a sample session looks like: bash-2.03$ visutl /U SADMIN /P SADMIN /C siebsrvr_siebelent PILARV /V M /L visutlAccount.log /A shanmuga

/D SIEBEL /N

Siebel Enterprise Applications Visibility Test Utility, Version 7.5.3 [16157] LANG_INDEPENDENT Copyright (c) 2001 Siebel Systems, Inc. All rights reserved. This software is the property of Siebel Systems, Inc., 2207 Bridgepointe Parkway, San Mateo, CA 94404. User agrees that any use of this software is governed by: (1) the applicable user limitations and other terms and conditions of the license agreement which has been entered into with Siebel Systems or its authorized distributors; and (2) the proprietary and restricted rights notices included in this software. WARNING: THIS COMPUTER PROGRAM IS PROTECTED BY U.S. AND INTERNATIONAL LAW. UNAUTHORIZED REPRODUCTION, DISTRIBUTION OR USE OF THIS PROGRAM, OR ANY PORTION OF IT, MAY RESULT IN SEVERE CIVIL AND CRIMINAL PENALTIES, AND WILL BE PROSECUTED TO THE MAXIMUM EXTENT POSSIBLE UNDER THE LAW. If you have received this software in error, please notify Siebel Systems immediately at (650) 295-5000. Connecting to the database... Connected. Loading the Siebel dictionary... Loaded. Checking Visibility for Node "PILARV"... Enter table name: S_DOC_QUOTE Enter S_DOC_QUOTE where clause: where row_id='1-1IBPB' Enter S_DOC_QUOTE where clause: Row 1: Checking Visibility for rowid "1-1IBPB" Quote (S_DOC_QUOTE) "1-1IBPB" is LIMITED visible with visStrength "100" Row IS visible: visStrength (100) >= member table S_DOC_QUOTE visStrength (25) > Rule 1 (100): You are the creator for the Quote > Rule 2 (100): Quote for an Account you have full visibility on > Rule 3 (100): Quote for an Opportunity you have full visibility on > Rule 4 (100): You are the employee holding the position assigned to the quote > Rule 5 (100): You are the manager of the employee holding the position assigned to the quote Row "1-1IBPB" IS visible.

1 rows tested. Enter table name: TOTAL ROWS : 1

Disconnecting from the database.

8. References - Siebel Book Shelf - Siebel Support Web - Siebel Tools Online Help