Wednesday, January 27, 2016

Siebel: Dynamically show/hide a control on applet

The best way to do with configuration is using toggle applet.
The other way is to write browser script to achieve the logic.






Below code can be used to hide a form applet control ('AAA')

var vControl = this.FindControl( "AAA" );
vControl.SetProperty( "Visible", "FALSE" );
vControl.SetLabelProperty( "Visible", "hidden" );


Below code can be used to show a form applet control ('AAA')

var vControl = this.FindControl( "AAA" );
vControl.SetProperty( "Visible", "TRUE" ); 
this.FindActiveXControl( "AAA" ).style.visibility = "visible"; 
vControl.SetLabelProperty( "Visible", "visible" );

add a control user property for the control - 'AAA',  with the name 'useLabelID' (no quotes) and the value: 'TRUE' (no quotes).


Siebel: How a view is displayed in Site Map

Below are the steps to display a view in Site Map:




  1. In siebel tools, navigate to Screens and search for the screen.
  2. navigate to screen view and query for the view.
  3. confirm the property "Display In Site Map" is set to "TRUE".

Siebel: Generate browser scripts using genbscript utility in siebel

genbscript.exe is the utility that is sued to generate browser scripts from the .srf file. This executable is available in the siebsrvr/bin or the client/bin directories.
The syntax to run the command is:

genbscript <application cfg file> <dest directory> [language]






when generating browser scripts on the siebel server, the destination directory should be siebsrvr/WEBMASTER and the cfg file should be from the siebel server like below:

genbscript "c:\siebel80\siebsrvr\bin\ENU\siebel.cfg" c:\siebel80\siebsrvr\WEBMASTER ENU

After executing the genbscript utility, a new folder called <srfxxxxxxxxxx_xxx> is created in the c:\siebel80\siebsrvr\WEBMASTER folder

If deploying to the Mobile Web client, the dest_dir should be client/public/%LANG_CODE% and the config_file should be the appropriate language specific client configuration

genbscript "c:\siebel80\client\bin\ENU\uagent.cfg" "c:\siebel80\client\PUBLIC\enu"

if you are generating browser scripts for non ENU language then the syntax is as below:


genbscript "c:\siebel80\client\bin\FRA\uagent.cfg" "c:\siebel80\client\PUBLIC\fra" "FRA"

after the browser scripts are generated, either bounce the web servers to refresh the files from the siebel server or by Updating Web Server Static Files on the SWSE Using the Web Update Protection Key. more details can be found here

Siebel: How to update web server static files on the SWSE using the Web Update Protection Key

Web Update protection Key is sued by the siebel administrators to update or refresh the static files on the web server like images, css files from the siebel server.
Siebel developers will place the updated versions of these static files in the WEBMASTER sub directory for the siebel server folder. whenever the web server is restarted, it contacts the siebel server and updates them. this can be achieved even without bouncing the web server by issuing the web update protection key. this is particularly useful when we want to refresh the files on multiple web servers.






The value for Web Update protection Key is set during SWSE configuration and is set for the parameter "WebUpdatePassword" in the eapps.cfg file.

hit the below URL to refresh the static files:

http://host:port/application/start.swe?SWECmd=UpdateWebImages&SWEPassword=WebUpdateProtectionKey 

where

  • host = web server machine name
  • port = web server listening port if used
  • application = application used like callcenter_enu, fins_enu etc
  • WebUpdateProtectionKey = unencrypted password defined in eapps.cfg file for the parameter "WebUpdateProtectionKey"

Siebel: Changing hostname for windows server running Siebel 8.x

Below are the detailed steps to change the hostname for a windows environment running Siebel 8.x


  1. Backup siebns.dat, siebel.cfg, eapps.cfg, eaps_sia.cfg and the corresponding application cfg files.
  2. Stop the siebel server.
  3. Navigate to <SIEBSRVR_ROOT>/bin directory in a command prompt.
    1. connect to srvrmgr using the below command:                                                      >srvrmgr /g <GatewayHost> /e <EnterpriseName> /u /p 
    2. Run the below commands to update the Gateway port and the hostname:
      1. change param DSGatewayAddress=:<GatewayPort> for named subsystem ServerDataSrc
      2. change param DSConnectString=:<GatewayPort> for named subsystem GatewayDataSrc
      3. change param Host= for server <ServerName>
    3. you can now verify the changes by issuing the below commands:
      1. list hidden param DSGatewayAddress for named subsystem ServerDataSrc
      2. list param DSConnectString for named subsystem GatewayDataSrc
      3. list parameter HOST for server <ServerName>
  4. You need to remove the Siebel service by running the below command in the command prompt navigating to <SIEBSRVR_ROOT>/bin directory
    1. siebctl -d -S siebsrvr -i "EnterpriseName_SiebelServerName"
  5. Restart the Gateway server.
  6. Recreate the Siebel server service using the below command:
    1. siebctl -h "SIEBSRVR_ROOT" -S siebsrvr -i "EnterpriseName_SiebelServerName" -a -g "-g NewGatewayServerHostname:port -e EnterpriseName -s SiebelServerName -u sadmin" -e Password
  7. update GatewayAddress (gateway_host:port) under [ServerDataSrc] section and ConnectString (gateway_host:port) under [GatewayDataSrc] section in the application cfg file.
  8. change the hostname in eapps.cfg and eapps_sia.cfg files.
  9. Restart the gateway server and start the siebel server.

Monday, January 25, 2016

Siebel: "PRM ANI Utility Service" and Query Business Component Method

This method is used to query for records in a Business component in a Business object irrespective of the links to the primary business component. This searches/queries in the entire business component.
If both searchspec and Query fields are provided, Siebel choses the searchspec.






when using PRM ANI Utility Business service and Query BusComp method, to get the field values for the output record after querying, below is the syntax to be mentioned:

Input Args:

ProcessProperty--Output Field 1
Type--Literal
Value-- Field Name1


ProcessProperty--Output Field 2
Type--Literal
Value-- Field Name2


to collect the values for these 2 fields, we have to create 2 new process properties and mention as below in output args:

Output args:

ProcessProperty--testproperty1
Type--Output Argument
Value-- Field Name1

ProcessProperty--testproperty2
Type--Output Argument
Value-- Field Name2

Siebel: Clear Siebel Datamap cache after changes

After import or changes to Siebel EAI Data maps at Administration - Data Map Editor view, the changes wont reflect automatically as these objects are cached in memory and it has to be refreshed.






Below are options to clear cache:


  1. Restart the component or the Siebel server.
  2. You can navigate to Administration - Webservices > outbound webservices view or Administration - Webservices > inbound webservices view and click on "Clear Cache" button for the current session.
  3. Simulate the Business service or create a workflow with the Business service "EAI Data Transformation Engine" and method "Purge" without any input arguments.

Siebel: Tuning parameters and guidelines to configure Siebel Application Object Manager

The Siebel Object manager (OM) is a Siebel server component which is used to primarily execute sessions for the remotely executed UI client/Web client.

The Siebel Object manager is a multithreaded process, which means one process can execute multiple concurrent threads. When an Siebel OM is started on a Siebel server, an OM task will be automatically started (with status "Handling Requests"). When users start to log in, each user login will create a new task. These user tasks will remain active until the user logs off. All these tasks will be counted towards the MaxTasks parameter.

Multiple OM processes can run on the Siebel server.Multithreaded Server or MT server refers to an OM process, and the term server task refers to a user session being executed by a thread of that process.






The first step to consider is the projected number of concurrent users for the Siebel application. In this case study, there are 1000 concurrent users, assuming an average think time of 30 seconds between user operations. The think time is the idle time when the server or the client is not doing anything; it does not include query time.

To enable object manager think time - 

change param TimedStats=True for comp <OM>
change param DumpStats=True for comp <OM>

Using the Server Manager command line utility,the Siebel Administrator can run the "list statistics" command to calculate the "Average Think Time" for a process. This information is used to calculate the first set of parameters.

MaxTasks = concurrent users + anonymous user pool   [1000+100]

MaxMTServers = MaxTasks / 100   [1100/100 = 11]


Number of Sessions per SISNAPI Connection = 20

For Object Managers that use Product Configurator, the recommended MaxTasks / MaxMTServer ratio is 25.
The same 25 ratio is recommended for eCommunications Object Manager.




MaxTasks

It represents the maximum number of concurrent sessions that can be run on a server at one time.
each MTServer is implemented as an OS PID and has its own memory.an MTServer is a single process of an Object manager.

Max MT Servers and Min MT Servers

Max MT Servers determine the maximum number of multithreaded processes that can be run by the object manager.It is also used to calculate the number of tasks that can be run on each MT server. Min MT Servers determine how many multi threaded processes are initially started when the siebel server starts. starting a new MT server is memory intensive and the user might face some performance impact. The Siebel administrator can set Max MT Servers = Min MT Servers to prevent this.

Number of sessions per SISNAPI connection

This specifies the number of connections that can share one SISNAPI connection from the web server to the Application server.
This is done by setting the parameter "Number of Sessions per SISNAPI Connection"; the recommended value is 20.
This reduces the number of open connections. This does not apply for incoming HTTP requests coming from other external systems like EAI.


SISNAPI connection Maximum Idle Time

This parameter configures the timeout between the web server and the Siebel server.
You should be using/changing this parameter only when you are using Siebel server load balancing or if there is a firewall b/w the web server and the siebel server.
This parameter should be set only for the Application OM or the EAI OM but not for the Batch or Background components or even the SRBroker component.

Siebel Database Connection Pooling or Database Multiplexing

It is best to use this feature when we have more than 1000 users and for scalability.
It reduces the number of inactive connections and the overhead of creating a new connection for login.It is best to start with a ratio of 2:1 for MaxTasks / MaxSharedDBConns.
This will ensure 2 users will share one database connection.

Below are the parameters that control this:

Min Number of Dedicated database (DB) Connections (alias is MinTrxDbConns)
Min Number of Shared DB Connections (alias is MinSharedDbConns)
Max Number of Shared DB Connections (alias is MaxSharedDbConns)

set MaxSharedDbConns and MinSharedDbConns to a positive value but not greater than maxTasks.

  • MaxSharedDbConns controls the maximum number of pooled database connections for each MT process.
  • MinSharedDbConns controls the minimum number of pooled database connections the Application object manager maintains for each MT process.
  • to disable this feature set the value for both MinSharedDbConns = MinSharedDbConns  = -1





Below is an Example:
Assume a system with the below parameters set:

MinSharedDbConns = 3
MaxSharedDbConns = 6
MaxTasks = 20
MaxMTServers = 1

Users 1-6 login – Shared connections 1-6 are created and added to the pool. All connections have a usage count of 1.
Users 7-12 login – Shared connections 1-6 are assigned in turn to the new sessions. All connections have a usage count of 2.
User 2 issues a query – Multiplexed connection 2 is used for the request
User 3 issues a query – Multiplexed connection 3 is used for the request
this goes on for each user. Below is a simple representation of the same.

Connection 1> users 1 and 7
Connection 2> users 2 and 8
Connection 3> users 3 and 9
Connection 4> users 4 and 10
Connection 5> users 5 and 11
Connection 6> users 6 and 12

Users 2, 3, 11 and 12 logoff – Since none of the users are sharing the same connection, connections 2, 3, 11 and 12 have their usage count decremented. All the connections remain in the pool.

Connection 1> users 1 and 7
Connection 2> user 8
Connection 3> user 9
Connection 4> users 4 and 10
Connection 5> users 5
Connection 6> users 6
User 9 logs off – Connection 3's usage count is decremented to 0. Since it is the only unused connection in the pool, it remains in the pool.

Connection 1> users 1 and 7
Connection 2> user 8
Connection 3> 
Connection 4> users 4 and 10
Connection 5> users 5
Connection 6> users 6
User 5 logs off – Connection 5's usage count is decremented to 0. Since it is the 2nd unused connection in the pool, it also remains.

Connection 1> users 1 and 7
Connection 2> user 8
Connection 3> 
Connection 4> users 4 and 10
Connection 5> 
Connection 6> users 6

User 6 logs off – Connection 6's usage count is decremented to 0. Since it is the 3rd unused connection in the pool, it also remains.

Connection 1> users 1 and 7
Connection 2> user 8
Connection 3> 
Connection 4> users 4 and 10
Connection 5> 
Connection 6> 
User 8 logs off – Connection 2's usage count is decremented to 0. Since there are already MinSharedDbConns unused connections in the pool, the connection is removed from the pool and closed.

Connection 1> users 1 and 7
Connection 3> 
Connection 4> users 4 and 10
Connection 5> 
Connection 6>
Users 13, 14 and 15 login – Connections 3, 5 and 4 are assigned to the new sessions.




Connection 1> users 1 and 7
Connection 3> User 13
Connection 4> users 4 and 10
Connection 5> User 14
Connection 6> User 15
User 16 logs in – Connection 7 is created and added to the pool since there were less than MaxSharedDbConns in the pool.

Connection 1> users 1 and 7
Connection 3> User 13
Connection 4> users 4 and 10
Connection 5> User 14
Connection 6> User 15
Connection 7> User 16

When the MT Server shuts down, any remaining connections in the pool are closed.

123Siebel

Search 123Siebel