Вы находитесь на странице: 1из 28

Document Control

1.1Purpose
The purpose of this document is to aid Lima CRM employees in preparing for Siebel interview questions
normally asked as a part of the candidate selection process for project assignments.
This document is intended to provide expected questions and guidelines to answering these questions
across a range of key technical areas within Siebel. The answers are described specifically from an
interview stand point and may omit minute details.

1.2Audience
This document will form the basis for Siebel technical interview preparation by Lima CRM employees.
It should be read only by:

1. Direct hires of Lima CRM.


2. 1099 Contractors at Lima CRM.
Any unauthorized use or reproduction of this document will be construed as a legal offence and the
responsible individual will be liable for punitive damages up to $250,000 and/or imprisonment for
infringement of copyright laws.

1.3Amendment History
Versio
n

Date

Revision Comments

Amended By

0.1

01/06/200
8

Initial Draft

Lima CRM

0.2

01/19/200
8

Added Scripting

Lima CRM

0.3

01/26/200
8

Added EIM

Lima CRM

0.4

02/09/200
8

Added Workflow

Lima CRM

1.4Reviewed By
Reviewer

Date

Signature

Table of Contents
1 Document Control 2
1.1 Purpose 2
1.2 Audience 2
1.3 Amendment History 2
1.4 Reviewed By 2
2 Introductory Questions 4
2.1 Please tell us something about your experience 4
2.2 Can you describe your recent projects? 4
2.3 How would you rate your self on various Siebel technologies? 4
2.4 What is your availability? 4
2.5 What versions of Siebel have you worked on? 4
2.6 What entities/modules in Siebel have you worked with? 4
3 Architecture 6
3.1 Describe the Siebel Architecture 6
3.2 What are the different Siebel Client types? 6
3.3 What different Siebel applications are you aware of? 7
3.4 What is the difference between High Interactivity and Standard
Interactivity modes? 7
3.5 How will you create a Developer in Siebel? 7
4 Configuration 8
4.1 How will you configure a View? 8
4.2 How will you configure an Applet? 8
4.3 How will you configure a Screen? 8
4.4 How will you configure a Join? 8

4.5 How will you configure a link? 8


4.6 How will you create a Business Object (BO)? 9
4.7 How will you create a Business Component? 9
4.8 How will you create a Picklist? 9
4.9 How will you create an MVG? 9
4.10 How will you configure a drilldown? 10
4.11 How will you extend the database? 10
4.12 What are some configuration best practices/performance considerations? 10
4.13 What are different access control mechanisms in Siebel? 10
4.14 What are different authentication mechanisms in Siebel? 10
4.15 Have you worked with user properties? 11
5 Scripting 12
5.1 Explain how you would write a script or explain the various components
of a script? 12
5.2 What is the difference between browser script and server script? 12
5.3 What is the difference between a pre event and a post event (eg: Pre
WriteRecord vs Write Record)? 12
5.4 Give an example of a complex script you have written? 12
5.5 Explain how would you create a business service or explain the
structure of a business service? 13
5.6 What are the key differences between VB Script and eScript? 13
5.7 When would you use client side business service vs server side
business service? 13
5.8 What are some scripting best practices? 13
5.9 What are some events and methods you are aware of on the
Application, Applet and BC level? 14
6 EIM 16
6.1 What kind of EIM work have you done in your past projects? 16

6.2 How will you go about doing an EIM process (or EIM design)? 16
6.3 What are different types of EIM processes possible? 16
6.4 How will you create an .ifb file or explain the structure of an .ifb file? 16
6.5 Where are the .ifb files stored? 16
6.6 How will you improve the performance of your EIM loads? 16
6.7 What is the number of records you have processed per batch in an EIM
load? 17
6.8 How will you test your EIM load (or how will your write a test plan to
test your EIM load)? 17
6.9 How will you debug or troubleshoot your EIM load? 17
6.10 In which screen will you create an EIM job? 17
6.11 How will you schedule an EIM job to run nightly/regularly at a given
time? 17
6.12 What considerations you have to make for EIM when extending a
Siebel base table? 17
6.13 What do you have to keep in mind when doing an initial EIM load for a
fresh Siebel implementation? 17
7 Workflow 18
7.1 What are the different ways in which you can invoke a workflow? 18
7.2 Explain how a workflow is triggered from a workflow Policy ? 18
7.3 Explain what happens when a workflow policy condition is met? 18
7.4 Give an example of a complex workflow you have written? 18
7.5 How will you create a Workflow Policy? 19
7.6 Have you done any customization on workflow in Tools? 19
7.7 Explain the configuration and deployment of workflows in 7.7(or higher
versions)? 19
7.8 How will you improve the performance of your workflow? 19
7.9 How will you trouble shoot or/test workflow policies/processes? 20

7.10 How will you migrate workflow processes from one environment to
another? 20
8 EAI 21
9 Assignment Manager 21
10 Server Administration 21
11 Siebel 7.7 key features 21

2Introductory Questions
2.1Please tell us something about your experience
Sample ans: I have 7 years of IT industry experience of which I have spent about 5 years working on
Siebel applications. I have executed 6 odd projects in Siebel primarily as a developer where I have been
responsible for design, development, unit testing and bug fixing. I have worked on Siebel versions 7.8,
7.5.3 and 7.5.2.
From a technical standpoint I have worked extensively in configuration, scripting, workflow and EIM and
from a functional stand point I have worked in Siebel Sales, Call Center, and Marketing applications. I
also have good knowledge of Siebel development best practices.
This is my profile in a nutshell. I would be happy to answer any specific questions you may have.

2.2Can you describe your recent projects?


Sample ans: Please refer your resume. Structure of you answer should be as follows:
First, describe what the project was about in simple business terms eg: The client had an existing Siebel
6.0 Sales application. They were facing a lot of issues with this application as it was heavily customized
and used the client server architecture. They decided to upgrade to Siebel 7.8 inorder t o reduce
customization, improve performance and move to a web based architecture.
Then describe what you did eg: I was working as a Siebel developer and was responsible for doing a gap
analysis of the existing configuration in 6.0 versus the required configuration in 7.8 due to the data model
changes. Then I was responsible for developing design documents for the To-Be application for entities
such as Accounts, Contacts and Opportunities. Then during development I was responsible for making
changes to Screens, Views, Applets, BCs and BOs as well as configuring Joins, Links and MVGs. I also
build unit test plans for my configuration and carried out unit testing. I was later involved in doing bug fixes
when the application moved to the system testing and UAT.
Then highlight an accomplishment eg: I maintained a fast turn around time for defects and my
responsiveness was appreciated by the client leads.

2.3How would you rate your self on various Siebel


technologies?
Sample ans: Based on my hands on experience in various areas that I have worked in Siebel this is how I
would rate my self on a scale of 1-5 :
Configuration 4
Scripting 4
Workflow 4
EIM - 3

2.4What is your availability?


Sample ans: I am available at a weeks notice or I am available immediately (if you are on bench.)

2.5What versions of Siebel have you worked on?


Sample ans: I have worked on Siebel versions 7.8, 7.5.3 and 7.5.2.

2.6What entities/modules in Siebel have you worked with?


Sample ans: I have worked quite a bit on Accounts, Contacts, Opportunities, Service Requests and
Activities.
Note: The underlying tables for the above entities are as follows:
Account S_ORG_EXT
Contact S_CONTACT
Opportunity S_OPTY
Activities S_EVT_ACT

3Architecture
3.1Describe the Siebel Architecture
Sample ans: The Siebel architecture consists of 4 layers
1. Siebel Clients These operate in a variety of environments such as web clients, mobile clients, PDAs,
handhelds etc.

2. Web Server The web server accepts Siebel request and passes completed HTML pages back to the
browser. The web server is extended by the Siebel Web Server Extension (SWSE) which directs urls with
Siebel request to the appropriate server component.
The Web Server also has a component called the Image cache which reduces the load on the web server
by caching images published to the web server and allowing parallel down load of images.

3. Gateway Server The gateway server serves as a single access point for Siebel servers. It
dynamically registers Siebel server and component availability. It assigns work based on the component
requested by the SWSE and also stores connectivity and session information.
The Siebel server processes requests from the Siebel clients. They have several components such as
workflow manager, object manager etc. which are specialized programs that perform a specific task or
function.
Several Siebel servers may be assigned to an Enterprise server which is a logical grouping of Siebel
servers accessing the same database.
The Object Manager is the most important server component that process object definitions at multiple
layers (UI, BO, Data layers). It consists of the Siebel Web Engine (to construct web pages using template
files) and data manger.

4. Siebel Database - The Siebel database provides a logical schema for Siebel data to be stored in a 3rd
party RDBMS such as oracle, DB2.

In addition to the above layers there is also the Siebel file system, which is a shared directory that stores
compressed files used by Siebel applications such as sales literature, presentation templates etc.

3.2What are the different Siebel Client types?


Sample ans: There are 5 different Siebel client types:

1.
2.
3.
4.
5.

Web client
Wireless web client
Mobile client
Handheld
Dedicated web client

The web client and wireless web client connect via the web server. The local machine has zero Siebel
application foot print.
The Mobile client and handhelds connect via the Siebel server. The local machine must contain the
cfg file, srf, local db, file system and Siebel.exe.
The dedicated web client connects directly to the server database. The local machine must have the
cfg file, srf and Siebel.exe. Local db and file system are not required. This mode is useful when a
developer wants to test local changes with server data before checking in.

3.3What different Siebel applications are you aware of?


Sample ans: There are 3 basic types of Siebel applications:
1. Employee facing such as Siebel Sales, Marketing and Call Center
2. Customer facing such as eSales, eMarketing, eService
3. Partner applications such as eChannel
In addition there are vertical applications such as eFinance, eClinical, ePharma etc. which fall in one of
the above 3 categories.

3.4What is the difference between High Interactivity and


Standard Interactivity modes?
Sample ans: High Interactivity applications are typically employee facing applications that do not require
frequent page refreshes. They allow for client side scripting, interactive controls (such calendar,
calculator) and use of key board accelerators.

Standard Interactivity applications are typically customer facing applications and require frequent page
refreshes like normal web applications.

3.5How will you create a Developer in Siebel?


Sample ans:
1. First create the developer as an employee and associate responsibility and position to it.
2. Then register the developer as a mobile client.
3. Then in Administration Server Management Jobs screen, extract the local database.
4. Then initialize the local database on the local client.

5. Then populate the local database by doing a full get.

4Configuration
4.1How will you configure a View?
Sample ans:
6. First I will create a view definition and specify the Business Object for the view
7. Then I will associate the View Web Template.
8. Then I will bind Applets to the view and specify the applet mode (i.e Edit List, Edit or Base mode)
9. Then I will assign the View to a Screen.
10.
Then I will register the View in the Siebel UI.
11.
Finally I will add the View to an appropriate Responsibility.
Alternatively I can use the View wizard for the first 3 steps.

4.2How will you configure an Applet?


Sample ans:
1. I can create and applet using either the Applet wizard in tools or by copying an existing applet
similar to the one I want to create. In either case I will first specify the BC (Business Component)
for the applet.
2. Then I will associate the applet web template.
3. Then I will bind list columns (for a list applet) or controls (for a form applet)
4. I will do additional editing using Edit Web Lay Out in tools.

4.3How will you configure a Screen?


Sample ans:
1. First I will create the Screen object definition under the Application (eg: Siebel Sales) where I
need the Screen.
2. Then I will specify Aggregate Categories and Detail Categories.
3. Then I will add the Views and specify them as Aggregate Views or Detailed Views depending on
the category (in step 2).

4.4How will you configure a Join?


Sample ans:
1. First I will determine if the relationship between the base table and the table to be joined is M:1 or
1:1.
2. Then I will identify the foreign key column from the base table to the joined table.
3. Then I will configure the foreign key field.
4. Then I will create the Join object definition and specify the name of the Join table.
5. Then I will create the Join Specification and specify the Source Field as the foreign key field just
configured(in step 3) and the Destination Column as Id

4.5How will you configure a link?


Sample ans:
1. First I will determine if the relationship between the parent business component and the child
business component is 1:M or M:M (Many to Many).
2. Then I will create the Link and specify the following for a 1: M (One to Many) link :
1. Source Field ( as Id)
2. Destination Field (as the foreign key field)
3. Parent BC
4. Child BC
3. If it is a M:M link, then I will specify the following in the link definition:
1. Parent BC
2. Child BC
3. Intersection table
4. Inter Parent Column
5. Inter Child Column

4.6How will you create a Business Object (BO)?


Sample ans:
1. First I will create the Business Object definition and specify the Primary BC.
2. Then in the Business Object Components, I will add the Primary BC and leave the link property
blank.
3. Then I will add other child business components and specify the link for each of them.

4.7How will you create a Business Component?


Sample ans:
1. Ideally I will copy an existing Business Component which is similar to the BC I want to configure
and set the Upgrade Ancestor property to True.
2. Then I will specify the Base Table for the BC.
3. Then I will configure new fields, creating any joins as needed.
4. I will inactivate any unneeded fields.

4.8How will you create a Picklist?


Sample ans:
Static Picklist (also called dropdown)
1. If its is a static picklist (i.e a dropdown) then I will first create the Picklist object definition and
specify the following:
1. BC = Picklist Generic
2. Type = Type
3. Value = <Name of the Picklist created in the UI using Administration Data -> LOV screen>
eg: SERVICE_AREA
2. In the business component field where the picklist is to be configured specify the picklist property
as the name of the picklist just created (in step 1)
3. Then create a SVF pickmap on the BC field and specify the bc field name in the Field property
and Value in the Picklist field property.

4. In the applet list column or control specify the Run Time property as true.
Dynamic Picklist (also called Pickapplet)
1. If it is a dynamic picklist then I will first create the Picklist object definition and specify the
following:
1. BC = <Name of the Pick business component> eg: Account
2. Type = blank
3. Value = blank
2. In the business component field of the originating bc (eg: Activity) where the picklist is to be
configured specify the picklist property as the name of the picklist just created (in step 1)
3. Then create a SVF pickmap on the originating BC field and map the foreign key field in the
originating bc to the primary key field from the pick bc. Create mapping between other fields of
the originating bc and pick bc.
4. Create a pickapplet.
5. Then in the applet for the originating bc specify the pick applet and set run time as true.

4.9How will you create an MVG?


Sample ans:
1. First verify that the relation between the parent and child bc is 1:M or M:M
2. Then create a link between the parent and child bc if it does not exist
3. Specify the link in the Multi Value Link definition in the bc
4. Identify or create and MVG applet
5. In the referring applet specify the MVG applet and set run time as true.
6. Enable Primaries for this first in the Multivalue link definition set the Primary Id field property =
Primary Foreign Key field and set the Use Primary Join = True. Also set the Auto Primary
property to default.
Note: If the relationship between the parent and child bc is M:M also specify the Associate applet when
you create the MVG applet. Other steps are same as for 1:M.

4.10How will you configure a drilldown?


Sample ans: There are two types of drill downs that can be configured, Static drilldown and Dynamic drill
down.
For a static drilldown:

1. On the Applet go to Drilldown Objects and specify the Hyperlink Field and View properties.
For a dynamic drilldown

1. On the Applet go to Drilldown Objects then go to Drilldown Object Definition and specify the
Destination Drilldown Object, Field, Value and Sequence properties.

4.11How will you extend the database?


Sample ans:

1.
2.
3.
4.
5.

First, go to the table that needs to be extended


Then, click on the Extend button and add the new column name
Activate the new column added
Create any necessary EIM mapping for the extended column.
Ensure that changes are propagated to other developers and any mobile clients.

4.12What are some configuration best


practices/performance considerations?
Sample ans:

1. Modify existing object definitions to the extent possible instead of creating new ones (not for
performance)

2. Ensure that primary is specified for MVG in list applet


3. Ensure indexes are available to support search and sort specifications on bc/applet
4. Avoid totals on list applets
5. Avoid calculated fields not supported by the database
6. Enable primary on MVG in form applet
7. Avoid too many joins
8. Avoid setting outer join flag equal to true.
9. Avoid too many applets in a view.
10.
Avoid too many fields in a bc.
11.
Avoid setting force active and link specification to true.

4.13What are different access control mechanisms in


Siebel?
Sample ans: There are 2 access control mechanisms:
1. View level access control which is controlled through Responsibility and

2. Data level access control which is controlled through person/position/organization based


control. Data level access control can be configured by setting the Visibility Applet Type property
on the View to either Personal/Sales Rep/Organization/All values.

4.14What are different authentication mechanisms in


Siebel?
Sample ans: There 2 authentication mechanisms:

1. Database authentication which is done against the Siebel database.


2. Authentication using a security adapter and a directory (Siebel has pre built security adapters to
LDAP and ADSI)

4.15Have you worked with user properties?


Sample ans: Yes, I have worked with user properties and have leveraged it to reduce scripting in the
application. Some of the user properties I have worked with are:

1. Field ReadOnlyField
OnField Update Set

5Scripting
5.1Explain how you would write a script or explain the
various components of a script?
Sample ans: I would broadly structure my script as follows:

1. First, I would declare the variables


2. Then I would set the Objects as needed using Applcation.Get BusinessObject and BO.Get
BusComp methods.
3. Then for any operation required on a BC, I would start the with BC block and specify Clear to
Query, Set ViewMode, Activate Field, Set SearchSpec, Execute Query etc.

4. Based on whether a record is returned from the search, I will do any further manipulation required
which could be setting field values, or deleting records or calling a business service etc.

5. Then I would destroy objects, first destroying the child objects and then the parents.
6. Finally I would do error handling.

5.2What is the difference between browser script and


server script?
Sample ans: A browser script can help you improve performance by saving round trip to the server when
correct used. Normally you would use browser script when there is:

Communication with the user


Data validation and manipulation that is limited to the current record

Server script is recommended for:

Query, insert, update, and delete operations


Access to data beyond the current record

5.3What is the difference between a pre event and a post


event (eg: Pre WriteRecord vs Write Record)?
Sample ans: A pre event is primarily used to carry out any validations before the record is committed to
the database. If the operations fail then an error message is shown the user and the record is not
committed to the database.
A post event is used after the record has been committed to the database eg:There 2 authentication
mechanisms:

5.4Give an example of a complex script you have written?


Sample ans: In one of my projects the client wanted that whenever a new opportunity was created for an
Account, the Account Tetative Revenue field should get automatically updated based on the sales stage
and probability of the opportunity. For this I wrote a script on the Opportunity bc Write Record event.
The script would first check the Sales Stage of the Opportunity, If the Sales Stage was any of Defined,
Proposal Submitted or Negotiation stages then the script would instantiate the Opportunity business
component and execute a query in the forward only mode on it with the search spec as the Current
Account (which was captured in a variable earlier). If a record was returned from the execute query, the
script would then loop through all opportunity records where the Sales Stage was Defined, Proposal
Submitted or Negotiation and Multiply the opportunity revenue with the probability and cumulatively add
it up in a variable.
Once all opportunity records were exhausted, it would instantiate the Account bus comp and update the
Account Tentative Revenue with the value from opportunity total by means of bc.WriteRecord method.
Finally I destroyed the Opportunity and Account bcs followed by bos and also provided error handling.

5.5Explain how would you create a business service or


explain the structure of a business service?
Sample ans: I would first create a Business Service object definition. Then I would specify the methods.
Then for each method I would specify the input and output arguments. Then I in the business service
event PreInvokeMethod, I would write the main script which will be triggered if a specific Method is
invoked. The flow with the business service would be pretty similar to how one write a normal script such
as declaring variables, instantiating objects, doing data manipulation, destroying objects and doing error
handling.

5.6What are the key differences between VB Script and


eScript?
Sample ans:

1. First, VB script cannot be used for client side scripting, one has to use only eScript.
2. In VB script one has to explicitly specify the variable types which is not needed in eScript.
3. VB script is more text oriented where as in eScript you use braces a lot for blocks.
4. In VB Script you do not use the Try, Catch and Finally blocks which you use in eScript.
5. In VB script you do not use semi colons after every statement which you do in eScript.

5.7When would you use client side business service vs


server side business service?
Sample ans: Client side business services can be modified at run time and do not require an srf compile.
This can speed up any changes to the functionality and speed up testing. Server side business service on
the other hand requires a srf compile for changes, hence it can consume time to test and deploy.
However, server side business services allow for version control which can be important in a large and
complex environment. Both of them have their own merits; however I would prefer server side business
service as a best practice from version control stand point.

5.8What are some scripting best practices?


Sample ans: I have used the following scripting best practices in my projects to improve performance and
maintainability of script.

1. Declaring variables and instantiating objects only as needed.


2. Avoiding multiple queries and nested queries.
3. Using the forward only cursor mode to reduce caching.
4. Avoiding multiple If Else statements as they drag performance.
5. Avoiding hard coded values
6. Destroying objects to avoid memory leaks and Object manager crashes.
7. Proving error handling in my scripts.
8. Using business services for code that is reused.

5.9What are some events and methods you are aware of


on the Application, Applet and BC level?
Sample ans:
Application Level
Events:
Application Start Triggered when the Siebel application is just starting
Application Close Triggered when the Siebel application is just closing
Application Navigate - Triggered when after the user has navigated from one Siebel view to another
Application Pre Navigate - Triggered when just before the user has navigated from one Siebel view to
another
Application Invoke Method - Triggered when an application level method is invoked

Methods:
SetProfileAttribute, GetProfileAttribute, SetSharedGlobal, GetSharedGlobal
Login, Position
PropertySet, GetService
GetBusinessObject, GetActiveApplet, GetActiveBusComp, GetActiveBusinessObject,
GetActiveViewName
RaiseErrorText, TraceOn, TraceOff

Applet/Web Applet Level


Events:
Applet PreInvokeMethod Triggered just before an applet level event occurs eg: a button click on the
applet
Applet InvokeMethod Triggered after an applet level event occurs
Applet ChangeRecord - Triggered after the user has moved fro one record to another on the same applet
Applet Load - Triggered when the applet is jus loading on the screen
Applet PreCanInvokeMethod - Triggered before the method is invoked on the applet to check if the
method should be invoked (applicable only for WebApplet)

Methods:
Active Mode
BusComp
FindControl
InvokeMethod

Business Component Level


Events:
BusComp PreNewRecord Triggered before a New record is created on the bc
BusComp NewRecord Triggered after a New record is created on the bc
BusComp PreQueryRecord Triggered before a query is fired on the bc
BusComp QueryRecord Triggered after a query is fired on the bc
BusComp PreWriteRecord Triggered before a record is written on the bc
BusComp WriteRecord Triggered after a record is written on the bc
BusComp PreDeleteRecord Triggered before a record is deleted on the bc
BusComp DeleteRecord Triggered after a record is deleted on the bc
BusComp PreCopyRecord Triggered before a record is copied on the bc
BusComp CopyRecord Triggered after a record is copied on the bc
BusComp PreInvokeMethod Triggered before a bc method is invoked
BusComp InvokeMethod Triggered after a bc method is invoked
BusComp PreSetFieldValue Triggered before a field value is set on the bc
BusComp SetFieldValue Triggered after a field value is set on the bc
BusComp PreAssociate Triggered before a record is added to a business component to create an
association (as in the case of an MVG)
BusComp Associate Triggered after a record is added to a business component to create an association
(as in the case of an MVG)

Methods:

SetViewMode, ClearToQuery, ActivateField, SetSearchSpec, ExecuteQuery


FirstRecord, LastRecord, NextRecord
SetFieldValue, GetFieldValue, SetFormattedFieldValue, GetFormattedFieldValue
DeleteRecord, WriteRecord, CopyRecord
InvokeMethod

Note: For examples of how to use these events and method, refer Siebel Object Interface Reference
Guide from the Siebel book shelf.

6EIM
6.1What kind of EIM work have you done in your past
projects?
Sample ans: I have used EIM in my past projects to do initial data loads, run regular nightly batch jobs as
well do restatements for correcting data. Specifically I have done EIM design, written sql scripts to load
data into EIM tables, written IFB files for loading data from EIM tables to base tables and testing and
troubleshooting EIM jobs. I have loaded entities like Accounts, Contacts, Opportunities, Activities and
Assets.

6.2How will you go about doing an EIM process (or EIM


design)?
Sample ans:

1. First, I will identify the source system table and corresponding Siebel base table.
2. Then I will map the source system columns with the Siebel base table columns.
3. Then I will identify the EIM table columns from the Interface Table Reference guide.
4. I will determine any required EIM table columns as well base table columns. And also identify any
data conversions needed.

5. I will create the .Ifb files.


6. Then I will load the EIM tables ensuring that the three mandatory EIM columns: RowId,
If_Row_Batch_Num and If_Row_Stat are correctly filled.

7. Finally I will run the EIM job to load data from EIM tables to base table.

6.3 What are different types of EIM processes possible?


Sample ans: Three different processes are possible: Import, Export and Delete.

6.4How will you create an .ifb file or explain the structure


of an .ifb file?
Sample ans:

1. First, I will specify the type of EIM processing whether it is Import, Export or Delete.

2. Then I will specify the batch numbers.


3. Then I will specify the EIM table by using the Table= command.
4. Then to restrict processing to only necessary tables, I will specify the command Only Base Tables
=.

6.5 Where are the .ifb files stored?


Sample ans: They are stored in the Server/Admin directory.

6.6 How will you improve the performance of your EIM


loads?
Sample ans: There are several ways to improve the performance of an EIM load:

1. Split the load into a number of batches.


2. Explicitly include or exclude tables to avoid unnecessary processing by using commands such as
Only Base Tables=

3. You can also use Filter Query command to further limit the processing to only necessary records.
4. You can use the Shell command to process multiple EIM tables in a sequence automatically and
save some time.

6.7What is the number of records you have processed per


batch in an EIM load?
Sample ans: 5000 (candidates note: this is the number of records per batch so if a table has 500,000
records, you would do 100 batches of 5000 records each to load)

6.8 How will you test your EIM load (or how will your write
a test plan to test your EIM load)?
Sample ans:

1. First, I will run sql queries against the EIM tables to check if the right no. of records were
processed successfully or there were errors in some.

2. Then I will run sql queries against the base table to check if the right number of records got
loaded.

3. Then I will check in the Siebel UI whether the records are visible in the UI with the concerned
responsibility and position.

6.9 How will you debug or troubleshoot your EIM load?


Sample ans:

1. First, I will check the EIM log file in the Server/log directory.
2. Then I will check the EIM tables to see the status of the unprocessed records.
3. If I am not able to discover the root cause still, then I will increase tracing by setting the Error
Flag and SQL Trace Flag component event parameters and rerun the EIM process.

6.10In which screen will you create an EIM job?


Sample ans: Administration Server Management Jobs screen. I will specify the .ifb file name in the
parameters.

6.11How will you schedule an EIM job to run


nightly/regularly at a given time?
Sample ans: I can do that by setting up the EIM job as a repeating component or by creating a batch file
containing the EIM command line arguments and scheduling it via NT scheduler.

6.12 What considerations you have to make for EIM when


extending a Siebel base table?
Sample ans: You have to ensure that an EIM column is created for the new extension column. You also
have to ensure that an EIM column mapping is created. This can be done by using the Interface Table
Mapping Wizard in Siebel tools. You have to also ensure that appropriate attribute mappings are created.

6.13What do you have to keep in mind when doing an


initial EIM load for a fresh Siebel implementation?
Sample ans: You must ensure that you have disable Transaction logging server component otherwise it
will result in a huge amount of data being transferred to mobile clients.

7Workflow
7.1What are the different ways in which you can invoke a
workflow?
Sample ans: There are 3 ways in which a workflow can be invoked:

1. Through Workflow Policies


2. Through Script
3. Through Run-time Events

7.2Explain how a workflow is triggered from a workflow


Policy ?
Sample ans:

When the Policy conditions are met, the trigger is fired and record is inserted in the S_ESCL_REQ table.
The Workflow Monitor Agent is constantly monitoring this table and picks up the record which in
S_ESCL_REQ for processing. The Workflow is executed and the Workflow Monitor Agent inserts a record
in the S_ESCL_LOG table to indicate that the workflow was processed. Finally the Workflow Monitor
Agent purges the record from S_ESCL_REQ table.

7.3Explain what happens when a workflow policy


condition is met?
Sample ans: Same as above.

7.4Give an example of a complex workflow you have


written?
Sample ans: (this is a very important question)

The business requirement was that whenever a new Opportunity was created, the application should
determine whether it was a Government or Non-Government Opportunity. Depending on whether it was
Govt. or Non-Govt., different operations were to be carried out.
For this, I first created a Workflow Policy which was triggered whenever a new Opportunity was ADDED
to the Account. This Workflow Policy would then call the Workflow Process.
The workflow process had a Decision step which would check whether the Opportunity type was
Government or Non-Government.
If the type was Government, then it would call a custom Business Service that I had written. This
Business Service used Opty Id as the input argument and would derive the Opportunity Size, Account
Name, Opportunity Sate and store all this in an Output Process Property called Opty Detail as a string.
The Business Service would also derive the email id of the Manager of the Sales Rep who created the
Opportunity and store it in another Output Process Property called Manager eMail. After this step, I used
the vanilla Outbound Communication Manager Business service to send an email to the Manager of the
Sales Rep with the Opportunity Details derived in the earlier process property. After this step an Activity
was inserted for the Manager by means of the Siebel Operation step to review the Opportunity.
If the Opportunity type was Non-Government, then it would call a Sub-Process step which would call a
workflow that would update the field Non Govt on the Account BC to Y by means of a Siebel Update
Operation. It would then send an email to the Non Govt. Contract Department to inform them of the
Opportunity.

7.5How will you create a Workflow Policy?


Sample ans:

1. I will first define the Workflow Policy Action


2. I will then create the Workflow Policy Group
3. I will then create the Workflow Policy and define Conditions and Actions

4. Then I will run Generate Triggers


5. Finally I will start the Workflow Monitor Agent
Note: Whenever a Workflow Policy is modified you have to Generate Triggers and restart the Workflow
Monitor Agent.

7.6Have you done any customization on workflow in Tools?


Sample ans: Yes, I have created custom Workflow Policy Columns and also custom Workflow Policy
Object and Workflow Policy Components under those objects.

7.7Explain the configuration and deployment of workflows


in 7.7(or higher versions)?
Sample ans:

1. I will first Check-Out the workflow in my local machine.


2. Then I Revise it. (by clicking on the Revise button)
3. Then I would modify and test it using the Simulator in tools.
4. Then I will Deploy it (by clicking on the Deploy button)
5. Then I will Check-In the workflow.
6. Then I will login to the Siebel Application and go to the Workflow Deployment view and Activate
the workflow.

7.8How will you improve the performance of your


workflow?
Sample ans: There are 3 ways in which I can improve the performance of my workflows:

1. By grouping workflow policies with similar polling intervals in the same Workflow Group.
2. By running multiple Workflow Monitor Agents in a parallel and on different servers.
3. By changing the values of component parameters such as Sleep Time and Requests Per
Iteration for the Workflow Monitor Agent.

7.9How will you trouble shoot or/test workflow


policies/processes?
Sample ans:

1. I would first check if the Policy conditions are met. I can go to the Workflow Policy Log view to
verify that.

2. If the Policy condition is met, then I will check if a record is inserted in the S_ESCL_REQ table.
3. If a record is inserted in the S_ESCL_REQ table, then I will check if the Workflow Monitor Agent
is Online.

4. If the Workflow Monitor Agent is online, then I would check the Workflow Monitor Agent log file in
the Server/Log directory.

5. If I am still not able to find the root cause, then I would increase the trace levels for the Workflow
Monitor Agent by increasing the log levels for parameters such as Wokflow Definition Loading,
Engine Invoked, Process Execution, and Step Execution.

7.10How will you migrate workflow processes from one


environment to another?
Sample ans: I can export the workflows from Siebel tools as xml files and import them into the target
environment. However, if there is custom configuration done to Workflow Policy Objects and Policy
Components then I would migrate the repository.

8EAI
9Assignment Manager
10Server Administration
11Siebel 7.7 key features