Академический Документы
Профессиональный Документы
Культура Документы
Siebel Configuration Interview Questions,Answers helpful for clearing any job interview.
Pick Applet, Dynamic Picklist: which will be better if performance issue is considered.
Pick applet and dynamic picklist both are one
(Or)
DPL Contains the pick applet . So both are the one and same
What happens if you create an employee in Siebel application and forget to create the same in
database
The employees would not be able to log in as you have to create a database login and password for the
employee to login into the client application.
Siebel Realtime Interview Question Answers, Siebel Interview for Realtime problem and solutions
High Interactivity Framework Problem.
We faced this problem quite often in Siebel 7.7.
Problem:
When clicking on Pick Applet in Siebel 7.7 application the application IE instance used to crash and we
had to reopen the application. It happened only in case we were working with Pick Applet.
Reason:
This error was due to High Interactivity Framework files getting corrupt.
Siebel can operate with two types of framework
Standard Interactivity
High Interactivity.
The difference between both the frameworks is how Siebel Client communicates with Server. In case of
standard interactivity the changes you make to record are not committed automatically to the database
and use has to explicitly save the record and in High interactivity even if you step of the record or screen
the changes are committed automatically.
Solution:
Solution of this problem is to go and remove the High Interactivity framework filesand open the
application again. When you open your application Siebel downloads fresh interactivity file from server.
These are steps you can follow to remove and reinstall the interactivity files
Goto Internet Explorer > Tools Menu > Internet Options
Click on Settings Button
Click on View Objects Button
Locate High Interactivity Files
Siebel CRM How To Call a Workflow Asynchronously?
This Article is about Siebel CRM 7.X Workflows and Runtime Events. It tells you how can we use
them to our advantange.
We all want the response time of our Application to be as fast as it can and we do everything that we
can to achieve that. Reduce the response time without actually reducing any functionality. Siebel can
execute workflows in two ways.
Synchronous
Asynchronous
Synchronous Execution : When workflows are executed Synchronously then user gets the control back
only when the workflow has finished it execution.
Asynchronous Execution: When workflows are executed Asynchronously then user gets back the
control immediately and the workflow is submitted to workflow process manager (WPM) as a job to be
executed.
WPM then executes the job later.
Often we have a functionality where large amount of processing needs to be done on an object which
user is not going to use access right now. I can explain it with anexample.
When user clicks copy button on a opportunity or quote we want certain custom entities to be copied over
but which user will not access at that time but later.
So, we can reduce our response time by just copying the quote or opportunitysynchronously and
placing the code of copying of custom entities in workflow and executing that workflow asynchronously.
There are two way to execute a workflow asynchronously
Workflow Policy
1. Slow Execution
2. Difficult to setup
3. Not Reliable and Error Prone
What kind of relationship exists between Position and Responsibilities?
It is a question that requires a subjective answer, and answer can vary from person to person.
Answer or Explanation
There is no direct relationship between Responsibility and Position.
The indirect relationship between Responsibility and Position is of Visibility. Both of them drive Visibility
in Siebel.
Responsibility restricts access to particular view so that user cannot see those views.
What will happen if I provide value in both Pre-Default and Post-Default properties?
We will assume the following values have been given for Pre-Default and Post-Defaultproperties of
Status Field
Pre-Default Value: In Process
Post-Default Value: Complete
Following are the scenarios which can take place:
User creates a New Record and saves the record without changing value of status field:
Pre-Default value (In Process) will be assigned to Status field.
User creates a New Record and changes the value of Status field to Planning
Pre-Default value is going to take effect as soon as user creates a new record but Post-Default value will
not take effect. [Corrected as pointed by Gururaj]
User creates a New Record and changes the value of Status field to blank
Post Default Value (Complete) will take effect
User copies an existing record where value of status field is Planning
Neither Post-Default nor Pre-Default will take effect
User copies an existing record where value of status field is blank
Pre-Default (In-Process) Value will take effect
User copies an existing record and makes the value of the field as blank
Post-Default Value (Complete) will take effect
User changes the value of existing record to blank and saves the record.
Neither Post-Default nor Pre-Default will take effect as these values only takes when the record is initially
created and saved.
Siebel Workflow Step Missing Query Operation
Problem:
Had to create a workflow and the first step in the workflow was Query Operation on Opportunity BC.
Drag the Siebel Operation Step into designer and then started entering Values for this step which were
as following
Type: Siebel Operation
Business Component: Opportunity
Operation: Query
Query was missing in the Operation field dropdown and only Insert and Update were available.
Enter Query manually in the field it accepted the value but started giving error
Error loading Step Definition: Query Operation not found
(Not exact error message)
Solution:
Drop down is a pick list in Siebel and picklist gets its values from List of Values. Queried with Insert in
the Display Value in List of Values view and there was a LOV Type called
WF_SIEBEL_OPER_TYPE_CD which had Insert and Update as active and Query was inactive.
After making Query record Active and restarting tools user should be able to execute my workflow
successfully.
Note: Even if you provide LIC of this LOV in small case then also you will get the error. For this
LOV Display value has to be in Camel Case and LIC in caps
On Field Update Set n user property. (This is the answer interviewer is looking for though)
Explanation:
Scripting:
You can write script on SetFieldValue event of buscomp to update the target field. But the problem with
this solution is if user UNDO the record then your script wontrevert back the changes that it has done.
One more solution can be to check in SetFieldValue event if that field is being updated through global
flag and then on WriteEvent of buscomp execute your script only if thatflag is set to true. But again you
will have to set global flag to false may be Delete event (this is fired when user undo the record).
These solutions by scripting are really cumbersome. So we generally use On Field Update set n User
property for this kind of requirement.
On Field Update Set n:
As the name suggests that this user property is used to set value of another field when a particular field is
updated. In this user property n is the incremental number which is 1 more than the number used in the
last On Field Update Set user property.
Value:
The value of the On Field Update Set user property consists of three quoted parameters separated by a
comma and a space which is as following FieldToCheck, FieldToSet, [Value]
Example:
You want to set TargetField with SourceField value whenever SourceField is updated. So you will specify
it like this.
Property: On Field Update Set 1
Value : SourceField, TargetField, [SourceField]
You can also make use of expression in the Value that you specify.
Example:
SourceField, TargetField, [SourceField] + [AnotherField]
Siebel Latest Interview Questions for Interview,Siebel Interview Question Answers for 2011
What difference between Fields and single value fields
Multivalue field has the child values from a chind BC for the parent record configured through MVL.
single value field will be either from the base table or joined table.
the Difference between Single Value Field (SVF) and Multi Value Field(MVF)
SVF- a field in BC which references a column in a table
MVF- a field in parent BC which references a field in child BC
Field-Identifies and defines a field in a business component. All fields making up a business
component record contain entries from both Single Value Field and Multi Value Field object types.
What is the difference between 1:1 and 1:M extension tables
Ans: 1:1 extension table is like an extension to the base table. if we do not have the required table space
in the base table for craeting new extension columns, we will use the 1:1 extension table's columns
using an implicit join.
in contrast, 1:M extension tables are used for parent child relationship with the base table. where the
1:M extension has only related to the base table. for example, for a contact (S_CONTACT) there will
be a number of specialities in the extension table(S_CONTACT_XM) with the parent child
relationship.
In Siebel for the base tables like S_CONTACT suppose you have 3 address for a perticular contact.
A person is working at 2 places plus his home address. Now you can not store this is in S_Contact as
every contact has a unique row id and that can not be repeated. So you have S_CONTACT_XM. i.e an
extension table to S_CONTACT but with 1:M relation.
What is complex join? Difference with Foreign key Primary Key join?
Complex joins are joins which have following diffrences from a PK-FK joins
# Complex joins can have conditional mappings like >,<,>=,NOT,AND,etc apart from '=' whereas the
PK-FK joins are always '='.
# PK-FK joins are always (1-N), whereas complex joins can have (1 - 0,1) and (0,1 - N) kind of
relationships
What is Localisation?
Modify the object definitions in the local repository.
What is different between bounded and unbounded picklist?
We can enter free text incase of Unbounded Picklist. But, incase of Bounded Picklist, we can not enter
freetext.
Dynamic Picklist is used to Update Join Fields? How?
Actually we cannot modify the join fields we cannot do any modifications and updations on that fields to
do these things we create the dynamic picklist or pickapplet.dynamic picklist to modify (to enter new
records )in the join fields
What is the primary difference between Siebel 7.5.2 and 7.7 Versions ?
are having lot of differences between siebel 7.7 and 7.5.2. the primary difference among them is "
Symbolic strings are available in Siebel 7.7 and not available in 7.5.2". hence the future scope for
upgradation like things are high in siebel 7.7.
Optimization techniques in EIM
1) Limit base tables and columns to be processed by using : only base Tables,ignore base Tables,only
base Columns,ignore base Columns.
2) Always delete batches from EIM tables upon completion. Leaving old batches in the EIM table
wastes space and can adversely affect performance. For other suggestions on working with batches.
3) Run independent EIM jobs in parallel. Two or more EIM processes can be started simultaneously by
using the Siebel Server Manager.
4) Trace Flag Settings, using Synonyms, primary key only Parameters
Limiting the Number of Records and Rows for Merge Processes.
like this many techniques are there which will optimize the EIM process
What is the difference between MVG & Dynamic PickList ?
A1: A new value could be added through an MVG where as Dynamic Pick Applet could only be used to
pick a value from a pick applet which could be constrained to show relevant data. A value entered through
an MVG will show up in a Dynamic Pick Applet if the Dynamic Pick Applet is based on that MVG.
An asset is any equipment item or component that has a unique identity. Items with serial numbers are
automatically assets.
Base table for those entities?
Ans: S_ORG_EXT, S_CONTACT, S_OPTY AND S_ASSET
Difference between a join and a link?
Ans: A join is used between a BC and a table other than the Base Table of the BC (1:1 or M: 1) while Link
is used to established a 1: M or M: M relationship between two BCs.
How would you create a link that as 1: M relationship?
Ans: To establish a 1: M link relationship between parent and child BCs we need to create fields in parent
BC that define foreign keys for the relationship in the child BC.
How would you create a link that as M: M relationship?
Ans: To establish an M: M link relationship between parent and child BCs we need to define foreign key
for the relationship in the intersection table. We need to mention the inter child column and inter parent
column.
What are intersection tables?
Ans: Intersection tables are used in M: M link. There we establish the relationship between the parent
and child BCs by mentioning the inter child column and inter parent column .
What are catalogs and categories?
Ans: Catalogs are the hierarchy of products and categories in a model.
Category is a classification of items. Categories define the structure through which users find products
and items.
Difference between a static and a dynamic pick list?
Ans: Static pick list draws the values from pick list data managed by administrator. The values displayed
in static pick list dont change during run time. It can be bounded or unbounded. The values for all static
pick lists are stored in S_LST_OF_VAL table.
The dynamic pick list draws values from a business component with records edited by users. It is used to
update joined fields.
Difference between static and dynamic toggles?
Ans: Static Toggle allows users to toggle between applets by selecting the name of the applet from the
Show drop-down list.
Dynamic Toggle Automatically toggles between applets based on the value of a field in a parent applet.
How does view comes in dropdowns?
Ans: The Visibility Applet property of the view object determines whether a view appears in the Show:
combo box on the toolbar or as a View tab.
Ans: So that even if the display value for one of the LOVs are changed we need to
change it and there is no need for recompilation of srf.
When would you use the Total function on list applet and what are the
disadvantages?
Ans: Total is used to display the sum in a list applet for one or more list columns and it
needs to be specifically configured. This can degrade the performance.
Where do you define the visibility applet and visibility modes?
Ans: In Object explore select View and set the properties for visibility applets.
Visibility Modes are defined in BCs.
Difference between a list and a form applet?
Ans: A form applet presents business component information in a data entry form
layout.
A list applet allows simultaneous display of data from multiple records and
presents business component information in a list table format with multicolumn
layout with each record of data represented in a row.
How do you make a field conditionally required?
Ans: By using Field user property
How would you make a record read only?
Ans: Using BC Read-Only Field user property.
How would you display a red asterisk in front of a non required field?
Ans: If the field is required in BC level and it is exposed in UI the asterisk will come
automatically if non-required we need to give the name of JPG file in caption property of
FORM applet controls.
How would you make a field conditionally read only?
Ans: Using Field Read Only Field user property
How would you display the number of child records field in a single parent record
field?
Ans: By using the count function and for the MVL
Difference between predefaults and post defaults?
Ans: The Pre Default Value property of a field (Predefautls Value in the Object List
Editor) automatically assigns a value to that field for a new record. The user can modify
the field if it is displayed and not set to Read Only.
The Post Default Value property of a field assigns a value to a field before the record is
written to the database, if one has not been entered by the user.
When would you use an Associate applet?
Ans: To relate data from two separate entities (many -2-many relationships)
Difference between search specifications and search expressions?
Ans: SetSearchSpec sets the search specification for a particular field, whereas
SetSearchExpr allows for the setting of an entire search expression on the business
component.
The fields with Link Specification property TRUE are retrieved every time a business
component is queried.
If this property is set to TRUE Field data is posted to the server when the focus moves
off of the field and then the data is refreshed.
On setting No Copy property to TRUE = Specifies that during a Based on Last
operation, the fields value is not copied into the newly created record.
Use of Auto Primary and Check No Match properties in Link?
Ans: The AutoPrimary property determines the setting of a primary child record for
a given parent record. If necessary, the Auto Primary property also determines
the default value of the primary selection. The possible values for Auto Primary are
as follows:
NONE. You must manually specify the primary using the MVG applet.
When a multi-value link has been configured with a primary joinwhich is the typical
situationthere 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 multi-value group or the multi-value 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.
How would you create a Reverse Join and an Indirect Link?
Ans: Indirect Link: The parent business component of a multi-value link (MVL) is
usually the same as the business component in which the MVL is defined. However, by
using the Source Field property of the [Multi Value Link] object, it is also possible to
create an MVL whose parent business component is related to the current business
component indirectly via a join or via another MVL.
Reverse Join: The Source Field in the join spec holds the foreign key where the
Destination Column provides the primary key. The pickmaps on the joined field provide
the mapping between these when a value from the pick BC is picked from the pick
applet. As a result, the primary key value (specified in Destination Column) is copied
into the column on which the source field is based on.
However, if the join spec is reversed, i.e. the Source Field is set to Id, the join
reverses the relationship and the pick BC no more provides the primary key value. In
such situations, if a picklist and pick applet is implemented on the joined fields, the
users update the primary key in the base BC (that implements join) which is Row_Id.
Essentially, the Row_Id of current record is modified in this case.
What are web templates?
Ans: A Siebel web template is a special kind of HTML file that defines the layout and
formatting of elements of the user interface (such as views, applets, and controls). It
provides this layout information to the Siebel Web Engine when rendering Siebel
objects in the repository to HTML files.
How can you changes the web templates and does it increase the size of the
repository and srf?
Ans: Web Templates can be changed by HTML code in .swt files or CSS files located in
PUBLIC/ENU folder.
No it does not change the repository and srf size
What happens if you inactivate vanilla fields?
Ans: It is not recommended to inactivate fields within business components. It might
lead to unexpected behavior.
What are specialized classes?
Ans: A class property gives an object access to specific functionality. The class refers to
a dynamic-link library (DLL) that is installed on the client or server machine and holds
the required functionality.
Specialized classes exist for business components or applets that have specialized
behavior or features. Examples of specialized modules include Quotes, Forecasting,
and Correspondence. Anything other than CSSBusComp, CSSBCBase, CSSFrame,
CSSFrameList is specialized class.
Ans: In Application Administration screen, go to LOV Explorer and create the LOV type
first. Then on come List of Values in Application Administration and associate values for
that LOV type.
One can customize aspects of the Siebel application through the User Preferences
screen. Some of the defaults one can view and, in some cases, edit in the User
Preferences screen include password, time zone, calendar, spelling, message bar,
default queries, and other items that are related to your particular job.
Difference between High Interactivity and Standard Interactive application?
Ans: Standard Interactivity mode resembles most traditional Web applications. Page
refreshes occur often, such as when users create new records, submit forms, and
browse through lists of records.
Customer applications are deployed in Standard Interactivity mode.
High Interactivity mode is designed to resemble a Windows client. It supports fewer
browsers than Standard Interactivity mode, but it includes a set of features that make
data entry easier for users. For example, page refreshes do not occur as often as they
do in Standard Interactivity mode. Users can create new records in a list, save the data,
and continue browsing without a page refresh having to occur.
Employee applications are typically deployed in High Interactivity mode.
Other features supported by High Interactivity mode are:
Browser scripting.
Implicit commit, which allows the application to automatically save a record when
the user steps off it.
User interface features, such as drag and drop column reordering, drag and drop
file attachments, keyboard shortcuts, smart controls for calendar, calculator and
currency functions, and applet scroll bars.
Attempts to access a protected view (one specified for explicit login), such as
a checkout view in Siebel eSales
Set up a directory from which a database account and a Siebel user ID can
be retrieved for each user.
Comprehensive Collection of Siebel CRM Configuration Questions and Answers gathered from
Siebel Technical Experts
What is detailed category and what is its use in configuration.
Detailed Category and Aggregate Category are the two different sets. You can add a view to a screen
under Detailed Category or an Aggregate Category. For Example:
If I am creating two Views as detailes views. First I need to create a Detailed Category. Then I have to
create two Detailed Views, for which the "Category" property must be specified with the created Detailed
Category name. This is same for Aggregate Views also.
What is constrainted picklist? Where you will drop the constraints?
Constrainted picklist displayed value based on contaraint used.
Add field to constraint in pickmap of a field where picklist has configured in BC and set constraint option
of added field to true.
How will you edit the joined fields values in join?
Using picklists and MVGs. MVGs require join field and link as prerequisites unlike picklists where just a
join is enough.
How will you improve your performance in views?
The basic factors for performance decrease in views will be. more number of applets. which led to many
links. and more joined fields in a single applet. MVG's which do not have the primaries set.
What is Virtual BC? what is the use of vbc?
Virtual Business Component is used to display the data from another Legacy database table, in the Siebel
screen.
What is Siebel file system?
It is a shared directory that stores compressed files used by Siebel applications. Examples: Product
literature, sales tools, presentations
Read/write access is controlled by the File System Manager component on Siebel Server.
How is Siebel 7.x architecture different from Siebel 6.x?
In siebel 7.x it was defined as 1.Physical user interface2.Logical user interface3.Business layer4.Data
layer5.Third party RdmsThe main difference is , In siebel 6.x Phycial interface was not achieved.In
Physical Interface includes web templates, css sheets
How is load balancing maintained in Siebel?
Load balancing is maitained by the Gateway server using the third party software Resonate Central
Dispatch.
What is Resonate?
Resonate is third party software development tool, which is used for distibuting the cilent request to the
least laden siebel server.
What is nameserver? What does it do?
Name server is the part of gateway server that dynamically registers all servers in enterprise, serves a
connection broker across the enterprise.
Is it required to install gateway server before installing a Siebel server?
Yes, Because one Gateway Server can have multiple Siebel Servers
What is the use of catch in escript?
The catch clause is used to handle the exception. To raise an exception, use the throw statement.
When you want to trap potential errors generated by a block of code, place that code in a try
statement, and follow the try statement with a catch statement. The catch statement is used to
process the exceptions that may occur in the manner you specify in the exception_handling_block.
The following example demonstrates the general form of the try statement with the catch clause. In
this example, the script continues executing after the error message is displayed:
try
{
do_something;
}
catch( e )
{
TheApplication().RaiseErrorText(Clib.rsprintf(
"Something bad happened: %s
",e.toString()));
}
S_ORG_EXT
S_CONTACT
S_USER
S_BU
and etc.
the party tables can have the implied joins. the party related BC's have the S_PARTY as the base table.
so, any of these tables are extension tables.
What does install.ksh and imprep.ksh files do?
Imprep.ksh : This is a database unix shell script provided by siebel for importing all your sif files in siebel
repository.It is automatically run while installing siebel and it prepares Repository file in tools.
Install.ksh : contains all manually applied installation files.
1.) What is the difference between Links and Multi Value links?
Link is used for Master Detail View of two BCs. where as MVL is used to view the child records
using MVG. MVL uses Link to get the records from the child BC.
Link is between the entities and MVL is between the records
2.)Describe the 3 Object Explorer (OE) tabs.
Source Field is the Foreign key field in BC while Destination column is the Primary Key column in
Table.
Link:
(i)It defines 1:M relation between a field in parent BC to the field in the child BC.
(ii)Source Field is the Primary Key field in Parent BC while Destination Field is the Foreign Key
field in child BC.
How do you set up employees in Siebel?
The Employee is also a USER who must be assigned with a valid position. Since the Position
maps to the Division which in turn maps to a Organistion the Data visibility is maintained through
this position and the Responsibility of the user.
How do you assign responsibilities to employees in Siebel
In Administration Group > Employee there is a field called Responsibility there add your new
Responsibility, make as Primary and remove the old one.
What are Pre defined Queries?
Pre Defined queries are some thing which helps us to navigate directly to particular screens or
views. it helps in accessing the screens or views in faster manners
What is an extension table and how is it related to base table?
Extension table may be 1:1 realation table to the base table or a 1:M relation to the base table.
1:1 extension table and the base table are logically considered as a single table.
Par_row_id will be the foriegn key.
What is the difference between "PickList Generic" and "PickList Hierarchical" Business
components?
"PickList Generic" BC is used for Static Picklists. "PickList Hierarchical" is used for Hierarchical
PickLists
What is the link specification
Link spec uses parent type default values & gets the value for the child record
What does Business Component User Mode indicate
Business Component User Mode specifies the Visibility setting for the BC. Like "All", "Personal",
"Manager", "Organisation".
What is All Mode Sort?
This property determines whether or not siebel will override the sort specification and if so
determines the sort that will be applied to the BC for All or Manager's view. The values are TRUE,
FALSE or NORMAL
NORMAL --uses BC defined sort specification
True --Overrides the BC osrt and Uses the U1 index
False - Removes all sorting.
When you have Pre Default Value and Post Default value for a Field, which one will be
stored in the Database.
Pre Default Value will be defaulted when new record is created. Post Default Value will be
defaulted if there is no value specified for the field. so, Pre Default Value will be stored in the
Database. harsha: you can add quistions by clicking the hyperlink on the above bar "Ask
Quistion".
How do you specify a view to be displayed as aggregate view in Siebel 7.7
When adding view to screen specify the type as aggregate view.But Before that you should
create the parent category.then add this parent category to aggregate view.
OR
Parent category for Aggregate view is not required. If there is a parent category for an aggregate
view, then aggregate view will appears as a link in the view drop-down list in applet headers, or it
will appears as a link in the link bar below screen tabs.
Why do we use Symbolic Strings in Siebel 7.7
In Siebel the text that is displayed on the screens and views are stored in the repository and
compiled to an SRF file. This includes the names of every screen, views and fields. When you
display a page the server uses the SRF file to determine which fields to show and what test
(strings) are associated with each fied. This model of keepijng the strings from the view definition
is called symbolic strings.
Uses
Reduces the redundancy
Simplifies maintenance because only you have to maintain one string for a given Term
Reduces the localization costs, Time and inconsistences.
What is horizontal and vertical in siebel?
Siebel Hrozontal application is general to every industry. where as Vertical is specific to a
industry. such as eAutomobile, eInsurance, eBanking etc.
What is the "Parent Category" property for a Screen View?
This Parent Category specifies the view heading for a bunch of views related. the views belongs
to this Parent Category will be shown as View Tabs below the master applet.
What is the function of SWSE on the Web Server? what is it?
SWSE(Siebel Web Server Extension)'s function is to accept the siebel requests and pass it on to
Gateway server where the server manager decides, to which siebel server component should this
request go.
Is it possible to have multiple database servers for one gateway server.
YES, But it needs multiple enterprise servers, for multiple database. As not more than one
database, could be added to an enterprise server, these inturn could be connected to a single
Gateway Server
How do you control visibility in Siebel?
Visibility will be controlled by Position and Responsibility in Siebel. Position dictates the Data level
visibility and the Responsibility dictates the view level visibility.
What is the difference between an organization and division in Siebel?
Organizations can be used to control data visibility, Divisions cannot.Divisions can be used to set
Default Currencies.
comp and there is relation ship between 2nd and 3 rd bus comp. but some fields are necessary
from the 2nd bus comp. it will be fetched through the relationship from 1st and 3rd bus comp. this
is called indirect MVL.
Whats the difference between siebel 7.5 and 7.8? if we upgarde the application to 7.8 from
7.5 what are the areas we need to give importance from QA(Testing) point of view?
Various Areas are -->
1. Workflows to be activated
2. All server components ( including repeating component)
3. All Interfaces
4. Third party software integration ( Humming Bird, ChartWork Server, IBM-LDAP, Actuate etc)
5. Actuate reports
6. Copy/Reprice Quote Functionality
7. Assignment Manager
These are the major area I believe.
What is the maximum number of applets can be there in a view
There can be eight applets at most in Siebel6.
There can be 16 applets at most in Siebel7.7.
How to call external webpage from siebel application
This can be done through scripting..
For an example:
In preinvoke method for a button click,
window.open(URLNAME)
will open a webpage for a given url in URLNAME variable
What is detailed category and what is its use in configuration.
Detailed Category and Aggregate Category are the two different sets. You can add a view to a
screen under Detailed Category or an Aggregate Category. For Example:
If I am creating two Views as detailes views. First I need to create a Detailed Category. Then I
have to create two Detailed Views, for which the "Category" property must be specified with the
created Detailed Category name. This is same for Aggregate Views also.
What is constrainted picklist? Where you will drop the constraints?
Constrainted picklist displayed value based on contaraint used.
Add field to constraint in pickmap of a field where picklist has configured in BC and set constraint
option of added field to true.
How will you edit the joined fields values in join?
Using picklists and MVGs. MVGs require join field and link as prerequisites unlike picklists where
just a join is enough.
How will you improve your performance in views?
The basic factors for performance decrease in views will be. more number of applets. which led to
many links. and more joined fields in a single applet. MVG's which do not have the primaries set.
What is Virtual BC? what is the use of vbc?
Virtual Business Component is used to display the data from another Legacy database table, in
the Siebel screen.
If I do a Insert operation at the Siebel Operation step in a Workflow process, the newly
created record's row_id will be stored in ?
Object Id
Siebel Operation Object Id
Process Instance Id
When do I need to run Generate Triggers?
When I modify the workflow policy duration field
When I change the workflow policy action
When I change the workflow policy condition
After workflow monitor agent successfully processes the record, then it moves the record
in which table?
S_ESCL_STATE
S_ESCL_LOG
S_ESCL_REQ
None
Can we create a Workflow Process without a specifying a Business Object?
Yes
No
Can we insert a Wait Step in workflow with mode as "Service Flow" ?
Yes
No
If there are two business services, with exactly same name, one is Client BS
(Administration - Business Services ) and the other is Tools BS ( Srf ), it is being used in a
Workflow Process, which will take priority ?
Client Business Service
Tools Business Service (srf)
Can we deploy Workflow processes as Web Services?
Yes
No
Can you update MVF(multi value field) using the Siebel Operation step in a workflow
process?
No
Yes
Increasing Workflow Persistence helps to trace the complete workflow execution, which
helps to find error step in case a error happens. Where can we set the Persistence for a
workflow in Application?
Administration Business Process -> Workflow Deployment -> Active Workflow Processes
Administration Business Process -> Workflow Instance Admin
The 'Stop' step of workflow is used to ?
If I put a frame (multiple records) in Before, page header, page footer and after section, what will
be displayed in report
Have you used graphics in report (bar, pie) in Siebel Actuate Reports
How do you make a graphic control visible/invisible based on data of another control
How do you display parent and child data as a single record. (Memory sorter)
If I use the same child Datastream more than once in Horizontal Seq section, what will happen?
(forward only)
What do Access Base DB Name, Template Name and Current Record represent.
Explain the Steps you take to start developing a report from creation of rol to rox
If an IO-IC is created on a BO, and one of the IC gets two User Property set as MVG=Y and
MVGLink = . What is true below?
Child BC is added in the BO via a Link
A MVL is created in the Parent BC connecting to Child
What is the best mode to call a Workflow asynchronously using the Business Service
Asynchronous Server Request?
Sync
Async
DirectDB
SoapUI is a free tool which can be used to test, what ?
Business Service
Web Services
Workflow
How can we generate Empty Input Request Message based on a Integration Object?
Using EAI XSLT Service Business Service
Using PRM ANI Utilities Business Service
Using EAI Data Transformation Engine Business Service
If I do a null query using a Siebel Operation step on Action BC in a Workflow, what will be
stored in Siebel Operation Object Id ?
First Record of Actioin BC
* (a star character)
Which Siebel Tools Objects can be published as Web Services?
Business Services and Workflows Both
Business Services Only
Workflow Only
Siebel Scripting Interview Questions,Siebel VB Script,Siebel eScript Interview Questions
Explain about the Scripting Best Practices in Siebel?
What are the advantages of eScript over VBScript?
How do you do Garbage Collection in Siebel?
What are the cursor modes in Siebel Scripting?
What is the use of GENB Script?
What does ActivateField do?
What is the difference between ForwardOnly and ForwardBackword cursor?
Explain the exception handling process in VBScript and eScript?
Siebel Interview Questions on Scripting ,This article presents a collection ofSiebel scripting best
practices.
1. Always use TheApplication to call the application, as the declaration of a global variable to represent
the application (e.g. var theApp = TheApplication()) is not recommended by Siebel. The use of this
variable may cause memory leaks, reduce performance or other unpredictable behaviour.
2. User-defined functions must be Forward Declared in the general declarations of each script. This
avoids compilation errors that may arise if the functions called are not in alphabetical order. The compiler
compiles all functions alphabetically and so if one function calls another that is later in the alphabet the
compiler does not recognize this second function and therefore, fails.
3. Be cautious when adding script to business components as this code applies application wide across
applets and views. If a certain piece of coding is needed at the business component level but is restrictive
to certain situations like if exposed only through some particular views then make sure to limit the
processing through an appropriate condition.
4. The use of 'With' is recommended by Siebel as it enables the code to be changed faster and more
readable way to group operations performed within the same business component. The use of 'With' also
presents a slight performance improvement.
5. Using variables can make code maintenance easier due to readability. However overuse of
variables increases the amount of operations that have to be performed and can reduce performance
slightly.
6. Siebel does not recommend the use of 'Empty'. 'Empty' is an undefined variable which is assigned as
type variant. A variant is initially set to a null string (''), which means that any scripts currently using this
term will not be affected. However, it is better practice to assign '' rather than 'Empty' to any strings you
need to set back to NULL. The use of 'Empty' prevents Option Explicit from checking all other variables
are declared correctly.
7. The use of 'ActivateField' prior to a query is the equivalent to the 'SELECT' statement in SQL. The use
of 'ActivateField' in Siebel scripts code can be confusing and should be minimized as much as possible as
this has a performance impact. However there is nothing worse than receiving a runtime exception: ' was
not active...'. When activating fields note that:
a. Siebel system fields (Id, Created, Created By, Last Updated, Last Updated By) are always force
active.
b. Fields that have Force Active = Y on the business component are always force active.
c. Fields that have Link Specification = Y on the business component are always force active.
d. Fields that are included in the definition of an applet on the active view if it is bound to a web template
item and the 'Show In List' property of the list column or 'Visible' property of the control is TRUE. If the
user removes the list column from the 'Columns Displayed' in the list applet, the field may no longer be
active after the next query.
e. Fields that are used as part of a calculated field calculation when the calculated field is retrieved for use
on the active applet.
8. 'ActivateField' should only be used prior to 'ExecuteQuery' to ensure that a particular field will be
activated and included in the equivalent 'SELECT' statement of the query. Therefore 'ActivateField' is
usually never to be used with 'this'/'Me' (eg. this.ActivateField('Field1')). This is because you don't usually
perform a query in the current context as this would change the on screen query displayed to the user.
Siebel actually specifies that the use of ActivateField with 'this' can possibly cause data corruption to
occur.
9. When performing a query, always use 'ForwardOnly' after the 'ExecuteQuery' to set the cursor
position unless moving back through the returned records. This is a much faster query because it does
not create a cache that stores the previous records.
10. If you have a set of 3 or more 'IF Else If' statements then use 'Switch Case'statements instead. This
simplifies code and improves performance.
11. It is best practice in Siebel scripting to use the 'Try/Catch/Finally' statements in code. This will ensure
that exceptions are caught and handled appropriately and instantiated object variables are always
destructed in the finally block (which reduces the chances of memory leak) as the code in the finally block
is always executed. Note that object variables should be destroyed in the reverse order they were
instantiated.
12. Reduce the number of queries performed as much as possible. Siebel maintains the parent-child
relationships defined in links automatically so there is no need to query the child Business Component to
obtain records for a given parent. Make use of commands like, 'GetParentBusComp' to access the parent
record, instead of re-querying to retrieve record.
13. Don't create objects (BC and BOs) if you need a reference to BC and BO from the current context.
Make use of default application variables 'BusComp' and 'BusObject' in this situation.
14. The use of 'ActiveBusObject', 'ActiveBusComp' and 'ActiveApplet' should be limited because the
object represented by these statements may change depending on the active applet. Siebel recommends
the use of the 'this' object for eScript ('Me' for Siebel VB) wherever possible. 'Me'/'this' represents the
object where the code is written, 'ActiveXXX' represents the object behind the current active applet. The
use of 'Me'/'this' is a safer method, especially during development when, it is not entirely clear which
applet will be active at any given time. It also enables easier interpretation of the scripts because the
'base' object, represented by 'Me'/'this' will never change. The use of 'Me'/'this' also removes the need to
store the active BusObject and active BusComp in variables as it does not need to be declared or
explicitly destroyed at the end of the function.
15. All code must be indented logically, including comments which efficiently describe what the script is
doing. Each new script should include a header comment which provides: Author, Date, Description and
Version History for that script.
16. Delete all 'empty' scripts that once contained text. Delete everything, including the function header
and footer. Otherwise the application will go to that script when the event is triggered and performance will
be impacted slightly.
17. Keep use of Applet scripting to a minimum where possible. Attempt to meet business requirements by
configuring in Siebel Tools where possible and generally implementing scripts for minor functionality
where a given functionality cannot be met using declarative configuration.
18. Scripts which insert new records or change data should take care to explicitly commit the record
otherwise the data could be lost.
19. When you are deleting records in script based on a particular query, be sure to use a while loop rather
than an 'If' statement as the 'If' condition will only delete one record where multiple records may need to
be deleted.
Wrong Way:
1:
2:
3:
4:
bcPositionMVG.ClearToQuery();
bcPositionMVG.InvokeMethod("SetAdminMode", "TRUE");
bcPositionMVG.SetSearchExpr("[Id] <> '0-5220'");
bcPositionMVG.ExecuteQuery();
5:
6:
7:
8:
9:
10:
11:
Right Way:
1:
2:
3:
4:
5:
6:
7:
8:
9:
bcPositionMVG.ClearToQuery();
bcPositionMVG.InvokeMethod("SetAdminMode", "TRUE");
bcPositionMVG.SetSearchExpr("[Id] <> '0-5220'");
bcPositionMVG.ExecuteQuery();
while ( bcPositionMVG.FirstRecord() )
{
bcPositionMVG.DeleteRecord();
}
Comprehensive Collection of Siebel CRM Configuration Questions and Answers gathered
from Siebel Technical Experts
What is detailed category and what is its use in configuration.
Detailed Category and Aggregate Category are the two different sets. You can add a view to a
screen under Detailed Category or an Aggregate Category. For Example:
If I am creating two Views as detailes views. First I need to create a Detailed Category. Then I
have to create two Detailed Views, for which the "Category" property must be specified with the
created Detailed Category name. This is same for Aggregate Views also.
What is constrainted picklist? Where you will drop the constraints?
Constrainted picklist displayed value based on contaraint used.
Add field to constraint in pickmap of a field where picklist has configured in BC and set constraint
option of added field to true.
How will you edit the joined fields values in join?
Using picklists and MVGs. MVGs require join field and link as prerequisites unlike picklists where
just a join is enough.
How will you improve your performance in views?
The basic factors for performance decrease in views will be. more number of applets. which led to
many links. and more joined fields in a single applet. MVG's which do not have the primaries set.
What is Virtual BC? what is the use of vbc?
Virtual Business Component is used to display the data from another Legacy database table, in
the Siebel screen.
Use scripting only if you cannot implement the required functionality through Siebel
configuration. The use of script will always cause a performance hit on the application. If possible
avoid scripting on applets; it is usually better to script on business components. Avoid writing
scripts on events that occur frequently. Re-use script as much as possible using business
services. Schedule regular technical peer reviews to ensure that the scripting is efficient as
possible. See my article Siebel Scripting Best Practices for more best practices related to Siebel
scripting.
You should always enter comments in the "Comments" field for any objects that are modified.
You should use a project standard for comments. The following is a good project standard:
[project acronym]-[initials]-[date]-[description2]; [project acronym]-[initials]-[date]-[description1]
From the above you can see that when multiple changes are made to an object these are
separated by ";". [project acronym] = The project acronym for the implementation, [initials] =
developers initials, [date] = date of the change, [descriptionx] = description of the change.
You should perform a full get on local developer databases on a regular basis. On my project we
have a scheduled full get on our local database which is automated every week so that when we
get in on Monday morning everything is fresh. Always use local database to make changes, never
make changes on the server. The following strategy can be used to determine whether to make
changes locally first or whether to check out a project to make changes:
1. If you are unsure what changes need to be made and wish to try something to see if it works,
then perform a get on the projects you require and lock these projects locally. Then when you are
satisfied take a Siebel archive (sif) of these changes and go to step 2 and merge these changes
to the project.
2. If you are sure of what changes need to be made, then check out the project and make the
changes.
Siebel Configuration Best Practices.The following are Siebel configuration best practices
to keep in mind when creating or modifying calculated fields on Business Components.
- Avoid setting Force Active = TRUE or Link Specification = TRUE as this will result in the
calculated field always being evaluated whenever the BC is instantiated. This in turn results in
any dependant fields being evaluated hence causing additional database calls.
- Avoid using InvokeServiceMethod in calculated fields. Especially avoid setting Force Active =
TRUE or Link Specification = TRUE for InvokeServiceMethod calculated fields. Whenever the
calculated field is active it will make a business service call, the business service will be
repeatedly called for each record in the current instance context. This obviously becomes
exponentially worse if there are one or more queries within the business service as additional db
calls are made each time the business service is invoked.
- If InvokeServiceMethod must be used in calculated fields then assess whether the business
service can be cached (In Tools > Busines Service, set Cache = Y), this way the business service
will not have to be repeatedly instantiated.
- Avoid using calculated fields with SUM and COUNT. Using the SUM and COUNT functions in
calculated fields will result in an additional query generated for each record in the current
instance. Again especially avoid setting Force Active = TRUE or Link Specification = TRUE for
these aggregate function calculated fields as the additional query will be generated for every
record whenever the BC is instantiated and queried. If you are using the COUNT or SUM function
to determine if child BC records exist for a particular parent record then use the EXISTS function
instead, EXISTS has much better performance.
- Avoid using calculated fields in search specifications or search expressions. This may result in
Siebel firstly querying on the search specification/expression without the calculated field first and
then again filter against this result set in memory against the calculated field. This has potential
for severe performance problems
This article discusses Siebel configuration best practices associated with setting the
Immediate Post Changes field property. Collection of Siebel configuration best practices
from web,Siebel recommended practices Interview Questions Answers,Siebel Scripts
Interview Questions
We know that Immediate Post Changes should be set to TRUE for a field when the data is to be
posted to the server immediately when a user updates a field and steps out of the field. Here is a
list of all the situations that I know of when Immediate Post Changes = TRUE would be required
for a field. If any of the below is not the case for the field then Immediate Post Changes should be
set to FALSE.
1. If the field is the parent constraining field in a constrained picklist then Immediate Post
Changes = TRUE for the parent field. This will ensure that the child picklist values are updated as
soon as the value of the parent field is changed.
2. For the On Field Update Set n or On Field Update Invoked n property, setting Immediate Post
Changes = TRUE for the fields used in the calculations will ensure that the property is invoked as
soon as the field changes that cause the property to be invoked are made.
3. The BC event handler server script BusComp_PreSetFieldValue will not be invoked unless
Immediate Post Changes = TRUE for that field.
4. The BC event handler server script BusComp_SetFieldValue will not be invoked as soon as the
field is updated unless Immediate Post Changes = TRUE for the field. If Immediate Post Changes
= FALSE then when the field is updated it will not post the data to the server immediately so the
BusComp_SetFieldValue event script will be "queued" until the data is posted to the server. If
many fields are updated prior to posting to the server then the BusComp_SetFieldValue event
handler for each of these fields is queued. Then when data is finally posted to the server all the
queued field BusComp_SetFieldValue event handler script is executed.
Therefore if you need BusComp_SetFieldValue event handler to be invoked as soon as the field
is updated then you need to set Immediate Post Changes = TRUE for the field.
5. If you have a Field Read Only Field user property that uses other field(s) in the calculations,
then these other fields need Immediate Post Changes = TRUE if you want to ensure that the read
only rule will apply as soon as the dependant fields are updated. The read only rule will still work
without setting Immediate Post Changes = TRUE however the read only rule will only apply after
the data has been posted to the server.
6. If a Toggle Applet is dependant on other field(s) then these field(s) should have Immediate Post
Changes = TRUE if you want to ensure that the Toggle will occur as soon as the dependant
field(s) are updated.
7. If any fields that are referenced in a Calculated Field do not have Immediate Post Changes =
TRUE then the Calculated Field value may not be updated as soon as the associated fields are
updated. The Calculated Field will display updated value when the associated field data is posted
to the server.
8. If any Siebel vanilla fields have Immediate Post Changes = TRUE configured out of the box
then do not change this property as this property would be set to enable vanilla functionality for
that BC field.
This article discusses Siebel configuration best practices associated with modifying
Siebel Vanilla objects,Siebel Configuration Best Practices
1. If a Siebel Vanilla field has Immediate Post Changes, Force Active or Link Specification set
to TRUE DO NOT change this property as it would be used in the underlying C++ code for that
BC.
2. If you clone (copy) a BC consider if the BC really does need to be cloned, there is usually a lot
of fields, MVL, user properties on an existing BC, is it possible to create the BC from scratch only
using the Fields, MVLs, user properties that are required? This may be better performance that
cloning the entire BC. If the cloned BC has a class other then CSSBCBase ask yourself why you
are cloning the BC, if you are not requiring any specialized class functionality then change the
class of the cloned BC to CSSBCBase. CSSBCBase class allows user properties (such as
Named Method N) to be invoked which other BC classes can not.
3. Dont inactivate or delete any standard vanilla fields - the specialized C++ code for the BC class
may require these fields and could cause runtime error.
4. Dont change the column or join on standard vanilla fields. The vanilla fields have been mapped
to those joins/columns by siebel and may be used in the C++ code associated to the class of that
BC. Also consider that Siebel have baselined and performance tested their product with the
vanilla out of the box BC fields/columns. Changing the underlying columns on vanilla fields could
adversely affect performance as appropriate indexes may not be used any longer.
5. I have found that if you need to create a new custom extension column you are usually better
off creating this on the base table (eg. S_CONTACT) rather than using the 1:1 extension table
(eg. S_CONTACT_X). When updating and saving records having fields on the extension table will
result in additional INSERT or UPDATE statements required for the extension table. Also we just
finished a Siebel upgrade and found complications where some of the extension columns
(ATTRIB_XX) were now mapped to Siebel fields in the new Siebel version. Therefore we had to
re-map our existing fields on these columns