Tuesday, October 18, 2011

PRACTICAL MATERIAL


Index
1.     Organization SETUP  ________________________________________ 2
2.     Sample Project           ________________________________________ 4
3.     Joins                            ________________________________________ 7
4.     Links                            ________________________________________ 8
5.     Pick List                      ________________________________________ 9
6.     Pick Applet                 ________________________________________ 10
7.     MVG Applet (Multi Value Group)       ____________________________ 11
8.     Toggle Applet              ________________________________________ 13
9.     Drill Downs                  ________________________________________ 16
10.  Dynamic Drill Downs  _________________________________________17
11.  User Properties          _________________________________________ 19
12.  Work Flow                   _________________________________________ 21
13.  Work Flow Policy       _________________________________________ 23
14.  EIM                              __________________________________________ 25
15.  Local DB SETUP        __________________________________________ 28
16.  Scripting Scenarios   __________________________________________ 32
Interview Questions and Answers ________________________________ 41











1. ORGANISATION SETUP
1. loginto Siebel Sales Application- connect to 'Sample' database.
2. Defining Organization
Click on 'Site Map' icon and navigate to
Adminstration- Group --> Organization --> create a new Record
Name : HDFC
3. Defining Division :
Click on 'Site Map' icon and navigate to
Adminstration- Group --> Internal Division --> create a new Record
1. Name : HDFC Banking
   Parent Division: HDFC
2. Name : HDFC Loans
   Parent Division: HDFC
3. Name : HDFC Home Loans
   Parent Division: HDFC Loans
4.Defining Position
Click on 'Site Map' icon and navigate to
Adminstration- Group --> Position --> create a new Record
1. Position : HDFC CIO
   Division Name : HDFC
2. Position : HDFC Loans Manager
   Division Name : HDFC Loans
   Parent Position : HDFC CIO
3. Position : HDFC Home Loan Mgr
   Division Name : HDFC Home Loans
   Parent Position : HDFC Loans Manager
5.Defining Responsibility
Click on 'Site Map' icon and navigate to
Adminstration- Application --> Responsibility --> create a new Record
Responsibility : HDFC CIO Responsibility
Organizaiton : HDFC
scrolldown and goto 'Views' click on 'NEW' BUTTON
select all the viws (Cntrl A)and click'ok'
7. Defining Employee
Click on 'Site Map' icon and navigate to
Adminstration- User --> Employee --> create a new Record
Fist name: TEST
Last Name: ADMIN
User Id : TEST_ADMIN
Position : HDFC CIO
Resp : HDFC CIO Responsibility
Organizaiton: HDFC
TO CREATE PASSWORD FOR 'TEST_ADMIN'
SELECT C:\Program Files\Siebel\7.7\web client\BIN\dbisqlc
USERID : DBA
PASSWORD : SQL
S_ADDLOGIN USERID, PASSWORD
SP_ADDUSER USERID, PASSWORD, SSE_ROLE
(TO GRANT DATABASE PREVILIGES TO TEST_ADMIN
DROPUSER USERID








2.SAMPLE PROJECT
1. Login to siebel Tools and create a new project
Name :Sample Sales Project
Locked :True
2. Select 'Business Component' Object Type and create new record
Name: Sample Opportunity Bc
Project: Sample Sales Project
Table: S_OPTY
Expand the BC and create fields
NAME                           COLUMN
Opportunity Name         NAME
Revenue                                   SUM_REVN_AMT
Created Name               CREATED_BY
3. Select 'Business Object' and createnew record
Name: Sample Opty BO
Project : Sample Sales Project
Expand the BO and associate the BC
Buscomp : Sample Opportunity Bc
4. Applet: Create New Record
Name : Sample Opty Applet
Bc Name : Sample Opportunity Bc
Project :Sample Sales Project
Expand the applet and select 'list' and create record
Expand the 'List' and select 'List Column' and create the below columns
Name                Field                             Display Sting - override
Opty Name       Opportunity Name         Opty Name
Created             Created By                    Opty Owner
Revenue                       Revenue`                      Revenue

right click onthe applet and select 'Edit Web Layout'
Base: Applet List (Base/EditList)
Edit : Applet List Edit (Edit/New/Query) Toggle Bar
Edit List : Applet List (Base/EditList)
click 'Next' > 'Select Columns' > Next >Finish
Close the applet window
5. View :
Name : Sample Opty View
BO: Sample Opty BO
Project: Sample Sales Project
right click onthe View and select 'Edit Web Layout'
select 'View Detail' template and map the applet > Next > Finish
7.Screen
Name : Sample Opty Screen
Project: Sample Sales Project
expand screen and select 'Screen view' and create new record
Type: Aggregate Category
Category Name : OPTY LIST
Create new record and associate theview to the category
View : Sample Opty View
Parent Category : OPTY LIST
Type : Detail View
Viewbar Text string override: Opportunity
Menubar Text String Override :Opportunity
8. Application
Name : Sample Sales Application
Project : Sample SalesProject
Menu : Generic WEB
Container Webpage : CC Container Page
Error web page : CC Error Page
Login web page : CC Login Page (Login Only)
Logoff page : CC Login Page (Login Only)
Expand the application and associate the screen in Page tab and Screen Menu Item.
Page Tab:
Screen : Sample Opty Screen
Text - String Override : Opportunity
Compilation :
1. C:\Program Files\Siebel\7.7\web client\OBJECTS\ENU\siebel.srf -- make a copy of 'Siebel.srf' file and rename it to 'sample.srf'
In tools > Goto 'Tools' Menu > Compile projects (F7) > Select 'Sample Sales Project and click on browse button and select 'sample.srf' file
Click 'Compile'
2. C:\Program Files\Siebel\7.7\web client\BIN\ENU\siebel.cfg - make a copy of 'siebel.cfg' and rename it to 'sample.cfg'. openthe cfg file and update the belwo parameters
RepositoryFile           = test.srf
ApplicationName          = sample appl
ApplicationTitle         = sample appl
ApplicationSplashText    = sample appl
3. Create a shortcut for 'Siebel Sales _ENU' on desktop and right click >Properties > andchange the siebel.cfg to 'sample.cfg'
4. Loginto Siebel Sales Application
sitemap >Admininstration- Application > View
Add the view 'Sample Opty View'
sitemap >Admininstration- Application > Responsibility
Name : Sample Admin Resp
Attach the view to the resp and user 'SADMIN'




3.JOINS
S_OPTY                       S_ORG_EXT
FK                    PK
PR_DEPT_OU_ID          ROW_ID
1. sample OPTY BC
Createa new field:
OPTY_ID_FK    PR_DEPT_OU_ID
expand the bc and select 'JOIN'  and create new record
TABLE : s_org_ext
expand the join and select 'Join specification'
Name: Account Join
Destination column: ROW_ID
Source Field : OPTY_ID_FK
Goto 'Fields' and create the below joined fields:
Name                Join                  column
Account#          s_org_ext         OU_NUM
Account Name  S_ORG_EXT     NAME
2. Sample opty applet:
Create twolist columns : Account # and Account Name
pull the columns in 'Web Template'
compile the objects








4.LINKS
1. BC: Sample Quote Bc
Table: S_DOC_QUOTE
Fields : Quote #, Created, Status
Columns:QUOTE_NUM, CREATED, STAT_CD
2. bc: Sample Order BC
Table :S_ORDER
Fields:Order #, Date, Status, Order_ID FK
Columns :ORDER_NUM,CREATED, STAT_CD, QUOTE_ID
3. LINK:
Name : Sample Quote BC/Sample Order BC
Parent Bc: Sample Quote BC
Child BC: Sample Order BC
Source Field: Id
Destination Field : Order Id FK
4. Sample Quote BO
BC                                Link
Sample Order BC              Sample Quote BC/Sample Order BC
Sample Quote BC
5. Applets :
Sample Quote List Applet
Sample Order List Applet
6. View : Sample Quote View
BO: Sample Quote BO
Associate BO to 'View Detail(Parent with Pointer)' template
7. Screen : Sample Quote Screen
Associate view to the screen.
8. Associate screen to the application.

5.PICKLIST
1. BC: Sample Opportunity Bc
Added a new Field
Opty Quality      LEAD_QUALITY_CD
2. BC : Sample LOV BC
   Table : S_LST_OF_VAL
Lov Type          Type
Lov Value         Val
3. Picklist :Sample Opty Quality Piclist 
BC: Sample LOV BC
Type Field :Lov Type
Type Value :OPTY_QUALITY
4. Sample Opportunity BC
Associate the picklist 'Sample Opty Quality Piclist' to Opty Quality field.
Expand the field and select 'PickMap'
Field                             Picklist Field
Opty Quality                  Lov Value
5. Add the field 'Opty Quality'in 'Sample Opty Applet' and set 'Runtime' to true.
Compile the changes.
Login to client application >  Site map > Administration - data > List of Values
Type                 Display Value    LIC                      Language
LOV_TYPE       OPTY_QUALITY            OPTY_QUALITY                 English
OPTY_QUALITY            EXCELLENT     EXCELLENT    
OPTY_QUALITY`           GOOD              GOOD
OPTY_QUALITY            FAIR                 FAIR
OPTY_QUALITY`           POOR               POOR



6.PICK APPLET
1. Sample Opty BC
Joined Fields : Account #, Account Name
2. Sample Account BC
S_ORG_EXT
Fields: Account #, Account Name
3. Picklist :Sample Account Picklist
BC: Sample Account BC
4. Sample Opty BC
Associate the 'Sample Account Picklist' to Account # field.
Expand the field and select 'PickMap'
Field                 Picklist Field
Account #         Account#
Account Name  Account Name
5. Sample Account Pick Applet
BC: Sample Account BC
List Columns :Account #, Account Name
Controls:
Name    Caption string - Override  HtmlType             MethodInvoke
 Control Name Ok               MiniButton                     PickRecord
OK       OK                                 
CLOSE CLOSE                                                 CloseApplet
Associate the applet 'Popup List' web template.
6. Sample Opty Applet
Associate the 'Sample Account Pick Applet' to Account # column and set 'Runtime' to true.
Compile the changes.



7.MVG APPLET - MULTI VALUE GROUP
ONE TO MANY RELATIONSHIP between two fields in an applet.
Account Name
Account Location
Address -- to configure MVG applet.
City
state
Country
S_ORG_EXT                 S_ADDR_ORG
ROW_ID                                   OU_ID
1. Sample Account BC - S_ORG_EXT
FIELDS                         column
Account Name NAME
Location           LOC
Account #         OU_NUM
2. Sample Address BC - S_ADDR_ORG
FIELDS                         column
Address                        ADDR_NAME
City                  CITY
State                STATE
Country             COUNTRY
Address_FK      OU_ID
3. LINK:
Name:               Sample Account BC/Sample Address BC
Parent BC:        Sample Account BC
Child BC:          Sample Address BC
Source Field:    Id
Destination Field: Address_FK

4. Select 'Sample Account BC' and goto 'MULTI VLAUE LINK'
Name : Account - Address MVL
Destination BC: Sample Address BC
Destination Link : Sample Account BC/Sample Address BC
source Field : Id
5. Select 'Multi Value Field' in 'Sample Account BC'
Name                Multivalue Link              Field
Acct_Addr        Account - Address MVL Address
Acct_City          Account - Address MVL City
Acct_Country    Account - Address MVL Country
Acct_State        Account - Address MVL State
6. BO : Sample Account BO
BC                                Link
Sample Account Bc
Sample Address BC      Sample Account BC/Sample Address BC
7. Applet : Sample Address MVG Applet
   BC ; Sample Address BC
   Type : MVG
List Columns :
Add all address fields - Address, city, state and country.
associate this applet 'Popup list' template.

8. Applet : Sample Account list Applet
   Bc: Sample Account Bc
List columns;


Add all Account and Address Fields
Name                                        MVG APPLET
Account Number
Account Name
Address                                                Sample Address MVG Applet
City
State
Country
9. VIEW : Sample Account View to show 'Sample Account List Applet'

10 Screen : Sample Account Screen -- Attach the view to the screen

11. Attach the screen to the application.

8.TOGGLE APPLET

Requirement: Based on different types of A/C types we need to display (toggle) the information in More Info  detail view accordingly.
Remember ACCOUNT INFORMATION is default display.
A/C Type is pick list field. Different A/C types are:
MEDIA              ACCESS           GOVERNMENT             TRADE             ASSOCIATION
IN THE A/C BC
Select the field that determines the A/C type. It is TYPE.
Create a calculated field on this called A/C_CAL_TYPE. Tick mark the CALCULATED property and write LookUpName(“ACCOUNT_TYPE”,[Type])  in the corresponding CALCULATED VALUE.
IN THE APPLETS SECTION
Lets assume that A/C Profile Applet is the default Applet in which the ACCOUNT INFORMATION is displayed.
Create new applets with the following names and choose fields that need to be displayed in the applets.
The newly created applets will now be:
A/C Profile Applet_Media
A/C Profile Applet_Access
A/C Profile Applet_Govt
A/C Profile Applet_Trade
A/C Profile Applet_Association
Select the default applet > Applet toggle > enter the following details
Applet                                      Auto Toggle field         Sequence         Auto toggle Value

A/C Profile Applet_Media         A/C_CAL_TYPE            1                      Media
A/C Profile Applet_Access        A/C_CAL_TYPE            2                      Access
A/C Profile Applet_Govt           A/C_CAL_TYPE            3                      Government
Sequence is for order in which these applets are displayed.
Similarly enter for all the other applets.

Association Applet (Many to many) -- built on 'Intersection Table'

S_OPTY                       -- S_OPTY_CON --fk1 - OPTY_ID          
S_CONTACT   -- S_OPTY_CON --FK2 - PER_ID
1. SAMPLE OPTY BC : OPTY NAME & REVENUE
2. SAMPLE CONTACT BC : FIRST NAME, LAST NAME & PHONE#
3. LINK:
NAME :Sample Opty BC/Sample Contact BC
PARENT BC: Sample Opty BC
CHILD BC: Sample Contact BC
INTER TABLE: S_OPTY_CON
INTER PARENT COLUMN: OPTY_ID
INTER CHILD COLUMN:PER_ID
4. BO : SAMPLE OPTY BO
    SAMPLE OPTY BC
    SAMPLE CONTACT BC         Sample Opty BC/Sample Contact BC
5. Sample Opty list applet (use the existing)
6. Sample Contact Association Applet
  BC: Sample Contact BC
  Class: CSSSWEFrameListAssoc
  Type: Association List
Define the list columns : First name, last name & Phone#
Configure OK and Close buttons.
Associate the applet to 'POPUP LIST' web template.
7.Applet : Sample Contact List Applet
  BC : Sample Contact BC
  Association Applet : Sample Contact Association Applet
List Columns : First name, last name & Phone#
Controls:
Name    MethodInvoked
ADD     NewRecord
NEW     CreateRecord
associate the applet to 'Editlist' template. (Normal list applet)
8. Sample Opty View;
-----------------------------------
USER ID : DBA
PSD : SQL
ODBC : SEAW Samp Db default instance






9.DRILL DOWNS
Drilldowns: are configured for Joined fields , which will allow you to navigate to a destination view.
Select 'Opportunity List Applet' - to configure drilldown for 'Account Name' field (Join Field)
Drilldown object:
Name: Account Drilldown
HyperLink field: Account Name
View : Sample Account View
source Field : Id
Compile the changes. Make sure 'sample Opty Bc' is associated to 'Sample Account BO'
------------------------------------------------------------------------------------------------
SCHEMA LEVEL CHANGES : Changes applied to siebel Database.
1. Login to Siebel tools > Tables > Query for 'S_OPTY' TABLE (lock 'Table Opty' Project)
Columns : Create new record
Name : CURRENCY_VALUE
Physical Type: Varchar
Length: 50
Status; Active
Click on the 'Activate' button and then click 'Apply' Button.
Table : Current Row
User Id : DBA
Password : SQL
ODBC Datasource :
Local DB : SEAW Local Db default instance
Sample DB : SEAW Samp Db default instance
Server : SSD  default instance
Start > Settings > Control Panel > Administrative Tools > Data Sources (ODBC) > System DSN tab
2. To create new table :
Click File menu > New Object > Table >
Name of the table : CX_TEMP
Project : Sample Sales Project
Type:
standalone -- base
1:1  -- _X extension table
1:M -- _XM table
Intersection Table -- M:M table
click 'Activate' and then 'Apply' (Add any no of columns to this table).
10.DYANMIC DRILLDOWN
1.     BC: SAMPLE ACCOUNT BC:
      FIELDS:
                    ACCOUNT NAME
ACCOUNT TYPE (PICKLIST FIELD- Attach the picklist and give the pickmap)
ACCOUNT #
Acct_TYPE_FLG  (Calculated Field-  include the value in the Calculated expression.)
Calculated Expression = LookupValue(“TYPE_LOV”, [ACCOUNT TYPE])
2.     CREATE A PICKLIST :
PICKLIST NAME:  SAMPLE ACCT TYPE PICKLSIT
BC: SAMPLE LOV BC
LOV TYPE: TYPE
LOV VALUE:TYPE_LOV
      (Add the Picklist values in Adminstration_Data. The Values are GOVT, PRIVATE, PUBLIC)
3.     ATTACH THE PICKLIST to ACCT TYPE FIELD IN ‘SAMPLE ACCOUNT BC’
4.     CREATE FOUR APPLETS BASED ON THE SAMPLE ACCOUNT BC:
SAMPLE ACCOUNT APPLET
SAMPLE GOVT APPLET
SAMPLE PRIVATE APPLET
SAMPLE PUBLIC APPLET
5.     CREATE FOUR NEW VIEWS
SAMPLE ACCOUNT VIEW
GOVT ACCOUNT VIEW
PRIVATE ACCOUNT VIEW
PUBLIC ACCOUNT VIEW
ATTACH THE RESPECTIVE APPLETS TO THE VIEWS.
6.     CREATE FOUR NEW  SCREENS
                   ATTACH THE VIEWS.
Can also create a single Screen and attach all the four views to the different Category in the Screen. For better navigation create four screens.
7. Select  ‘SAMPLE ACCOUNT APPLET‘ applet> EXPAND >SELECT ‘DRILLDOWN OBJECT’
Define  the following values:
Name                           Hyperlink Field                         View                                 SequenceNumber

Original                         ACCOUNT TYPE           Sample Account View                                       1
ACCGOVT                    _                                    Govt Account View                                          2
ACCPRIVATE                _                                    Private Account View                                       3
ACCPUBLIC                  _                                    Public Account View                                        4
Select Drilldown object ‘ORIGINAL’ > Select ‘DYNAMIC DRILLDOWN DISTINATION’ OT and give the following details:
Name                     Field                       Value            Destination Drill Down Object    Sequence no

O1                     Acct_Type_flg             GOVT                           ACCGOVT                                1
O2                    Acct_Type_flg               PRIVATE                      ACCPRIVATE                            2
O3                    Acct_Type_flg               PUBLIC                         ACCPUBLIC                              3         
            It is mandatory to specify the sequence numbers here. Calculated Type is a calculated expression with LookupName("TODO_TYPE",[Type])
The Drilldown object with the lowest sequence number contains child Dynamic Drilldown Destination objects that are used to define the conditions under which each of the Drilldown objects should be activated.
When the conditions defined in a Dynamic Drilldown Destination are matched, the logic routes to one
of the candidate Drilldown objects. When all conditions expressed in the Dynamic Drilldown
Destinations are false, the parent Drilldown object acts as the default.




11.USER PROPERTIES
1.  Field Read only Field : Sets specific fields in a business component to be read-only.
The Value property contains a field that is Boolean. When TRUE, the field specified by [fieldname] in the current record is read-only.
Requirement : To make ‘Quality’ field readonly when ever Sales Stage is ’04 – Lost’
Query for ‘Opportunity’ BC (Lock Oppty Project)
Field : create a calculated field to check sales stage is ’04 –lost’
Name                            Calculated                                 Calculated Value
Sales_Cal_Flag             True                                          IIf([Sales Stage]="04 - Lost","Y","N")
Select  ‘Bussiness Component User Prop’ and create new record
Name                                                    Value
Field Read Only Field: Quality                Sales_Cal_Flag
2. BC Read Only Field :
 Specifies a TRUE/FALSE field in the record that, when TRUE, causes the current record to become read-only.
Setting the Admin Mode Flag property to TRUE circumvents a Read Only field defined at the business component object type user property.
Example:
Select  ‘Bussiness Component User Prop’ and create new record
Name                                                    Value
BC Read Only Field                               Sales_Cal_Flag
 3. On Field Update Set 1 :
This user property allows you to set the value of a field in the business component when another field is updated.
Syntax
 The value for On Field Update Set consists of three quoted parameters separated by a comma and a space, as follows:
"[FieldToCheck]", "[FieldToSet]", "[Value]"
"Currency Code", "Price List", ""
"Managers Review", "Last Review Manager Id", LoginName()
4. On Field update Invoke
This user property allows you to invoke a business component method when the specified field is updated.
Syntax
 The value for On Field Update Invoke consists of three quoted parameters separated by a comma and a space, as follows:
"[FieldToCheck]", "[BusCompName]", "[MethodName]"
5. Parent Read Only Field
Description
 Specifies a TRUE/FALSE test business component/field combination in the parent chain (parent, grandparent, and so on) that, when TRUE, causes the target business component to become read-only.
Requirement: To lock Activities if Opportunity Sales stage is ’04 – Lost’
Lock ‘Action’ > go to User Properties > create New Record
Name                                        Value
Parent Read Only Field              Opportunity.Sales_Cal_Flag
6. Deep Delete :
Normally, the Delete option only deletes one level. Deep Delete allows child business components and their respective child business components to be deleted automatically when selecting the Delete option. This feature allows multiple levels to be deleted like a cascade delete.
Create a user property for each child business component to be included in the deep delete. The child business component user properties are:
Name: Deep Delete 1
Value: [Child BusComp Name]
7. Deep Copy : Allows child business components and respective child business components to be copied automatically when selecting the Copy option. Normally, Copy option only copies one level. This feature allows multiple levels to be copied like a cascade copy.
To use Deep Copy, do the following:
In the parent business component, create a user property for each child business component to be included in the deep copy. The child business component user properties are:
Name: Deep Copy 1
Value: [Child BusComp Name]
8. Named Method 1
This user property allows you to invoke a method from a business component , or set a field value
Syntax
 The value you provide for the Named Method user property depends on the action you want to perform.
For setting a field value, the value consists of three quoted parameters separated by a comma and a space, as follows:
"[Name]", "SET", "[Field]", "[Expression]"
“InvokeWF”,” INVOKESVC",”Account”,”Workflow Process Manager”,”RunProcess”,”ProcessName”,” Sample Account Status Workflow”,”RowId”,”[Id]”
Example:
"Ora107SubmitLocal", "INVOKESVC", "Account", "Workflow Process Manager", "RunProcess", "'ProcessName'", "'Account - Create or Update Oracle Customer'", "'RowId'", "[Id]"
"Ora107SubmitLocal", "INVOKE", "Account", "RefreshRecord"

12.Workflow
Process of implementing your bussiness rules
Backoffice -- WF Policies -- Background component Mode --
If an order created with Rev >= 10000$, then send mail to sales group to take action
Workflow policy
-- Run only in Server
-- Triggers are required
-- Online
-- cannot be invoked
-- cannot import/export policies
Frontoffice -- WF Process
1. Process needs invoking point
2. run in sample/local/serve
3. No Triggers
4. Online/offline
5. can be invoked thru scripts/WF Policies/Runtime events
6. can import/export processes

Requirement : If Account Type is 'competitor' set the account status to 'Red Customer'.
1. Login to tools > connect to sample > Select 'workflow process' > New Record
Process Name : Account WF
Project : Account
BO : Account
2. Expand the Workflow > Select WF process Properties > New Record
Name : Account Type.
3. Right click on the workflow and select 'edit workflow process'
   Select the Start control from pallette and drop it on to the layout.
   select the siebel operation conrtol from the pallete and drop it on the layout.
4. Select the 'Siebel operation' > go to the WF steps (Below the layout) and for siebel operation step and give the below values
Bussiness Component : Account
Operation : Query.
5, Right click on the 'siebel operation' select 'Show output Arguments' and give the below details
Property Name ; Account Type
Type : Bussiness component
Bussiness component type : Account
Bussiness component field : Type
6. Drag the 'decision point ' control to the layout and connect the siebel operation to this decision point using a connector
7. Select 'siebel operation' control once again and drop it on to the layout and connect it to the decision point using the connector control.
8. Select the connector between the decision point and the second siebel operation control and specify the type = condition for this condition
9. Right click on this connector and select 'Edit conditions' and give the below values.
Compare to :  Bussiness component
Object : Account
Field : Type
Value : Competitor
click on add button.
10. select the second operation control and give the below values.
Bussiness component : Account
Operation : Update.
11. Right Click on the 'second siebel operation' control, select 'show fields' and click new record in the input arguments and give the below values.
field name : Account status
value : Red customer
12. Select the 'End' control and drop it on the layout and connect it.
13. connect the descision point also to the end.
Login to client, create one record which satisfy's the condition, copy the row_id and pass it to the workflow in Object Id parameter.
Right click on the workflow and select 'Simulate workflow process' click start and test the workflow.
14. After testing, click on the 'Deploy' button to deploy the workflow process.
`13.Workflow Policy
 To Automate any bussiness rules
client side setup and configured using Workflow object.
Requirement : If opty created with Rev >='1000$' and lead quality is excellent, then send message/mail to manager.
Object : Opportunity
Condition: Rev >='1000$' and lead quality = excellent
Action: send message/mail
Default email functionality : F9 (sending Email from siebel application)
Creating Wf Policies:
condition + Action -- > Workflow policy 1 + Worflow Policy 2  ---> Workflow Policy Group
1. Site Map > Administratin - Bussiness Process > Worflow Policy Group > Create new record
Name : Samp Opportunity WF Group
2. Scroll and select Policies  > New Record
Name : Samp Opty Rev Quality Policy
Object : Opportunity
3. Click on the policy and create 'Conditions'
Condition Field                        Operation                     Value
Opportunity Lead Quality         =                                 2-Very High
Opportunity Revenue               =                                 5000
4. To Create Action :
Site Map > Administratin - Bussiness Process > Actions > New Record
Name : Samp Opportunity WF Action
Program : Send Message Broadcast
workflow object : Opportunity
Send Message Broadcast Arguments :
Abstract: Sending Message Broadcast
Severity: Urgent with Alert
Message Template: Hi, A Test Opty created with High quality and Rev exceeded 5000$.
Scroll and give 'Recipients'
Type : Send to Employee
Name : Test, Emp (attach any employee)
5. Go back to Workflow policy and attach the action in the action applet.
--------------------------------------------------------------------------------
To Activate the Worflow policy in server :
1. Create Wf Policy Group > Condition & Actions > Generate Triggers Policy tables
2. Record created with satisfying the condition > S_ESCL_REQ Table > Worflow Monitor agent >
> S_ESCL_ACTN_REQ > Workflow Action Agent Component
----------------------------------------------------------------------------------
1. Generate Tiggers : server component > Run a task
Administrtion - server management > Jobs > New Record
component/job : Generate Triggers
Job Parameters:
Name                                       Value
Privileged User                        SIEBEL
Privileged User Password        SIEBEL
EXEC                                       TRUE
click 'Start' button and wait until the job status get 'Success'
2. Server Component -- Workflow policy group -- to create new workflow monitor component
Administraion - server configuration > Component Defnitions > Query for 'Workflow Monitor Agent' > do 'copy Record' > New Record
component Name : Samp WF Monitor Agent
Alias : Opty
Component Group : Workflow Management
Scroll down and select 'component parameters'
Group Name :  Samp Opportunity WF Group
sleep time : 5
default task :1
click on 'Enable' button to activate the component and click 'synchronize' button.
Restart the gateway and siebel servers
14.EIM
STEPS TO LOAD SOLUTION DATA:

EIM TABLE: EIM_SOLUTION

BASE TABLE: S_RESITEM
DATA TO LOAD:
Source Entity
Source Attribute
EIM Table
EIM Column
Base Table
Base Column
Default
Solution
Name
EIM_SOLUTION
NAME
S_RESITEM
NAME

Solution
FAQ
EIM_SOLUTION
FAQ_QUES_TEXT
S_RESITEM
FAQ_QUES_TEXT

Solution
Answer
EIM_SOLUTION
RESOLUTION_TEXT
S_RESITEM
RESOLUTION_TEXT

Solution
Solution type
EIM_SOLUTION
SOLN_TYPE_CD
S_RESITEM
TYPE_CD

Solution
Status
EIM_SOLUTION
STATUS_CD
S_RESITEM
STATUS_CD

Solution
Publish flag internal
EIM_SOLUTION
INTR_PUBLISH_FLG
S_RESITEM
INTR_PUBLISH_FLG

Solution
Publish flag external
EIM_SOLUTION
PUBLISH_FLG
S_RESITEM
PUBLISH_FLG

none
none
EIM_SOLUTION
SOLUTION_ITEM_FLG
S_RESITEM
SOLUTION_ITEM_FL
N
     none
none
EIM_SOLUTION
ORG_BU
S_RESITEM
BU_ID
Default Organizatin

STEPS: LOADING “SOLUTION.TXT” DATA  INTO EIM_SOLUTION TABLE:

  1. Start -> Programs -> Microsoft SQL Server -> Import/Export Data
  2. Will get “Data Transformation Services” -à Click “Next”
  3. Data source:  Select “Text File” and browse for the Text file name
Ex: Solution.txt
  1. Click > “Next”
  2. In Delimited  > Select “Text Qualifier” as <None>
  3. Click > “Next”
  4. Select “Comma”
  5. Click > “Next”
  6. In Destination: shd have “Microsoft/OLE DB Provider for SQL Server”
  7. Select Database – “Siebeldb” in the dropdown
  8. click > “Next”
  9. Select Source – solution.txt and destination  - EIM_SOLUTION and click “TRANSFORM”
  10. Now, map the Source and Destination columns and Select “IGNORE” for all the unmapped columns.
  11. Disable the “Enable Identity Insert” check field.
  12. Click “Next”
  13. FINISH
  14. Should get message saying “Successfully copied 1 (Tables) “
  15. click OK

CHECK THE DATA LOADED IN THE EIM TABLE:

Start -> Programs -> Microsoft SQL Server> Query Analyzer
Select “Siebeldb” in the top dropdown
Execute the below queries:
Select  * from siebeldb..EIM_SOLUTION WHERE IF_ROW_BATCH_NUM = ‘500’
(YOUR BATCH NUMBER)
The query should return the data what ever you have loaded thru your text file into EIM table.
LOADING DATA FROM EIM TABLE TO BASE TABLE(S_RESITEM):
Copy the D:\SEA77\Siebsrvr\Admin\Default.ifb file and rename it to “Solution.ifb” and then do the modifications
INTERFACE BATCH FILE
[Siebel Interface Manager]
      USER NAME = "SADMIN"
      PASSWORD = "SADMIN"
      PROCESS = Import Solutions
[Import Solutions]
      TYPE = IMPORT
      BATCH = 100
      TABLE = EIM_SOLUTION
      ONLY BASE TABLES = S_RESITEM
      DEFAULT COLUMN = ORG_BU, "Default Organization"
      DEFAULT COLUMN = SOLUTION_ITEM_FLG, "N"
Save it.
SUBMITTING THE SERVER JOB TO RUN EIM LOAD:
Login to any Client Application connecting to SERVER.
SITEMAP > Administration Server Management > Jobs> New Record
New Job ---  “Enterprise Integration Management”
Parameters:
Configuration file  :  Solution.ifb
Now, click “Start” button to submit  the job and wait until the job status turns “SUCCESS”
CHECK THE DATA LOADED IN THE BASE TABLE:
Start -> Programs -> Microsoft SQL Server> Query Analyzer
Select “Siebeldb” in the top dropdown
Execute the below queries:
Select  * from siebeldb..S_RESITEM







15LOCAL DB SETUP
If there are images in this attachment, they will not be displayed.  Download the original attachment
Siesta – is our Siebel server name and u can see the status running
MOBILE  CLIENT SETUP:
STEP 1: MAKE SURE UR SERVERS ARE UPEND RUNNING
UC AN SEE GATEWAY AND SIEBEL SERVERS ARE STARTED 
STEP 2: LOGIN TO SERVER
      Create new employee record
      CREATE USERID AND PASSWORD IN SERVER.
      PASSWORD WE NEED TO CREATE IN SQL SERVER – CONNECTING TO SIEBEL SERVER DB
      QUERY ANALYSER IS JUST LIKE SQL IN ORACLE TO EXECUTE QUIERES
      MAKE SURE UR EXECUTING THE QURIES IN SIEBEL DB
      WE CREATED USERID AND PASS IN SERVER – JUST VERIFY IT –  U SHD BE ABLE TO LOGIN IN
       SERVER 
STEP 3: CREATE MOBILE CLIENT
      JUST SAY S_SWATI IS A MOBILE CLIENT
      CLICK – ADMIN – REMOTE   > MOBILE CLIENT > CREATE NEW RECORD
      NOW WE CREATED S_SWATI AS MOBILE CLIENT
STEP 4: GENERATE NEW DB TEMPLATE
      It’s a server component . so need to run server job
      Go to Admin – Server Management Screen – create a job ‘Generate New Database’
      And give the job parameters
      Table Owner Password  : Siebel
      Submit the job
      After submitted – just keep track of your job status
      Initially the  job status will be creating – after submitting it will be ‘Active’
      U shd wait until the job status changed to ‘SUCCESS’
      Wait for few mins –
      You shd not submit the next job until the first job gets over
      If u want to see whats happening in the backend – just click ‘Task’  - so its creating the table s and the indexes – I mean the structure of your local db
      Job completed successfully.
      STEP 5: LOCAL DB EXTRACT
      Its again a server job which extracts the data based on the swati’s position
      Job Parameters:
      Mobile Client  : s_Swati
      Table owner password: Siebel
      Extract all repository tables : True
      Submit the job and wait until it gets over
      It will take some time, bcos it  needs to extract all the tabledata from the server
      Its done
      STEP 6: LOCAL DB INTIALIZATION
      We are going to copy the local data from the server to the local
      After initialization you should be able to see one file called ‘sse_data.dbf’  in your client\local folder
      In my local folder I already have one local db..if I initialize again then itwill overwrite the existing db. So just rename it if u have any local db already. I renamed it to sse_data_tom.dbf
So we will start the initialization: for S_SWATI
IF u  connect to local it will throw an error…just click ok
It will ask password confirmation for initialization
Intilization started
Intialization is over and we are able to login to our Local DB
U can see ‘sse_data.dbf’ file got generated – this is S_SWATI’s local db



LOCAL DB SETUP
Siesta – is our Siebel server name and u can see the status running
MOBILE  CLIENT SETUP:
STEP 1: MAKE SURE UR SERVERS ARE UPEND RUNNING
UC AN SEE GATEWAY AND SIEBEL SERVERS ARE STARTED
STEP 2: LOGIN TO SERVER
Create new employee record
CREATE USERID AND PASSWORD IN SERVER.
PASSWORD WE NEED TO CREATE IN SQL SERVER – CONNECTING TO SIEBEL SERVER DB
QUERY ANALYSER IS JUST LIKE SQL IN ORACLE TO EXECUTE QUIERES
MAKE SURE UR EXECUTING THE QURIES IN SIEBEL DB
WE CREATED USERID AND PASS IN SERVER – JUST VERIFY IT –  U SHD BE ABLE TO LOGIN IN
 SERVER
STEP 3: CREATE MOBILE CLIENT
            JUST SAY S_SWATI IS A MOBILE CLIENT
            CLICK – ADMIN – REMOTE   > MOBILE CLIENT > CREATE NEW RECORD
            NOW WE CREATED S_SWATI AS MOBILE CLIENT
STEP 4: GENERATE NEW DB TEMPLATE
            It’s a server component . so need to run server job
            Go to Admin – Server Management Screen – create a job ‘Generate New Database’
            And give the job parameters
            Table Owner Password  : Siebel
            Submit the job
            After submitted – just keep track of your job status
Initially the  job status will be creating – after submitting it will be ‘Active’
U shd wait until the job status changed to ‘SUCCESS’
            Wait for few mins –
You shd not submit the next job until the first job gets over
If u want to see whats happening in the backend – just click ‘Task’  - so its creating the table s and the indexes – I mean the structure of your local db
Job completed successfully.
STEP 5: LOCAL DB EXTRACT
Its again a server job which extracts the data based on the swati’s position
Job Parameters:
Mobile Client     : s_Swati
Table owner password: Siebel
Extract all repository tables : True
Submit the job and wait until it gets over
It will take some time, bcos it  needs to extract all the tabledata from the server
Its done
STEP 6: LOCAL DB INTIALIZATION
We are going to copy the local data from the server to the local
After initialization you should be able to see one file called ‘sse_data.dbf’ in your client\local folder
In my local folder I already have one local db..if I initialize again then itwill overwrite the existing db. So just rename it if u have any local db already. I renamed it to sse_data_tom.dbf
So we will start the initialization: for S_SWATI
IF u  connect to local it will throw an error…just click ok
It will ask password confirmation for initialization
Intilization started
Intialization is over and we are able to login to our Local DB
U can see ‘sse_data.dbf’ file got generated – this is S_SWATI’s local db



16.Scripting Scenarios

Summary:
What are the differences between Server Scripts and Browser Scripts? Is it true that Server script is really executed in Server? As when we do the coding and test in mobile client, it seems we don't need the server and can still execute server scripts. How do I know what functions can be used in Server scripts and what functions can be used in Browser scripts?

Diff . between Browser - ( BS ) and Server Script ( SS )

Browser Script :

1. Only eScript can be used in BS whereas in SS., both VB / eScript can be used.
2. BS can be used for data validation in the current context ., i.e Execute query cannot be done.
3. Interaction with desktop applications
4. To get inputs from the user.
5. The only fields that are available to browser script are:
  Id Field
  Fields whose values appear in the UI

Server Script:

1. Query, insert, update, and delete operations
2. Access and data validation beyond the current record

Practical hints:
1. While debugging you cannot step thru Browser script by placing break points
2. Browser script is generated in public\enu folder
3. You may have to run genbscript to generate browser script ., if you have not set the browser script folder in tools.
4. The server script executes in the server object manager in thin client and in the client machine of mobile client / dedicated client.
5. Browser script executes in the client browser javascript interpretter

For Methods information please refer siebel object interface reference.


What are the differences between Server Scripts and Browser Scripts? (In simple terms)

To keep it simple, JavaScript forms Browser Script & VB/eScript forms Server Script... Browser script is interpreted by Browser while Server Script is interpreted by Object Manager....

Is it true that Server script really executed in Server?
Yes

As when we do the coding and test in mobile client, it seems we don't need the server and can still execute server scripts.
Yes its TRUE....the .exe interprets Server Script....

How do I know what functions can be used in Server scripts and what functions can be used in Browser scripts?

In Book Shelf > Object Interface Reference, for each function you can find whether it can be used in Browser Side or in Server Side or in Both...


Comments:To Set Organization as a Required field

function BusComp_PreWriteRecord ()
{
                        var strorganization;
                       
                        try
                        {
                           // organization field required
                           strorganization = this.GetFieldValue("Organization");
                           if(strorganization==null || strorganization=="")
                           {       
                                       TheApplication().RaiseError("OrganizationReqd");
                                       return (CancelOperation);
                           }                      
                          
                        }
                        catch(e)
                        {
                           throw (e);
                        }

//PERIOD
var strperiod;
strperiod=this.GetFieldValue("Working Days Cal");

this.SetFieldValue("Period",strperiod);
//this.ActivateField("Working Days Cal");                       
                       
            return (ContinueOperation);
}

Description: Disables New button for Contact types other than "Veterinarian"

function WebApplet_PreCanInvokeMethod (MethodName, &CanInvoke)
{
            try
            {
                        if(MethodName=="NewRecord")
                           if(this.BusComp().ParentBusComp().Name()=="Pharma Professional Call")
                             if(this.BusComp().ParentBusComp().GetFieldValue("Professional Type")==TheApplication().InvokeMethod("LookupValue","CONTACT_TYPE","Veterinarian") &&  this.BusComp().ParentBusComp().GetFieldValue("Contact Status")==TheApplication().InvokeMethod("LookupValue","CONTACT_STATUS","Active"))  

, this.BusComp().ParentBusComp().GetFieldValue("Professional Type")=="Veterinarian" // comment line
                                                {return (ContinueOperation);}
                                                else{
                                                            CanInvoke="FALSE";
                                                            return (CancelOperation);
                                                }
                                   
                        return (ContinueOperation);
            }
            catch(e)
            {
                        throw(e);
            }
}


Description: Adding Contact Names and Owner fields to the comments field in the
                        activities screen

 Field                           column
COMMENTS                 COMMENTS
COMMENTS1               <ABC>
Emp+users+abc=comments1


 Function BusComp_PreWriteRecord()
{
            var Comment;               var FirstName;
            var Description1;           var LastName;
            var OwnerId;                  var uFirstName;
            var uLastName;             var cFirstName;
            var cLastName;             var sString;
            var arrUser = new Array();

            var BO=TheApplication().ActiveBucObject();
            var BC=BO.GetBusComp(“Action”);
           
            OwnerId=BC.GetFieldValue(“Primary Owner Id”);
            Comment=BC.GetFieldValue(”Comment”);
            FirstName=BC.GetFieldValue(“Owner First Name”);
            LastName=BC.GetFieldValue(“Owner Last Name”);
            BC.ActivateField(“Primary Owner Id”);
BC.ActivateField(“Comment”);
            BC.ActivateField(“Owner First Name”);
            BC.ActivateField(“Owner Last Name”);

Var uMBC=BC.GetMVGBusComp(“Owned By”);
uFirstName=uMBC.GetFieldValue(“First Name”);
uLastName=uMBC.GetFieldValue(“Last Name”);
uMBC.ActivateField(“First Name”);
uMBC.ActivateField(“Last Name”);

with(uMBC)
            {
                        ActivateField(“First Name”);
                        ActivateField(“Last Name”);
                        ClearToQuery();
                        ExecuteQuery();
                        Count=FirstRecord();
                        While(count)
                        {
                                    I=GetFieldValue(“First Name”);
                                    J=GetFieldValue(“Last Name”);
                                    S1=s1+i+j;
                                    Count=NextRecord();    
                        }//while
            }//with
Sfinal=”users::”+s;
with(MBC)
            {
                        ActivateField(“First Name”);
                        ActivateField(“Last Name”);
                        ClearToQuery();
                        ExecuteQuery();
                        Count=FirstRecord();
                        While(count)
                        {
                                    I=GetFieldValue(“First Name”);
                                    J=GetFieldValue(“Last Name”);
                                    S2=S2+i+j;
                                    Count=NextRecord();    
                        }//while
            }//with
Sfinal2=”contacts::”+S2;
Sfinal=” ”;
Sfinal=Sfinal1+Sfinal2+comment1;
BC.SetFieldValue(“comments”,Sfinal);
}//main
           

Description: Sending you the code which we will be using to implement the validation on actual date.

if (TheApplication().GetProfileAttr("Amgen Application Name")=="MedTracker")
            {
                        this.ActivateField("Amgen Submission Cycle");
                        this.ActivateField("Actual Date");
                        var sSubCycle = this.GetFieldValue("Amgen Submission Cycle");
                        var sActualDt = this.GetFieldValue("Actual Date");
                        var sActualParseDate = Date.parse(sActualDt);
                        var sLastCycle = sSubCycle - 1;
                        var sPrevActualDt;
                        var sPrevActualParseDate;
                        var iHandle;
                        with(oBC)
                        {
                                    ClearToQuery();
                                    SetSearchSpec("Amgen Submission Cycle",sLastCycle);
                                    ExecuteQuery();           
                                    iHandle = FirstRecord();
                                    while(iHandle)
                                    {
                                                sPrevActualDt = GetFieldValue("Actual Date");
                                                sPrevActualParseDate = Date.parse(sPrevActualDt);
                                                if (sActualParseDate < sPrevActualParseDate)
                                                {
                                                            TheApplication().RaiseErrorText("The Actual Date entered should be greater than the latest actual date.");
                                                            return (CancelOperation);
                                                }
                                                else
                                                            iHandle = NextRecord();
                                    } // End of WHILE loop.
                        }
            }

Server Script in Account Formulary Affiliation BusComp

function BusComp_PreSetFieldValue (FieldName, FieldValue)
{
            var RetVal;
            var sAccntId;
            var sSupplierId;
            var sProdId;
           
            var ActiveBO = TheApplication().GetBusObject("Account");
            var oBusComp = ActiveBO.GetBusComp("Account Formulary Affiliation");
           
            sAccntId = this.GetFieldValue("Accnt Id");
            sSupplierId = this.GetFieldValue("Supplier Id");
                       
            var searchst = "[Accnt Id] = '" + sAccntId + "' AND [Supplier Id] = '" + sSupplierId + "'";
                                   
            with(oBusComp)
            {
                        ActivateField("Accnt Id");
                        ActivateField("Supplier Id");
                        SetViewMode(AllView);
                        ClearToQuery();
                        SetSearchExpr(searchst);
                        ExecuteQuery();
           
                                    if (FirstRecord())
                                    {
                                                RetVal = CancelOperation;
                                                TheApplication().RaiseErrorText("Formulary Already Exists. Please use a different Formulary");
                                                return (CancelOperation);
                                    }
                                    else     
                                    {
                                                RetVal = ContinueOperation;
                                    }
            }

            return(RetVal);
}

Server Script in Formulary Account Affiliation BusComp

function BusComp_PreSetFieldValue (FieldName, FieldValue)
{
            var RetVal;
            var sAccntId;
            var sSupplierId;
            var sProdId;
           
            var ActiveBO = TheApplication().GetBusObject("Formulary");
            var oBusComp = ActiveBO.GetBusComp("Formulary Account Affiliation");
           
            sAccntId = this.GetFieldValue("Accnt Id");
            sSupplierId = this.GetFieldValue("Supplier Id");
                       
            var searchst = "[Accnt Id] = '" + sAccntId + "' AND [Supplier Id] = '" + sSupplierId + "'";
                                   
            with(oBusComp)
            {
                        ActivateField("Accnt Id");
                        ActivateField("Supplier Id");
                        SetViewMode(AllView);
                        ClearToQuery();
                        SetSearchExpr(searchst);
                        ExecuteQuery();
           
                                    if (FirstRecord())
                                    {
                                                RetVal = CancelOperation;
                                                TheApplication().RaiseErrorText("Account Already Exists. Please use a different Account");
                                                return (CancelOperation);
                                    }
                                    else     
                                    {
                                                RetVal = ContinueOperation;
                                    }
            }

            return(RetVal);
}






script to change child record based on parent field value

function BusComp_PreWriteRecord ()
{
           
            var oBusObject = TheApplication().ActiveBusObject();
            var        oBusComp   = oBusObject.GetBusComp("Sales Assessment");
            var        oParentBusComp   = oBusObject.GetBusComp("Contact");
           
            oBusComp.ActivateField("PfizerACE Sensitive Record");
                       
            oParentBusComp.ActivateField("Sensitive Customer Flag");
            var sParentSensitiveFlg = oParentBusComp.GetFieldValue("Sensitive Customer Flag");
           
                                    if(sParentSensitiveFlg=="Y")
                                    {
                                                oBusComp.SetFieldValue("PfizerACE Sensitive Record","Sensitive");
                                    }
                                    else
                                    {
                                                oBusComp.SetFieldValue("PfizerACE Sensitive Record","Non Sensitive");
                                    }
            return (ContinueOperation);
}


script to disable drilldowns based on some values

function WebApplet_PreInvokeMethod (MethodName)
{
            var BO = TheApplication().ActiveBusObject();
            var BC = BO.GetBusComp("Contact");
           
            BC.ActivateField("PfizerACE Protect Owner Flag");
            BC.ActivateField("Sensitive Customer Flag");
           
            var sNonOwner = BC.GetFieldValue("PfizerACE Protect Owner Flag");
            var sSensitive = BC.GetFieldValue("Sensitive Customer Flag");
           
            if (MethodName == "Drilldown")
            {
        //Drilldown not possible for Non Owner and Sensitive Customer 
        if (sNonOwner == "Y" && sSensitive == "Y")
        {
            TheApplication().RaiseErrorText("Drilldown not allowed for Sensitive Customer.");
                            return (CancelOperation);
            }
            }
   return (ContinueOperation);
Script To generate OK CANCEL buttons in the UI

function Applet_PreInvokeMethod (name, inputPropSet)
{

            if(name=="Test")
            {
                        if(confirm("Are you sure...?"))
                        {
                                    alert("OK Button");
                        }
                        else
                        {
                                    alert("CANCEl Button");
                        }
                        return ("CancelOperation");
            }
            else
                        return ("ContinueOperation");
}



A complex search specification

Search Spec:

(EXISTS([Sales Rep]=LoginName()) AND ([PfizerACE Sensitive Record]="Sensitive" OR [PfizerACE Sensitive Record]="Non Sensitive")) OR (EXISTS([Sales Rep]<>LoginName()) AND [PfizerACE Sensitive Record]="Non Sensitive")


function WebApplet_PreCanInvokeMethod (MethodName, &CanInvoke)
{                      
            if (MethodName == "MyMethod")
            {
                        CanInvoke="TRUE";
                        return(CancelOperation);
            }          
            else
            {
                        return(ContinueOperation);
            }
}
---------------------------------------------------------------------------------------
function WebApplet_PreInvokeMethod (MethodName)
{          
            if (MethodName == "MyMethod")
            {
            var oBusObject = TheApplication().ActiveBusObject();
            var oBusComp = oBusObject.GetBusComp("Admin Query List");
            var FieldName = oBusComp.GetFieldValue("Business Object");
            var WshShell = COMCreateObject("WScript.Shell");
            WshShell.Popup("My Custom Method was called. Here is the ID :" + FieldName );                                              
                        switch (FieldName)
                        {
                                    case "Account":
                                    {
                                                with (oBusComp)
                                                            {
                                                            SetViewMode(AllView);
                                                            ClearToQuery();
                                                            ExecuteQuery();
                                                            }
                                    //TheApplication().GotoView("All Account List View",oBusObject);
                                                TheApplication().GotoView("All Account List View");
                                                            return (CancelOperation);
                                                            break;
                                                }                                              
                                                case "Contact":
                                                {
                                                            with (oBusComp)
                                                                        {
                                                                        SetViewMode(AllView);
                                                                        ClearToQuery();
                                                                        ExecuteQuery();
                                                                        }
                                                //TheApplication().GotoView("Visible Contact List View",oBusObject);
                                                            TheApplication().GotoView("Visible Contact List View");
                                                            return (CancelOperation);
                                                            break;
                                                }                                  
                                    }
            }
            else
            {          
            return (ContinueOperation);
            }          
}




















SIEBEL
Interview Questions and Answers

1.      What is detailed category in configuration, and its use?
ANS.      In an application, we see a page tab let say Account. Below that we have let say My/My Teams/All Accounts. Each has a form applet showing account name, address etc. Related to this we have several tabs like account address, account profile…clicking on which show us accounts detail in that specific area.
So the Account is Aggregate category. My /my teams/all is Aggregate View…These tabs which will show details of Account is Detail Category. So any child object of an aggregate category showing details of an entity is Aggregate category
2.      How will you do validations in escripts and in configuration?
ANS.   In Tools select the object definition, right click and select validate. this is used to check the correctness of values of a particular object before going to store.
in escripting, once we write script then we can do validation by check syntax option.
3.  Siebel 7.7 How do you add Button Icon in an Applet? Like New,Query,Delete.I want          Activate Button also .
ANS. You can add those buttons by creating controls under that applet
and specifying a method name under that.
you can get a Dropdown box for method Name and select from that..
4.    What is difference between s_opty_x and s_opty_xm tables.
      ANS.             s_opty is a base table for which
 s_opty_x is an extension table with 1:1 relationship
 s_opty_xm is an extension table with 1:M relationship
                                                                                                      .
5. What difference between join specification and join definition?
ANS       "Join" object specifies the table name and "Join Specification" object specifies the Primary Key Foreign     Key relationship
.

6. What is force active property?
ANS.      Force Active property for a field makes it accessible in scripting even if it is not in UI.

7. What is Symbolic URL in Siebel.
ANS.       Symbolic URL allow you to configure Portal Agents in several ways. You use Symbolic URL Arguments for two purposes, to define data to be sent to an external host and to submit commands to SWE that affect the behavior of Portal Agents.

8. What value will get stored in the database when a field has both predefault value and post default value

ANS.     Answer is Predefault Value.
Explanation: When user clicks the new record button,predefault value will get populated in that field, post default value will get stored only when user doesn’t type any value in the field and saves the record. Since already value has been populated by predefault property, it will get stored in the database
9. Difference between LOV and Picklist??
ANS.    LOV is to store the values for the picklist  in the application admin and where as picklist is used to select the value from the list of values
10. How to run Genbscript.exe?
ANS.     The syntax for running genbscript is:
When you run genbscript.exe, all browser scripts in the repository are generated. They are placed in a directory that you specify using the destination directory parameter (dest_dir). The genbscript.exe utility is located in:
siebsrv_root/bin or client_root/bin
genbscript config_file dest_dir [language]
For example:
genbscript c:\sea15022\client\bin\enu\uagent.cfg c:\sea15022\client\public\enu enu
11. What is Detail Applet and Association Applet?
 ANS.    Detail applet is nothing but Form Applet, Association applet is used to implement M:M relationship.
            OR
Detail applet word is used in the context, when there is a Master Detail relation. in this case there will be one master and many child records. so, we usually show these child records in list applet and not in form applet
12. What is the difference between MVG applet And a pick Applet?
Ans.MVG is nothing but to display the child records for the parent table ,and for pick applet to update join fields
                                                           OR
Pick applet is used when there is 1:1 relationship and MVG is used when there is 1:M r/n.
                                                              OR

pick applet is used for M:1 relationships. basically we use pick applet to change the stamping of the
foreign key in the base table by picking a different record other than existing (modifying join column).

13.what is applet toggle how many types are there?
Ans. Applet toggle identifies one or more alternate applets to use in displaying the data of a business component. They are 2 types static and dynamic

14. How to call external webpage from Siebel application

ans. 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
 15. what is the maximum number of applets can be there in a view
ans. There can be eight applets at most.
                       OR
          8 is max and that also depends on the web template you are using
                       OR
      There can be eight applets at most in Siebel6.
         There can be 16 applets at most in Siebel7.7
16.whats the difference between siebel 7.5 and 7.8? if we upgrade the application to 7.8from 7.5 what are the areas we need to give importance from QA(Testing) point of view?
ANS.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
         OR
Siebel 7.8 is different from version 7.5 in many ways. some of them are;
1. Product Configurator. This was one of the major changes in Siebel 7.8 , now versioning of the products is supported and same product can have multiple versions available. only one version is active at a time.
17.         What is the use of the indirect multivalue link and how do you configure it?              

ANS.consider there are 3 bus comps. in that say there is no relation ship between the 1st and 2nd bus 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.
18.         How do you display the no. of records in a picklist(combo box/drop down) not the records in the pickapplet, in just 3 rows and not 5 rows(which is the default)?
ANS. Set the HTML no of rows to 3
19.         How do you import LOV\'s
ANS. With regard to my question above, please specify how we can import data without EIM.  Is it possible to do it using siebel tool/client?
                                OR
Without EIM cannot importing the data it’s by the siebel tool.
                                  OR
we can use siebel VB scripting
insert method
                                OR
You can export LOVs using Application Deployment Manager.
20.         What is Seibel Admin Mode View? How to create one?
ANS.  Admin Mode View is nothing but, it has Admin Mode Property set to true. It will override all the  visibility rules
21.What is Siebel Admin Mode View? How to Create this?
ANS. Admin Mode property set to TRUE in View object definition.
Admin Mode view overrides the property of Business component. This view allow the user to do update, insert, and delete etc. which may not be available in other view of same BC. Because admin mode view overrides the No update, No insert ,No delete BC property. used for administration purpose
21.         What is the purpose of 1:M extended table?
        ANS. 1. we can use it in parent child relationship where the child entity is lonely related to the parent table.
2. or we can make it as a intersection table by adding the foreign key of another table's primary key in the 1:M extended table
22.         What is Siebel Gateway?
ANS.        Siebel Gateway is the name server which controls the Enterprise Server.
23.         How can you do the data cleansing in EIM?
ANS.        EIM Does not support data cleansing
24.         How can you resolve Foreign Key in EIM?
ANS.   Populate all User key columns which will resolve foreign key. still u have doubt let me know
25.         What is the use of Item Identifier.
ANS.        with regard to control properties in applet it identifies, how to move through tab button.
                                     OR
                 by this property we can arrange/change the order of the page tab/view tab
                                          OR
nope.. it’s an ID of control tag in the applet.. but for the tab sequence its HTML sequence Property
Note: it’s as per 7.7 version.
NBV
26.         what is the use of LDAP user ?
ANS  It is used as a third party authentication for an end user which can be modified to have a single sign on to multiple application apart from Siebel.
27.         Where does the Primary Field of an MVG stored?
ANS.      Primary Id Field will be stored in the Parent BC.
28.         What is the difference between Links and Multi Value links?
ANS. 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.
                               OR
   I want to have some real time business scenarios for my project....can anyone provide me
29.         What is foreign key table in Siebel?
ANS.  foreign key table is the property for a column in the table. it specifies for a column from which table this reference has been came
                          OR
    This is one of the properties of the column in a table. It specifies the table to which this column is a foreign key
30.         Why do you need Primary in MVG?
ANS.    for a multivalue field there is a field called SSA Primary Field available in the parent BC. this field stores the primary child. which avoids querying on the child BC for displaying the value in the MVG. this is for performance improvision. this creates 1:1 Link.
                              OR
    Multi value group applet is a dialog box which displays and maintains a set of records from another BC associated with currently displayed BC record. One record in the MVG applet is made primary. The record with primary check box ticked is the one which gets displayed in the originating applet controls.
                                  OR
A Primary creates a M:1 relationship b/w the Parent and the Child record.
Thus it increases the performance by allowing a single query using the SQL join to display both the Parent and the Child records in parent Applet.
Without primaries, each MVG needs a separate query to display a child record in the parent Applet. With Primary, using a single query, you will be able to display both the parent and the child records.
31.         when do we use genbscript.exe?
ANS     it creates the class files for the JavaScript (browser scripts).
                           OR
            Whenever we make changes to the UI level...it is advisable to run genbscript.exe
                                   OR
  genbscript stands for generate browser script. genbscript is used to generate browser scripts from command line interface
32.         If a view has Admin Mode Property = TruthenwhatwillhappentoUserProperties we write on them
ANS.     If a view has adminmode property true then The administrator see all the views---------mani
                                           OR
               The User Properties won't work for that view.
                                                OR
                      That’s Right , I don’t think it will work practically in 7.7, I set true read only field at applet level and I tried at bc level also but , the out put which I’m expecting is coming .
IF any body can help me out , I will be thankful
Krishna
                                                    OR
                    When a view has its Admin Mode Flag property set to TRUE, it over-rides the Read-Only properties set at the Business Component level only, and not at the applet level
33.         When do you use "CanInvoke(False/True)" method in scripting.
ANS. We use it before invoking a method in PreCanInvoke Event and verify a condition. Based on the result, we can make the method Invoke =True/False. It is just like validating a condition before invoking the method.
                                  OR
To enable/disable the menu items and buttons on the applet if the required condition is met
34.         When do you use Property Sets in Siebel

ANS.         Property Sets are the Hierarchical structures of Variable Names and Values. These Property Sets can be used in Workflow processes Parameters or for any input or output Parameters in scripting.
Ex: var input = TheApplication().NewPropertySet();
     var output = TheApplication().NewPropertySet();
after this we can store sets of Variables and their values.
35.         What is Client Business Service?
ANS.         We can see the Business Services Client also. These are called Client Business Services we can see them in Business Service Administration Screens. We can write the script for the BS in the client itself. After writing the BS there is no need to compile those BS's.
36.         When do we go for Dynamic PickList and for Pick Applet?
ANS.   We go for Dynamic Picklists When we want to update joins( as normally joins are not updatable). We go for a pick applet when we choose a dynamic picklist. Pickapplets help you that the whole list applet of the Bc whose field is joined to the parent. Where as in static picklist you can only choose from predefined values but can’t update with any other values.
37.         what is eapps.cfg file. and what is its significance.
ANS. eapps.cfg file means swse.
This significance is which application should point to which object manager
               OR
eapps.cfg is the single configuration file for all siebel applications. It contains configuration information, login and security settings. It contains connect string for each siebel application
38.         is it possible to have multiple database servers for one gateway server.
ANS.      YES, But it needs multiple enterprise servers, for multiple database. As not more than one database, could be added to an enterprise server, these intern could be connected to a single Gateway Server
39.         what is the function of SWSE on the Web Server? what is it?
ANS. 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
40.What is the "Parent Category" property for a Screen View?
ANS.   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
40.         what is horizontal and vertical in siebel?
ANS. Siebel Horizontal application is general to every industry. where as Vertical is specific to a industry. such as eAutomobile, eInsurance, eBanking etc.
                                              OR
These are the types of applications. Example for Horizontal applications is transport. Here are examples for vertical applications are Eservice Call center application etc.
41.Why do we use Symbolic Strings in Siebel 77
ANS. For up gradation and language conversions.....
                          OR
   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 field. This model of keeping 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 inconsistencies.
41.         How do you specify a view to be displayed as aggregate view in Siebel 7.7
ANS. when add the View to the Screen you have a property called Type in which, you have to select "Aggregate View".
                                     OR
            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.
42.         When you have Pre Default Value and Post Default value for a Field, which one will be stored in the Database
ANS.          Please tell me how to add questions in latest Questions at home page
                                         OR
                 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. You can add questions by clicking the hyperlink on the above bar "Ask Question".
43.         What is All Mode Sort?
ANS.        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-usesBCdefinedsortspecificationTrue --Overrides the BC sort and Uses theU1index  False - Removes all sorting
44.         What does Business Component User Mode indicate
ANS.           Business Component User Mode specifies the Visibility setting for the BC. Like "All", "Personal", "Manager", "Organization
45.         what is the link specification
ANS. To predefault parent bc field in any of his child bc, this property must be set to true.
                             OR
           Link spec uses parent type default values & gets the value for the child record
46.         What is the difference between "PickList Generic" and "PickList Hierarchical" Business components?
ANS. PickList Generic" BC is used for Static Picklists. "PickList Hierarchical" is used for Hierarchical PickLists
47.         What is an extension table and how is it related to base table?
ANS.         Extension table may be 1:1 relation 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_idwillbetheforiegnkey.
                                       OR
   Extension tables are 1:1 or 1:M extensions of Base tables, like S_PARTY (base) has S_CONTACT etc. For  a 1:1 extension there is implicit join but for a 1:M extension. You can only extend a base table. For 1:1 there is a PAR_ROW_ID to ROW_ID join and for a 1:M there is 3 different columns that represents a unique record. 
48.         What are Pre defined Queries?
ANS.   if anyone has worked on the siebel application they will understand this more easily.
assume that u have enabled call center in your siebel application and once u login to this application and then click on various link in the application, we find at the top right hand corner a list box of some statements. these statements are called pre-defined queries, which will help the customer in accessing the records faster this reducing the interaction of the business component with the database.
                               OR
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
                                      OR
        Custom Queries that are relevant to your business,
Sitemap>Application Administration>Pre Defined Queries> Query on object, Name and the Query itself (SQL
49.         How do you assign responsibilities to employees in Siebel?
ANS.    In Administration Group > Employee there is a field called Responsibility there add your new Responsibility, make as Primary and remove the old one
                                OR
  Go To Sitemap->UserAdministration->Employees
In the Employee Applet Query for the required Employee and there in u will find a Responsibility field just click that to find the required responsibility and add it. If required set it to primary.
                                       OR
Go To SiteMap->UserAdministration->Employees
In the Employee Applet Query for the required Employee and there in u will find a Responsibility field just click that to find the required responsibility and add it. If required set it to primary
50.         How do you set up employees in Siebel?
ANS. Create the users first, then assign them some responsibility and position. then create the database login
                          OR
      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 Organization the Data visibility is maintained through this position and the Responsibility of the user.
51.         What is the difference between an organization and division in Siebel
ANS. These are the hierarchical levels in the siebel, under organization the divisions will come
                OR
              Organizations can be used to control data visibility, Divisions cannot
                      OR
        Organizations can be used to control data visibility, Divisions cannot. Divisions can be used to set Default Currencies
                      OR
. An organization is divided into several divisions according to the organization set up. If your enquiry requires more specific information mail me to this address rajaspdbjc@yahoo.co.in
52.         what is the difference between Join and Link?
ANS.       Join:
(i)It defines M:1 relation between a field in BC to the Column in table.
(ii)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.
                               OR
        JOIN: gives relationship between two tables. LINK: Gives relationship between two BCs.in link child Bc is included under parent Business Object
                                       OR
     Join is between BC and table and is used to retrieve no or atmost one record. where Link is between two BC's which will retrieve more than one record for a parent record
53.         What is the difference between EIM and EAI?
ANS.   EIM : is used for importing or deleting the large data
EAI : is used to integrate the Applications
                                   OR
  EIM : It is batch mode Integration. When data volume is large then we have to go to EIM
EAI : It is real time Integration. When data volume is small then we have to go to EAI
                                      OR
     EAI: is used when there are frequent changes in the database. Also when the data is small.
EIM:  is used when there is large data(eg. at the time of implementation) .also when There is no need of real-time-feeds.
54.         How do you import List of Values?
ANS.  Depends on any Hierarchies, but using EIM_LST_OF_VAL(for EIM load) import parents first then children, otherwise you will receive failure message.
55.         When do we go for BC level user properties
 ANS: when we need to set or reset the properties at runtime
56.         What is implied Join. Where do we find it ?
ANS. Join between two Tables. Join Object defines The Relationship Between
a Bc and a table. Join allows Bc to get Column from table rather then base table.
In Mvg Applet we can find the join, It uses Foreign key to get the Row.
                                    OR
            Implied joins are between Base Table and Extended Table. These are typical 1:1 joins. There is no need to create explicit join objects for them. If you go to the Flat Tab in Object Explorer, all the joins which have the alias name same as the table name are Implied Joins.
                               OR
   Implied joins are also called implicit joins. Its a join existing b/w a Base table and its extension table.
57.         How do you recognize that a particular table (Base table ) can be extended?
ANS. If the table property is Private, then we can not extend the table. If it is Public, we can.
58.         What are the different types of Columns.
ANS. Columns: 1.Data (Public), 2.Data (Private), 3.Denormalized, 4.Extension, 5.System
59.         what are different types of Tables?
ANS.  Base Tables and Interface Tables
              OR
       3 type of tables:
Data , Repository & EIM tables
OR
There are 4 types of tables in siebel
1) Base Table (Ex: s_contact, s_user)
2) Extension table ( Ex: s_contact_x)
3) EIM tables
4) Intersection Tables (Ex: s_org_bu)
    OR
a. data tables
      1. base tables
         
b. repository tables
c. interface tables
60.         How many type of siebel Data model extensions are there?
ANS.   standard and custom extensions
61.         What is the difference between Master- detail view and MVG.
ANS.   master detail view displays the parent and child applets. this is the different view. with MVG, we can see the child records without going for another view. this will be achieved by MVG applet.
                                        OR
                       Following are the main advantages:-
1) MVG Makes effective use of the space.
2) Multiple set of detail records can be viewed from a single view
                                     OR
Master-detail view displays the child records in different applet for a given parent record, where MVG displays the child record(s) in the same applet.
62.         What does position represents in Siebel?
ANS. In siebel, Based on the position of the employee, the records will be displayed
                              OR
                Position determines which records can be accessed by which users.
This is in contrast to Responsibility, which gives View Access.
                                  OR
Responsibility gives access to views, where as position gives access to data in those views.
63.         What happens if you create an employee in Siebel application and forget to create
ANS.    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.
64.         What is Virtual BC?what is the use of vbc?
ANS. Vbc are mainly used to load data in siebel database from external source
                         OR
              Virtual Business Component is used to display the data from another Legacy database table, in the Siebel screen.
                                            OR
       If we want to show data in the applet from other than siebel data base we use VBC.
65.         How is load balancing maintained in Siebel?
ANS.  Image Cache is the component in Web Server that reduces load on Siebel Servers and file system
                                OR
            Load balancing is maintained by the Gateway server using the third party software Resonate Central Dispatch.
                                         OR
         in 7.5 its achieved with resonate. In 7.7 and above it is only achieved by Siebel for web client requests through a round robin mechanism. This uses a load balance config file that defines the app servers for a specific server alias. The alias are represented in the eapps.cfg file in place of physical server/gateway names. Multiple aliases may be present in the load balance config file and be used to accomplish different load balance scenarios for different object manager urls.
66.         Is it required to install gateway server before installing a Siebel server?
ANS. Yes, Because one Gateway Server can have multiple Siebel Servers
67.         What does install.ksh and imprep.ksh files do?
ANS. 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.
68.         What is seed data in Siebel?
ANS. Data created in the Siebel database during Siebel application installation Process. 
                  OR
            The data that siebel supplies as a part of siebel vanilla application is seed data.
                   OR
  Data which is loaded during Siebel installation is called Seed data.
                 OR
it is siebel supplied data means from vanila application
69.         How is Siebel 7.x data model is different from Siebel 6.0 data model?
ANS. The main differnece is the S_PARTY Table is introduced in Siebel 7.x data model
                            OR
          S_PARTY is the base tables and S_CONTACT,S_ORG_EXT,S_POSTN, S_USER are now extension tables. Siebel 6.x was dedicated application while from Siebel 7.x onwards we can access Siebel application via web.
70.         How does your b/c and view related?
ANS: View contains applets which are related to b/c. Collection of b/cs is b/o.
                                 OR
           Views contain Applets.
Applets are based on Business Components.
One view can have several applets. Each applet will be based on only one Business Component.
71.         How is tools architecture constructed in Siebel?
ANS. In siebel tools Type gives parent child relationship and Flat displays all the siebel objects
and Detail gives all the records in object
72.         How do you control visibility in Siebel?
ANS. From the developers and administrators perspective you have to assign views, responsibilities for particular position. For applet level visibility , we can change the boolean value in applet -> controls.
                             OR
           visibility will be controlled by Position and Responsibility in Siebel. Position dictates the Data level visibility and the Responsibility dictates the view level visibility.
                                    OR
how do you implement data level visibility using positions
                           OR
 The following components determine the data within a view to which a user has access.
                      Business component view mode.       A view can have several applets—lists, forms, or trees. Each applet is based on a business component. The business component's view mode determines the allowable parties on which access control can be based for that business component. The business component's view modes also determine how the association with the party will be determined, for example "owned by" or "created by."
                     Applet visibility properties.
                     View visibility properties.

The following fields in the BusComp View Modes list in Siebel Tools determine allowable visibility for a business component.
  • Owner Type. This field specifies the party type, with one exception (described in the following list), that is used to determine whether a user is associated with a record. The allowable owner types are:
    • Person. Access control can be based on the user's Person record.
    • Position. Access control can be based on the position of the user.
    • Organization. Access control can be based on the organization of the user, as determined by the organization to which the user's current position belongs.
    • Group.
    • Catalog Category.
73.         What do you mean by virtual business comp. in Siebel?
ANS. A  BC which is not Based on any Siebel Base Tables and which get data data from other external systems instead of getting data from underlying siebel Base table
74.         What is Resonate?
ANS. Resonate is third party software development tool, which is used for distributing the client request to the least laden siebel server
                  OR
Resonate is a third party software tool. which, balances the load among the Siebel servers by priority wise or classification.
75.         What is s_party table?
ANS.   Release 7.x introduces the concept of a party table (S_PARTY), in which all persons and organizational units are held. With the new model, Accounts, Organizations, Internal Divisions, Contacts, Employees, Positions, and Households are all considered parties and can be referenced from the same table, S_PARTY.
                         OR
It is a base table for all party entities, now the s-org_ext,s_contact becomes the extension tables for s_party
                                    OR
s_party table is base table for all person and organization related base table. for example s_org_ext is the extension table of s_party. s_contact is the extension table of s_party.
                                 OR
S_PARTY Table is the Base Table for all the Party related tables.
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.
76.         What is Siebel file system?
ANS. It is a shared directory that stores compressed files used by Siebel applications. Examples:Productliterature,salestools,presentations Read/write access is controlled by the File System Manager component on Siebel Server. 
77.         What is the new layer in Siebel 7.x version?
ANS.  Physical User Interface Layer
78.         Why is it not recommended to modify existing base tables?
ANS. During up gradation it will cause problem if we extend base tables. More over if it is necessary u can go for extension tables
                             OR
modifying base tables would affect the performance of the siebel application
79.         the employee in the database?
ANS. the employee details will be stored in contact (his personal information), employee (his position, organization) and user (his user ID, password and other details) entities.
80.Why do you need to create employees at the database in Siebel?
ANS. To enable the employee to connect to the database using the Application and have database access, the user corresponding to that employee should be created in the Database.
80.         What is position type field in position applet?
ANS. Position type field is a picklist in position applet
81.         What does an opportunity, account contact do in Siebel?
ANS. In siebel, opportunity account and contact are the business entities. and these entities have relationships for example one account has many opportunity etc., the relationships are one to one or one to many, many to many. These business entities are very essential to configure siebel application.
If your enquiry needs more specific answer your can contact me at rajaspdbjc@yahoo.co.in
82.         How is the opportunity related to an account?
ANS. the relationship between account to oppty
is 1:m
                    OR
            opportunity to account M:1 and account to opportunity 1:M

83.         What is the relationship between a view and a b/o?
ANS. View references the business object. Every view is associated with a particular business object.
84.         How do you create extension table to an interface table in Siebel?
ANS. Extension tables are created only for base tables. I think we can not extend the interface table.
85.         Can you create an extension table with an intersection table
ANS. We can not create an extension table with an intersection table 
86.         How do you create intersection table?
ANS. In Tools select new object wizard in that select Table enter the name of the table starting with CX_ and select the project and specify the type of table i.e. an intersection table for the two existing tables
Then it will ask the first Parent Table and foreign key column name for the first parent table in the same way fill the second parent table and FK column.
87.         What is name server? What does it do?
ANS. Gateway server is name server. It acts as a single entry point for assessing enterprise server. Dynamically registers siebel server and connection brokering. Stored in sibens.dat file in a shared document.
                                       OR
        Name server is the part of gateway server that dynamically registers all servers in enterprise, serves a connection broker across the enterprise.
88.         How is Siebel 7.x architecture different from Siebel 6.x? How is Siebel 7.x architecture different from Siebel 6.x?
ANS. In siebel 7.x it was defined as 1.Physical user interface2.Logical user interface3.Business layer4.Data layer5.Third party RDBMS The main difference is , In siebel 6.x Physical interface was not achieved. In Physical Interface includes web templates, cuss sheets
89.         How will you improve your performance in views?
ANS. we can improve the performance by the picklists in a view
                OR
       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.
90.         How will you edit the joined fields values in join?
ANS. Configure picklist to edit value in joined field.
                                     OR
               Using picklists and MVGs. MVGs require join field and link as prerequisites unlike picklists where just a join is enough.
                                 OR
Using picklists and MVGs. MVGs require join field and link as prerequisites unlike picklists where just a join is enough.
91.         What is constrainted picklist? Where you will drop the constraints?
ANS. Constrainted picklist displayed value based on constraint 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.
92.         What is the use of catch in escript?
ANS. 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()));
}                                   
                                       REALTIME QUESTIONS
1.       When i run load runner scirpt of Siebel application we are getting Siebel_row_id error.

please let me know how to solve this issues.
ANS. Scan action correlation can resolve you problem .
Each Time you run the application the server will create new session id
2.       what is link specification
ANS. The field value passed as the default value to  the child business component when the link spec is specified
3.       What is the primary difference between Siebel 7.5.2 and 7.7 Versions ?
ANS. We 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 up gradation like things are high in siebel 7.7.
                                           OR
        The other diff is Workflow has been shifted to Tools so has become a part of srf.
                                          OR
          what is functionality of symbolic strings
4.       In i view I have two applets(List and Form)When i change any record in List Applet immediately Form Applet should become blank. How it is possible? Plz Explain thru Configuration and Script
ANS. When you create the Applets(list and Form) based on single(same) BC, you have to configure which fields you want to display in that applet. That fields only display in that applet.
      If you display one field in both List and form applet means when you enter value in list applet that will automatically display in form applet.
5.       what is different between bounded and unbounded picklist?
ANS. We can enter free text incase of Unbounded Picklist. But, incase of Bounded Picklist, we can not enter free text.
                           OR
                   We can enter free text incase of Unbounded Picklist. But, incase of Bounded Picklist, we can not enter free text.
6.       Optimization techniques in EIM
ANS. ) 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  
7.       what is siebm
 ANS.    siebmtsh.exe is a process created when you bring up siebel servers, depending on the number of object managers that are enabled the number of siebmtsh.exe processes increases.tsh.exe
8.       Dynamic Picklist is used to Update Join Fields? How?
ANS. Actuavally 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
9.       what is Localization?
ANS. Modify the object definitions in the  local repository
10.   What is complex join? Difference with Foreign key Primary Key join?
ANS. 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
                            OR
complex join:- complex join are used in physical layer in between two tables where ever that do not involved primary key and forgin key relationship.
Foregin Key:- by using the forgin key we can define the joins between two tables. joins between is 1:M or M:M. if we want to define many:many relationship we have to use bridge tables.
                             OR
        you mentioned that  PK-FK is always 1-N and  complex joins can have (1-0,1) and (0,1-N).
as per my knowledge i understand that 1-N is one -- many relation .
can you tell me what is these relationships (1-0,1) and (0,1-N)
Thanks..
1-N), whereas complex joins can have (1 - 0,1) and (0,1 - N) kind of relationships
11.   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 creating 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 specialties in the extension table(S_CONTACT_XM) with the parent child relationship.
                                            OR
         In Siebel for the base tables like S_CONTACT suppose you have 3 address for a particular 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. 
12.   I have created Hierarchical Picklist. IN parent all the values are displayed. when the values selected in the parent its displays proper value in the child picklist.
ANS. The search specification for the parent pick list should be "Parent Id is Null".
13.   difference between Fields and single value fields
ANS. multivalue field has the child values from a child BC for the parent record configured through MVL. single value field will be either from the base table or joined table.
                                     OR
can explain you 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.
14.   How can a particular user among four users with same responsibility can have access to particular view and this view should not be visible to other users?
ANS. yes by assigning the position and giving a unique, user id he can access the data
                      OR
              The new views which are to be restricted from the other 3 users can be grouped       up in a separate responsibility and then the 1st user can be assigned that the newly created responsibility. This will save time and will ensure smooth operations as well.
                                   OR
         think this is possible only by scripting. given view's item identifier should be '0'. we need to capture the USERID of the particular user. if that user id matches the login name then we need to change this view's item identifier to any other number other than zero.
this script should be written at application level.
                                OR
          The views can also be restricted by personalization...where all the 4 users will have the same responsibility ...but only a single user can see a specific view.
15.   How we will create Drilldown in Form applet..........Please explain
ANS.  Usually Drilldowns will be in List Applets only. But, in Siebel 6 there are Drilldowns on Form applets also. But, these are not similar to those in List Applets. in order to go to the target view we need to right click on the applet, on the menu shown we can find the available Drilldowns with Title as "Go To XYZ View".
                                    OR
           It is possible through scripting either Siebel VB/ eScript.
16.   What is TPM ?  
ANS.   It is something related to Siebel Trade promotion Management
                                                                  OR
                 TPM = Total Productivity Management. Its a manufacturing term..
17.   What is the difference between MVG & Dynamic PickList?
ANS.   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.
                                                                OR
              MVG---More than one value associated with Single field
              Dynamic Pik list---It drawn value from the BC
1. What is foreign key table in Siebel?
2. Why do you need Primary in MVG?
3. When do we use genbscript.exe?
4. If a view has Admin Mode Property = True, then what will happen to User Properties we write on them.?
5. When do you use "CanInvoke(False/True)" method in scripting.
6. When do you use Property Sets in Siebel.
7. What is Client Business Service?
8. When do we go for Dynamic PickList and for Pick Applet?
9. Pick Applet, Dynamic Picklist: which will be better if performance issue is considered.
10. How do you create the siebel developer client (mobile client)
11. What is eapps.cfg file. and what is its significance.
12. Is it possible to have multiple database servers for one gateway server.
13. What is the function of SWSE on the Web Server? What is it?
14. What is the "Parent Category" property for a Screen View?
15. What is horizontal and vertical in siebel?
16. Why do we use Symbolic Strings in Siebel 77
17. How do you specify a view to be displayed as aggregate view in Siebel 7.7
18. When you have Pre Default Value and Post Default value for a Field, which one will be stored in the Database
19. What is All Mode Sort?
20. What does Business Component User Mode indicate

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.