Showing posts with label Best Practices. Show all posts
Showing posts with label Best Practices. Show all posts

Alternate use of List Of Values

Most common use of list of values comes in implementation of multilingual siebel applications. But its global presence all over the applications objects makes them extremely useful for writing switches in codes/workflows. I saw one great use in creating the stubs for the real time interfaces in Siebel EAI.

Extending Column in Siebel : Video Tutorial

I haven't came across any siebel implementation till yet, that doesn't requires extension of siebel base tables. 

This usually required when siebel table doesn't have any column that can support the required data type or when there is additional data required at the business layer.

Although it can be achieved by using the extension table, but it is recommended that fields that are shown on UI or used frequently in the script should exists in the base column. 

This is because that extension column requires an additional join in the sql query. And every time BC based on the base table will be queried, extension table will also be called into the memory. 



Here is one video from you tube that explain the whole process of extending column as a screen cast.







Adding Button on Applet – Part 2

In part one of this post I have discussed how we can enable a button on applet and call workflow or service from it using scripting.
But Siebel user properties provides us the way to achieve the same behaviour without scripting. There are two or more solutions to it.


Solution 1 : Using CanInvokeMethod User Property
1. Create control on applet with method invoke property set to required method name.
2. Create an applet user property “CanInvokeMethod to activate this button conditionally.
3. Add an “NamedMethod” User Property on BusComp or Applet to invoke Business Service or Workflow of your choice.


Solution 2 : Using EventMethodMethodName User Property
1. Create Control applet with method invoke property as : EventMethodMethodName. Where Method Name is your orignal method.
2. Add “EventMethod Enabled” user property on Buscomp to conditionally activate the button.
3. Create a runtime event on PreInvoke of the Buscomp to invoke service or workflow.


Both of these solutions are suitable for our basic requirement of adding buttons on Siebel Applets. 

Please note that these user properties works on CSSBCBase BusComp class and CSSFrameListBase applet class. These are not defualt classes when you create new objects.

Siebel: Adding Button on Applet - Part 1

This is one of the basic thing that we do in our siebel application. And every developer prefer his own way of configuring it.

From my past experience there are two basic requirement for custom buttons :
1. It should invoke a Workflow or Business Service.
2. It should become Active/Inactive  based on certain condition.

Based on these requirements first solution that come to our mind is with a script in Pre_CanInvoke of applet, but there are lot more options available in Siebel for this requirement.

First lets see how a scripting can solve this problem

Solution1: Scripting Applet and BC
1. Create Control in Form or List Applet, Set its method invoke to name of the method.
2. Place it on the web layout of applet.
3. Write following script on applet pre can invoke event:



4. Write the actual code to call service or workflow in Applet pre invoke or BusComp PreInvoke.


This trick work always irrespective of the application or interactivity of the application or the applet type.

But there are options available in Siebel that can be used to  achieve this functionality without use of scripting. We will examine other options in my next post!

Other Siebel Blogs

siebel-admin-l @ IT - toolbox

siebel-dev-l @ IT - toolbox