Tuesday 18 December 2018

Bringing Back Scrolling in list Applet

Hello All,

In this post i will share one of the enhancement or probably i should call it fix for enabling scrolling which was a very useful feature in Siebel HI.

In Open UI we have now navigation controls in bottom of applet In IP 13 to IP 16, we have below controls
  • Next Record
  • Previous Record 
  • Next Record Set
  • Previous Record Set
In IP17 onwards there is change in navigation controls, now there is no option of Next and Previous record in list applet, we now have


  • Next Record Set
  • Previous Record Set
  • Last Record Set
  • First Record Set

Now with the below code we can use the record navigation from Mouse scrolling , 
  • Scroll down to go to Next record Set 
  • Scroll up to go to Previous Record Set.

Lets try to understand the things we need to get the things Working 
  • Bind Mouse Scroll event , to let Siebel know that it has to do something on mouse scrolling
$(appletPlaceHolder).bind('mousewheel', function(e){}
  • Check for Up/Down Scrolling, to perform forward or backward navigation (this code is standard HTML 5 code )

 if(e.originalEvent.wheelDelta /120 > 0) {
        console.log('scrolling up !');
else 
        console.log('scrolling Down!');}
  • Call method for Navigation , method called for fetching next records is GotoNextSet and for moving to previous record is GotoPreviousSet. We need to call this method based on Scrolling directions
if(pm.ExecuteMethod("CanInvokeMethod", "GotoNextSet"))
{
pm.ExecuteMethod("InvokeMethod","GotoNextSet",null,false);
}

Note : We could have directly written  pm.ExecuteMethod("InvokeMethod","GotoNextSet",null,false) , but i have used if statement and check for CanInvokeMethod to prevent error which will appear in case of scrolling even if we have reached last record set or First record set

Final Code




$(appletPlaceHolder).bind('mousewheel', function(e){
        if(e.originalEvent.wheelDelta /120 > 0) {
            console.log('scrolling up !');
            e.preventDefault(); // to prevent default browser scrolling
//to prevent unnecessary pop ups using canInvoke first 
if(pm.ExecuteMethod("CanInvokeMethod", "GotoNextSet")){
pm.ExecuteMethod("InvokeMethod","GotoNextSet",null,false); }
 }
        else
       {
            console.log('scrolling down !');
            e.preventDefault(); // to prevent default browser scrolling
                 //to prevent unnecessary pop ups using canInvoke first 
if(pm.ExecuteMethod("CanInvokeMethod", "GotoPreviousSet")){
pm.ExecuteMethod("InvokeMethod","GotoPreviousSet",null,false);}
        }
    });

Downloadable link to PR file https://drive.google.com/open?id=15LPuMOgDNBvQju-S1KoX5ePi6yJTBPAH

try it, your comment and suggestions are always welcome



Friday 7 December 2018

Siebel Recent Record Enhancement

Hello All,

In this Post i want to show the functionality of Recent Records, this functionality by default is provided for most of the Home Screens, Like Contact Home, Opportunity Home, SR Home


  • Contact Home View




So i tried to extend this to Show recent records from all the Major entities in Home Screen itself.

so the outcome is you can have a quick view of all your major entities in one place.

Before Going to the solution lets try to understand how Siebel CRM displays recent Record.

Applet : Different Applets for different Entities
BC : Recent Record (Single BC is used for this)

the key here is User property of BC "Recent Record Track BC-BO Name"

Name : Recent Record Track BC-BO Name
Value : BC Name

This user Property Specify the BO name and the Corresponding BC for the BO
See attached screen shot below for Recent Record BC in tools

 



This is how the final solution will look, Recent record from all the frequently used entities in one place.



The beauty of this solution is that this is completely sSiebel Configuration and no Javascript , PM/PR file required for this.

Note. : This Post is inspired form my bestie Yogesh Mishra's (c/o www.askmesiebel.com) post on recent record ,though i am late by 2 years :-) but its said better late then never.

https://www.askmesiebel.com/2016/10/how-to-configure-to-display-recent-records-in-siebel-crm/

https://www.askmesiebel.com/2016/10/siebel-openui-enhancement-recent-record-plugin/ (this is pure Javascript base plugin and is very useful)

Now Coming to solution part .

1. Since the Recent record functionality is driven by BC Recent Record and BC for which is defined from user Property "Recent Record Track BC"

2. We Need some way to feed the BO, BC combination to show records for a particular entity

3. The solution i could come up is ,
  • create new Applet (clone of any already created Recent Record applet e.g. Recent Record Action List Applet Clone)
  • and Create a new BC (clone of Recent Record and only pass the BO for Home Screen and BC name for the Required Entity)



for different entities create Separate Applets and BC's.


your suggestions and comments are always welcome..

Siebel GoTo View - Handling Realtime cases

 Hello All,  We all must have used GoTo view functionality of siebel to navigate to a particular view from current view. What if the require...