JS injection to keep Siebel alive

Copy below script in browser console (F12) and run it once. It will keep Siebel client alive during the day.


function keepAlive(iHour, iNum)
{
	var iStep = 60; // will send the request every minnute
	iNum = iNum>0?iNum:0;

	if (iHour*60*60 > iNum*iStep){
		setTimeout(function(){
			if (typeof(SiebelApp.S_App.GetProfileAttr("ActiveViewName")) != "undefined"){
				SiebelJS.Log("keep alive / " + iNum + " / " + (new Date()));
				keepAlive(iHour, ++iNum);
			}
		}, iStep * 1000);
	}
}
keepAlive(8); // 8 = number of hours you want Siebel to live

It is helpful when you are working with Siebel client all day long and you don't want to re-login after a short pause. Very handy during Siebel frontend development.


Updates

A fancy version with a pulsing indicator and on / off toggle.

  • Bookmarklet link: About View
  • Bookmarklet source: Snippet
  • javascript:{function keepAlive(e,i){i=0<i?i:0,console&&console.log("keep alive / "+i+" / "+new Date),60*i<60*e*60?(0===$("#SiebelKeepAlive").length?$("body").append("<div id='SiebelKeepAlive' style='position:fixed;top:5px;left:5px;background-color:#ff5e00;border:solid 2px;border-radius:5px;padding:5px'><b>KA</b></div>"):$("#SiebelKeepAlive").fadeTo(100,1),$("#SiebelKeepAlive").fadeTo(54e3,.2),window.timerId=setTimeout(function(){void 0!==SiebelApp.S_App.GetProfileAttr("ActiveViewName")&&keepAlive(e,++i)},6e4)):keepAlive_stop()}function keepAlive_stop(){clearTimeout(window.timerId),delete window.timerId,$("#SiebelKeepAlive").remove(),console.log("keep alive time stopped")}"undefined"==typeof SiebelApp?alert("It works only in Siebel OUI session!"):void 0===window.timerId?keepAlive(4):keepAlive_stop();};void(0) 
  • Source code: Snippet
/* 
@desc Keeps Siebel session alive for a certain amount of time
@author VB(xapuk.com)
@version 2.0 2018/07/20
*/


if ("undefined" == typeof SiebelApp){
    alert("It works only in Siebel OUI session!");
}else{
	if ("undefined" === typeof window.timerId){
		keepAlive(4); // number of hours you want Siebel to live
	}else{
        keepAlive_stop();
	}
}

function keepAlive(iHour, iNum)
{
	var iStep = 60; // frequency in secs
	iNum = iNum>0?iNum:0;
	if (console) console.log("keep alive / " + iNum + " / " + (new Date()));
	if (iHour*60*60 > iNum*iStep){
	    if($("#SiebelKeepAlive").length === 0){
	        $("body").append("<div id='SiebelKeepAlive' style='position:fixed;top:5px;left:5px;background-color:#ff5e00;border:solid 2px;border-radius:5px;padding:5px'><b>KA</b></div>");
	    }else{
	        $("#SiebelKeepAlive").fadeTo(100, 1);
	    }
	    $("#SiebelKeepAlive").fadeTo(iStep * 900, 0.2);
		window.timerId = setTimeout(function(){
			if (typeof(SiebelApp.S_App.GetProfileAttr("ActiveViewName")) != "undefined"){
				keepAlive(iHour, ++iNum);
			}
		}, iStep * 1000);
	}else{
		keepAlive_stop();
	}
}

function keepAlive_stop(){
    clearTimeout(window.timerId);
    delete window.timerId;
    $("#SiebelKeepAlive").remove();
    console.log("keep alive time stopped");
}