Do you want to Search Something?

Those who opened the gates

Wednesday, February 29, 2012

Reading Input and Output of Vanilla Business Service and logging them.

Hello Everyone

Have you ever guessed what are the input and output property sets and methods called while a vanilla  business is executing....


well here is the step to log them in a readable and logical way...


for eg lets take the BS: Search External Service

Enter  the following lines of code in the declaration section.....

/*----------------------------This is the Declaration Section --------------------------------------------------*/
var OutPutFileName = 'C:\\SearchExternal_Dump.txt'; //Your fav Location and name:)
var IndentAmount = 2; // Indent child prop sets listing this many spaces // to the right for each level down for readability


Now comes our 2 handy function

1.LogMe ( writes down every input provided to a text file path declared in declaration)


2.DumpPropSets(Dumps the property sets)


Code of both these functions follows

1.LogMe Function

  // Writes what is feeded.

 function LogMe(LogThis)
{
  var MyFile = Clib.fopen(OutPutFileName, 'at');
  var sTime = Clib.ctime(Clib.time());
  sTime = sTime.replace('\n',' '); // Remove trailing Newline.
  Clib.fputs(sTime + ': ' + LogThis + '\n', MyFile);
  Clib.fclose(MyFile);
}


2.DumpPropSet Function

/*------Premjit Vidyadharan:Function to collect property sets and feed to LogMe for printing-*/
/*--------------------Print out the contents of a property set--------------------------------*/
function DumpPropSet(Inputs)
{   
 PSDepth++;
 var InpValue;
 var InpType;
 var InpChildCount;
 var inprop;
 var inpropval;
 var inpropcnt;
 var BlankLine = ' '; 
 /*--------------------------Build a string to indent the Listing------------------*/ 


 var IndentSpaces = ''; // [Number of spaces to indent to]
 for (var SpaceCount = 0; SpaceCount < IndentAmount * PSDepth; SpaceCount++)
 {
  IndentSpaces = IndentSpaces + ' ';
 }
 var IndentLevel = ToString(PSDepth);
 if (PSDepth < 10)
 {
  IndentLevel = '0' + IndentLevel;
 }
 // Indent by a number of indents, then level number as nn, then two spaces
 var Indent = IndentSpaces + IndentLevel + '  ';


 LogMe(BlankLine);
 LogMe(BlankLine);
 LogMe(Indent + '---- Starting a new property set ----');
 LogMe(BlankLine);




 // Now do main value and type


 InpValue = Inputs.GetValue();
 InpType  = Inputs.GetType();


 InpChildCount = Inputs.GetChildCount();
 LogMe(Indent + 'Value is ........ : "' + InpValue + '"');
 LogMe(Indent + 'Type is  ........ : "' + InpType + '"');
 LogMe(Indent + 'Child count ..... : ' + ToString(InpChildCount));


 // Dump the properties of this property set


 var PropCounter = 0;
 inprop = Inputs.GetFirstProperty();
 while (inprop != "")
 {
  PropCounter++;
  inpropval = Inputs.GetProperty(inprop);

  LogMe(BlankLine);
  var PropCountStr = ToString(PropCounter);
  if (PropCounter < 10)
  {
   PropCountStr = '0' + PropCountStr;
  }
  LogMe(Indent + 'Property ' + PropCountStr + '  name : "' + inprop + '"');
  LogMe(Indent + 'Property ' + PropCountStr + ' value : "' + inpropval + '"');
  inprop = Inputs.GetNextProperty();
 }//while (inprop != "") ends
 /*-----------------------------------Dump the children of this PropertySet-----------------------------*/
 if (InpChildCount == 0)
 {
  LogMe(BlankLine);
  LogMe(Indent + '(No children exist below this property set.)');
 }
 else 
 {
  for (var ChildNumber = 0; ChildNumber < InpChildCount; ChildNumber++)
  {
   LogMe(BlankLine);
   LogMe(Indent + 'Child Property Set ' + ToNumber(ChildNumber + 1) + ' of ' + ToNumber(InpChildCount) + ' follows below.');
   LogMe(Indent + 'This child is on level ' + ToNumber(PSDepth));
  
   // Recursive call for children, grandchildren, etc.
   DumpPropSet(Inputs.GetChild(ChildNumber));
  }
 }


 PSDepth--; // We are about to pop up a level
}




Now Call this functon at the evnt of your choice


eg given below


function Service_PreInvokeMethod (MethodName, Inputs, Outputs)
{
    LogMe('---- Method Called PreInvoke ----'+ MethodName);
    LogMe('---- Method Called PreInvoke-----INPUTS ----'+ MethodName);
    LogMe(Inputs);
    LogMe('---- Method Called PreInvoke----- OUTPUTS ---'+ MethodName);   
    LogMe(Outputs);
    LogMe('---- PreInvoke Ends Here---------------------'+ MethodName);   
 return (ContinueOperation);
}

Below is the result which we get....A long story to read for the debuggers ot there

Wed Feb 22 05:12:57 2012 : ---- Method Called PreInvoke ----GetParams
Wed Feb 22 05:12:57 2012 : ---- Method Called PreInvoke-----INPUTS ----GetParams
Wed Feb 22 05:12:57 2012 : PropertySet [ ]
Wed Feb 22 05:12:57 2012 : ---- Method Called PreInvoke----- OUTPUTS ---GetParams
Wed Feb 22 05:12:57 2012 : PropertySet [ ]
Wed Feb 22 05:12:57 2012 : ---- PreInvoke Ends Here---------------------GetParams
Wed Feb 22 05:12:57 2012 : ---- Method Called Invoke ----GetParams
Wed Feb 22 05:12:57 2012 : ---- Method Called Invoke INPUTS ----------------------GetParams
Wed Feb 22 05:12:57 2012 : PropertySet [ ]
Wed Feb 22 05:12:57 2012 : ---- Method Called Invoke OUTPUTS ---------------------GetParams
Wed Feb 22 05:12:57 2012 : PropertySet [ ]
Wed Feb 22 05:12:57 2012 : ---- Invoke Ends Here----------------------------------GetParams
Wed Feb 22 05:12:57 2012 : ---- Method Called PreInvoke ----SetSamePage
Wed Feb 22 05:12:57 2012 : ---- Method Called PreInvoke-----INPUTS ----SetSamePage
Wed Feb 22 05:12:57 2012 : PropertySet [ ]
Wed Feb 22 05:12:57 2012 : ---- Method Called PreInvoke----- OUTPUTS ---SetSamePage
Wed Feb 22 05:12:57 2012 : PropertySet [ ]
Wed Feb 22 05:12:57 2012 : ---- PreInvoke Ends Here---------------------SetSamePage
Wed Feb 22 05:12:57 2012 : ---- Method Called Invoke ----SetSamePage
Wed Feb 22 05:12:57 2012 : ---- Method Called Invoke INPUTS ----------------------SetSamePage
Wed Feb 22 05:12:57 2012 : PropertySet [ ]
Wed Feb 22 05:12:57 2012 : ---- Method Called Invoke OUTPUTS ---------------------SetSamePage
Wed Feb 22 05:12:57 2012 : PropertySet [ ]
Wed Feb 22 05:12:57 2012 : ---- Invoke Ends Here----------------------------------SetSamePage
Wed Feb 22 05:12:57 2012 : ---- Method Called PreInvoke ----FindOnly
Wed Feb 22 05:12:57 2012 : ---- Method Called PreInvoke-----INPUTS ----FindOnly
Wed Feb 22 05:12:57 2012 : PropertySet [ ]
Wed Feb 22 05:12:57 2012 : ---- Method Called PreInvoke----- OUTPUTS ---FindOnly
Wed Feb 22 05:12:57 2012 : PropertySet [ ]
Wed Feb 22 05:12:57 2012 : ---- PreInvoke Ends Here---------------------FindOnly
Wed Feb 22 05:12:57 2012 : ---- Method Called Invoke ----FindOnly
Wed Feb 22 05:12:57 2012 : ---- Method Called Invoke INPUTS ----------------------FindOnly
Wed Feb 22 05:12:57 2012 : PropertySet [ ]
Wed Feb 22 05:12:57 2012 : ---- Method Called Invoke OUTPUTS ---------------------FindOnly
Wed Feb 22 05:12:57 2012 : PropertySet [ ]
Wed Feb 22 05:12:57 2012 : ---- Invoke Ends Here----------------------------------FindOnly


Be sure to remove the code when u are done with the debugging.........


Enjoy!!!!!!!!!!!!!!!!

Wednesday, February 22, 2012

A faster way to Open Support Web :)

Friends

This might be known to many but still I would recommend to use

https://supporthtml.oracle.com/

This has got a cool loading time w.r.t the flash based one https://support.oracle.com/CSP/ui/flash.html

specially if you are on Android Cupcake v 1.5....errr sorry did i mention a very outdated OS...whel i am a victim.

Happy debugging!!!!!

Friday, February 17, 2012

Allow Object Locking for Projects in Siebel.


For each project you can specify whether or not developers are allowed to check out and check in individual objects within the project. To allow developers to check out and check in objects, you set the project's Allow Object Locking property to TRUE. To modify the Allow Object Locking property, you must use the SADMIN user ID to log in, and you must be logged into a server data source. You cannot set the Allow Object Locking property in your local repository.

To set the Allow Object Locking property
In the Object Explorer, choose Project.

In the Projects window, choose the desired Project object, then right-click and choose Toggle Allow Object Locking.

NOTE: You can only change the Allow Object Locking flag on the Server database using the SADMIN login ID.

Important:If a project has the Allow Object Locking configuration file parameter set to TRUE, and the user is logged in to the server using the SADMIN user ID, the Toggle Allow Object Locking menu option is enabled. When the SADMIN user chooses this option for a project that is already set to allow object locking, a check is performed to determine whether any objects are locked on the server within the project. If there are objects locked within the project, the system administrator receives an error message. If the project is locked on the server by someone else, the menu option for Toggle Allow Object Locking does not appear.

Tuesday, February 14, 2012

Setting The JVM Classpath and JVM DLL Name in Siebel


Parameter
Value
JVM Classpath
<SIEBSRVR_ROOT>/classes/Siebel.jar;<SIEBSRVR_ROOT>/classes/SiebelXMLP.jar;<SIEBSRVR_ROOT>/classes/wlfullclient.jar
where:
SIEBSRVR_ROOT is the actual path where the Siebel Server is installed.
NOTE:  For UNIX, replace <SIEBSRVR_ROOT> with ${SIEBEL_HOME}.

Alternatively, you can set the CLASSPATH using the Siebel Server Manager (srvrmgr program). For information about using the srvrmgr program to set the CLASSPATH, see Troubleshooting the CLASSPATH Settings Using Siebel Server Manager.

CAUTION:  An error might occur if the value of the CLASSPATH parameter is too long (must be less than 1024 characters). To avoid this, copy the CLASSPATH folder to the root directory, and then point CLASSPATH to this path.
JVM DLL Name
For AIX, Linux, and Oracle Solaris:
<path to libjvm.so_file>
For HP-UX:
<path to libjvm.sl_file>
For Windows:
<path to jvm.dll >
For example, c:\Program Files\Java\jdk1.6.0_xx\jre\client\bin\jvm.dll
NOTE:  For Windows, the path to the JVM DLL file is automatically read from the Windows registry setting of the JRE installed on the Siebel Server.
For more information on setting the values of the JVM DLL Name and JVM Options parameters, see Transports and Interfaces: Siebel Enterprise Application Integration.

Tuesday, February 7, 2012

Siebel CRM version 8.2.2

Siebel CRM version 8.2.2 Industry Target Guidance

Siebel CRM version 8.2.2 (SIA 8.2.2) delivers enhanced functionality in the areas of Public Sector; Loyalty for Travel, Transportation, Retail and Coalitions; and Financial Services for integration to Oracle FLEXCUBE Universal Banking.

SIA 8.2.2 is intended specifically for Public Sector; Loyalty for Travel, Transportation, Retail and Coalitions; and Financial Services for FLEXCUBE Universal Banking customers who want to integrate with Siebel.
Siebel CRM version 8.1.x (currently SIA 8.1.1.6) remains the primary code line for all other Siebel products. Innovations, enhancements and patches will be delivered on a priority basis to the base code line for the affected products. Customers should work with their account team to review any questions on appropriate code lines for their implementation.

The software packages released with Siebel CRM version 8.2.2 are the following:

  • Siebel Business Applications for Public Sector Media Pack for Microsoft Windows x64 (64-bit) - Oracle Software Delivery cloud part number B65190-01, software translations available as B65244-01.
  • Siebel Business Applications for Travel, Transportation, Retail and Coalitions Media Pack for Microsoft Windows x64 (64-bit) - Oracle Software Delivery cloud part number B65192-01, software translations available as B65247-01.
  • Siebel Business Applications for Financial Services Integration with FLEXCUBE Media Pack for Microsoft Windows x64 (64-bit) - Oracle Software Delivery cloud part number B65194-01, software translations available as B65241-01.

These software packages are only applicable to the specified industry groups. All other Siebel products will continue primary development on the SIA 8.1.x code line.

The Siebel code line was split to deliver significant enhancements to specific industries without disrupting other product areas. In the near future, the Siebel code lines will be merged allowing both 8.1.x and 8.2.x customers to continue with their implementations without significant migration costs.

Example Scenarios:

I am a Loyalty customer from Telco or Financial Services looking for the 'latest' Siebel Loyalty release, what should I do?
You should target Siebel Loyalty version SIA 8.1.x.

I am a Siebel Financial Services customer not implementing the Oracle FLEXCUBE Universal Banking integration, wanting to migrate to the latest Siebel CRM products, what should I do?
You should target Siebel Financial Services version SIA 8.1.x.

I am a Siebel 7.8x / 8.0x Public Sector customer looking for the 'latest' Siebel Public Sector release, what should I do?
You should target Siebel Public Sector version SIA 8.2.2.

All industries not specifically listed above can continue on the SIA 8.1.x code line with no need for upgrade to obtain innovations. More information is available in the 'Readme' files in the above listed SIA 8.2.2 media packages on the Oracle Software Delivery cloud and from your account representative.

Tuesday, January 31, 2012

SRBroker and SRProc in a gist

Server Request Broker (SRBroker)

1.Used to start synchronous Siebel Server tasks
2.Server Request Broker & Server Manager are the only components which directly start tasks.
3.Introduced in in Siebel 7
4.Background component
5.Multi-threaded component
6.Need to set MaxTasks as per the needs.

Server Request Processor (SRProc)

1.Used to start asynchronous Siebel Server tasks
2.Manages queued requests
3.Calls SRBroker to manage task execution
4.Background component

This is a high level explanation which would be very helpful when you sit next time to debug logs;cheers

Wednesday, January 11, 2012

How to enable Customize Button

Enabling the Customize Button


The user can select a configurable product and click the Customize button to customize the product. However, the Customize button is only enabled when the user's responsibilities include one of the appropriate views that allows users to customize products. The following views of the Quotes screen are examples of views that enable the customize button:
  • Complex Product Runtime Instance View
  • Complex Product Runtime Instance View - Order
  • Complex Product Runtime Instance View - Shopping Cart
Within these views, the Customize button is enabled only when the type of the product is Customizable.
To find a complete list of the views that enable the Customize button
  1. Open Oracle's Siebel Tools.
  2. In the Views tab, search for views that match the following:
    Complex Product Runtime Instance View*

Monday, January 9, 2012

Did you Know these personalities in Siebel:)

Demo Users for Siebel Call Center
Username / Password
Name / Title
Application
Primary Responsibility
Role
CCHENG
Casey Cheng / Universal Agent
Siebel Call Center
Universal Agent
Cheng handles service requests of all types: emails, inbound calls, and Web collaboration session requests. In addition, he executes outbound call campaigns.
TARNOLD
Ted Arnold / Telesales Representative
Siebel Call Center
Telesales Representative
Arnold primarily executes inbound and outbound telemarketing and telesales calls.
VTAYLOR
Vic Taylor / VP Call Center
Siebel Call Center
Call Center Manager
Taylor's responsibilities for the day-to-day operations of a Call Center make him a regular user of Siebel Call Center Administration functions. He uses the Siebel Analytics function to evaluate performance and ROI and to make strategic decisions based on the analyses.
EMODI
Emily Modi /Engagement Manager
Siebel Call Center
Consulting Manager
Modi is responsible for managing a consulting practice business, including opportunity management, client relationships, contracts and agreements, and financial reporting and management.
GABBO
Glen Abboline / Information Technologist
Siebel Professional Services
Consultant
Abboline is responsible for day-to-day project management, including staffing requests.
GCLARK
Gary Clark / Consultant
Siebel Professional Services
Consulting Manager
Clark is responsible for managing a consulting practice business.

Thursday, January 5, 2012

How Siebel Workflow Interacts with Siebel Server Components..

Siebel Server Components

The Workflow Engine interacts with other server components through the Server Request Broker. Working as a business service, the Workflow Engine calls server components. To call a server component that is exposed as a specialized service, the Workflow Engine calls the signature for the service. For example, to send an email, the Workflow Engine calls the Communications Server as the Outbound Communications Manager business service. To assign an object to a user, it calls the Assignment Manager component as the Synchronous Assignment Manager Requests business service.
To call a server component that is not exposed as a specialized service, the Workflow Engine uses the predefined Server Requests Business Service. This business service sends a generic request to the Server Request Broker.

Server Request Broker
The Workflow Engine sends a request to the Server Request Broker, synchronously or asynchronously, and the Server Request Broker brokers the request to the appropriate component. The following work is performed:

1.Sending asynchronous messages from an interactive server component to the Workflow Engine

2.Communicating, synchronously and asynchronously, between the Workflow Engine and batch components

3.Scheduling repeated server tasks that are executed periodically in the Workflow Engine
The Server Request Broker also performs load balancing. If the Server Request Broker receives a request, then it routes the request to the server component in the current server. For a workflow process, if the component is not available in the current server, then the Server Request Broker sends it to other servers on a round robin basis where the Workflow Process Manager component is activated.
A workflow process also uses Server Request Broker to resume a waiting workflow process. The Server Request Broker queries a database table on a regular basis in order to identify server tasks that must be resumed.

Personalization Engine

The Personalization engine handles run-time events, such as application events, applet events, and business component events. A workflow process handles run-time events through integration with the Personalization engine. A workflow started or resumed by a run-time event registers itself with the Personalization engine when the process is activated. If a run-time event occurs in a user session, then the Personalization engine calls Siebel Workflow in the local object manager.

 

Wednesday, December 28, 2011

Components for Email Response in Siebel

Siebel Email Response Server Components

Siebel Email Response uses Communications Server components to enable contact center agents to read and respond to inbound email messages.

Key Server Components

Siebel Email Response is supported in the Siebel Server environment primarily by the following server components:
  • Communications Inbound Receiver (CommInboundRcvr). This server component receives inbound work items and queues them for processing by Communications Inbound Processor. Work items may include email messages (for Siebel Email Response).
    • For nonreal-time work items, such as email messages for most deployments of Siebel Email Response, Communications Inbound Receiver queues work items it has received for further processing by Communications Inbound Processor.
    • For real-time work items, such as email messages for some deployments of Siebel Email Response, Communications Inbound Receiver processes work items it has received. Communications Inbound Processor is not used.
  • Communications Inbound Processor (CommInboundProcessor). This server component processes inbound work items that were queued by Communications Inbound Receiver.
  • Communications Outbound Manager (CommOutboundMgr). This server component sends outbound email.
  • Siebel File System Manager. This server component writes to and reads from the Siebel File System. It stores inbound messages prior to processing and stores attachments to inbound and outbound email messages.

An Overview about Server Clustering

About Server Clustering

A server cluster is a group of two or more servers that are configured so that if one server fails, another server can take over application processing. The servers in a cluster are called nodes. Typically, these servers store data on a common disk or disk array.
Clustering software monitors the active nodes in a server cluster. When a node fails, the clustering software manages the transition of the failed server's workload to the secondary node.
When a clustered Siebel Server fails, all the applications and services on the server stop. Application users must reconnect and log in to the server that takes over. For example, if the Siebel Server that failed was hosting Siebel Communications Server, the communications toolbar is disabled, and users must reconnect and log in to the new server.
Cluster vendors can validate their third-party server cluster products to provide server clustering for deployments of Siebel Business Applications. For validation assistance, contact your Oracle sales representative for Oracle Advanced Customer Services to request assistance from Oracle's Application Expert Services. For recommendations and help on the use of cluster products with Siebel Business Applications, customers should contact the cluster vendor of their choice.

Active-Passive Configuration

An active-passive server cluster contains a minimum of two servers. One server actively runs applications and services. The other is idle. If the active server fails, its workload is switched to the idle server, which then takes over application processing.
Because the standby server is idle, active-passive server clusters require additional hardware without providing additional active capacity. The benefit of active-passive clusters is that, after a failover, the same level of hardware resources is available for each application, thereby eliminating any performance impact on users. This benefit is particularly important for performance-critical areas such as the database. The most common use of active-passive clusters is for database servers.

Active-Active Configuration

An active-active server cluster contains a minimum of two servers. Both actively run applications and services. Each may host different applications or may host instances of the same application. If one server fails, its processing load is transferred to the other.
Active-active configuration is the most common server clustering strategy for servers other than the database server.
NOTE:  Configuring the Siebel Database (database server) and a Siebel Server to failover to each other is supported, but not recommended.
Potential Port Conflicts
Some Siebel Server components, such as Siebel Connection Broker (SCBroker), Siebel Gateway Name Server, Synchronization Manager (Siebel Remote), and Siebel Handheld synchronization listen on a configurable static port. When these components run in an active-active cluster, you must plan your port usage so there is no port conflict after failover.
For example, an active-active server cluster contains two platforms, each running a Siebel Server. If one platform fails, the other will host two Siebel Servers. Siebel Servers include several services, such as Siebel Connection Broker, that use a dedicated port. If this port number was the same on both platforms, there will be a port conflict after failover.
Capacity Planning
Active-active clusters use all the server platforms continuously. Consequently, they take better advantage of computing resources than active-passive clusters. When doing capacity planning, make sure that clustered servers have sufficient capacity to handle a failover. Because failovers are usually infrequent and normally last only a short time, some performance degradation is often acceptable.

Thursday, December 15, 2011

How to enable a Component Group on Siebel Server


To enable a component group on a Siebel Server
Navigate to Administration-Server Configuration screen, Enterprises, and then the Component Groups view.
In the Component Groups list, select the Siebel Server component group of interest.
In the Component Groups Assignment list, select the Siebel Server of interest.
Click the Enable button.
The Enabled on Server? field of the Siebel Server record becomes checked.
For the change to take effect, stop and restart the Siebel Server System Service.

Tuesday, December 13, 2011

Implementing ACRs In Siebel

ACRs are enhanced functionalities provided as a part of patch installation.
A list of various ACRs will be available in the Siebel Maintainance Release Guide which are updated and various revisions are available in support web.
ACRs are usually found as a Zip file in the local installation of Tools in a folder called REPPATCH.eg:
C:/Siebel/Tools/REPPATCH.
These zip files usually contain archive files of seed objects like Applet,Views,Table,Webtemplate files etc.
ef ACR 374 to configure IMAP protocol

Wednesday, November 9, 2011

For a change lets know what are RSS feeds:)

What is RSS?
RSS stands for "Really Simple Syndication"(Origin - RDF Site Summary). It is a way to easily distribute a list of headlines, update notices, and sometimes content to a wide number of people. It is used by computer programs that organize those headlines and notices for easy reading.
Why do we need RSS?
Most people are interested in many websites whose content changes on an unpredictable schedule. Examples of such websites are news sites, community and religious organization information pages, product information pages, medical websites, and weblogs. Repeatedly checking each website to see if there is any new content can be very tedious.
Email notification of changes was an early solution to this problem. Unfortunately, when you receive email notifications from multiple websites they are usually disorganized and can get overwhelming, and are often mistaken for spam.
RSS is a better way to be notified of new and changed content. Notifications of changes to multiple websites are handled easily, and the results are presented to you well organized and distinct from email.
The Working Principle?
RSS works by having the website author maintain a list of notifications on their website in a standard way. This list of notifications is called an "RSS Feed". People who are interested in finding out the latest headlines or changes can check this list. Special computer programs called "RSS aggregators" have been developed that automatically access the RSS feeds of websites you care about on your behalf and organize the results for you. (RSS feeds and aggregators are also sometimes called "RSS Channels" and "RSS Readers".)
Producing an RSS feed is very simple and hundreds of thousands of websites now provide this feature, including major news organizations like the New York Times, the BBC, and Reuters, as well as many weblogs.
What information does RSS provide?
RSS provides very basic information to do its notification. It is made up of a list of items presented in order from newest to oldest. Each item usually consists of a simple title describing the item along with a more complete description and a link to a web page with the actual information being described. Sometimes this description is the full information you want to read (such as the content of a weblog post) and sometimes it is just a summary.

Eg:Of RSS XML

<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
        <title>RSS Title</title>
        <description>This is an example of an RSS feed</description>
        <link>http://www.someexamplerssdomain.com/main.html</link>
        <lastBuildDate>Mon, 06 Sep 2010 00:01:00 +0000 </lastBuildDate>
        <pubDate>Mon, 06 Sep 2009 16:45:00 +0000 </pubDate>
        <ttl>1800</ttl>

        <item>
                <title>Example entry</title>
                <description>Here is some text containing an interesting description.</description>
                <link>http://www.wikipedia.org/</link>
                <guid>unique string per item</guid>
                <pubDate>Mon, 06 Sep 2009 16:45:00 +0000 </pubDate>
        </item>

</channel>
</rss>
Atom(Feeds) is the next generation web feed mechnism or an aternative to RSS.

Tuesday, November 1, 2011

Playing with ToolTip in eCalendar Applets

Displaying Field ToolTip Text

When you move the mouse over a display field in a calendar record.The ToolTip content is configurable through the applet user property Display Field Name.Tooltip Fields, where Display Field Name is the name of the display field.
The user property value is a list of comma delimited business component fields. The values of these business component fields display as the ToolTip in the display field. By default, the name of the business component field is used as the label in the ToolTip text.
Make the label for a ToolTip field translatable by creating a control in the applet with the name Tooltip Field Label:Field Name. The caption of the control is used as the label for the ToolTip field. For example, for the business component Quote, field Name, the ToolTip label for the field is defined as a control of name ToolTip Field Label:Quote.Name, and the caption of the control will be the label for this field.

Wednesday, October 19, 2011

Configuring Visibility of Pop -Up and Pick Applets

About Configuring Visibility of Pop-Up and Pick Applets


Pop-up visibility determines what data will be shown when a pop-up pick applet is displayed, for example, when a user associates a contact with an account, or adds a sales representative to the sales team.
Pop-up visibility is usually set using the Popup Visibility Type property of the business component object in Siebel Tools. When pop-up visibility is set in this way, any pop-up based on that business component shows the same data for all users.
There are often circumstances where you require greater flexibility when determining what data is shown in pop-up pick applets. For example:
  • Most employees of your company only need to see positions for your organizations when they are assigning a sales representative to the sales team.
  • Partner Managers need to see positions for your organization, as well as the partner organizations that they manage.
There are also many scenarios where your partners require more restrictive visibility than your employees.
In order to meet this business requirement, Siebel Business Applications have three capabilities that allow the developer to override the visibility set in the Business Component Popup Visibility Type property at the business component level in favor of another setting. The developer can:
  • Set visibility of the Pick List object definition
  • Use the visibility Auto All property
  • Use the Special Frame Class and User Properties  

Setting Visibility of the Pick List Object Definition

Developers can override the visibility set at the business component level by setting a different visibility type on the Pick List object definition, in the Visibility Type property.

Using the Visibility Auto All Property

For both Pick List Visibility Type and Business Component Pop-up Visibility Type, you can use the Visibility Auto All property to override the visibility type property.
This property will check the current user's responsibility to see if it includes the All Across Organizations view based on the same business component. If the view is found, this visibility type will be overridden and the user will get All visibility on the object in question. Otherwise, the visibility type will not be overridden.
This property makes visibility consistent across views and pop-up pick applets.

About Using the Special Frame Class and User Properties

The developer can use a special frame class and user properties to set visibility for a pick applet on the applet object depending on which application is being used.
For example, if users are running Siebel Sales, the Pick Positions applet for the sales team shows positions only for the user's organization. If users are running Siebel Partner Manager, the applet shows the positions for the user's own organization and for the suborganizations (or child organizations) of that organization. This allows users to select positions for the partners they manage.
In order to override the pop-up visibility set at the business component level, the developer must make the following changes:
  • If the applet whose visibility is to be overridden is an association applet, change the frame class of the applet to CSSSWEFrameListVisibilityAssoc.
  • If the applet whose visibility is to be overridden is a pick applet, change the frame class of the applet to CSSSWEFrameListVisibilityPick.
  • If the applet whose visibility is to be overridden is an MVG applet, change the frame class of the applet to CSSSWEFrameListVisibilityMvg.
  • Add an applet user property called Override Visibility, with the following values:
    • Name: Override Visibility: [Application Name]
    • Value: [Visibility Type] where the developer can choose from the standard visibility types
  • Set the business component user property Popup Visibility Auto All to FALSE.
The developer can also set visibility on an applet based on whether the user has access to a view or not. The developer must change the frame class of the applet to CSSSWEFrameListVisibilityPick and add the following user property to the applet:
  • Name: Override Visibility View: [View Name]
  • Value: [Visibility Type] where the developer can choose from the standard visibility types
For example, to override Campaign Pick Applet popup visibility to All if the user has access to the Campaign Administration List view, add the user property with the following values:
  • Name: Override Visibility View: Campaign Administration List
  • Value: All

Monday, September 12, 2011

View is not Visible in SIEBEL Client

Why a View Is Not Visible to a User


When a view is not visible to the logged-in user, there are the following possible reasons:
  • The view does not exist in the .srf file.
  • This includes a possible misspelling when the view was registered (Site Map > Application Administration > Views); that is, it does not match the view name in the .srf file. If it matches, compile the .srf file again using the All Projects option (full compile).
  • The view is not included in one of the logged-in user's responsibilities.
    • Determine which responsibilities the logged-in user has (Site Map > User Administration > Employees).
    • Determine for each responsibility whether the view is included (Site Map > Application Administration > Responsibilities).
  • The view is hidden using personalization rules.
  • Determine this under Personalization Administration > Views. For testing purposes, you can also switch off the EnablePersonalization parameter in the .cfg file.
  • The view is not included either in the menu or in the view tabs. In this case, the view can only be accessed by drilling down from another view.
    • In Siebel Tools, examine the Screen Menu property of the View object. It must be set to TRUE for the view to be included in the Site Map.
    • Determine whether the view is included in a screen and that the Viewbar Text property of the Screen View child object of the screen is set appropriately.
    • Determine whether the view's Visibility Applet and Visibility Applet Type properties are set correctly. The view belongs to a screen that is not included in the currently running application.
    • In Siebel Tools, determine whether the screen is included in the application (Screen Menu Item child object of the application).
    • Determine whether the application name is spelled correctly in the .cfg file.
  • The view does not belong to the same business object as the screen's default view.
  • Make sure that the view is based on the same business object.
    For restrictions on the Screen property, see Siebel Object Types Reference.
  • The view is not available due to upgrade problems.
  • If an upgrade was done, make sure that it was successful by verifying all the log files that were created. The upgrade log files are found in the DBSERVER_ROOT\DB_PLATFORM directory.
  • The view is not included in your license keys.
  • If none of the previous reasons is responsible for the view not being visible, it is likely that the view is not included in your license keys. Send the license keys to Siebel Expert Services for examination. See also Alert 0041 on Siebel SupportWeb.
  • The screen menu item or page tab is not translated into its target language.
  • Make sure that for each screen associated with the application (Screen Menu Item object) there is a translated string available in the target language and a Screen Menu Item Locale child object. If not, the screen will not appear in the Site Map.
    Similarly, for a page tab to appear, the Page Tab object must have a translated string and a Page Tab Locale child object with the appropriate language code.
    For example, if the application runs in Norwegian, there must be Screen Menu Item Locale and Page Tab Locale objects with the Language Code property set to NOR.

Monday, September 5, 2011

Using Runtime Events in a Workflow

A workflow process can integrate with the run-time events engine in order to provide a simplified way to automate a business process. Benefits provided by this technique include:

Allows real time monitoring of events
Minimizes scripting and calling for a workflow policy

The types of events that can be used include:
Application
Business Component
Applet

A run-time event allows the Siebel application to respond in real time to an interaction that is initiated by an end user. A run-time event can be defined on a connector that emanates from a start, wait, or user interact step in order to start or resume a workflow process. The properties of the WF Step Branch that are used to define a run-time event include:

Event Object Type
Event Object
Event
Sub Event
Event Cancel Flag

Friday, September 2, 2011

CLOB Physical Type in Siebel

Character Large Object (CLOB) Physical Type
The Character Large Object (CLOB) physical type stores a large, variable amount of text. Siebel CRM version 8.0 and higher supports this text. CLOB is similar to Long, but it can contain much more data. In an Oracle database, the maximum size is (4 GB minus 1 byte) multiplied by the value in DB_BLOCK_SIZE.
Note the following requirements:
  • Because a column in a Siebel table is limited to 128 KB of data, you cannot define a column of type CLOB that is greater than 128 KB.
  • Siebel CRM allows no more than three CLOB columns for each table.
  • In Siebel Tools, you can only set the physical type to CLOB when you define a column. You cannot change a predefined column, such as a Long column, to a CLOB column.
  • Siebel Tools displays the CLOB Physical Type as L (Long) in the Properties window.
  • Because MS SQL Server does not define a CLOB type, MS SQL Server treats a CLOB as a varchar(max) or nvarchar(max) object.
  • To query on a DTYPE_CLOB field, you must use at least one wildcard in the search expression. You use an asterisk (*) to express a wildcard. For example, use TEST*. Do not use an equal sign (=) in the query. For example, do not use =TEST. If you use an equal sign, then Siebel CRM generates an error.
Maximum Number of Digits for a Numeric Physical Type
If the Physical Type property of a table column is Numeric, then the table column can contain up to 16 digits. Note the following for the numeric physical type:
  • As Siebel CRM increases the number of digits it uses to the left of the decimal point, the number of usable digits to the right of the decimal point decreases by an equal amount.
  • Data is limited to 16 digits without a decimal point.
  • If you use a decimal point, then data is limited to 15 digits to the left of the decimal point.
  • You cannot use more than 7 digits to the right of the decimal point.
  • You cannot change precision or scale properties to change this support.
  • Some rounding errors can occur with a 16 or 15 digit number.

Friday, August 12, 2011

Playing with Calculated Fields

To create a calculated field that displays the division name of the current logged user creating a service request
In the Service Request business component, create a new calculated field:
Calculated: TRUE
Calculated Value: DivisionName()
Name: Division (Calc)
Parent Name: Service Request
Type: DTYPE_TEXT
In the Service Request Business Component, also create a new join to S_SRV_REQ_X table:
Column: ATTRIB_03
Join: S_SRV_REQ_X
Name: Reported By Division
Pre Default Value: Field:
'Division Name'
Read Only: TRUE
Expose the joined field Reported By Division in the relevant applets.
You may also want to expose the calculated field Division (Calc), just to check the logic and set Visible = False later for the control or list column exposed