tag:blogger.com,1999:blog-25482598778206847692024-03-24T07:09:38.092+00:00Siebel & Open UIThe intention of this blog is to share interesting findings about Siebel CRM and it's evolution.Shttp://www.blogger.com/profile/13636876457402555607noreply@blogger.comBlogger24125tag:blogger.com,1999:blog-2548259877820684769.post-61521034414359566242016-04-08T11:31:00.002+01:002016-04-08T11:31:29.645+01:00Apologies!Hi Readers,<br />
<br />
Whaw! It's been 1.5 years since my last post. Due to my work commitments, I am unable to add more content here on my blog. Off late, I have been working on Oracle cloud products viz. Sales, service, marketing etc. My next venture will be on salesforce.com.<br />
<br />
Hope my old posts have been helpful to a few of you. I may not be able to continue posting anything on Siebel as I am no more working on this technology. But, I will come back and redesign with new posts on SFDC on this blog.<br />
<br />
Till then good bye :)<br />
<br />
Regards,<br />
ShivShttp://www.blogger.com/profile/13636876457402555607noreply@blogger.com1tag:blogger.com,1999:blog-2548259877820684769.post-66049527639537164192014-11-19T11:24:00.002+00:002014-11-19T13:26:16.645+00:00Open UI IP 2014 is finally here! - First look is here - Is it truly responsive?As most of you aware, IP 2014 is now available on <a href="https://edelivery.oracle.com/">eDelivery</a>!<br />
<br />
I was very eager to see the responsive web design part of it! So went ahead and downloaded and setup my sample. The first look – impressive layout. Though, in my case, it is opening only on firefox and IE11 (haven’t tried other IE versions). In Chrome it keeps spinning. You need to set<br />
EnableFQDN = FALSE in your cfg for it to work!<br />
<br />
<b style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.479999542236328px;"><span style="color: red;">Important Update</span></b><span style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.479999542236328px;">:(From Alex on siebel-essentials) </span><b style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18.479999542236328px;">Please be aware that Patchset 1 for Innovation Pack 2014 will be mandatory for production use. Patchset 1 will be made available on My Oracle Support in due time (official GA). In the meantime, you can benefit from using the installers for evaluation and upgrade preparations and of course peruse the new documentation to learn about new features.</b><br />
<br />
See the general navigation below.<br />
<iframe allowfullscreen="yes" frameborder="0" height="344" src="https://www.youtube.com/embed/IrX30dTm_hU" width="459"></iframe><br />
<br />
MVGs back to how they were in HI!<br />
<iframe allowfullscreen="" frameborder="0" height="344" src="https://www.youtube.com/embed/WRnOStq_Ttc" width="459"></iframe><br />
<br />
Editing attachments inline – users are eagerly waiting for it! See it here.<br />
<iframe allowfullscreen="" frameborder="0" height="344" src="https://www.youtube.com/embed/O6urWtnHyfc" width="459"></iframe><br />
Note: inline editing worked only on Firefox and not on chrome for me.<br />
<br />
I am disappointed by the responsiveness. See here,<br />
<iframe allowfullscreen="" frameborder="0" height="344" src="https://www.youtube.com/embed/J_qZIoCuUqQ" width="459"></iframe><br />
<br />
Above, you can see the list and form applets are pretty static. Only Logo, Menu, toolbar etc are dynamically changing. I was hoping much more as part of IP2014 on this. I was imagining List Applets to reduce in height and users will be able to scroll on list applet with their fingers on smaller devices. I was hoping Form Applets will adjust the layout based on the device size. It’s time for more explorations and custom PRs to make that happen!<br />
<br />
More to come, hold on till then!<br />
<br />
Cheers,<br />
ShivShttp://www.blogger.com/profile/13636876457402555607noreply@blogger.com0tag:blogger.com,1999:blog-2548259877820684769.post-36934845521510265732014-11-14T18:50:00.001+00:002014-11-16T14:43:53.134+00:00Open UI - styling your form applets - add sections or tabs!<span style="font-family: Verdana, sans-serif;">Most of the complaints you hear from typical Siebel users is that their screens are bulky, seeing a lot of unnecessary fields dumped into one big form applet. How about redesigning them so that you logically group only the relevant fields into one group and show only that group at a time.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">I found Jquery UI has accordion and tab options to display content in group. See below to see them in action.</span><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPxfP5isDlP947fPpW9yDzGmNb0_EQgCaX91i89JUJqnpsBNxg5tNc8b7Jh0iBNcUttY9uCKWt_nH9s2BgKhRlJ9iWngN61d8LOm3wlYeExTLso9pVKQm0-y_Lezr1iE7TPPYUQmtUAeUg/s1600-h/ezgif-optimize%25255B10%25255D.gif"><span style="font-family: Verdana, sans-serif;"><img alt="ezgif-optimize" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcyzHYD2IqcsBsp_ZcWrdvVIFo31248gw8pB8M_Lq44RDKEvsd-CLwyXtcjtE71QcyjALrg9mQhZs5uInncbR9S7yz2Wo-pVN12etc9jTfNQNSPFVA0ssh8_R2QApFFNw-ViFB3e3fbIct/?imgmax=800" height="324" style="display: inline;" title="ezgif-optimize" width="498" /></span></a><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">You can get Accordion demo on jquery ui site here: <a href="http://jqueryui.com/accordion/" title="http://jqueryui.com/accordion/">http://jqueryui.com/accordion/</a></span><br />
<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFnqXGX4sztoW9rpmWmgjrtxkhQbspvtxKsYzTxWRo9Q8OdLND__MLv5tggr5Ak8igFdGnBWJ-w0FVLKK5EXU8QWLpUwOnkm0dS03B6t3Mvq16vTCC9WaAf-sqf2FQyMHL5MgjRj_d-pzj/s1600-h/ezgif-optimize%252520%2525281%252529%25255B6%25255D.gif"><span style="font-family: Verdana, sans-serif;"><img alt="ezgif-optimize (1)" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmf25iOBgwRrmYzLCiuxrFtTL00XmBZ0PKpFqligss3w67bf85BjuiOCq73Fc0LmQEpkE5GgHKf_VkyCl-Za6p5-LxeeJtaY2tgKJaYmEAMGdM0xbvLi6QDd_02_hnY4J3anQ8n9PLQecM/?imgmax=800" height="320" style="display: inline;" title="ezgif-optimize (1)" width="495" /></span></a><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">You can get Tabbed display demo on jquery ui site here: <a href="http://jqueryui.com/tabs/#mouseover" title="http://jqueryui.com/tabs/#mouseover">http://jqueryui.com/tabs/#mouseover</a></span><br />
<br />
<span style="font-family: Verdana, sans-serif;">Go through their example to understand how they do it.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Now, I leveraged above in to my Siebel form applets and here is the outcome.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><iframe allowfullscreen="yes" frameborder="0" height="344" src="https://www.youtube.com/embed/D-0xx0XTHPg" width="459"></iframe>
</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><b>How to go about?</b></span><br />
<a name='more'></a><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Most of your form applets are based on Web Template: “Applet Form Grid Layout”, swt file - CCAppletFormGridLayout.swt. If you open it and observe, you will see below code: </span><br />
<pre><span style="font-family: Verdana, sans-serif;"><div class="siebui-collapsible-applet-content">
<swe:form-applet-layout>
</swe:form-applet-layout>
</div></span></pre>
<pre><span style="font-family: Verdana, sans-serif;">
</span></pre>
<pre><span style="font-family: Verdana, sans-serif;">Above code is responsible for displaying your form content into a <table>. You got no control over it. It runs through all the controls and adds to the table. I didn’t find any alternative to replace this with my own layout having <div> to enable tabs or accordion.</span></pre>
<pre><span style="font-family: Verdana, sans-serif;">
</span></pre>
<pre><span style="font-family: Verdana, sans-serif;">So, I exploited above and changed my Applet Layout (Applet –> Edit Web Layout) as below:</span></pre>
<pre><span style="font-family: Verdana, sans-serif;">
</span></pre>
<pre><span style="font-family: Verdana, sans-serif;">Applet: Opportunity Form Applet - Child</span></pre>
<pre><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi619E0HEdKrAAntsXIMzz_tvwQCBoRTBu_4jEqdQXxVJFUxHP2PtguNesT2BjBoyINn37QNLr9QFz1g1Kq-AgXG2isqx8E0XvcNu3bn9Xazg3kliq4RXSmMiBN3GOk8IziQdpOL-_IKF-V/s1600-h/image%25255B9%25255D.png"><span style="font-family: Verdana, sans-serif;"><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL6_XNjjS00lilLvUKpAJ20HN8q5ckAM960lxwRHC4CxmYpukJ-zMQCxZ81bLofnoWO7mDJFfyF_055GRW6oZPMNodrs6bEK83GZHUkzY6mRZgWRltQMt0T3H2D_fLqhHe_0qkDq_mw9BU/?imgmax=800" height="512" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="476" /></span></a></pre>
<pre><span style="font-family: Verdana, sans-serif;">
</span></pre>
<pre><span style="font-family: Verdana, sans-serif;">
</span></pre>
<pre><span style="font-family: Verdana, sans-serif;">Applet: SIS Account Entry Applet</span></pre>
<pre><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp8kQAj3caj5bxG9Db2X_KsRfnMpCieZcJlxSgFMF6NeYCTgFtdp03hr0nFb_3vh6Sxo-Cz6tdRb2-SfiR_TgxAExNnSaDGREYhD-xdNWiwrsUHTOm5HWy44SKdzhLdo5NnVWNKAjzczpg/s1600-h/image%25255B10%25255D.png"><span style="font-family: Verdana, sans-serif;"><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPpEyScXRdNdD-J2aRmRMt6WKUgXVKEft4hfO34sOYpCYU6UUANH6D-ZXiJ4TMDtl6wCjZ5UKdLA7kBRTvkJi7VB4IY3PPudJvV-T3NzWGG591xch1nm04-zgqtYlGpJNiLpUHWOIEmAAg/?imgmax=800" height="231" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="470" /></span></a></pre>
<pre><span style="font-family: Verdana, sans-serif;">
</span></pre>
<pre><span style="font-family: Verdana, sans-serif;">As you can observe above, I am adding HTML section and grouping controls under them. These HTML sections are going to be converted into Accordions/Sections or Tabs and controls will be shifted into those Accordions/Sections or Tabs using Jquery DOM manipulation.</span></pre>
<pre><span style="font-family: Verdana, sans-serif;">
</span></pre>
<pre><span style="font-family: Verdana, sans-serif;">Ok enough surprises, here is how the code looks like,</span></pre>
<pre><span style="font-family: Verdana, sans-serif;">
</span></pre>
<pre><span style="font-family: Verdana, sans-serif;">AppletAccordionPR.prototype.ShowUI = function () {
SiebelAppFacade.AppletAccordionPR.superclass.ShowUI.call(this);
var pm = this.GetPM();
var appletId = "s_" + pm.Get("GetFullId") + "_div";
var $FormLayoutTable = $("#" + appletId + " .siebui-collapsible-applet-content .GridBack");
var $TabbedContent = GetAccordion($FormLayoutTable);
$($FormLayoutTable).replaceWith($TabbedContent);
$(function () {
$("#accordion").accordion({
event: "click hoverintent"
});
});</span></pre>
<pre><span style="font-family: Verdana, sans-serif;">}</span></pre>
<pre><span style="font-family: Verdana, sans-serif;">This is what I am doing above, </span></pre>
<ul>
<li><span style="font-family: Verdana, sans-serif;">get appletId from pm</span></li>
<span style="font-family: Verdana, sans-serif;"><br />
</span>
<li><span style="font-family: Verdana, sans-serif;">get handle for <table> holding your form layout – if you check on google chrome dev tools – you will see that the <table> has class .GridBack</span></li>
<span style="font-family: Verdana, sans-serif;"><br />
</span>
<li><span style="font-family: Verdana, sans-serif;">Now, call your custom function GetAccordion to get a new layout</span></li>
<span style="font-family: Verdana, sans-serif;"><br />
</span>
<li><span style="font-family: Verdana, sans-serif;">Call JqueryUI function .accordion() for your new <div id=”#accordion”> added by your function: GetAccordion. Remember I told you to check JqueryUI demo and the code they have provided on their site. Check again, if you don’t get what I am doing here.</span></li>
</ul>
<span style="font-family: Verdana, sans-serif;">Finally, GetAccordion function explained here:</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">All it is doing is, looping through <tr> s within your <table> and </span><br />
<ul>
<li><span style="font-family: Verdana, sans-serif;">for each <tr> having .FormSection in it, (check on chrome, all HTML FormSection have class .FormSection) adds <h3>and <div> under which a new empty <table> will be inserted to hold all <tr>s. Again check the JqueryUI example to visualize.</span></li>
<span style="font-family: Verdana, sans-serif;"><br />
</span>
<li><span style="font-family: Verdana, sans-serif;">Now for each <tr> not having .FormSection means, it is having controls in them. Copy them to empty <table> you added above.</span></li>
</ul>
<span style="font-family: Verdana, sans-serif;">Below is the full function for your reference:</span><br />
<pre><span style="font-family: Verdana, sans-serif;"> function GetAccordion(ContentTable) {
//main div to which accordion will be enabled in ShowUI
var $AccordionsDOM = $("<div id='accordion'></div");
//div to hold content for a section
var $strAccordionDiv = $("");
var skipInitRows = true;
var AccordionIndex = 1;
var AccordionOpen = false;
if ($(ContentTable).length) {
//build an empty table to go into each FormSection
var $emptyTable = ($(ContentTable).clone());
$emptyTable.find("tbody").empty();
//Loop through the <tr>s
var $rows = $(ContentTable).find("tr");
$rows.each(function (i, row) {
//For <tr> check if it has FormSection
$FormSec = $(row).find('.FormSection');
if ($FormSec.length) {
//If so, check if it's not the first FormSection and if not, then append to main <div>
if (AccordionOpen) {
if ($strAccordionDiv.length) {
$AccordionsDOM.append($strAccordionDiv);
}
}
skipInitRows = false;
//Initiate a new FormSection by adding <h3>
$AccordionsDOM.append($("<h3>" + $FormSec.text() + "</h3>"));
//initialize, contenct for new FormSection
$strAccordionDiv=$("<div></div>");
//Add empty table so that subsequent rows can be added to it.
$strAccordionDiv.append($emptyTable.clone());
AccordionOpen = true;
AccordionIndex++;
}
else if (!skipInitRows) //Add to the Accordion
{
// If <tr> is not a FormSection - means it is <tr> having controls, add to Accordion content
$strAccordionDiv.find("tbody").append($(row));
}
});
// Finally, add the last FormSection to main <div>
if (AccordionOpen) {
if ($strAccordionDiv.length) {
$AccordionsDOM.append($strAccordionDiv);
}
}
}
return $AccordionsDOM;
}</span></pre>
<pre><span style="font-family: Verdana, sans-serif;">If you have understood above example, you can code for Tabs too. Let me know if you struggle for tabs. I can explain!</span></pre>
<pre><span style="font-family: Verdana, sans-serif;">
</span></pre>
<pre><span style="font-family: Verdana, sans-serif;">Cheers,</span></pre>
<pre><span style="font-family: Verdana, sans-serif;">Shiv</span></pre>
Shttp://www.blogger.com/profile/13636876457402555607noreply@blogger.com2tag:blogger.com,1999:blog-2548259877820684769.post-60311619646435532312014-11-11T10:30:00.004+00:002014-11-14T15:51:58.533+00:00Siebel monitoring – build your own and of course free!<img border="0" src="http://talkincloud.com/site-files/talkincloud.com/files/imagecache/medium_img/uploads/2012/12/cloud-monitoring.jpeg" height="326" style="background-image: none; border-width: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-left: 0px; padding-right: 0px; padding-top: 0px;" width="565" /><br />
Taking a bit of a side track from Open UI topic here. There are very few of the shelf tools available in the market when it comes to monitoring your Siebel servers which can <br />
<ul>
<li>monitor servers and components at a micro level </li>
<li>Alert admin users before your business starts complaining. </li>
<li>Easily configurable</li>
</ul>
How about building your own monitoring? I am considering two use cases to demo it. <br />
<ol>
<li>a job which monitors the servers status and alert set of users by email if any of the server is not Online. </li>
<li>a job which monitors set of listed components and alert users if any of them in trouble via email</li>
</ol>
All I am using is srvrmgr command and analyse the output and take appropriate action. I am doing this using simple VB coding. You don’t need to have any paid tools – only windows platform is needed as you will run your VB code using cscript. <br />
<strong><u><br /></u></strong>
<strong><u>use case 1: To monitor servers (by status)</u></strong><br />
<strong>The need:</strong><br />
At every 10 mins, (or at desired interval)<br />
<a name='more'></a><br />
<ul>
<li>Run srvrmgr command </li>
<li>Fire command: “list server” </li>
<li>Capture the output and process it. Any server not in status of Running, include it for emailing. </li>
<li>eMail if any servers in trouble.</li>
</ul>
Copy of my SIEB_SRVR_RUN.vbs is available at the bottom. It’s pretty self explanatory. Remember to <span style="color: red;">change the extension to .vbs </span>before you start using it. I have added enough comments to it. Below are changes you need to make it work – <span style="background-color: yellow;">line 60</span> onwards in the code.<br />
<ol>
<li>vBINPATH = "D:\SIA81\siebsrvr\BIN\" '#path where your srvrmgr command is </li>
<li>Recipients = "shivakumarub@gmail.com;abc@abc.com" '#you can add as many emails you want separated by ; </li>
<li>Sender = “<a href="mailto:%E2%80%9CSiebMon@gmail.com">SiebMon@gmail.com</a>” ‘#Change it as needed </li>
<li>sSmtpServer = "xxxx" ‘#SMTP server name </li>
<li>sSmtpUser = "xxxx" ‘#SMTP user name </li>
<li>sSmtpPword ="xxxx" ‘#SMTP password</li>
</ol>
Now create a simple .bat file to run cscript on above vbs file and add it to the windows scheduler to run at the desired interval. A copy of my RuNSrvrMon.bat file is at the bottom for your reference. My .vbs file is under d:\SiebMon and hence .bat code is referring to it. Please provide proper gateway, enterprise and username and password who can run srvrmgr command in the .bat file. Remember to <span style="color: red;">change the extension to .bat </span>before you start using it. <br />
<strong><u><br /></u></strong>
<strong><u>Use case 2: To monitor list of components </u></strong><br />
<br />
Now, let’s look at bit more complicated use case to monitor a given list of components. <br />
<strong><u><br /></u></strong>
<strong><u>Side note: </u></strong>In my environments, we have components enabled on all the servers. The servers on which they need to run are set to Auto Mode so that they come up automatically when the services/servers are restarted. On rest of the servers where we don’t want them to be running, the Mode is set to Manual and they are in Shutdown status. Above setup will really helpful in case you want to scale your environment – all you need is to set the Mode to Auto and bring them up and they will immediately start serving your users and processes without any outage. Also, handy when you want to increase the logging level – you can just mention the component without server as the comp is enabled on all.<br />
<strong><br /></strong>
<strong>The need: </strong>We need a file containing list of components to be monitored by our custom component monitor - COMPList.txt provided at the bottom. Remember above side note : Auto - Running & Manual - Shutdown.<br />
<br />
At every 10 mins, (or at desired interval)<br />
<ul>
<li>run srvrmgr command </li>
<li>fire command: “list comps”. This will list all the components and their status </li>
<li>capture the output and process it. Loop through the srvrmgr output file </li>
<ul>
<li>if the component is listed in your complist file and it’s mode is Auto, then check it’s status. If not Running then it is in trouble and flag it for sending email. </li>
<li>If the component is listed in your complist file and it is reaching max task (90% as set in variable in the code) then flag it for sending email. </li>
</ul>
<li>eMail if any components in trouble along with details to the admin users.</li>
</ul>
Copy of my Copy of my SIEB_COMP_RUN.vbs is available at the bottom. It’s pretty self explanatory. Remember to <span style="color: red;">change the extension to .vbs </span>before you start using it. I have added enough comments to it. Please review and let me know any questions. Below are changes you need to make it work – line 60 onwards in the code.<br />
<ol>
<li>vBINPATH = "D:\SIA81\siebsrvr\BIN\" '#path where your srvrmgr command is </li>
<li>Recipients = "shivakumarub@gmail.com;abc@abc.com" '#you can add as many emails you want separated by ; </li>
<li>Sender = <a href="mailto:SiebMon@gmail.com">SiebMon@gmail.com</a> </li>
<li>sSmtpServer = "xxxx" ‘#SMTP server name </li>
<li>sSmtpUser = "xxxx" ‘#SMTP user name </li>
<li>sSmtpPword ="xxxx" ‘#SMTP password</li>
</ol>
Now create a simple .bat file and put below line in it to it and add it to the windows scheduler to run at the desired interval. A copy of my RunCompMon.bat file is at the bottom for your reference. My .vbs file is under d:\SiebMon and hence .bat code is referring to it. Please provide proper gateway, enterprise and username and password who can run srvrmgr command in the .bat file. <br />
<br />
All I am doing above is giving you simple hints. it can be extended to any level. The solution can be extended to build a dashboard (URL based) where the info can be shown to the users which gets refreshed at regular intervals.<br />
<br />
Let me know what you think of above simple framework for monitoring your Siebel.<br />
<br />
<b><u>Files for Server monitoring:</u></b><br />
<blockquote>
<a href="https://drive.google.com/file/d/0B0IV_ky_Dy3fQ19EbFRxNmRQUk0/view?usp=sharing" target="_blank"><strong><span style="background-color: yellow;">SIEB_SRVR_RUN.vbs</span></strong></a> //remember to save it as .vbs on your local</blockquote>
<blockquote>
<span style="background-color: yellow;"><a href="https://drive.google.com/file/d/0B0IV_ky_Dy3fWFRTTlNIOXZmajg/view?usp=sharing" target="_blank">RunSrvrMon.bat</a></span> //remember to save it as .bat on your local</blockquote>
<b><u>Files for Component monitoring:</u></b><br />
<blockquote>
<a href="https://drive.google.com/file/d/0B0IV_ky_Dy3fLUpYYm83WEUzODA/view?usp=sharing" target="_blank"><span style="background-color: yellow;">COMPList.txt</span></a> // this file contains the comps to be monitored for status and maxtask</blockquote>
<blockquote>
<span style="background-color: yellow;"><a href="https://drive.google.com/file/d/0B0IV_ky_Dy3fSzZqYnR4QVhIWjg/view?usp=sharing" target="_blank">SIEB_COMP_RUN.vbs</a></span> //remember to save it as .vbs on your local</blockquote>
<blockquote>
<a href="https://drive.google.com/file/d/0B0IV_ky_Dy3fdm80MEZJOFA4Z2c/view?usp=sharing" target="_blank"><span style="background-color: yellow;">RunCompMon.txt</span></a> // remember to save it as .bat on your local</blockquote>
Cheers,<br />
ShivShttp://www.blogger.com/profile/13636876457402555607noreply@blogger.com6tag:blogger.com,1999:blog-2548259877820684769.post-1137830678466307682014-10-29T14:43:00.000+00:002015-02-03T12:50:51.228+00:00Open UI - Free Address Auto complete powered by Google API<span style="font-family: Verdana, sans-serif;">If you are looking for a free address auto complete for your Open UI users, here is the solution. I am sure, this will compete with other paid services like Experian (QAS), Informatics etc for Address verification and validation services. </span><br />
<strong><u><span style="font-family: Verdana, sans-serif;"><br /></span></u></strong>
<strong><u><span style="font-family: Verdana, sans-serif;">Present scenario:</span></u></strong><br />
<span style="font-family: Verdana, sans-serif;">Users manually enter address info, leading to inconsistent/incorrect data on the system.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<strong><u><span style="font-family: Verdana, sans-serif;">With Autocomplete API integrated:</span></u></strong><br />
<span style="font-family: Verdana, sans-serif;">Users just need to search for the address and select it. System will do the rest - it will copy the standard address info from Google and auto-populates the address fields on Siebel.</span><br />
<div>
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<b><span style="font-family: Verdana, sans-serif;">Demo first.</span></b><br />
<b><span style="font-family: Verdana, sans-serif;"><br /></span></b>
<iframe allowfullscreen="yes" frameborder="0" src="https://www.youtube.com/embed/p0C1AxCXaK0" style="height: 358px; width: 627px;"></iframe>
<strong><u><span style="font-family: Verdana, sans-serif;"><br /></span></u></strong>
<strong><u><span style="font-family: Verdana, sans-serif;">High level technical flow:</span></u></strong><br />
<a name='more'></a><br />
<span style="font-family: Verdana, sans-serif;">1) Add a custom PR at applet level and associate to address MVG: “Account Address Mvg Applet”</span><br />
<span style="font-family: Verdana, sans-serif;">2) In ShowUI function on your applet PR do below,</span><br />
<blockquote>
<span style="font-family: Verdana, sans-serif;">Get the ActiveView - SiebelApp.S_App.GetActiveView();</span><br />
<span style="font-family: Verdana, sans-serif;">Get the applet map - active_View.GetAppletMap();</span><br />
<span style="font-family: Verdana, sans-serif;">Search for “Account Address Mvg Applet” as MVGNewRecordApplet</span><br />
<span style="font-family: Verdana, sans-serif;">if the MVGNewRecordApplet Mode is “Edit” then, </span><br />
<span style="font-family: Verdana, sans-serif;"> Add a new input field above all the current fields. This is what I did, </span><br />
<span style="font-family: Verdana, sans-serif;"> I got the Controls object from pm - pm.Get("GetControls"). </span><br />
<span style="font-family: Verdana, sans-serif;"> Then got the control for the first field: “Street Address” - controls["Street Address"]</span><br />
<span style="font-family: Verdana, sans-serif;"> Then get the input name to select it using jquery - staddrctrl.GetInputName()</span><br />
<span style="font-family: Verdana, sans-serif;"> Once you get handle for 1st input, get the closest table and add a new <tr><td> for your input on which you are going to enable Google Auto Complete later.</span><br />
<span style="font-family: Verdana, sans-serif;">Below is the code snippet for your reference which goes under ShowUI():</span><br />
<pre style="background: white; line-height: normal;"><span style="font-family: Consolas;"><span style="color: black;"><span style="font-size: 10pt;"> </span></span><span style="font-size: 10pt;"><span style="color: #4f76ac;">var</span><span style="color: black;"> active_View </span><span style="color: #1e7c70;">=</span><span style="color: black;"> SiebelApp.S_App.GetActiveView</span><span style="color: #1e7c70;">();</span>
<span style="color: black;"> </span><span style="color: #4f76ac;">var</span><span style="color: black;"> applet_Map </span><span style="color: #1e7c70;">=</span><span style="color: black;"> active_View.GetAppletMap</span><span style="color: #1e7c70;">();</span>
<span style="color: black;"> </span><span style="color: #4f76ac;">var</span><span style="color: black;"> MVGNewRecordApplet </span><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #9b5f9b;">null</span><span style="color: #1e7c70;">;</span>
<span style="color: black;"> </span><span style="color: #4f76ac;">var</span><span style="color: black;"> appletName </span><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #823125;">"Account Address Mvg Applet"</span><span style="color: #1e7c70;">;</span>
<span style="color: black;"> </span><span style="color: #4f76ac;">if</span><span style="color: black;"> </span><span style="color: #1e7c70;">(</span><span style="color: black;">applet_Map.hasOwnProperty</span><span style="color: #1e7c70;">(</span><span style="color: black;">appletName</span><span style="color: #1e7c70;">))</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span>
<span style="color: black;"> MVGNewRecordApplet </span><span style="color: #1e7c70;">=</span><span style="color: black;"> applet_Map</span><span style="color: #1e7c70;">[</span><span style="color: black;">appletName</span><span style="color: #1e7c70;">];</span>
<span style="color: black;"> </span><span style="color: #4f76ac;">if</span><span style="color: black;"> </span><span style="color: #1e7c70;">(</span><span style="color: black;">MVGNewRecordApplet.GetMode</span><span style="color: #1e7c70;">()</span><span style="color: black;"> </span><span style="color: #1e7c70;">==</span><span style="color: black;"> </span><span style="color: #823125;">"New"</span><span style="color: #1e7c70;">)</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span>
<span style="color: black;"> pm </span><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #4f76ac;">this</span><span style="color: black;">.GetPM</span><span style="color: #1e7c70;">();</span>
<span style="color: black;"> bc </span><span style="color: #1e7c70;">=</span><span style="color: black;"> MVGNewRecordApplet.GetBusComp</span><span style="color: #1e7c70;">();</span>
<span style="color: black;"> </span><span style="color: #4f76ac;">var</span><span style="color: black;"> controls </span><span style="color: #1e7c70;">=</span><span style="color: black;"> pm.Get</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">"GetControls"</span><span style="color: #1e7c70;">);</span>
<span style="color: black;"> </span><span style="color: #4f76ac;">var</span><span style="color: black;"> staddrctrl </span><span style="color: #1e7c70;">=</span><span style="color: black;"> controls</span><span style="color: #1e7c70;">[</span><span style="color: #823125;">"Street Address"</span><span style="color: #1e7c70;">];</span>
<span style="color: black;"> </span><span style="color: #4f76ac;">var</span><span style="color: black;"> staddripname </span><span style="color: #1e7c70;">=</span><span style="color: black;"> staddrctrl.GetInputName</span><span style="color: #1e7c70;">();</span>
<span style="color: black;"> </span><span style="color: #4f76ac;">var</span><span style="color: black;"> staddrIPHolder </span><span style="color: #1e7c70;">=</span><span style="color: black;"> $</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">"[name="</span><span style="color: black;"> </span><span style="color: #1e7c70;">+</span><span style="color: black;"> staddripname </span><span style="color: #1e7c70;">+</span><span style="color: black;"> </span><span style="color: #823125;">"]"</span><span style="color: #1e7c70;">);</span>
<span style="color: black;"> </span><span style="color: #4f76ac;">var</span><span style="color: black;"> tableHolder </span><span style="color: #1e7c70;">=</span><span style="color: black;"> staddrIPHolder.closest</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">"table"</span><span style="color: #1e7c70;">);</span>
<span style="color: black;"> tableHolder.before</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">'<tr><td colspan=2><input type="text" id="dynamic_addr_ip" style="height: 20px; width: 258px;" maxlength="200" tabindex="0" class="siebui-input-align-left" aria-readonly="false" placeholder="Enter your address here"></td></tr>'</span><span style="color: #1e7c70;">);</span>
<span style="color: black;"> </span><span style="color: #1e7c70;">}</span>
<span style="color: black;"> </span></span><span style="color: #1e7c70; font-size: 10pt;">}</span></span></pre>
</blockquote>
<blockquote>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;">2) Next is to load Google Map API using AJAX by calling preGoogleLoadAPI() function. Refer to my previous blog for details: </span></pre>
</blockquote>
<blockquote>
<a href="http://siebel-openui.blogspot.co.uk/2014/10/google-map-integration-with-open-ui.html" target="_blank"><span style="font-family: Verdana, sans-serif;">Google map integration with Open UI – route planning based on sales reps calendar!</span></a></blockquote>
<blockquote>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;">3) Now, call your custom function to enable autocomplete. Below is the code for my custom function:</span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Consolas;"><span style="color: black;"><span style="font-size: 10pt;"></span></span></span></pre>
</blockquote>
<blockquote>
<pre style="background: white; line-height: normal;"><span style="font-family: Consolas;"><span style="color: black;"><span style="font-size: 10pt;">initialize </span></span><span style="font-size: 10pt;"><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #4f76ac;">function</span><span style="color: black;"> </span><span style="color: #1e7c70;">()</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span>
<span style="color: black;"> </span><span style="color: #4f76ac;">if</span><span style="color: black;"> </span><span style="color: #1e7c70;">(</span><span style="color: #4f76ac;">typeof</span><span style="color: black;"> </span><span style="color: #1e7c70;">(</span><span style="color: black;">google.maps.places</span><span style="color: #1e7c70;">)</span><span style="color: black;"> </span><span style="color: #1e7c70;">!==</span><span style="color: black;"> </span><span style="color: #823125;">"undefined"</span><span style="color: #1e7c70;">)</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span>
<span style="color: black;"> </span><span style="color: #4f76ac;">var</span><span style="color: black;"> input </span><span style="color: #1e7c70;">=</span><span style="color: black;"> $</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">'#dynamic_addr_ip'</span><span style="color: #1e7c70;">)[</span><span style="color: #9b5f9b;">0</span><span style="color: #1e7c70;">]; // this is my custom field added above</span>
<span style="color: black;"> $</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">'#dynamic_addr_ip'</span><span style="color: #1e7c70;">)</span><span style="color: black;">.focus</span><span style="color: #1e7c70;">();</span>
<span style="color: black;"> autocomplete </span><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #4f76ac;">new</span><span style="color: black;"> google.maps.places.Autocomplete</span><span style="color: #1e7c70;">(</span><span style="color: black;">input</span><span style="color: #1e7c70;">);// this is how you enable Auto Complete using google places! So simple isn’t it?</span>
<span style="color: black;"> google.maps.event.addListener</span><span style="color: #1e7c70;">(</span><span style="color: black;">autocomplete</span><span style="color: #1e7c70;">,</span><span style="color: black;"> </span><span style="color: #823125;">'place_changed'</span><span style="color: #1e7c70;">,</span><span style="color: black;"> </span><span style="color: #4f76ac;">function</span><span style="color: black;"> </span><span style="color: #1e7c70;">()</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span>
<span style="color: black;"> fillInAddress</span><span style="color: #1e7c70;">(); //whenever user changes the address info on new input field, it will call my custom function to fill address.</span>
<span style="color: black;"> </span><span style="color: #1e7c70;">});</span></span></span><span style="font-family: Consolas;"><span style="font-size: 10pt;"><span style="color: black;">
</span><span style="color: #1e7c70;">}</span>
<span style="color: black;"> </span></span><span style="color: #1e7c70; font-size: 10pt;">};</span></span></pre>
<pre style="background: white; line-height: normal;"> <span style="font-family: Verdana, sans-serif;">I will direct you to this google api doc to understand how autocomplete works: <a href="https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete-addressform" target="_blank"><strong>Google Map API - Place Autocomplete Address</strong></a></span></pre>
</blockquote>
<span style="background-color: white; font-family: Verdana, sans-serif;">4) So, whenever user types an address and selects one on my new input field, google event listner will call my fillInAddress() function. I am getting all the formatted address details from Google API and populating my Siebel address fields. You will get the details for that in above google api link.</span><br />
<span style="background-color: white; font-family: Verdana, sans-serif;"><br /></span>
<span style="background-color: white; font-family: Verdana, sans-serif;">All I am doing is, doing bc.SetFieldValue() for each address field. (BC I got from MVG applet as shown above: </span><span style="background-color: white; color: black; font-family: Verdana, sans-serif;">bc </span><span style="background-color: white; color: #1e7c70; font-family: Verdana, sans-serif;">=</span><span style="background-color: white; color: black; font-family: Verdana, sans-serif;"> MVGNewRecordApplet.GetBusComp</span><span style="background-color: white; color: #1e7c70; font-family: Verdana, sans-serif;">();</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Let me know if any questions. Copy of my PR, attached below.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><a href="https://drive.google.com/file/d/0B0IV_ky_Dy3fUkxSclhMZEFSTTA/view?usp=sharing" rel="nofollow" target="_blank">AddressAutoCompletePR.js</a></span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<br />
<span style="background-color: white; font-family: Verdana, sans-serif;"><br /></span>
<span style="background-color: white; font-family: Verdana, sans-serif;">Cheers,</span><br />
<span style="background-color: white; font-family: Verdana, sans-serif;">Shiv</span>Shttp://www.blogger.com/profile/13636876457402555607noreply@blogger.com0tag:blogger.com,1999:blog-2548259877820684769.post-29578147656550586632014-10-24T17:56:00.003+01:002015-04-09T12:44:53.945+01:00Google map integration with Open UI – route planning based on sales reps calendar! <span style="font-family: Verdana, sans-serif;">Hi All,</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">I would love to update more often on my blog but unfortunately, my work load is pulling me back. While I was hiding from my blogging, was busy improvising our sales reps day to day operations by means of integrating their visits with Google optimized route planning.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Before you can understand the subsequent content of my blog, you need to understand the google map API itself. I am not going to go into that but provide you the link to explore your self. So, click on the image below and explore the Google map API.</span><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZZiiEJDufbOjlvOjyVSe1wKLgo5Y5543aJU0g1KMnFNUOit4aNRCReFEIHVR7kv9tsEGsUzUTyaXG0YL00r7WmnOHtodql-6IhPfm5S-4mlbar0MgaBB_NwgbswoEhHbah4-QXvU_7PoY/s1600-h/image2.png"><span style="font-family: Verdana, sans-serif;"><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1yXj5p9kShboy3qAkbNVvCfc3xhCK9joXK1l3rTgbhmkprZZsuGJsPsxhyphenhyphenFHto0UujN1-fH7CpSuFJtNzfbLATDm4xzxFf5SoN7ADd2dIx7YM1buTUVD3oOQu7_ylCJIqUehRa_H5SmBK/?imgmax=800" height="109" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="244" /></span></a><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Ok demo first. Please watch below video for an insight as to what I will be talking next.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><iframe allowfullscreen="yes" frameborder="0" height="344" src="https://www.youtube.com/embed/VMxlYfhf2tg" width="550"></iframe> </span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;">The business scenario goes like this. As soon as your sales rep logs onto Open UI, he will be shown with his current appointments in the calendar applet and the corresponding locations are plotted on the map along with full direction details at the bottom of the screen.</span><br />
<div>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">How to go about it? (High level)</span><br />
<span style="font-family: Verdana, sans-serif;"></span><br />
<a name='more'></a><br />
<br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">1) You need to build a new view (I copied home page view where it already had the Calendar Applet). I added Activity List Applet and the calendar Applet to it. (70% –30% ratio).</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">2) Your list applet will change its content based on the visits listed on your calendar applet. I mean, if you change the day on your calendar, you will see the appointments on that day on both the calendar applet and the list applet as they are based on same BC.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">3) Now add a custom PR for your list applet to replace it’s list contents and display a Google map instead! Sounds tricky? continue reading then.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">1st mystery to resolve is to how to access Google Map APIs. As you know jquery or any other 3rd party plugins where they provide you with a local copy of .js files which you can very easily include into your PR. But Google doesn’t do that – they provide you a URL to include. The main reason is Google free service is limited ( you can have limited number of direction requests, geocoding etc). You can get a paid key if your usage is higher. Open UI out of the box, doesn’t provide options to include URL based js to your PM/PR. So, after looking around a while, I found this vanilla js – jqmmapctrl.js (under /scripts/siebel). You need to include Google API via ajax calls.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Here is the outline as to how to include Google map API using ajax.</span><br />
<span style="font-family: Verdana, sans-serif;"><span style="color: black;"> </span><span style="color: #4f76ac;">var</span><span style="color: black;"> googleAPILoaded </span><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #9b5f9b;">false</span><span style="color: #1e7c70;">; // variable to tell you whether the google API load was success or not</span><span style="color: black;"></span></span><br />
<span style="font-family: Verdana, sans-serif;"><span style="color: black;">//This function will use jquery getScript to include google api. Once the API is loaded it will callback your function: loadAPIs<br /> </span><span style="color: #4f76ac;">var</span><span style="color: black;"> preGoogleLoadAPI </span><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #4f76ac;">function</span><span style="color: #1e7c70;">(){</span><br /><span style="color: black;"> googleAPILoaded </span><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #9b5f9b;">false</span><span style="color: #1e7c70;">;</span><br /><span style="color: black;"> </span><span style="color: #4f76ac;">var</span><span style="color: black;"> prevValue </span><span style="color: #1e7c70;">=</span><span style="color: black;"> $.ajaxSetup</span><span style="color: #1e7c70;">()</span><span style="color: black;">.async</span><span style="color: #1e7c70;">;</span><br /><span style="color: black;"> $.ajaxSetup</span><span style="color: #1e7c70;">({</span><br /><span style="color: black;"> async</span><span style="color: #1e7c70;">:</span><span style="color: black;"> </span><span style="color: #9b5f9b;">false</span><br /><span style="color: black;"> </span><span style="color: #1e7c70;">});</span><br /><span style="color: black;"> $.getScript</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">"https://www.google.com/jsapi?callback=loadGAPIs"</span><span style="color: #1e7c70;">,</span><span style="color: black;"> </span><span style="color: #4f76ac;">function</span><span style="color: #1e7c70;">()</span><span style="color: black;"> </span><span style="color: #1e7c70;">{});</span><br /><span style="color: black;"> $.ajaxSetup</span><span style="color: #1e7c70;">({</span><br /><span style="color: black;"> async</span><span style="color: #1e7c70;">:</span><span style="color: black;"> prevValue<br /> </span><span style="color: #1e7c70;">});</span><br /><span style="color: black;"> </span><span style="color: #1e7c70;">}</span><span style="color: black;"></span></span><br />
<span style="font-family: Verdana, sans-serif;"><span style="color: black;">//Here you will set your global variable to true to indicate that APIs are loaded<br /> </span><span style="color: #4f76ac;">var</span><span style="color: black;"> loadGAPIs </span><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #4f76ac;">function</span><span style="color: black;"> </span><span style="color: #1e7c70;">()</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span><br /><span style="color: black;"> SiebelJS.Log</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">"[LoadGAPIs] Google APIs Loaded..."</span><span style="color: #1e7c70;">);</span><br /><span style="color: black;"> googleAPILoaded </span><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #9b5f9b;">true</span><span style="color: #1e7c70;">;</span><br /><span style="color: black;"> </span><span style="color: #1e7c70;">};</span><span style="color: black;"> </span></span><br />
<span style="color: black; font-family: Verdana, sans-serif;">//This function will take a function name in which you have defined all your mapping logic and will call it through google.load api</span><br />
<span style="font-family: Verdana, sans-serif;"><span style="color: black;"> </span><span style="color: #4f76ac;">var</span><span style="color: black;"> LoadAPI </span><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #4f76ac;">function</span><span style="color: black;"> </span><span style="color: #1e7c70;">(</span><span style="color: black;">func</span><span style="color: #1e7c70;">,</span><span style="color: black;"> retryCount</span><span style="color: #1e7c70;">)</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span><br /><span style="color: black;"> </span><span style="color: #4f76ac;">if</span><span style="color: black;"> </span><span style="color: #1e7c70;">(!</span><span style="color: black;">googleAPILoaded </span><span style="color: #1e7c70;">||</span><span style="color: black;"> </span><span style="color: #4f76ac;">typeof</span><span style="color: black;"> </span><span style="color: #1e7c70;">(</span><span style="color: black;">google</span><span style="color: #1e7c70;">)</span><span style="color: black;"> </span><span style="color: #1e7c70;">==</span><span style="color: black;"> </span><span style="color: #823125;">"undefined"</span><span style="color: #1e7c70;">)</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span><br /><span style="color: black;"> </span><span style="color: #4f76ac;">if</span><span style="color: black;"> </span><span style="color: #1e7c70;">(</span><span style="color: black;">retryCount </span><span style="color: #1e7c70;"><</span><span style="color: black;"> </span><span style="color: #9b5f9b;">10</span><span style="color: #1e7c70;">)</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span><br /><span style="color: black;"> retryCount</span><span style="color: #1e7c70;">++;</span><br /><span style="color: black;"> setTimeout</span><span style="color: #1e7c70;">(</span><span style="color: black;">LoadAPI</span><span style="color: #1e7c70;">(</span><span style="color: black;">func</span><span style="color: #1e7c70;">,</span><span style="color: black;"> retryCount</span><span style="color: #1e7c70;">),</span><span style="color: black;"> </span><span style="color: #9b5f9b;">1000</span><span style="color: #1e7c70;">);</span><br /><span style="color: black;"> </span><span style="color: #1e7c70;">}</span><br /><span style="color: black;"> </span><span style="color: #1e7c70;">}</span><br /><span style="color: black;"> </span><span style="color: #4f76ac;">else</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span><br /><span style="color: black;"> google.load</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">"maps"</span><span style="color: #1e7c70;">,</span><span style="color: black;"> </span><span style="color: #823125;">"3"</span><span style="color: #1e7c70;">,</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span><span style="color: black;"> other_params</span><span style="color: #1e7c70;">:</span><span style="color: black;"> </span><span style="color: #823125;">'libraries=places,geometry&sensor=false'</span><span style="color: #1e7c70;">,</span><span style="color: black;"> callback</span><span style="color: #1e7c70;">:</span><span style="color: black;"> func </span><span style="color: #1e7c70;">});</span><br /><span style="color: black;"> console.log</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">"google load called"</span><span style="color: #1e7c70;">);</span><br /><span style="color: black;"> </span><span style="color: #1e7c70;">}</span><br /><span style="color: black;"> </span><span style="color: #1e7c70;">};</span></span><br />
<span style="font-family: Verdana, sans-serif;"><span style="color: #1e7c70;"><br /></span></span>
<span style="font-family: Verdana, sans-serif;">That’t it! Above is basically your framework for any google integration. So next steps to gather data from your calendar and call google API and details below.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">step 1) Beatify your list applet by replacing it with two DIVs. One for the map and one for direction. On your PR - ShowUI function (gets called only once initially when screen is loaded) below is what I did.</span><br />
<pre><span style="font-family: Verdana, sans-serif;">> Get the handle for your applet placeholder from your pm. </span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;"><span style="color: black;"> </span><span style="color: #4f76ac;">var</span><span style="color: black;"> pm </span><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #4f76ac;">this</span><span style="color: black;">.GetPM</span><span style="color: #1e7c70;">();</span>
<span style="color: black;"> </span><span style="color: #4f76ac;">var</span><span style="color: black;"> placeHolder </span><span style="color: #1e7c70;">=</span><span style="color: black;"> pm.Get</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">"GetPlaceholder"</span><span style="color: #1e7c70;">);</span></span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;"><span style="color: #1e7c70;"></span>> Build a string containing HTML that you want to replace with. In my case, a map_container div to hold both map_canvas an directions_panel divs.</span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;">
<span style="color: black;"> </span><span style="color: #4f76ac;">var</span><span style="color: black;"> strHTML </span><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #823125;">'<div class="map_container" id="map_container" style="z-index: 1; border: 0" src="">'</span><span style="color: #1e7c70;">;</span>
<span style="color: black;"> strHTML </span><span style="color: #1e7c70;">+=</span><span style="color: black;"> </span><span style="color: #823125;">' <div id="map_canvas" style="padding:2px; float:center;width:98%;max-width:99%;height:77.5%%; overflow:hidden;border: 2px solid;border-radius: 5px;"></div>'</span><span style="color: #1e7c70;">;</span>
<span style="color: black;"> strHTML </span><span style="color: #1e7c70;">+=</span><span style="color: black;"> </span><span style="color: #823125;">' <div id="directions_panel" style="background-color:#C8CBDA;padding:2px;float:center;height:19.5%;width:98%;max-width:99%;text-align:left;overflow:auto;border: 2px solid;border-radius: 5px;"></div>'</span><span style="color: #1e7c70;">;</span>
<span style="color: black;"> strHTML </span><span style="color: #1e7c70;">+=</span><span style="color: black;"> </span><span style="color: #823125;">'</div>'</span><span style="color: #1e7c70;">;</span><span style="color: black;"> </span></span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;"><span style="color: #1e7c70;"></span>> Replace the list applet layout with your HTML <span style="color: black;">
$</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">"#"</span><span style="color: black;"> </span><span style="color: #1e7c70;">+</span><span style="color: black;"> placeHolder</span><span style="color: #1e7c70;">)</span><span style="color: black;">.append</span><span style="color: #1e7c70;">(</span><span style="color: black;">strHTML</span><span style="color: #1e7c70;">);</span></span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;"><span style="color: #1e7c70;"></span>> Adjust the height and width of your main map_containder div so that it fits nicely.</span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;"><span style="color: black;"> $</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">".map_container"</span><span style="color: #1e7c70;">)</span><span style="color: black;">.width</span><span style="color: #1e7c70;">(</span><span style="color: black;">$</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">".map_container"</span><span style="color: #1e7c70;">)</span><span style="color: black;">.parent</span><span style="color: #1e7c70;">()</span><span style="color: black;">.parent</span><span style="color: #1e7c70;">()</span><span style="color: black;">.parent</span><span style="color: #1e7c70;">()</span><span style="color: black;">.width</span><span style="color: #1e7c70;">()</span><span style="color: black;"> </span><span style="color: #1e7c70;">-</span><span style="color: black;"> </span><span style="color: #9b5f9b;">4</span><span style="color: #1e7c70;">);</span>
<span style="color: black;"> $</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">".map_container"</span><span style="color: #1e7c70;">)</span><span style="color: black;">.height</span><span style="color: #1e7c70;">(</span><span style="color: black;">$</span><span style="color: #1e7c70;">(</span><span style="color: black;">window</span><span style="color: #1e7c70;">)</span><span style="color: black;">.height</span><span style="color: #1e7c70;">()</span><span style="color: black;"> </span><span style="color: #1e7c70;">/</span><span style="color: black;"> </span><span style="color: #9b5f9b;">1.45</span><span style="color: #1e7c70;">);</span></span></pre>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Step 2) in ShowUI after above steps, Call your function preGoogleLoadAPI to load google api</span><br />
<pre><span style="font-family: Verdana, sans-serif;">preGoogleLoadAPI();</span></pre>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">step 3) Write your function to display the directions on your map. Here is where your google API knowledge comes handy. You might find it hard to understand below code – see if you can make out.</span><br />
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;"><span style="color: black;">InitMap </span><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #4f76ac;">function</span><span style="color: black;"> </span><span style="color: #1e7c70;">()</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span><span style="color: #46830d;">//remove any existing markers previously drawn</span>
<span style="color: black;"> RemoveMarkers</span><span style="color: #1e7c70;">();</span></span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;"><span style="color: black;"></span><span style="color: #46830d;">//update your direction panel with a message!</span></span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;"><span style="color: black;"> </span><span style="color: #4f76ac;">var</span><span style="color: black;"> summaryPanel </span><span style="color: #1e7c70;">=</span><span style="color: black;"> $</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">"#directions_panel"</span><span style="color: #1e7c70;">);</span>
<span style="color: black;"> summaryPanel.html</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">"Waiting for way points!"</span><span style="color: #1e7c70;">); </span></span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;"><span style="color: #1e7c70;"></span>
<span style="color: #46830d;">//get handle for geo coder, directionService and directionDisplay</span><span style="color: black;">
geocoder </span><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #4f76ac;">new</span><span style="color: black;"> google.maps.Geocoder</span><span style="color: #1e7c70;">();</span>
<span style="color: black;">
directionsService </span><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #4f76ac;">new</span><span style="color: black;"> google.maps.DirectionsService</span><span style="color: #1e7c70;">();</span>
<span style="color: black;"> directionsDisplay </span><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #4f76ac;">new</span><span style="color: black;"> google.maps.DirectionsRenderer</span><span style="color: #1e7c70;">();</span><span style="color: #46830d;"></span></span></pre>
<pre style="background: white; line-height: normal;"><span style="color: #46830d; font-family: Verdana, sans-serif;">//default client position</span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;"><span style="color: black;"> </span><span style="color: #4f76ac;">var</span><span style="color: black;"> clientPosition </span><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #4f76ac;">new</span><span style="color: black;"> google.maps.LatLng</span><span style="color: #1e7c70;">(</span><span style="color: #9b5f9b;">41.850033</span><span style="color: #1e7c70;">,</span><span style="color: black;"> </span><span style="color: #1e7c70;">-</span><span style="color: #9b5f9b;">87.6500523</span><span style="color: #1e7c70;">);</span>
<span style="color: black;">
</span><span style="color: #4f76ac;">var</span><span style="color: black;"> mapOptions </span><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span>
<span style="color: black;"> zoom</span><span style="color: #1e7c70;">:</span><span style="color: black;"> </span><span style="color: #9b5f9b;">15</span><span style="color: #1e7c70;">,</span>
<span style="color: black;"> mapTypeId</span><span style="color: #1e7c70;">:</span><span style="color: black;"> google.maps.MapTypeId.ROADMAP</span><span style="color: #1e7c70;">,</span>
<span style="color: black;"> center</span><span style="color: #1e7c70;">:</span><span style="color: black;"> clientPosition
</span><span style="color: #1e7c70;">};</span>
<span style="color: black;">
</span><span style="color: #4f76ac;">var</span><span style="color: black;"> contentString </span><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #823125;">'<div id="content" style="width:100px; height:20px">'</span><span style="color: black;"> </span><span style="color: #1e7c70;">+</span>
<span style="color: black;"> </span><span style="color: #823125;">'<div id="bodyContent">'</span><span style="color: black;"> </span><span style="color: #1e7c70;">+</span>
<span style="color: black;"> </span><span style="color: #823125;">'<p>Your Location!</p>'</span><span style="color: black;"> </span><span style="color: #1e7c70;">+</span>
<span style="color: black;"> </span><span style="color: #823125;">'</div>'</span><span style="color: black;"> </span><span style="color: #1e7c70;">+</span>
<span style="color: black;"> </span><span style="color: #823125;">'</div>'</span><span style="color: #1e7c70;">;</span>
<span style="color: #46830d;"></span></span></pre>
<pre style="background: white; line-height: normal;"><span style="color: #46830d; font-family: Verdana, sans-serif;">//to get current GPS position of the user</span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;"></span><span style="color: black;"> </span><span style="color: #4f76ac;">if</span><span style="color: black;"> </span><span style="color: #1e7c70;">(</span><span style="color: black;">navigator.geolocation</span><span style="color: #1e7c70;">)</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span>
<span style="color: black;"> navigator.geolocation.getCurrentPosition</span><span style="color: #1e7c70;">(</span><span style="color: #4f76ac;">function</span><span style="color: black;"> </span><span style="color: #1e7c70;">(</span><span style="color: black;">position</span><span style="color: #1e7c70;">)</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span>
<span style="color: black;"> clientPosition </span><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #4f76ac;">new</span><span style="color: black;"> google.maps.LatLng</span><span style="color: #1e7c70;">(</span><span style="color: black;">position.coords.latitude</span><span style="color: #1e7c70;">,</span><span style="color: black;"> position.coords.longitude</span><span style="color: #1e7c70;">);</span>
<span style="color: black;"> mapOptions.center </span><span style="color: #1e7c70;">=</span><span style="color: black;"> clientPosition</span><span style="color: #1e7c70;">;</span>
<span style="color: black;"> map </span><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #4f76ac;">new</span><span style="color: black;"> google.maps.Map</span><span style="color: #1e7c70;">(</span><span style="color: black;">$</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">"#map_canvas"</span><span style="color: #1e7c70;">)[</span><span style="color: #9b5f9b;">0</span><span style="color: #1e7c70;">],</span><span style="color: black;"> mapOptions</span><span style="color: #1e7c70;">);</span>
<span style="color: black;">
</span><span style="color: #46830d;">//'../images/ebus.gif'"https://static.rewardgateway.co.uk/img/mapicons/home-icon2.png"</span>
<span style="color: black;"> AddMarker</span><span style="color: #1e7c70;">(</span><span style="color: black;">clientPosition</span><span style="color: #1e7c70;">,</span><span style="color: black;"> contentString</span><span style="color: #1e7c70;">,</span><span style="color: black;"> </span><span style="color: #823125;">'../images/custom/home2.png'</span><span style="color: #1e7c70;">);</span>
<span style="color: black;"> directionsDisplay.setMap</span><span style="color: #1e7c70;">(</span><span style="color: black;">map</span><span style="color: #1e7c70;">);</span>
<span style="color: black;"></span></pre>
<pre style="background: white; line-height: normal;"><span style="color: black;"><span style="color: #46830d; font-family: Verdana, sans-serif;">//PrepDirectionInputs - This is where you will read your calendar info and plot routing!</span></span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;"><span style="color: black;"></span></span> PrepDirectionInputs<span style="color: #1e7c70;">(</span><span style="color: black;">pm</span><span style="color: #1e7c70;">);</span>
<span style="color: black;"> </span><span style="color: #1e7c70;">},</span><span style="color: black;"> </span><span style="color: #4f76ac;">function</span><span style="color: black;"> </span><span style="color: #1e7c70;">()</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span>
<span style="color: black;"> mapOptions.center </span><span style="color: #1e7c70;">=</span><span style="color: black;"> clientPosition</span><span style="color: #1e7c70;">;</span>
<span style="color: black;"> map </span><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #4f76ac;">new</span><span style="color: black;"> google.maps.Map</span><span style="color: #1e7c70;">(</span><span style="color: black;">$</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">"#map_canvas"</span><span style="color: #1e7c70;">)[</span><span style="color: #9b5f9b;">0</span><span style="color: #1e7c70;">],</span><span style="color: black;"> mapOptions</span><span style="color: #1e7c70;">);</span>
<span style="color: black;"> AddMarker</span><span style="color: #1e7c70;">(</span><span style="color: black;">clientPosition</span><span style="color: #1e7c70;">,</span><span style="color: black;"> contentString</span><span style="color: #1e7c70;">,</span><span style="color: black;"> </span><span style="color: #823125;">'../images/custom/home2.png'</span><span style="color: #1e7c70;">);</span>
<span style="color: black;">
directionsDisplay.setMap</span><span style="color: #1e7c70;">(</span><span style="color: black;">map</span><span style="color: #1e7c70;">);</span>
<span style="color: black;">
PrepDirectionInputs</span><span style="color: #1e7c70;">(</span><span style="color: black;">pm</span><span style="color: #1e7c70;">);</span>
<span style="color: black;">
</span><span style="color: #1e7c70;">},</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span><span style="color: black;"> timeout</span><span style="color: #1e7c70;">:</span><span style="color: black;"> </span><span style="color: #9b5f9b;">5000</span><span style="color: black;"> </span><span style="color: #1e7c70;">});</span>
<span style="color: black;"> </span><span style="color: #1e7c70;">}</span>
<span style="color: black;"> </span><span style="color: #4f76ac;">else</span><span style="color: black;"> </span><span style="color: #1e7c70;">{//GPS is disabled on user’s device!</span>
<span style="color: black;"> mapOptions.center </span><span style="color: #1e7c70;">=</span><span style="color: black;"> clientPosition</span><span style="color: #1e7c70;">;</span>
<span style="color: black;"> map </span><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #4f76ac;">new</span><span style="color: black;"> google.maps.Map</span><span style="color: #1e7c70;">(</span><span style="color: black;">$</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">"#map_canvas"</span><span style="color: #1e7c70;">)[</span><span style="color: #9b5f9b;">0</span><span style="color: #1e7c70;">],</span><span style="color: black;"> mapOptions</span><span style="color: #1e7c70;">);</span>
<span style="color: black;"> AddMarker</span><span style="color: #1e7c70;">(</span><span style="color: black;">clientPosition</span><span style="color: #1e7c70;">,</span><span style="color: black;"> contentString</span><span style="color: #1e7c70;">,</span><span style="color: black;"> </span><span style="color: #823125;">'../images/custom/home2.png'</span><span style="color: #1e7c70;">);</span>
<span style="color: black;">
directionsDisplay.setMap</span><span style="color: #1e7c70;">(</span><span style="color: black;">map</span><span style="color: #1e7c70;">);</span>
<span style="color: black;">
PrepDirectionInputs</span><span style="color: #1e7c70;">(</span><span style="color: black;">pm</span><span style="color: #1e7c70;">);</span>
<span style="color: black;">
</span><span style="color: #1e7c70;">}</span>
<span style="color: black;"> </span><span style="color: #1e7c70;">};</span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;">
</span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;">Step 4) Call, InitMap using google.load defined in function LoadAPI above. I had to come up with below to ensure that google APIs are loaded before I call them!</span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;"><span style="color: #4f76ac;">
</span></span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;"><span style="color: #4f76ac;">var</span><span style="color: black;"> check_mapAPILoaded </span><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #4f76ac;">function</span><span style="color: black;"> </span><span style="color: #1e7c70;">()</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span>
<span style="color: black;"> </span><span style="color: #4f76ac;">if</span><span style="color: black;"> </span><span style="color: #1e7c70;">(!</span><span style="color: black;">googleAPILoaded</span><span style="color: #1e7c70;">)</span>
<span style="color: black;"> setTimeout</span><span style="color: #1e7c70;">(</span><span style="color: black;">check_mapAPILoaded</span><span style="color: #1e7c70;">,</span><span style="color: black;"> </span><span style="color: #9b5f9b;">500</span><span style="color: #1e7c70;">);</span>
<span style="color: black;"> </span><span style="color: #4f76ac;">else</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span>
<span style="color: black;"> LoadAPI</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">"InitMap"</span><span style="color: #1e7c70;">,</span><span style="color: black;"> </span><span style="color: #9b5f9b;">0</span><span style="color: #1e7c70;">);</span>
<span style="color: black;"> </span><span style="color: #1e7c70;">}</span>
<span style="color: black;"> </span><span style="color: #1e7c70;">}</span><span style="color: black;">
</span><span style="color: #46830d;">//call it</span>
<span style="color: black;"> check_mapAPILoaded</span><span style="color: #1e7c70;">();</span></span></pre>
<pre style="background: white; line-height: normal;"><span style="color: #1e7c70;"><span style="font-family: Verdana, sans-serif;">
</span></span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;">That’s it! Define the rest of the supporting functions and you are almost there!</span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;">The main one is PrepDirectionInputs function. Below is what I am doing in it.</span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;">
</span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;">> Loop through the RecordSet of the list applet. For each record found,</span></pre>
<blockquote>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;">> capture Longitude and Latitude stored against the primary address of the visit account.Add it to google api request variable</span></pre>
</blockquote>
<blockquote>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;">> For Google map direction services (example here: <a href="https://developers.google.com/maps/documentation/javascript/examples/directions-waypoints" target="_blank"><strong>waypoints and google map api</strong></a>), you need to define Start, End and WayPoints. So, your first appointment will be start and the last will be End and the middle ones will be waypoints. Google API will plot an optimal route from start to end covering all the waypoints.</span></pre>
</blockquote>
<blockquote>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;">> Call Google API, direction service to plot on the map_canvas! </span></pre>
<pre><span style="font-family: Verdana, sans-serif;">directionsService.route(…)</span></pre>
</blockquote>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;">I am going to stop my explanations here otherwise, my blog will be 1000s of lines!</span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;">
</span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;">One thing to remember, your addresses should have Latitude and Longitude populated for accurate direction rendering. You could use geocoding but will be fiddly to manage.</span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;">
</span></pre>
<pre style="background: white;"><span style="font-family: Verdana, sans-serif; line-height: normal;">Here is the final PR file for your ref: </span><span style="background-color: transparent;"><span style="font-family: Verdana, sans-serif;"><a href="https://drive.google.com/file/d/0B0IV_ky_Dy3fMURsSllyYkNNZzg/view?usp=sharing" target="_blank">GoogleMapApiPR.js</a></span></span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;">
</span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;">Next blog coming shortly is on plotting all the customers based on importance or last visited near to your current location. Till then, stay tuned!</span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;">
</span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;">Cheers,</span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Verdana, sans-serif;">Shiv</span></pre>
</div>
Shttp://www.blogger.com/profile/13636876457402555607noreply@blogger.com1tag:blogger.com,1999:blog-2548259877820684769.post-22361002982936223822014-09-12T18:46:00.000+01:002014-11-14T15:52:47.444+00:00Open UI – Common look and feel issues and work-around<span style="font-family: Verdana, sans-serif;">It’s been a while I updated my blog. Got bit busy with Open UI rollout in my company. Through the journey, encountered some common problems for which you might as well be looking for solutions. Here are few to share with you.</span><br />
<br />
<ol>
<li><span style="font-family: Verdana, sans-serif;">iHelp error due to SI Applet</span></li>
<li><span style="font-family: Verdana, sans-serif;">Salutation error due to SI Applet</span></li>
<li><span style="font-family: Verdana, sans-serif;">Applets not contained within the boundaries of the screen – especially views like Account Summary -containing 50-50 split for applets</span></li>
<li><span style="font-family: Verdana, sans-serif;">On Home pages having Search, Add and Go the labels being wrapped to next line.</span></li>
<li><span style="font-family: Verdana, sans-serif;">varying Row Height on list applets containing columns with multi line texts</span></li>
<li><span style="font-family: Verdana, sans-serif;">Anchor tags not coming with underline and default blue colour</span></li>
<li><span style="font-family: Verdana, sans-serif;">Some large form applets not fitting within the screen and seem like cropped</span></li>
<li><span style="font-family: Verdana, sans-serif;">Let’s go through the workarounds for above now.</span></li>
</ol>
<br />
<u><span style="font-family: Verdana, sans-serif;">1) iHelp error due to SI Applet</span></u><br />
<u><span style="font-family: Verdana, sans-serif;"><br /></span></u>
<span style="font-family: Verdana, sans-serif;">Before:</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><img alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt_Z7aPJ8-q5db5QMF-daCTeD912aABCdA99gu349Ww3XZhV0SJbBveQAXbiI0k-Ehfs6bEmNri_vmawppTFrM_snMgeMHhvPOkPQpVorfGeDI7xeFuOpjcyl80koNGXLvrHaDblixeEez/?imgmax=800" /></span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">After:</span><br />
<img alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiaSUW3RApZuPcHGCRdpTo1tYeIDJx7cdUFdITGhkqflQP1TC8UhUA7S6-fTzY-w10H5qBfwD9FYeoviVxYoJJcdcShELXF43e579vSro0pVl5ZK-QpPFpaU1IUaArCIjSW9gM8BlipOfD/?imgmax=800" style="font-family: Verdana, sans-serif;" /><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Please check my previous blog to remove iHelp error <a href="http://siebel-openui.blogspot.co.uk/2014/07/open-ui-customization-ihelp-error-get.html" target="_blank"><strong><u>here</u></strong></a><strong><u>.</u></strong></span><br />
<u><span style="font-family: Verdana, sans-serif;"><br /></span></u>
<u><span style="font-family: Verdana, sans-serif;">2) Salutation error due to SI Applet</span></u><br />
<u><span style="font-family: Verdana, sans-serif;"><br /></span></u>
<u><span style="font-family: Verdana, sans-serif;">Before:</span></u><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><img alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgooRrygjag95cIsXkiI6wPYIvQ4E5FGouMO8dOIwtZXQey1GlXpsgJGU701kjaGMb7cvieDi5TsdBZLqOqLcVPz7DTnwi60VgiIWZO0YnWp3XfYavZljFpyNQw4NoSMJMjmXDumqsmFAez/?imgmax=800" /></span><br />
<div align="left">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div align="left">
<span style="font-family: Verdana, sans-serif;">After:</span></div>
<div align="left">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div align="left">
<span style="font-family: Verdana, sans-serif;"><img alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnmx8UnnFQxyx-BXJScJoLi8pEqnRvauvfhriXkHEEns1jMxwySuib9hM-6PvuzFtiKEwiDmT70AYfXBZYi8T6vmmAt4k5iTBEiPEcCS7_4TBMhEpuua03ZwZdq4698i8lpX9OV4ubZtSB/?imgmax=800" /></span></div>
<div align="left">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div align="left">
<span style="font-family: Verdana, sans-serif;">Please check my previous blog to fix salutation error <a href="http://siebel-openui.blogspot.co.uk/2014/07/open-ui-customization-salutation-applet.html" target="_blank"><strong><u>here</u></strong></a><strong><u>.</u></strong></span></div>
<u><span style="font-family: Verdana, sans-serif;"><br /></span></u>
<u><span style="font-family: Verdana, sans-serif;">3) Applets not contained within the boundaries of the screen</span></u><br />
<u><span style="font-family: Verdana, sans-serif;"><br /></span></u>
<u><span style="font-family: Verdana, sans-serif;">Before: </span></u><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Navigation: Sales Sample –> Account –> Account Summary – Prepaid. You can see below the Installed Assets and Current Balance taking almost 80% of the screen. If you add/remove columns displayed, you can see the list applet and the full left side of the stack growing/shrinking.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhstU_DBysogxOzzFlMdGvJK0SJOX7GbLQMdV16ZjtwCeE5ru-K4t0s7_q6EWmQsnPqN4pNPNy2zVKYZwU3NCD7j1Inqr03YdwcfLToMtY4Z48XKoAC-PRKz-MpWBMoAzBFW1txPLQFfiBF/s1600-h/image%25255B3%25255D.png"><span style="font-family: Verdana, sans-serif;"><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPB8H1C0Y2OYbBmMRJe-MDIcru36Qz1u_vn1Y_iZGJ4mpm9D3GoZ6-SDEvdcOUu4vX_ZEQqCn9KUW_fDan6riEkZBAD_qApSMhGmcSagt6zH8BR5vGxst1O_o86c4akQa7FKFUxfHzG3ct/?imgmax=800" height="419" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="638" /></span></a><br />
<span style="font-family: Verdana, sans-serif;"><u><br /></u></span>
<span style="font-family: Verdana, sans-serif;"><u>After:</u> You can see now it is 50-50 proper split. Even if you add/remove columns the split won’t alter.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxFpOlOyiDeJJMSVX6yPS5x0b7O-O7d8JpQj6TLQJujZo2Z20cjv8Zck4_3hs-2ApZoa_xsMWSMZRUULTKDApGrgNEXWUUFIVwTY1FKeHqL778aeM03E9MN7Vfomkyy3dJbadympDrD57X/s1600-h/image%25255B7%25255D.png"><span style="font-family: Verdana, sans-serif;"><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx7mf2KL3wIHCYeGJRBQZz2fKXkl0ysijrJF37UxVkN5KM2XZ2E57R2nzL8ETQoTJgPLDnGXF58bg2BLxssnSyqFWEJZxK01PgA63lt6-dQXzb_BOHDrFGwJ2bq_a4v21vwv64FR3XjAR6/?imgmax=800" height="426" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="641" /></span></a><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">So the fix – unfortunately, this one goes into swt files. </span><span style="background-color: white; font-family: Verdana, sans-serif;">The view is: SIS OM Customer Account Portal View – Prepaid. The web template associated to this view is: CCViewParentMultiChildWithTabs.swt. This is the template we need to alter. Make sure you copy the file from /WEBTEMPL/OUIWEBTEMPL to /WEBTEMPL/OUIWEBTEMPL/custom. Now open the web template and you should find a structure somewhat like below.</span><span style="font-family: Verdana, sans-serif;"> </span><br />
<table bgcolor="#ffffff" border="0" cellpadding="3" cellspacing="1" datatable="0" style="width: 100%;" summary=""> <tbody>
<tr valign="top"> <td colspan="3"><span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span>
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><table datatable="0" summary="" bgcolor="#ffffff" width="100%" border="0" cellspacing="1" cellpadding="3"></span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> <tr valign="top"></span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> <td colspan="3"></span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> swe goes here</span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> </td></span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> </tr></span><br />
<br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> <tr valign="top"></span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> <td width="50%"></span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> swe for three left side applets go here</span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> </td></span><br />
<br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> <td width="50%"></span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> swe for three right side applets go here</span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> </td></span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> </tr></span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"></table></span><br />
<table border="0" cellpadding="0" cellspacing="0" style="width: 50%;"> <tbody>
<tr> <td valign="top"><pre style="background: white; line-height: normal;"></pre>
</td></tr>
</tbody></table>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><span style="background-color: transparent;">The trick here is to set the css styling to have
</span><strong style="background-color: transparent;">table-layout:fixed</strong><span style="background-color: transparent;"> for the table that shows applets in 50-50
split. Since in this case within <table> tag, we have two <tr> we
need to have split into two tables for it to make it work. Somewhat like
below,</span></span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><table datatable="0" summary="" bgcolor="#ffffff" border="0" cellspacing="1" cellpadding="3" style="width:100%;table-layout:fixed"></span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> <tr valign="top"></span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> <td colspan="3"></span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> swe goes here</span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> </td></span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> </tr></span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"></table></span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><table datatable="0" summary="" bgcolor="#ffffff" border="0" cellspacing="1" cellpadding="3" style="width:100%;table-layout:fixed"> </span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> <tr valign="top"></span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> <td width="50%"></span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> swe for three left side applets go here</span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> </td></span><br />
<br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> <td width="50%"></span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> swe for three right side applets go here</span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> </td></span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"> </tr></span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"></span><br />
<span style="font-family: Verdana, sans-serif; font-size: x-small;"></table></span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">After the changes the file should look like this - <a href="https://drive.google.com/file/d/0B0IV_ky_Dy3fVWE3bnNzejlpcjQ/edit?usp=sharing" target="_blank">CCViewParentMultiChildWithTabs.swt</a></span></td></tr>
<tr valign="top"><td width="50%"><span style="font-family: Verdana, sans-serif;"><swe:applet hintmaptype="Applet" hinttext="Child or Grandchild Applet" id="6" property="FormattedHtml" var="Grandchild"></swe:applet><swe:applet hintmaptype="Applet" hinttext="Child or Grandchild Applet" id="7" property="FormattedHtml" var="Grandchild"></swe:applet><swe:applet hintmaptype="Applet" hinttext="Child or Grandchild Applet" id="10" property="FormattedHtml" var="Grandchild"></swe:applet></span></td><td width="50%"><span style="font-family: Verdana, sans-serif;"><swe:applet-tree-list var="Grandchild"></swe:applet-tree-list><swe:applet hintmaptype="Applet" hinttext="Child or Grandchild Applet" id="8" property="FormattedHtml" var="Grandchild"></swe:applet><swe:applet hintmaptype="Applet" hinttext="Child or Grandchild Applet" id="9" property="FormattedHtml" var="Grandchild"></swe:applet><swe:applet hintmaptype="Applet" hinttext="Child or Grandchild Applet" id="11" property="FormattedHtml" var="Grandchild"></swe:applet></span></td></tr>
</tbody></table>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<u><span style="font-family: Verdana, sans-serif;">4) On Home pages having Search, Add and Go the labels being wrapped to next line</span></u><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Before: On Contact Home, we got Add and Go. The labels are shown with text wrapping. Looks bit odd.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLgoCqKttd20-L2ssFdAKiobkQQC2ZA_MdKuxl0vcsHZydWpJoQTEplcIUSV5xxOJPVawb11e_KkTYiys-2iXo3yAQ5GG06RGlveku-lKNfraEe_tp_gAtT3XmCq6HR2EZTET4IQUCBH64/s1600-h/image%25255B15%25255D.png"><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipJqInW1cVDYDbyD9mt6jg3QNlSm9Yn6P0In6Z5PCkOVJ_KwTz8in_GeYoxR0rG01NKMjcok92dAn8onC49kvE6_onQeGjzYTlDTbL2d8lG7brpfFT-9Av7l1ujgUg-Hpkdjtw4h1lmi-a/?imgmax=800" height="390" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="245" /></a> </span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">After: It looks much nicer. </span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPnQpKNeBJTNce2cAxKrDBMqACAts48DW6uXvmDqkFr-PPV4dv1MC9FiSP30sBdA4nKLJFvdQNgX4nGz06HHIyfgDQxyOfXyqK5P2FZ2w-fgmtawt5J3SpIMIG2LMyAjpkby-B0czGaUaw/s1600-h/image%25255B22%25255D.png"><span style="font-family: Verdana, sans-serif;"><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifztPVUH4NWmklyibIvstWzuo7WWL4fYSTNK0qegZ8JrIzCibVdynpfVpGgr-ZtjAbVGs7o1C-SUOQ4zq0YVMmbrlT_IFNa23LIdHSVKwkfePNYvciiP5GPSGxbIsYpNE_Bo9eTKohTSYr/?imgmax=800" height="244" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="218" /></span></a><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">You can see this even on form applets too. </span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Above is a simple fix by adding a custom css on your theme and add below line and link to your theme.</span><br />
<pre><span style="font-family: Verdana, sans-serif;">.siebui-form-label {
white-space: nowrap;
}</span></pre>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<u><span style="font-family: Verdana, sans-serif;">5) Varying Row Height on list applets containing columns with multi line texts</span></u><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Before: If you have fields which run multilines like Address, Notes etc, you see the row height varying accordingly to number of lines.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnkU1aOITLf0vA_hVP-E1npWveaUas2oWSllCuaUzqE6Py1sXJBXbsztrYDYklmf0q7EsHgYYY8OcXVlXhCIcZFfJOUwjdDqC-C7kof5BvccrE7KOw1OCV738CHSLx8CwCKNLc9P1e0f1w/s1600-h/image%25255B31%25255D.png"><span style="font-family: Verdana, sans-serif;"><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYeE4ibZkFs9rW6a0Gdi8YsXk9DG_6TOjpuMl_kJ26SPipQkzRRjLyCiGVnSeoAdQkgvqzL94oqMbtFwg1h4xTxu1VvTog5I_7Q7U-Ns7iT6M7RDyYCR6JjklwPWfdn4J7x9RTUMbajqCW/?imgmax=800" height="283" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="655" /></span></a><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">After: Now you can see all rows in your list applet of same height.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmMzT_Qrrpl0pEgsBFe-w7p6J0CeCDfyF31gmQYK2W1ToAltcvzWFR1DSOFYXIC4f3UXyTiL7769epXk2fQ3CBJXjEvt0tj09wFYQzVKgxye4Pu2HSrcA2jcRB4irGL9cFlMeaehuUKanD/s1600-h/image%25255B35%25255D.png"><span style="font-family: Verdana, sans-serif;"><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBJa8U7m2DzWMOE_2aj1UVqxYBkxH0Y0j9LyG6XRA-wV1FrzZMeWYraWmnfR1ZBBmKV4zyORIGnGYmoXdyaRfO-d2VvD85TjnbgKN4ld4fJtlpatBcRdUJEAPt9Ew76ZAe40FNGobsS2wh/?imgmax=800" height="198" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="650" /></span></a><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Again simple fix using css as below.</span><br />
<pre><span style="font-family: Verdana, sans-serif;">.ui-jqgrid tr.ui-row-ltr td {
height: 20px;
padding: 0;
text-overflow: ellipsis;
<strong>white-space: nowrap; /* This is what is fixing it*/</strong>
} </span></pre>
<pre><span style="font-family: Verdana, sans-serif;">7) Some large form applets not fitting within the screen and seem like cropped</span></pre>
<pre><span style="font-family: Verdana, sans-serif;">Before: You can see Logistics Information form applet, a full column of fields missing on the right (you can’t seven see them) While, we are redesigning the layout to fit whole content within 50% of the space. A quick workaround is to enable horizontal scrolling.</span></pre>
<pre><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwY8sX8w0R-eH7GSMVSdYEdIwNfytrdBIz8JqkF8oJNjfFqstsU9-6CBB2KURLoFovqZOG3Emjoaa3kPSrwN3KnjF_7pxeKRwhYLqiicu5CrMg728YVrwzMLJG-c4jh2qqXACyVyLvbJQE/s1600-h/image%25255B39%25255D.png"><span style="font-family: Verdana, sans-serif;"><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibwdg9Qaqt11mOCSDgtK1oIjXgLnp6ylOS7qIxY0labZ-R75lgSBvJkXdSVH1B6lCbUf0p9iL2z_SiCBvKTo7N9XUa_wq0JFaiiljZ7tLF-UH5VquATCufV2JfJxtuxL7yf5u3hyphenhyphenJEfi60/?imgmax=800" height="345" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="643" /></span></a></pre>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">After: Adding horizontal scroll. Users can scroll right to see the remaining fields. Not very user friendly, but still works1</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv4T3GvIhoDzi0ogQCGmxNpBJymK5KQzJdjbBcJTMYuE0nRPu6JXCGrw4ZS8QpfmnTnL1FOyYkM-BwtkRP3WplYn4Iah61fB_2aQLNfEQQ9SNVkvopS2dT10l1v_O0xGmg3Hjn70WKyux8/s1600-h/image%25255B43%25255D.png"><span style="font-family: Verdana, sans-serif;"><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJcgmeblxyBtR1J6s-ESxGnl-QhfAXyFSq0mlLYusdxMwaIa5c1NUP0u7seqwHMYpl7g_tgcnmf3nT0h_FsvQ-6nFJwoiZhyphenhyphenFNfG_955wPohYKoC9t6ererup5mPGgOEuMOlgprzcVVmXA/?imgmax=800" height="354" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="640" /></span></a><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Again a simple css fix,</span><br />
<pre><span style="font-family: Verdana, sans-serif;">div.siebui-collapsible-applet {
overflow-x: auto;
}</span></pre>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Developers are working to fix the form applet layout individually where they are getting cropped. Hard work han? No workaround as of now other than horizontal scrollbar.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">All in all, overall Open UI out of the box theme is coming along nicely with not many burning issues open. I will update with more findings shortly. Till then take care.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Cheers,<br />Shiv</span>Shttp://www.blogger.com/profile/13636876457402555607noreply@blogger.com1tag:blogger.com,1999:blog-2548259877820684769.post-58692356165743603842014-08-16T00:44:00.001+01:002014-08-16T00:44:26.197+01:00Oracle Siebel CX Channel on youtube by Oracle!A quick note to all Open UI lovers. Oracle has added a new channel last month called Oracle Siebel CX.<br />
<br />
Check out the youtube channel <b><a href="https://www.youtube.com/channel/UC4jE0kv_zdurbvVsHfqBaAw" target="_blank">here</a></b>. Subscribe yourself for more videos from Oracle in Open UI area!<br />
<br />
I have added below some useful videos from that channel.<br />
<br />
<h1 class="yt" id="watch-headline-title" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #222222; font-family: arial, sans-serif; font-size: 24px; font-weight: normal; margin: 0px 0px 5px; overflow: hidden; padding: 0px;">
<span class="watch-title " dir="ltr" id="eow-title" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; padding: 0px;" title="Siebel Product Innovations">1) Siebel Product Innovations</span></h1>
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/bwgM8mM2YB8?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<h1 class="yt" id="watch-headline-title" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; color: #222222; font-family: arial, sans-serif; font-size: 24px; font-weight: normal; margin: 0px 0px 5px; overflow: hidden; padding: 0px;">
<span class="watch-title " dir="ltr" id="eow-title" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; padding: 0px;" title="Siebel Product Innovations">2) Innovations How to change user experience with Siebel Open UI</span></h1>
<div>
<span class="watch-title " dir="ltr" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; padding: 0px;" title="Siebel Product Innovations"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/Gy2YKtzUVoI?feature=player_embedded' frameborder='0'></iframe></div>
<div>
<span class="watch-title " dir="ltr" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; margin: 0px; padding: 0px;" title="Siebel Product Innovations"><br /></span></div>
Shttp://www.blogger.com/profile/13636876457402555607noreply@blogger.com1tag:blogger.com,1999:blog-2548259877820684769.post-44744113552608736062014-08-14T13:01:00.000+01:002014-11-14T15:53:00.532+00:00Open UI - existing browser scripts might cause nightmare<span style="font-family: Arial, Helvetica, sans-serif;">In my company, we are aiming to go-live with Open UI in 3 months time. So, we enabled Open UI and ran a round of regression tests. In round one – we got around 300+ defects logged! with testing still going on.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">On close observation, many areas the functionality was broken due to existing browser scripts at various Applet and BC level. I thought of writing a quick note to you guys as to how to go about tackling these. Of course there are various other reasons for your broken functionality which I won’t be covering here.</span><br />
<u><span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></u>
<span style="font-family: Arial, Helvetica, sans-serif;"><u>Step 1: Identifying the objects where browser scripts are present</u>. </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">The tedious way would be to do a repository flat search to identify the objects having browser scripts and reviewing one by one. I found a very easy way to identify – output of GenB script. If you go into your web server or client /PUBLIC/ENU/srf****/bscripts/all. You will find all the browser script details here.</span> <br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDiyCNme1keDVGSpkr_cqkGnxqKChVRc3c6EYe7kyBA1CIp8IjJC4SgIRZ2VfWXfqFgedHpQoJeWtLNrvuNGL8Nv1mzT3n0g8SP051UVUtptDHjqItROaUyNdy9L2-hlapux9iXjOKWSxw/s1600-h/image%25255B3%25255D.png"><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9z5RgihdWFvcuOmjHwdyRcjcH9j318-7i_wJS_qLr-68-9tMDSo8f1RoEFFcp4Kj4HSLOae34y7hzXjRSAclLjlPT2noeq04ebqn19c7UPiuLCpqR7kibJh5B9H68K0Jy1IQey4Sonrm3/?imgmax=800" height="338" style="background-image: none; border: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="524" /></a><br />
<u><br /></u>
<u><span style="font-family: Arial, Helvetica, sans-serif;">Step 1: Reviewing existing browser scripts</span></u><br />
<a name='more'></a><br />
<span style="font-family: Arial, Helvetica, sans-serif;">I would say rather than jumping and converting every browser script into PM/PR Open UI model, first test if the current functionality is working as expected in the area around above applets and BCs identified. See if you can fix by making minor tweaks to your Applet/BC browser scripts. </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Example for you: One of the most common issue I observed in my case was missing double quotes around CancelOperation and ContinueOperation in most places. For instance on Account screen, user wasn't able to create new records – as none of the drop-downs were working. The first thing I did was to check the console on Chrome. It was clearly pointing to missing quotes around ContinueOperation in the script. Below is the current browser script on Account BC. </span><br />
<br />
<pre style="background: white; line-height: normal;"><span style="font-family: Consolas;"><span style="color: #4f76ac;"><span style="font-size: 10pt;">function</span></span><span style="font-size: 10pt;"><span style="color: black;"> Account_BusComp_PreSetFieldValue </span><span style="color: #1e7c70;">(</span><span style="color: black;">fieldName</span><span style="color: #1e7c70;">,</span><span style="color: black;"> value</span><span style="color: #1e7c70;">)</span>
<span style="color: #1e7c70;">{</span></span></span><span style="font-size: 10pt;"><span style="font-family: Consolas;"><span style="color: black;">
</span><span style="color: #4f76ac;">if</span><span style="color: black;"> </span><span style="color: #1e7c70;">(</span><span style="color: black;">fieldName </span><span style="color: #1e7c70;">==</span><span style="color: black;"> </span><span style="color: #823125;">"Account Status"</span><span style="color: #1e7c70;">)</span></span><span style="font-family: Consolas;"><span style="color: black;">
</span><span style="color: #1e7c70;">{</span>
<span style="color: black;"> </span><span style="color: #4f76ac;">if</span><span style="color: #1e7c70;">(</span><span style="color: #4f76ac;">this</span><span style="color: black;">.GetFieldValue</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">"Account Status"</span><span style="color: #1e7c70;">)</span><span style="color: black;"> </span><span style="color: #1e7c70;">==</span><span style="color: black;"> </span><span style="color: #823125;">"Active"</span><span style="color: black;"> </span><span style="color: #1e7c70;">&&</span><span style="color: black;"> value </span><span style="color: #1e7c70;">==</span><span style="color: black;"> </span><span style="color: #823125;">"Inactive"</span><span style="color: #1e7c70;">)</span>
<span style="color: black;"> </span><span style="color: #1e7c70;">{</span>
<span style="color: black;"> l_MsgText </span><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #823125;">"Please check Products are inactive when making an Account inactive"</span><span style="color: #1e7c70;">;</span>
<span style="color: black;"> TheApplication</span><span style="color: #1e7c70;">()</span><span style="color: black;">.SWEAlert</span><span style="color: #1e7c70;">(</span><span style="color: black;">l_MsgText</span><span style="color: #1e7c70;">);</span>
<span style="color: black;"> </span><span style="background-color: yellow;"><span style="color: #4f76ac;">return</span><span style="color: black;"> </span><span style="color: #1e7c70;">(</span><span style="color: #823125;">ContinueOperation</span><span style="color: #1e7c70;">);</span></span>
<span style="color: black;"> </span><span style="color: #1e7c70;">}</span>
<span style="color: black;"> </span><span style="color: #4f76ac;">else</span><span style="color: black;"> </span><span style="color: #4f76ac;">if</span><span style="color: #1e7c70;">(</span><span style="color: #4f76ac;">this</span><span style="color: black;">.GetFieldValue</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">"Account Status"</span><span style="color: #1e7c70;">)</span><span style="color: black;"> </span><span style="color: #1e7c70;">==</span><span style="color: black;"> </span><span style="color: #823125;">"Active"</span><span style="color: black;"> </span><span style="color: #1e7c70;">&&</span><span style="color: black;"> value </span><span style="color: #1e7c70;">==</span><span style="color: black;"> </span><span style="color: #823125;">"Closed"</span><span style="color: #1e7c70;">)</span>
<span style="color: black;"> </span><span style="color: #1e7c70;">{</span>
<span style="color: black;"> l_MsgText </span><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #823125;">"Please check Products are inactive when making an Account Closed"</span><span style="color: #1e7c70;">;</span>
<span style="color: black;"> TheApplication</span><span style="color: #1e7c70;">()</span><span style="color: black;">.SWEAlert</span><span style="color: #1e7c70;">(</span><span style="color: black;">l_MsgText</span><span style="color: #1e7c70;">);</span>
<span style="color: black;"> </span><span style="background-color: yellow;"><span style="color: #4f76ac;">return</span><span style="color: black;"> </span><span style="color: #1e7c70;">(</span><span style="color: #823125;">ContinueOperation</span><span style="color: #1e7c70;">);</span></span>
<span style="color: black;"> </span><span style="color: #1e7c70;">}</span>
<span style="color: black;"> </span><span style="color: #1e7c70;">}</span>
<span style="color: black;"> </span><span style="color: #4f76ac;">else</span>
<span style="color: black;"> </span><span style="color: #1e7c70;">{</span>
<span style="color: black;"> </span><span style="background-color: yellow;"><span style="color: #4f76ac;">return</span><span style="color: black;"> </span><span style="color: #1e7c70;">(</span><span style="color: #823125;">ContinueOperation</span><span style="color: #1e7c70;">);</span></span>
<span style="color: black;"> </span><span style="color: #1e7c70;">}</span></span></span><span style="font-family: Consolas;"><span style="color: #1e7c70; font-size: 10pt;">}</span></span></pre>
<pre style="background: white; line-height: normal;"></pre>
<pre style="background: white; text-align: justify;"><span style="font-family: Arial, Helvetica, sans-serif;">So, I went to /PUBLI/ENU/srf****/bscripts/all; opened the js file: buscomp_account.js; added double quotes around ContinueOperation. Did the clear cache on my browser and wallah everything started working on Account screen. You can make as man changes as needed and test before you go and do the final change in your Siebel tools to the script.</span></pre>
<pre style="background: white; line-height: normal;"><u><span style="font-family: Arial, Helvetica, sans-serif;">Step 3: Modify the identified browser scripts</span></u></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Arial, Helvetica, sans-serif;">Option 1: as mentioned above, you can make minor changes to existing Applet/BC level browser scripts to make them work. This will involve srf changes in future ifyou need to enhance or make any changes.</span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Arial, Helvetica, sans-serif;">Option 2: Non srf based option. Remove the Applet/BC browser script and add equivalent Applet PR/PM. This will enable you to remove srf dependency and make changes on the fly as and when needed in future.</span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Arial, Helvetica, sans-serif;">Let me know if any questions.</span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Arial, Helvetica, sans-serif;">Shiv</span></pre>
Shttp://www.blogger.com/profile/13636876457402555607noreply@blogger.com0tag:blogger.com,1999:blog-2548259877820684769.post-89719893359293269092014-07-31T16:57:00.004+01:002014-07-31T17:09:23.193+01:00Open UI Customization - HI Salutation Applet - Resolved!<span style="font-family: courier new, courier, monospace;">Somehow my original post on this subject got overwritten with my latest one on iHelp, hence had to rewrite it.</span><br />
<span style="font-family: courier new, courier, monospace;">Since the Salutation Applet is High Interactivity based, Open UI framework doesn’t recognize it (you can’t configure PM and PR), instead of Welcome message, you see an error message somewhat like below.</span><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwaExc9l8Hli_Ghlc9jwm_-i7KoxODPkO5KuC2MH6xrQsbwyRgj2rNWlWPHbCiyEIjCguImI5nGfU9D6hadlm5oPj53rw48Z7yMDDHpbOxK1Fzx7zyv7Kc7WZPpJ5V0S2yw42rnwu7wS8t/s1600-h/image7.png"><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgooRrygjag95cIsXkiI6wPYIvQ4E5FGouMO8dOIwtZXQey1GlXpsgJGU701kjaGMb7cvieDi5TsdBZLqOqLcVPz7DTnwi60VgiIWZO0YnWp3XfYavZljFpyNQw4NoSMJMjmXDumqsmFAez/?imgmax=800" height="378" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="628" /></a><br />
<span style="font-family: courier new, courier, monospace;"><br /></span>
<span style="font-family: courier new, courier, monospace;">As you know Open UI doesn’t support any of the SI (Standard Interactivity) based applets. I looked around for solutions and found this blog on Oracle community <a href="https://community.oracle.com/message/12230157#12230157" target="_blank"><strong>here</strong></a>. The solution provided on the community was srf and js based, which I didn’t like. </span><span style="font-family: courier new, courier, monospace;">I found a pure client side JS based solution which will replace this ugly error with a nice welcome message somewhat like below,(Note: in place of present date, I am displaying Last Login Date Time)</span><br />
<span style="font-family: courier new, courier, monospace;"><br /></span>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQc4mmy7KyWlajXZX3vib7GHDY4hXApGKXBxzjgMQ4hJXHPOfW92p5FBFD5BYNgbohMJOdrg9zgVV8Ye7Q74CNeWrffn2MFNEbj1kXxpnQhL2V9k0zb_EnBGUgatjdvXHLgtqBdVr-Ly-V/s1600-h/image11.png"><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnmx8UnnFQxyx-BXJScJoLi8pEqnRvauvfhriXkHEEns1jMxwySuib9hM-6PvuzFtiKEwiDmT70AYfXBZYi8T6vmmAt4k5iTBEiPEcCS7_4TBMhEpuua03ZwZdq4698i8lpX9OV4ubZtSB/?imgmax=800" height="380" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="631" /></a><br />
<span style="font-family: Courier New;"><br /></span>
<span style="font-family: courier new, courier, monospace;"></span><span style="font-family: Courier New;">Since there is no control on SI based applet in Open UI framework, you will have to go one level above – yes at View PR to find the placeholder for current Salutation applet and replace it with your message. Note that if you have any personalization rules – you need to consider them as well here in your own code. </span><br />
<span style="font-family: courier new, courier, monospace;"><br /></span>
<span style="font-family: courier new, courier, monospace;">So, let’s look at the high level steps:</span><br />
<a name='more'></a><ol>
<li><span style="font-family: Courier New, Courier, monospace;">Create a new custom View PR – call it - HomePageSalutationPR.js. You can use my template available here: <a href="https://drive.google.com/file/d/0B0IV_ky_Dy3fZkRUTHZmMWVtbnc/edit?usp=sharing" target="_blank"><strong>Template-ViewPR.js</strong></a>. Just save it and replace MyJs with HomePageSalutationPR.js </span></li>
<li><span style="font-family: Courier New, Courier, monospace;">You need to add your logic under <span style="color: blue;">HomePageSalutationPR.prototype.SetRenderer()</span> function in your ViewPR </span></li>
<li><span style="font-family: Courier New, Courier, monospace;">Here, you need to get the ref to the current Salutation Applet container and replace it with your message.</span></li>
</ol>
<table border="0" cellpadding="0" cellspacing="0" style="table-layout: fixed; width: 626px;"> <tbody>
<tr> <td valign="top" width="624"><pre style="background: white; line-height: normal;"><span style="font-family: Courier New, Courier, monospace;"><span style="white-space: normal;">Let’s look at the </span><span style="color: black; white-space: normal;">SetRenderer </span><span style="white-space: normal;">function from ViewPR in detail.</span></span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Consolas;"><span style="color: black;"><span style="font-size: 10pt;">HomePageSalutationPR.prototype.SetRenderer </span></span><span style="font-size: 10pt;"><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #4f76ac;">function</span><span style="color: black;"> </span><span style="color: #1e7c70;">()</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span>
<span style="color: black;"> SiebelJS.Log</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">"Custom PR "</span><span style="color: black;"> </span><span style="color: #1e7c70;">+</span><span style="color: black;"> PRName </span><span style="color: #1e7c70;">+</span><span style="color: black;"> </span><span style="color: #823125;">": SetRenderer method reached."</span><span style="color: #1e7c70;">);</span>
<span style="color: black;"> </span><span style="color: #4f76ac;">var</span><span style="color: black;"> oAppletMap </span><span style="color: #1e7c70;">=</span><span style="color: black;"> PM.GetAppletMap</span><span style="color: #1e7c70;">();</span><span style="color: black;"> </span><span style="color: #46830d;">//get applet map object</span>
<span style="color: black;"> </span><span style="color: #46830d;">//some variables we need later</span>
<span style="color: black;"> </span><span style="color: #4f76ac;">var</span><span style="color: black;"> oApplet</span><span style="color: #1e7c70;">,</span><span style="color: black;"> sAppletName</span><span style="color: #1e7c70;">,</span><span style="color: black;"> oAppletPM</span><span style="color: #1e7c70;">;</span>
<span style="color: black;"> </span><span style="color: #4f76ac;">var</span><span style="color: black;"> sAppletId</span><span style="color: #1e7c70;">;</span></span></span><span style="font-size: 10pt;"><span style="font-family: Consolas;"><span style="color: black;">
</span><span style="color: #4f76ac;">for</span><span style="color: black;"> </span><span style="color: #1e7c70;">(</span><span style="color: #4f76ac;">var</span><span style="color: black;"> applet </span><span style="color: #4f76ac;">in</span><span style="color: black;"> oAppletMap</span><span style="color: #1e7c70;">)</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span><span style="color: black;"> </span><span style="color: #46830d;">//loop through applet map</span>
<span style="color: black;"> oApplet </span><span style="color: #1e7c70;">=</span><span style="color: black;"> oAppletMap</span><span style="color: #1e7c70;">[</span><span style="color: black;">applet</span><span style="color: #1e7c70;">];</span><span style="color: black;"> </span><span style="color: #46830d;">//get current applet object</span>
<span style="color: black;"> sAppletName </span><span style="color: #1e7c70;">=</span><span style="color: black;"> oApplet.GetName</span><span style="color: #1e7c70;">();</span><span style="color: black;"> </span><span style="color: #46830d;">//get applet name</span></span><span style="font-family: Consolas;"><span style="color: black;">
</span><span style="color: #4f76ac;">if</span><span style="color: black;"> </span><span style="color: #1e7c70;">(</span><span style="color: black;">sAppletName </span><span style="color: #1e7c70;">==</span><span style="color: black;"> </span><span style="color: #823125;">"Salutation Applet (SSE)"</span><span style="color: #1e7c70;">)</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span><span style="color: black;"> </span><span style="color: #46830d;">// if it is salutation applet</span>
<span style="color: black;"> oAppletPM </span><span style="color: #1e7c70;">=</span><span style="color: black;"> oApplet.GetPModel</span><span style="color: #1e7c70;">();</span><span style="color: black;"> </span><span style="color: #46830d;">//get Applet PM</span>
<span style="color: black;"> sAppletId </span><span style="color: #1e7c70;">=</span><span style="color: black;"> oApplet.GetFullId</span><span style="color: #1e7c70;">();</span><span style="color: black;"> </span><span style="color: #46830d;">//get AppletFullId. You need this for accessing existing placeholder</span></span><span style="font-family: Consolas;"><span style="color: black;"> </span><span style="color: #4f76ac;"><span style="color: black;"> </span></span></span></span></pre>
<pre style="background: white; line-height: normal;"><span style="font-size: 10pt;"><span style="font-family: Consolas;"><span style="color: #4f76ac;"> var</span><span style="color: black;"> placeHolder </span><span style="color: #1e7c70;">=</span><span style="color: black;"> oAppletPM.Get</span><span style="color: #1e7c70;">(</span><span style="color: black;"> </span><span style="color: #823125;">"GetPlaceholder"</span><span style="color: black;"> </span><span style="color: #1e7c70;">);</span></span><span style="font-family: Consolas;"><span style="color: black;">
</span><span style="color: #46830d;">//Replace HTML for existing placeholder with your own!</span>
<span style="color: black;"> $</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">"#s_"</span><span style="color: black;"> </span><span style="color: #1e7c70;">+</span><span style="color: black;"> sAppletId </span><span style="color: #1e7c70;">+</span><span style="color: black;"> </span><span style="color: #823125;">"_div"</span><span style="color: #1e7c70;">)</span><span style="color: black;">.html</span><span style="color: #1e7c70;">(</span><span style="color: black;"> </span><span style="color: #823125;">'<div class="salutation-pr-applet" id="'</span><span style="color: black;"> </span><span style="color: #1e7c70;">+</span><span style="color: black;"> placeHolder </span><span style="color: #1e7c70;">+</span><span style="color: black;"> </span><span style="color: #823125;">'"></div>'</span><span style="color: black;"> </span><span style="color: #1e7c70;">);</span></span><span style="font-family: Consolas;"><span style="color: black;">
</span></span></span></pre>
<pre style="background: white; line-height: normal;"><span style="font-size: 10pt;"><span style="font-family: Consolas;"><span style="color: #46830d;"> //Now add a span with your own salution message</span>
<span style="color: black;"> $</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">"#"</span><span style="color: black;"> </span><span style="color: #1e7c70;">+</span><span style="color: black;"> placeHolder</span><span style="color: #1e7c70;">)</span><span style="color: black;">.append</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">'<span class="salutation-pr-title"> Welcome '</span><span style="color: black;"> </span><span style="color: #1e7c70;">+</span></span></span><span style="font-family: Consolas;"><span style="font-size: 10pt;"><span style="color: black;">
SiebelApp.S_App.GetProfileAttr</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">"Full Name"</span><span style="color: #1e7c70;">)</span><span style="color: black;"> </span><span style="color: #1e7c70;">+</span><span style="color: black;"> </span><span style="color: #823125;">'!. Your last logon was on '</span><span style="color: #1e7c70;">+</span>
<span style="color: black;"> </span><span style="color: #4f76ac;">new</span><span style="color: black;"> </span><span style="color: #4f76ac;">Date</span><span style="color: #1e7c70;">(</span><span style="color: black;">SiebelApp.S_App.GetProfileAttr</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">"Last Logged In"</span><span style="color: #1e7c70;">))</span><span style="color: black;">.format</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">"dddd, mmmm dS, yyyy, h:MM:ss TT"</span><span style="color: #1e7c70;">)+</span><span style="color: #823125;">'.</span>'</span><span style="color: #1e7c70;">);</span>
<span style="color: black;"> </span><span style="color: #1e7c70;">}</span>
<span style="color: black;"> </span><span style="color: #1e7c70;">}</span></span><span style="color: #1e7c70; font-size: 10pt;">};</span></span></pre>
</td></tr>
</tbody></table>
<pre style="background: white; line-height: normal;"><span style="font-family: courier new, courier, monospace;">You can beautify above using your custom .css file. Create a new HomeSalutation.css file under \PUBLIC\enu\FILES\custom\ and add below code</span></pre>
<table border="0" cellpadding="0" cellspacing="0" style="width: 624px;"><tbody>
<tr><td valign="top" width="622"><pre style="background: white; line-height: normal;"><span style="font-family: Consolas;"><span style="color: #823125;"><span style="font-size: 10pt;">.salutation-pr-applet</span></span><span style="font-size: 10pt;"><span style="color: black;"> </span>{
<span style="color: black;"> </span><span style="color: #cf4820;">min-height</span><span style="color: black;">: </span><span style="color: #4f76ac;">30px</span></span></span><span style="font-size: 10pt;"><span style="font-family: Consolas;"><span style="color: black;">;
</span><span style="color: #cf4820;">margin-top</span><span style="color: black;">: </span><span style="color: #4f76ac;">15px</span></span><span style="font-family: Consolas;"><span style="color: black;">;
</span><span style="color: #cf4820;">margin-left</span><span style="color: black;">: </span><span style="color: #4f76ac;">20px</span></span><span style="font-family: Consolas;"><span style="color: black;">;</span>}</span><span style="font-family: Consolas;"><span style="color: black;"> </span><span style="color: #823125;">.salutation-pr-title</span><span style="color: black;"> </span>{
<span style="color: black;"> </span><span style="color: #cf4820;">float</span><span style="color: black;">: </span><span style="color: #4f76ac;">left</span></span><span style="font-family: Consolas;"><span style="color: black;">;
</span><span style="color: #cf4820;">font-size</span><span style="color: black;">: </span><span style="color: #4f76ac;">1.3em</span></span><span style="font-family: Consolas;"><span style="color: black;">;
</span><span style="color: #cf4820;">margin-right</span><span style="color: black;">: </span><span style="color: #4f76ac;">40px</span></span><span style="font-family: Consolas;"><span style="color: black;">;
</span><span style="color: #cf4820;">font-weight</span><span style="color: black;">: </span><span style="color: #4f76ac;">bold</span></span><span style="font-family: Consolas;"><span style="color: black;">;
</span><span style="color: #cf4820;">color</span><span style="color: black;">: </span><span style="color: #4f76ac;">#777</span></span></span><span style="font-family: Consolas;"><span style="font-size: 10pt;"><span style="color: black;">;</span></span><span style="font-size: 10pt;">}</span></span></pre>
</td></tr>
</tbody></table>
<pre style="background: white; line-height: normal;"><span style="font-family: courier new, courier, monospace;">Follow the usual steps to register your View PR to your Home Pageand add .css to your /custom/theme.js.Clear cache and test!</span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: courier new, courier, monospace;">Here are the files you are looking for!</span></pre>
<pre style="background: white; line-height: normal;"><u><a href="https://drive.google.com/file/d/0B0IV_ky_Dy3fbEc0NWNuRnBMS1E/edit?usp=sharing" target="_blank">HomeSalutation.css</a></u></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: courier new, courier, monospace;"><a href="https://drive.google.com/file/d/0B0IV_ky_Dy3fQU9BbmNBT3AxZXM/edit?usp=sharing" target="_blank">HomePageSalutationPR.js</a></span><span style="font-family: courier new, courier, monospace;"></span></pre>
<pre style="background: white; line-height: normal;"><strong><span style="font-family: courier new, courier, monospace;"><u>
</u></span></strong></pre>
<pre style="background: white; line-height: normal;"><strong><span style="font-family: courier new, courier, monospace;"><u>Newcomers,</u> </span></strong></pre>
<br />
<strong><u><span style="font-family: courier new, courier, monospace;">Steps to register you View PR to your home page </span></u></strong><br />
<span style="font-family: courier new, courier, monospace;"><u>Step 1: Register your /custom/HomePageSalutationPR.js</u> in Manifest Files Admin (if not already done): </span><br />
<span style="font-family: courier new, courier, monospace;">Go to Administration - Application > Manifest Files and add a new entry with the following value:<br />Name: siebel/custom/HomePageSalutationPR.js</span><br />
<br />
<span style="font-family: courier new, courier, monospace;"><u>Step 2: Register your new ViewPR in Manifest Admin</u>. Go to Administration Application > Manifest Administration and add the following :<br />In UI Objects:<br /> Type: View<br /> Usage Type: Physical Renderer<br /> Name: Sales Home Page View<br />In Object Expression:<br /> Expression: Desktop<br /> Level : 1<br />In Files:<br /> Name: siebel/custom/HomePageSalutationPR.js</span><br />
<pre style="background: white; line-height: normal;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5P4D1CG-6LpjvP32belIYgW_bKMZ66LAm1tmWimn1DBR-xEi2XqfO84gcrTE5gfpyrkD4Lk7BTUlCAVbWqlik_4dKPAVSpMxYNr9LI-5mbogPIw-G0ao9eithxfY-I4obWAwSi9ld0LCY/s1600-h/image%25255B3%25255D.png"><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrp3IQJ5S8LtWaq0VD1dPE_R5uuKqwc79JqH-pNgMWJAxImIHjXXzJ6vYkrXrQeobhI0H3nCYqE5hCHb8bq5BJel9yWgbcz_C8lYIGU1zOYgTuxdrsXMRKdHEozonuE7qVIbU0taw984z4/?imgmax=800" height="413" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="625" /></a></pre>
<strong><u><span style="font-family: courier new, courier, monospace;">Steps to register your custom .css to your theme</span></u></strong><br />
<br />
<span style="font-family: Courier New;"><u>Step 1: create a new custom </u><em><u>HomeSalutation.css</u> </em>file and store under \PUBLIC\enu\FILES\custom\ on your web server. <u></u></span><br />
<pre><u>Step 2: Register you .css in theme.js</u>: Add an entry in “theme.js” file in <em>\public\enu\<Siebel_Build>\scripts\siebel\custom</em> </pre>
<br />
<span style="font-family: Courier New;">NOTE: you are not copying \siebel\theme.js into \siebel\custom\ in this case. It’s already there provided by Oracle. If not, then create a new theme.js file and paste below code.</span><br />
<br />
<table border="0" cellpadding="0" cellspacing="0" style="width: 611px;"><tbody>
<tr><td valign="top" width="609"><pre style="background: white; line-height: normal;"><span style="font-family: Consolas;"><span style="color: black;"><span style="font-size: 10pt;">SiebelApp.ThemeManager.addResource</span></span><span style="font-size: 10pt;"><span style="color: #1e7c70;">(</span>
<span style="color: black;"> </span><span style="color: #823125;">"GRAY_TAB"</span><span style="color: #1e7c70;">,</span>
<span style="color: black;"> </span><span style="color: #1e7c70;">{</span>
<span style="color: black;"> css </span><span style="color: #1e7c70;">:</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span></span></span><span style="color: black; font-family: Consolas; font-size: 10pt;"> </span></pre>
<pre style="background: white; line-height: normal;"><span style="color: #46830d; font-family: Consolas; font-size: 10pt;">// Location of CSS file which needs to be added as part of existing theme </span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Consolas;"><span style="font-size: 10pt;"><span style="color: black;"> sal_theme </span><span style="color: #1e7c70;">:</span><span style="color: black;"> </span><span style="color: #823125;">"files/custom/HomeSalutation.css"</span><span style="color: #46830d;"> </span></span></span><span style="color: black; font-family: Consolas; font-size: 10pt;"> </span><span style="font-family: Consolas; font-size: 10pt;"><span style="color: #1e7c70;">}</span></span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Consolas;"><span style="font-size: 10pt;"><span style="color: black;"> </span><span style="color: #1e7c70;">}</span>
<span style="color: #1e7c70;">);</span></span></span><span style="font-size: 10pt;"><span style="font-family: Consolas;"><span style="color: black;">
SiebelApp.ThemeManager.addResource</span><span style="color: #1e7c70;">(</span>
<span style="color: black;"> </span><span style="color: #823125;">"TANGERINE_TAB"</span><span style="color: #1e7c70;">,</span>
<span style="color: black;"> </span><span style="color: #1e7c70;">{</span>
<span style="color: black;"> css </span><span style="color: #1e7c70;">:</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span>
<span style="color: black;"> sal_theme </span><span style="color: #1e7c70;">:</span><span style="color: black;"> </span><span style="color: #823125;">"files/custom/HomeSalutation.css"</span>
<span style="color: black;"> </span><span style="color: #1e7c70;">}</span>
<span style="color: black;"> </span><span style="color: #1e7c70;">}</span>
<span style="color: #1e7c70;">);</span></span></span><span style="font-family: Consolas;"><span style="font-size: 10pt;"><span style="color: black;">
SiebelApp.ThemeManager.addResource</span><span style="color: #1e7c70;">(</span>
<span style="color: black;"> </span><span style="color: #823125;">"GRAY_ACCORDION"</span><span style="color: #1e7c70;">,</span>
<span style="color: black;"> </span><span style="color: #1e7c70;">{</span>
<span style="color: black;"> css </span><span style="color: #1e7c70;">:</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span>
<span style="color: black;"> sal_theme </span><span style="color: #1e7c70;">:</span><span style="color: black;"> </span><span style="color: #823125;">"files/custom/HomeSalutation.css"</span>
<span style="color: black;"> </span><span style="color: #1e7c70;">}</span>
<span style="color: black;"> </span><span style="color: #1e7c70;">}</span>
<span style="color: #1e7c70;">);</span>
<span style="color: black;">SiebelApp.ThemeManager.addResource</span><span style="color: #1e7c70;">(</span>
<span style="color: black;"> </span><span style="color: #823125;">"TANGERINE_ACCORDION"</span><span style="color: #1e7c70;">,</span>
<span style="color: black;"> </span><span style="color: #1e7c70;">{</span>
<span style="color: black;"> css </span><span style="color: #1e7c70;">:</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span>
<span style="color: black;"> sal_theme </span><span style="color: #1e7c70;">:</span><span style="color: black;"> </span><span style="color: #823125;">"files/custom/HomeSalutation.css"</span>
<span style="color: black;"> </span><span style="color: #1e7c70;">}</span>
<span style="color: black;"> </span><span style="color: #1e7c70;">}</span>
<span style="color: #1e7c70;">);</span></span></span></pre>
</td></tr>
</tbody></table>
<br />
<span style="font-family: Courier New, Courier, monospace;"><u>Step 3: Register your /custom/theme.js</u> in Manifest Files Admin (if not already done): Go to Administration - Application > Manifest Files and add a new entry with the following value:<br />Name: siebel/custom/theme.js</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span><span style="font-family: Courier New, Courier, monospace;"><u>Step 4: Register your new theme at the application level</u> in Manifest Admin (if not already done<u>)</u> Go to Administration - Application > Manifest Administration and add the following :<br />In UI Objects:<br /> Type: Application<br /> Usage Type: Common<br /> Name: PLATFORM DEPENDENT<br />In Object Expression:<br /> Expression: Desktop<br /> Level : 1<br />In Files:<br /> Name: siebel/custom/theme.js</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span><span style="font-family: Courier New, Courier, monospace;">I hope you are enjoying my blogs. Let me know if you have any questions.<br /><br />Shiv</span>Shttp://www.blogger.com/profile/13636876457402555607noreply@blogger.com0tag:blogger.com,1999:blog-2548259877820684769.post-277792153383645582014-07-30T12:12:00.002+01:002014-11-14T15:52:18.862+00:00Open UI Customization - iHelp error - get rid of it!<span style="font-family: 'courier new', courier, monospace;">In my previous blog, I explained how to get Home page Salutation HI Error sorted out with more meaningful information. If you haven’t see it then, check it out </span><a href="http://siebel-openui.blogspot.co.uk/2014/07/open-ui-customization-hi-salutation.html" style="font-family: 'courier new', courier, monospace;" target="_blank"><strong>here</strong></a><span style="font-family: 'courier new', courier, monospace;">.</span><br />
<span style="font-family: courier new, courier, monospace;"><br /></span>
<span style="font-family: courier new, courier, monospace;">Extending it further, on all Home Pages (viz. Account Home, Opportunity Home, Activity etc)you see this HI Error message in place of iHelp.</span><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihsI69EprTr2LOC_44rs6zJ3j_n1L9jj5y-ZuPOZWxRbhFz0_B_FuyNTJk8xPzxVBOxM_z0n01BdkiRZ7_9kM367hyphenhyphene_gpY8MFAxi4K21kKl-ZJij_hbsVjXSd5dGMFm2L3v6L0aUAjTgC/s1600-h/image%25255B12%25255D.png"><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt_Z7aPJ8-q5db5QMF-daCTeD912aABCdA99gu349Ww3XZhV0SJbBveQAXbiI0k-Ehfs6bEmNri_vmawppTFrM_snMgeMHhvPOkPQpVorfGeDI7xeFuOpjcyl80koNGXLvrHaDblixeEez/?imgmax=800" height="356" style="background-image: none; border-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="631" /></a><br />
<span style="font-family: courier new, courier, monospace;"><br /></span>
<span style="font-family: courier new, courier, monospace;">As you know Open UI doesn’t support any of the SI (Standard Interactivity) based HI applets. Until Oracle comes up with a fix for iHelp or you are one of those organizations who doesn’t use iHelp then, you can use below approach to get rid of that section at client side.</span><br />
<span style="font-family: courier new, courier, monospace;"><br /></span>
<span style="font-family: courier new, courier, monospace;">After the change this is how it would look like,</span><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuJwuKyV8lztaqyylOprmNTYBhq5XSpwjgY3-Omt7hbL-uLKian6WV1zZOs0gpu6_ttosCepPjTmbaulGX-pvQrZR3J4uzD31kzuTcJdA7s_fp8QKk_IT5Fas72fyUXQrQ7FgDKNh6JsGn/s1600-h/image%25255B16%25255D.png"><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiaSUW3RApZuPcHGCRdpTo1tYeIDJx7cdUFdITGhkqflQP1TC8UhUA7S6-fTzY-w10H5qBfwD9FYeoviVxYoJJcdcShELXF43e579vSro0pVl5ZK-QpPFpaU1IUaArCIjSW9gM8BlipOfD/?imgmax=800" height="377" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="626" /></a><br />
<span style="font-family: courier new, courier, monospace;"><br /></span>
<span style="font-family: courier new, courier, monospace;">Again, So I thought of finding my way – without srf – pure js based one. All I am doing is finding the container for iHelp and removing it from DOM.</span><br />
<br />
<a name='more'></a><br />
<br />
<span style="font-family: courier new, courier, monospace;">So, let’s look at the high level steps:</span><br />
<ol>
<li><span style="font-family: courier new, courier, monospace;">Create a new custom View PR – call it - GlobalHideiHelpViewPR.js. You can use my template available here: <a href="https://drive.google.com/file/d/0B0IV_ky_Dy3fZkRUTHZmMWVtbnc/edit?usp=sharing" target="_blank"><strong>Template-ViewPR.js</strong></a>. Just save it and replace MyJs with GlobalHideiHelpViewPR.js</span> </li>
<li><span style="font-family: courier new, courier, monospace;">You need to add your logic under <span style="color: blue;">GlobalHideiHelpViewPR.prototype.SetRenderer()</span> function in your ViewPR</span> </li>
<li><span style="font-family: courier new, courier, monospace;">Here, you need to get the reference to the iHelp container and remove it.</span></li>
</ol>
<span style="font-family: courier new, courier, monospace;">Let’s look at the <span style="color: black;">SetRenderer </span>function from ViewPR in detail.</span><br />
<span style="font-family: courier new, courier, monospace;"><br /></span>
<br />
<table border="0" cellpadding="0" cellspacing="0" style="table-layout: fixed; width: 626px;"> <tbody>
<tr> <td valign="top" width="624"><pre style="background: white; line-height: normal;"><span style="font-family: Consolas;"><span style="color: black;"><span style="font-size: 10pt;">GlobalHideiHelpViewPR.prototype.SetRenderer </span></span><span style="font-size: 10pt;"><span style="color: #1e7c70;">=</span><span style="color: black;"> </span><span style="color: #4f76ac;">function</span><span style="color: black;"> </span><span style="color: #1e7c70;">()</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span>
<span style="color: black;"> SiebelJS.Log</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">"Custom PR "</span><span style="color: black;"> </span><span style="color: #1e7c70;">+</span><span style="color: black;"> PRName </span><span style="color: #1e7c70;">+</span><span style="color: black;"> </span><span style="color: #823125;">": SetRenderer method reached."</span><span style="color: #1e7c70;">);</span>
<span style="color: black;"> </span><span style="color: #4f76ac;">var</span><span style="color: black;"> oAppletMap </span><span style="color: #1e7c70;">=</span><span style="color: black;"> PM.GetAppletMap</span><span style="color: #1e7c70;">();</span><span style="color: black;"> </span><span style="color: #46830d;">//get applet map object</span>
<span style="color: black;"> </span><span style="color: #46830d;">//some variables we need later</span>
<span style="color: black;"> </span><span style="color: #4f76ac;">var</span><span style="color: black;"> oApplet</span><span style="color: #1e7c70;">,</span><span style="color: black;"> sAppletName</span><span style="color: #1e7c70;">,</span><span style="color: black;"> oAppletPM</span><span style="color: #1e7c70;">;</span>
<span style="color: black;"> </span><span style="color: #4f76ac;">var</span><span style="color: black;"> sAppletId</span><span style="color: #1e7c70;">;</span></span></span><span style="font-size: 10pt;"><span style="font-family: Consolas;"><span style="color: black;">
</span><span style="color: #4f76ac;">for</span><span style="color: black;"> </span><span style="color: #1e7c70;">(</span><span style="color: #4f76ac;">var</span><span style="color: black;"> applet </span><span style="color: #4f76ac;">in</span><span style="color: black;"> oAppletMap</span><span style="color: #1e7c70;">)</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span><span style="color: black;"> </span><span style="color: #46830d;">//loop through applet map</span>
<span style="color: black;"> oApplet </span><span style="color: #1e7c70;">=</span><span style="color: black;"> oAppletMap</span><span style="color: #1e7c70;">[</span><span style="color: black;">applet</span><span style="color: #1e7c70;">];</span><span style="color: black;"> </span><span style="color: #46830d;">//get current applet object</span>
<span style="color: black;"> sAppletName </span><span style="color: #1e7c70;">=</span><span style="color: black;"> oApplet.GetName</span><span style="color: #1e7c70;">();</span><span style="color: black;"> </span><span style="color: #46830d;">//get applet name</span></span><span style="font-family: Consolas;"><span style="color: black;">
</span><span style="color: #4f76ac;">if</span><span style="color: black;"> </span><span style="color: #1e7c70;">(</span><span style="color: black;">sAppletName </span><span style="color: #1e7c70;">==</span><span style="color: black;"> </span><span style="color: #823125;">"Screen Home Task Assistant List Applet"</span><span style="color: #1e7c70;">)</span><span style="color: black;"> </span><span style="color: #1e7c70;">{</span><span style="color: black;"> </span><span style="color: #46830d;">// if it is salutation applet</span>
<span style="color: black;"> oAppletPM </span><span style="color: #1e7c70;">=</span><span style="color: black;"> oApplet.GetPModel</span><span style="color: #1e7c70;">();</span><span style="color: black;"> </span><span style="color: #46830d;">//get Applet PM</span>
<span style="color: black;"> sAppletId </span><span style="color: #1e7c70;">=</span><span style="color: black;"> oApplet.GetFullId</span><span style="color: #1e7c70;">();</span><span style="color: black;"> </span><span style="color: #46830d;">//get AppletFullId. You need this for accessing existing placeholder</span></span></span><span style="font-family: Consolas;"><span style="font-size: 10pt;"><span style="color: black;"> </span></span></span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Consolas;"><span style="font-size: 10pt;"><span style="color: black;"> $</span><span style="color: #1e7c70;">(</span><span style="color: #823125;">"#s_"</span><span style="color: black;"> </span><span style="color: #1e7c70;">+</span><span style="color: black;"> sAppletId </span><span style="color: #1e7c70;">+</span><span style="color: black;"> </span><span style="color: #823125;">"_div"</span><span style="color: #1e7c70;">)</span><span style="color: black;">.remove</span><span style="color: #1e7c70;">();</span></span></span><span style="font-family: Consolas;"><span style="font-size: 10pt;"><span style="color: #46830d;">//Remove the div for iHelp!</span></span></span><span style="font-family: Consolas;"><span style="font-size: 10pt;"><span style="color: black;"> </span></span></span></pre>
<pre style="background: white; line-height: normal;"><span style="font-family: Consolas;"><span style="font-size: 10pt;"><span style="color: #1e7c70;"> }</span>
<span style="color: black;"> </span><span style="color: #1e7c70;">}</span></span><span style="color: #1e7c70; font-size: 10pt;">};</span></span></pre>
</td></tr>
</tbody></table>
<pre style="background: white; line-height: normal;"><span style="font-family: courier new, courier, monospace;">Follow the usual steps to register your View PR to your Opportunity Home Page.Clear cache and test!</span></pre>
<strong><u><span style="font-family: courier new, courier, monospace;">Newcomers see below steps to register you View PR to your home page:</span></u></strong><br />
<span style="font-family: courier new, courier, monospace;"><u>Step 1: Register your /custom/GlobalHideiHelpViewPR.js in Manifest Files Admin (if not already done)</u>: Go to Administration - Application > Manifest Files and add a new entry with the following value:<br />Name: siebel/custom/GlobalHideiHelpViewPR.js</span><br />
<br />
<span style="font-family: courier new, courier, monospace;"><u>Step 2: Register your new ViewPR in Manifest Admin</u>. Go to Administration Application > Manifest Administration and add the following :<br />In UI Objects:<br /> Type: View<br /> Usage Type: Physical Renderer<br /> Name: Opportunity Screen Homepage View<br />In Object Expression:<br /> Expression: Desktop<br /> Level : 1<br />In Files:<br /> Name: siebel/custom/GlobalHideiHelpViewPR.js</span><br />
<pre style="background: white; line-height: normal;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2ZOXemgEQ4uFgQVnyy2-poiVEimk_22CklNWWGMskhsC6SKJ1YEAi8tyqdv9bZqW6_qn_Yea9KtNN4DNWYfVtO5aHSBHtOz6jpUtYbCkIw-rDTGgsN6GmH0_FwBX_nAuEr0iw9IWHY9Se/s1600-h/image%25255B21%25255D.png"><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjRtaU8q9b-ccnFNqr5tW-ON8bApE3CltPbEuAFWUQVcLC7K8_PvUbQ0aBNveZuBHl72PYRb_SDnBlpEmSZIsA_XDlh3traebqAxGjS9RX4hu-KKZdZaH0GcSiGD5vsCMVc52Y08CnioDT/?imgmax=800" height="427" style="background-image: none; border: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="647" /></a></pre>
<br />
<span style="font-family: courier new, courier, monospace;">I hope you are
enjoying my blogs. Let me know if you have any questions.</span><br />
<span style="font-family: courier new, courier, monospace;"><br /></span><span style="font-family: courier new, courier, monospace;">Shiv</span> Shttp://www.blogger.com/profile/13636876457402555607noreply@blogger.com0tag:blogger.com,1999:blog-2548259877820684769.post-92060067470655022462014-07-24T12:03:00.001+01:002014-07-25T10:10:13.579+01:00Open UI Customization - Part 4 - Applet PM and PR explained<span style="font-family: Verdana, sans-serif;">Hello again!</span><br />
<span style="font-family: Verdana, sans-serif;">Quick recap of PM from my previous blog <a href="http://siebel-openui.blogspot.co.uk/2014/06/open-ui-customization-part-1-intro.html" target="_blank"><strong><u>Open UI Customization - Part 1 - Intro</u></strong></a></span><br />
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgCuURhcSGm8iVJPNXyPgujsxFqd1LVAozjAHnRr__naZBI0iLYrP32OkKEeOXAq7LyKidNhBBxsq80mPzVXQNMN4S5lWBFfWT8krmybSqovS6l9PsrTIv4iLbCNxEnbr40lkmgFMy2M-t/s1600/PRPMClientside.png" height="236" style="display: block; float: none; margin-left: auto; margin-right: auto;" width="361" /><br />
<span style="font-family: Verdana, sans-serif;"><b>Presentation Model:</b> </span><br />
<span style="font-family: Verdana, sans-serif;">A presentation model is a single or set of JavaScript files that work with runtime(data generated at client-side) and metadata (data from server) and allow you to control and customize the logic, content and client interaction. </span><br />
<span style="font-family: Verdana, sans-serif;">It determines the logic to apply, captures client interactions, such as the user leaving a control, collects field values, and sets properties. A presentation model can get Properties and Methods from the proxy, and then expose them for external use. It doesn’t do any rendering of physical HTML ( you know who handles that – yes PR) </span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><b>Physical Renderer:</b> </span><br />
<span style="font-family: Verdana, sans-serif;">A physical renderer is a single or set of JavaScript files that Siebel Open UI uses to build the user interface. It allows you to use custom or third-party JavaScript code to render the user interface. It binds a presentation </span><br />
<span style="font-family: Verdana, sans-serif;">model to a physical control. </span><br />
<span style="font-family: Verdana, sans-serif;"><u><strong><br /></strong></u></span>
<span style="font-family: Verdana, sans-serif;"><u><strong>Example email address validation</strong></u>: Let’s take a very simple example of validating email Id entered by user for a contact on Contact Form Applet at client side (no server trip). High level flow should be:</span><br />
<ul>
<li><span style="font-family: Verdana, sans-serif;">user types in email id and steps off the field. </span></li>
<li><span style="font-family: Verdana, sans-serif;">email validation should happen at client side and error to be thrown to user if invalid email id.</span></li>
</ul>
<div class="wlWriterEditableSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:c6212722-c8df-44c2-819c-027f15ef4206" style="display: inline; float: none; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">
<div id="f300e35d-a056-4f65-a5ee-78edc6d3ee74" style="display: inline; margin: 0px; padding: 0px;">
<div>
<iframe allowfullscreen="true" frameborder="0" height="365" src="//www.youtube.com/embed/Uu7FxygxiY0" width="648"></iframe></div>
</div>
</div>
<br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Let’s first get the bird’s eye view of how to go about it.</span><br />
<a name='more'></a><br />
<ul>
<li><span style="font-family: Verdana, sans-serif;">your business logic should go in PM layer </span><ul>
<li><span style="font-family: Verdana, sans-serif;">You need to setup your PM to capture the event of user modifying email id and alert your PR to handle it. For that you will need a property – call it as – <span style="color: blue;">isEmailSet</span> . Whenever user updates email id, <span style="color: blue;">isEmailSet</span> will be set to true.</span></li>
</ul>
</li>
<li><span style="font-family: Verdana, sans-serif;">Validating email id and throwing appropriate error should go in PR layer </span><ul>
<li><span style="font-family: Verdana, sans-serif;">PR will trigger <span style="color: blue;">ValidateEmail()</span> function whenever <span style="color: blue;">isEmailSet</span> property is set by PM. <span style="color: blue;">ValidateEmail()</span> function will evaluate the email id entered and will alert user if it is of wrong format.</span></li>
</ul>
</li>
</ul>
<span style="font-family: Verdana, sans-serif;">I prefer to work with templates all the time. So, I have made it easy for you! Here are my templates that you use for all Applet PMs and PRs </span><br />
<ul>
<li><span style="font-family: Verdana, sans-serif;">Applet PM template here - <a href="https://drive.google.com/file/d/0B0IV_ky_Dy3fUXFOVHZrMVdDLTA/edit?usp=sharing" target="_blank"><strong>Template-AppletPM.js</strong></a> </span></li>
<li><span style="font-family: Verdana, sans-serif;">Applet PR template here - <a href="https://drive.google.com/file/d/0B0IV_ky_Dy3feXNINndNcUtwS2c/edit?usp=sharing" target="_blank"><strong>Template-AppletPR.js</strong></a></span></li>
</ul>
<span style="font-family: Verdana, sans-serif;">All you need is copy it under /custom folder and rename it as needed. Follow the instructions provided in the .js file itself.</span><br />
<strong><span style="font-family: Verdana, sans-serif;"><br /></span></strong>
<strong><span style="font-family: Verdana, sans-serif;">Presentation Model for Contact Form Applet:</span></strong><br />
<span style="font-family: Verdana, sans-serif;">Let’s create copy the Template-AppletPM.js file into /custom and rename it as ContactPM.js. You need to store your file here: <em><span style="color: blue;">\PUBLIC\enu\FILES\<Siebel_Build>\SCRIPTS\siebel\custom\ContactPM.js</span></em></span><br />
<span style="font-family: Verdana, sans-serif;">I have modified the template to look like below. Let’s give a close look at what I have done. </span><br />
<ul>
<li><span style="font-family: Verdana, sans-serif;">It’s fine if you are not very conversant with JavaScript at this moment. Any text with<span style="background-color: #666666; color: lime;"> Green font and gray background</span> – you can ignore time being! </span></li>
<li><span style="font-family: Verdana, sans-serif;">I replaced MyJS text with ContactPM in the whole of the template file. </span></li>
<li><span style="font-family: Verdana, sans-serif;">Now, review below text with <span style="background-color: yellow;">yellow </span>background. </span></li>
</ul>
<div>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><pre style="background-color: white;"></pre>
<pre style="background: white; line-height: normal;"><table border="3" cellpadding="3" cellspacing="1" style="table-layout: fixed; width: 630px;"><tbody>
<tr><td valign="top" width="622"><pre><span style="background-color: #666666;"><em><span style="color: lime;">if( typeof( SiebelAppFacade.<span style="color: white;"><strong>ContactPM</strong></span> ) === "undefined" ){
SiebelJS.Namespace( "SiebelAppFacade.</span></em><em><span style="color: lime;"><span style="color: white;"><strong>ContactPM</strong></span></span></em></span><span style="background-color: #666666;"><em><span style="color: lime;">" );
define("siebel/custom/</span></em><em><span style="color: lime;"><span style="color: white;"><strong>ContactPM</strong></span></span></em></span><span style="background-color: #666666;"><em><span style="color: lime;">", [], function () {
SiebelAppFacade.</span></em><em><span style="color: lime;"><span style="color: white;"><strong>ContactPM </strong></span></span></em></span><span style="background-color: #666666;"><em><span style="color: lime;">= (function () {
function </span></em><em><span style="color: lime;"><span style="color: white;"><strong>ContactPM </strong></span></span></em></span><span style="background-color: #666666;"><em><span style="color: lime;">(proxy) {
SiebelAppFacade.</span></em><em><span style="color: lime;"><span style="color: white;"><strong>ContactPM</strong></span></span></em></span><span style="background-color: #666666;"><em><span style="color: lime;">.superclass.constructor.call(this, proxy);
}
SiebelJS.Extend(</span></em><em><span style="color: lime;"><span style="color: white;"><strong>ContactPM</strong></span></span></em></span><span style="background-color: #666666;"><em><span style="color: lime;">, SiebelAppFacade.PresentationModel);
</span></em><em><span style="color: lime;"><span style="color: white;"><strong>ContactPM</strong></span></span></em></span><span style="background-color: #666666;"><em><span style="color: lime;">.prototype.Init = function () {
SiebelAppFacade.</span></em><em><span style="color: lime;"><span style="color: white;"><strong>ContactPM</strong></span></span></em><em><span style="color: lime;">.superclass.Init.call(this);</span></em></span>
<span style="background-color: yellow;">this.AddProperty("isEmailSet", "");
this.AddMethod("FieldChange", OnFieldChange, { sequence: false, scope: this });
</span> <span style="background-color: yellow;">SiebelJS.Log("Model Init call");</span>
<span style="background-color: #666666;"><span style="color: lime;">};</span>
</span>
<span style="background-color: yellow;">function OnFieldChange(control, value) {
SiebelJS.Log("Model OnFieldChange call for field:"+control.toString());
if (control.GetName() === "EmailAddress") {
this.SetProperty("isEmailSet", (value ? true : false));
}
}</span>
<span style="background-color: #666666;"><span style="color: lime;"> return <em><strong><span style="color: white;">ContactPM</span></strong></em>;
} ());
return "SiebelAppFacade.</span><span style="color: white;"><em><strong>ContactPM</strong></em></span></span><span style="background-color: #666666; color: lime;">";
});
}</span></pre>
</td></tr>
</tbody></table>
</pre>
</pre>
</div>
<ul>
<li><span style="font-family: Verdana, sans-serif;"><span style="background-color: white;">I added Property - <span style="color: blue;">isEmailSet</span></span> </span></li>
</ul>
<blockquote>
<pre><span style="background-color: yellow; font-family: Verdana, sans-serif;">this.AddProperty("isEmailSet", "");</span></pre>
</blockquote>
<ul>
<li><span style="font-family: Verdana, sans-serif;"><span style="background-color: white;">I added a Method to track FieldChange event </span>and call my function: <span style="background-color: white; color: blue;">OnFieldChange () </span></span><blockquote>
<pre><span style="background-color: yellow; font-family: Verdana, sans-serif;">this.AddMethod("FieldChange", OnFieldChange, { sequence: false, scope: this });</span></pre>
</blockquote>
<ul><ul>
<li><span style="color: black; font-family: Verdana, sans-serif;">Whenever user updates any field from UI, <span style="color: blue;">FieldChange</span> event will call my <span style="background-color: white; color: blue;">OnFieldChange </span>function. If user has updated EmailAddress control then, <span style="background-color: white;"><span style="color: blue;">isEmailSet</span></span> will be set to true.</span></li>
</ul>
</ul>
<!--EndFragment--></li>
<li><span style="font-family: Verdana, sans-serif;"><span style="background-color: white;">I added a custom function</span>: <span style="background-color: white; color: blue;">OnFieldChange () <span style="color: black;">– remember this function is getting called everytime a field is updated. So, first check if the control changed is EmailAddress, if so set <span style="background-color: white;"><span style="color: blue;">isEmailSet</span></span> to true</span></span></span></li>
</ul>
<span style="font-family: Verdana, sans-serif;">You can download above code here – <a href="https://drive.google.com/file/d/0B0IV_ky_Dy3fZXVReEdEVXNYbVE/edit?usp=sharing" target="_blank"><strong>ContactPM.js</strong></a></span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<strong><span style="font-family: Verdana, sans-serif;">Physical Renderer for Contact Form Applet:</span></strong><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Let’s create copy the Template-AppletPR.js file into /custom and rename it as ContactPR.js. You need to store your file here: <em><span style="color: blue;">\PUBLIC\enu\FILES\<Siebel_Build>\SCRIPTS\siebel\custom\ContactPR.js</span></em></span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">I have modified the template to look like below. Let’s give a close look at what I have done. </span><br />
<ul>
<li><span style="font-family: Verdana, sans-serif;">It’s fine if you are not very conversant with JavaScript at this moment. Any text with<span style="background-color: #666666; color: lime;"> Green font and gray background</span> – you can ignore time being! </span></li>
<li><span style="font-family: Verdana, sans-serif;">I replaced MyJS text with ContactPR in the whole of the template file. </span></li>
<li><span style="font-family: Verdana, sans-serif;">Now, review below text with <span style="background-color: yellow;">yellow </span>background.</span></li>
</ul>
<pre style="background: white; line-height: normal;"><pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial;"></pre>
</pre>
</pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><table border="3" cellpadding="3" cellspacing="1" style="font-family: 'Times New Roman'; table-layout: fixed; width: 615px;" unselectable="on"><tbody>
<tr><td valign="top" width="607"><pre><pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;">if( typeof( SiebelAppFacade.</span></span></i><span style="font-size: 10pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black; mso-themecolor: background1;"><span style="color: white;">ContactPR</span> </span></i></span><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;">) === "undefined" ){</span></span></i></span></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">SiebelJS.Namespace( "SiebelAppFacade.</span></span></i></span></span><span style="background-color: #666666;"><span style="color: lime;"><span style="font-size: 10pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black; mso-themecolor: background1;"><span style="color: white;">ContactPR</span></span></i></span></span></span><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;">" );</span></span></i><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black; mso-themecolor: background1;"></span></i></span></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">define("siebel/custom/</span></span></i></span></span><span style="background-color: #666666;"><span style="color: lime;"><span style="font-size: 10pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black; mso-themecolor: background1;"><span style="color: white;">ContactPR</span></span></i></span></span></span><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;">", ["order!siebel/phyrenderer"], function () {</span></span></i></span></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">SiebelAppFacade.</span></span></i></span></span><span style="background-color: #666666;"><span style="color: lime;"><span style="font-size: 10pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black; mso-themecolor: background1;"><span style="color: white;">ContactPR</span> </span></i></span></span></span><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;">= (function () {</span></span></i></span></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;"> </span></span></i></span><span style="background-color: #666666; font-family: 'Times New Roman';"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;">function </span></span></i></span></span><span style="background-color: #666666; font-family: 'Times New Roman';"><span style="color: lime;"><span style="font-size: 10pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black; mso-themecolor: background1;"><span style="color: white;">ContactPR</span></span></i></span></span></span><span style="background-color: #666666; font-family: 'Times New Roman';"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;">(pm) {</span></span></i></span></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;"> SiebelAppFacade.</span></span></i></span></span><span style="background-color: #666666;"><span style="color: lime;"><span style="font-size: 10pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black; mso-themecolor: background1;"><span style="color: white;">ContactPR</span></span></i></span></span></span><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;">.superclass.constructor.call(this, pm);</span></span></i></span></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="background-color: #666666;"><span style="color: lime;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">};</span></span></span></span></i><span style="font-family: 'Times New Roman';"> </span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%;"><span style="background-color: #666666; color: lime; font-size: 10pt; font-style: italic;"> SiebelJS.Extend(</span></span><span style="background-color: #666666; color: white; font-size: 10pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black; mso-themecolor: background1;">ContactPR</span></i></span><i style="background-color: #666666; color: lime;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;">, SiebelAppFacade.PhysicalRenderer);</span></span></i></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;"> </span></span></i><span style="color: white; font-size: 10pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black; mso-themecolor: background1;">ContactPR</span></i></span><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;">.prototype.Init = function () {</span></span></i></span></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">SiebelAppFacade.</span></span></i></span></span><span style="background-color: #666666;"><span style="color: lime;"><span style="color: white; font-size: 10pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black; mso-themecolor: background1;">ContactPR</span></i></span></span></span><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;">.superclass.Init.call(this);</span></span></i></span></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">SiebelJS.Log("ContactPR - Init call");</span></span></i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"></span></span></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="color: black;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="font-size: 10pt;"> </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="font-size: 10pt;">this.AttachPMBinding("isEmailSet", validateEmail)</span><span style="font-size: 10pt;">;</span></span></span></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="color: black;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">};</span></span></span></span><span style="font-family: 'Times New Roman'; font-size: 10pt;"> </span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #4f76ac;"> function</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> validateEmail</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">()</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">{</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">SiebelJS.Log</span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">(</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #823125;">"Contact PR - validateEmail"</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">);</span></span></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #4f76ac;">var</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> controls </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">=</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #4f76ac;">this</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;">.GetPM</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">()</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;">.Get</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">(</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #823125;">"GetControls"</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">);</span></span></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #4f76ac;">var</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> cntrl </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">=</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> controls</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">[</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #823125;">"EmailAddress"</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">];</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black; font-size: 10pt;"> </span></span></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #4f76ac;">var</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> emailcntrl </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">=</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> cntrl.GetInputName</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">();</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;"> </span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #4f76ac;">var</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> email </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">=</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> $</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">(</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #823125;">'input[name="'</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">+</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;">emailcntrl</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">+</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #823125;">'"]'</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">)</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;">.val</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">();</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #4f76ac;">var</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> emailReg </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">=</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #9b5f9b;">/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">;</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> if(</span></span></span></span><span style="background-color: yellow;"><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;">email == </span></span></span></span><span style="background-color: yellow;"><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #823125;">"</span></span></span></span><span style="background-color: yellow;"><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #823125;">"</span></span></span></span><span style="background-color: yellow;"><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;">) // If email is blank then don’t validate!</span></span></span></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #4f76ac;">return</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #9b5f9b;">true</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">;</span></span></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> alert</span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">(</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #823125;">"going to validate"</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">);</span></span></span><span style="color: #4f76ac; font-family: 'Times New Roman'; font-size: 10pt;"> </span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #4f76ac;"> if</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">(</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">!</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;">emailReg.test</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">(</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> email </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">)</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">)</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">{</span></span></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">alert</span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">(</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #823125;">"Please enter a valid Email"</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">);</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;"> </span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #4f76ac;">return</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #9b5f9b;">false</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">;</span></span></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">}</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black; font-size: 10pt;"> </span></span></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #4f76ac;">else</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">{</span></span></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">alert</span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">(</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #823125;">"This is a valid Email"</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">);</span></span></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #4f76ac;">return</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #9b5f9b;">true</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">;</span></span></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">}</span></span></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">}</span></span></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: #666666;"><span style="color: lime;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;"><i> <span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;">return </span></i><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black; mso-themecolor: background1;">ContactPR</span></i></span><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;">;</span></span></i></span></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="background-color: #666666;"><span style="color: lime;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">} ());</span></span></span></span></i></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">return "SiebelAppFacade.</span></span></i><span style="font-size: 10pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black; mso-themecolor: background1;">ContactPR</span></i></span><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;">";</span></span></i></span></span></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="background-color: #666666;"><span style="color: lime;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">});</span></span></span></span></i></pre>
<pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="background-color: #666666; color: lime; font-size: 10pt;">}</span></span></i></pre>
</pre>
<pre></pre>
</td></tr>
</tbody></table>
<pre></pre>
</pre>
</pre>
<ul>
<li><span style="font-family: Verdana, sans-serif;"><span style="background-color: white;">In init method, I attached PM Property - <span style="color: blue;">isEmailSet</span></span> to PR and whenever <span style="background-color: white;"><span style="color: blue;">isEmailSet</span></span> is set to true calls my function <span style="background-color: white; color: blue;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;">validateEmail</span></span></span></li>
</ul>
<blockquote>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="color: black;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; font-family: Verdana, sans-serif; mso-highlight: yellow;">this.AttachPMBinding("isEmailSet", validateEmail);</span></span></span></pre>
</blockquote>
<ul>
<li><span style="background-color: white; font-family: Verdana, sans-serif;">I added custom function: <span style="background-color: white; color: blue;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;">validateEmail() to validate email entered by user and throw appropriate error.</span></span></span></li>
</ul>
<span style="font-family: Verdana, sans-serif;">You can download above code here – <a href="https://drive.google.com/file/d/0B0IV_ky_Dy3fV1VjNWctczd5cHM/edit?usp=sharing" target="_blank"><strong>ContactPR.js</strong></a></span><br />
<br />
<span style="font-family: Verdana, sans-serif;">After adding ContactPM.js and ContactPR.js, all you need is to register them again Contact Form Applet and test. Follow below high level steps:</span><br />
<ul>
<li><span style="font-family: Verdana, sans-serif;"><strong><u>Register .js files</u></strong>: Navigate to Sitemap –> Admin – Application –> Manifest Files and register your custom files here.<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhogsy34sHeizPlfDFb-KWyGqKsdPNd6uOOU20dJOgASzUYunA678T8ho-TDoSESYzgCLHsOAzHSaN4ILoeAoEpCMOPmvbKNePjLBMMY64IMRp9gxDO3wTQWDuJjXQV-PAzUqDlA3BGC7Ts/s1600-h/image%25255B21%25255D.png"><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiX2LkJjdBlNs2dQsAlEZ4gdy5-sF3DxQa_uj5WwQDHXsuBiHZz5OSAKA2y2IuJeBGiQb-IS6g02nT3HMMKPsbXeYUNKI7yc05KxS9XrJuYWWbLw7xcdGWR1JXudnJgZCGb5iAqIOS4lsd5/?imgmax=800" height="295" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="592" /></a> </span></li>
<li><span style="font-family: Verdana, sans-serif;"><strong><u>Register ContactPM.js to Contact Form Applet:</u></strong> </span><ul><span style="font-family: Verdana, sans-serif;"><br />
</span>
<li><span style="font-family: Verdana, sans-serif;">Navigate to Sitemap –> Admin – Application –> Manifest Administration and fill details as below:</span></li>
</ul>
</li>
</ul>
<blockquote>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJc-sFOcRldx0EGUk318-j0mrBydwuKl1TERXmO8vZUPktjyqf9Rs7S8GAmCCTLkCNQr9c9SWhPh_-GFzdOe9lRqrYJy3Uydesj8teKh6Em3r7V4_SRjz0qHBlAQ_4v_p_Pie7OIDmQHl2/s1600-h/image%25255B22%25255D.png"><span style="font-family: Verdana, sans-serif;"><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO3weLqh9SQUNBmzUqMP95uiSY3GvdvyUaXbwKNqkRFcMm8gGXt4pWmDzJ-jYQN2Olso8A42spEB_k70h-ueCHzqYm7UEulTLiUCeSYZdtX3j7lmW8jMa-Ft07r8lT1FoB-IWDMxJRJHih/?imgmax=800" height="258" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="587" /></span></a></blockquote>
<ul><span style="font-family: Verdana, sans-serif;"><br />
</span>
<li><span style="font-family: Verdana, sans-serif;"><strong><u>Register ContactPR.js to Contact Form Applet:</u></strong> </span><ul><span style="font-family: Verdana, sans-serif;"><br />
</span>
<li><span style="font-family: Verdana, sans-serif;">Navigate to Sitemap –> Admin – Application –> Manifest Administration and fill details as below:</span></li>
</ul>
<!--EndFragment--></li>
</ul>
<blockquote>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd0lyz_c3kCcRUu3t9x07XfkCwoRPIuu6Gi04lh0kUBl7H1qHUF8P__RbYiijkVwUGSHxi6_pJIhh8yIEdIEBiBrcnNcUQAF_va8hNnj0R8vBRE83PhsSZtSnEEfIfcU5hU8xaJH0aW1cH/s1600-h/image%25255B23%25255D.png"><span style="font-family: Verdana, sans-serif;"><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCCZZnhf2p5tzWM6XoMy-l60O_IAl4gm3ZVnkooaO5x_rCEFi5tDVbShBpb4hTSmZxaDH_Xje54lZq4AmsoxCoXZJ79YIxQJJxIfweZksaF9aTRAa_qkVPclCuQjFJWmyfR3tCrbY2mkf3/?imgmax=800" height="266" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="588" /></span></a></blockquote>
<ul><span style="font-family: Verdana, sans-serif;"><br />
</span>
<li><span style="font-family: Verdana, sans-serif;"><strong><u>Test!: </u></strong>Clear your browser cache and login to the application and test</span></li>
</ul>
<span style="background-color: white;"><span style="font-family: Verdana, sans-serif;">A quick note about SiebelJS.Log. If you are using Google chrome then, right click –> Inspect Elements –> Console. You can see all your SiebelJS.Log messages from your code logged here. See example below for above test,</span></span><br />
<blockquote>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVeWbZxu03DtNKj4aPRu0ttT0MQ2Gnecbh7P9vJu574MMpxy3VG7CQw-Xz7fLY3He9asNsjQHQn-pt1AwhU8RM2h19jVTc0QmViP17oDEvUmI4SHRXAv2Lh5jXvE_wwrohgB6kqQ5ri3eU/s1600-h/image%25255B24%25255D.png"><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-mWeEzwwq69EsNaZs-MBurYlwAs7STUHY6WCWjEd0aZfzS8rYzgn2ZELcTZA81fX0STFoZyi-TSNyM39G6WzKUGtyJqu9bC0Fu4COtCKMrrjpYFvTgQ4YRui9sURzB_H2JZ40qRk_ilt6/?imgmax=800" height="379" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="597" /></a></span></blockquote>
<span style="font-family: Verdana, sans-serif;">Now the final bit to explain the text with<span style="background-color: #666666; color: lime;"> Green font and gray background</span> previously. NameSpace: Here Open UI maintains a list of objects instantiated in at the client side. </span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<strong><span style="font-family: Verdana, sans-serif;">Let’s look at ContactPM.js</span></strong><br />
<br />
<table border="3" cellpadding="3" cellspacing="1" style="table-layout: fixed; width: 617px;" unselectable="on">
<tbody>
<tr>
<td valign="top" width="609"><pre><em><span style="background-color: #d5a6bd;">Step 1: Verify that ContactPM Object class doesn’t exist as you can have only one instance of class in JavaScript </span></em></pre>
<pre><em><span style="background-color: #666666; color: lime;">if( typeof( SiebelAppFacade.<span style="color: white;"><strong>ContactPM</strong></span> ) === "undefined" ){
</span></em></pre>
<span style="background-color: #666666;"></span><br />
<pre><span style="background-color: #d5a6bd;">Step 2: Add ContactPM to Siebel SiebelAppFacade NameSpace. </span></pre>
<pre><span style="background-color: #666666;"><em><span style="color: lime;"> SiebelJS.Namespace( "SiebelAppFacade.</span></em><em><span style="color: lime;"><span style="color: white;"><strong>ContactPM</strong></span></span></em><em><span style="color: lime;">" );
</span></em></span></pre>
<pre><span style="background-color: #d5a6bd;">Step3: Define custom Presentation model file location and other dependencies if any. Presently we have no dependencies hence [] </span></pre>
<pre><span style="background-color: #666666;"><em><span style="color: lime;"> define("siebel/custom/</span></em><em><span style="color: lime;"><span style="color: white;"><strong>ContactPM</strong></span></span></em><em><span style="color: lime;">", [], function () {</span></em></span></pre>
<pre><span style="background-color: #d5a6bd;">Step 4: Add ContactPM Constructor within the class </span></pre>
<pre><span style="background-color: #666666;"><em><span style="color: lime;"> SiebelAppFacade.</span></em><em><span style="color: lime;"><span style="color: white;"><strong>ContactPM </strong></span></span></em><em><span style="color: lime;">= (function () {</span></em></span></pre>
<pre><span style="background-color: white; color: lime;"> </span><span style="background-color: #d5a6bd;">Step 4.1: declare Class constructor as function </span></pre>
<pre><em style="background-color: #666666;"><span style="color: lime;"> function </span></em><em style="background-color: #666666;"><span style="color: lime;"><span style="color: white;"><strong>ContactPM </strong></span></span></em><em style="background-color: #666666;"><span style="color: lime;">(proxy) {
</span></em><span style="background-color: white; color: lime;"> </span><span style="background-color: #d5a6bd;">Step 4.2: inherit super Class constructor to custom class </span></pre>
<pre><span style="background-color: #666666;"><em><span style="color: lime;"> SiebelAppFacade.</span></em><em><span style="color: lime;"><span style="color: white;"><strong>ContactPM</strong></span></span></em><em><span style="color: lime;">.superclass.constructor.call(this, proxy);
}</span></em></span></pre>
<pre><span style="background-color: white; color: lime;"> </span><span style="background-color: #d5a6bd;">Step 4.3: declare your class as an extension of PM. Extended class now can access all prebuilt functions within default PM </span></pre>
<pre><span style="background-color: #666666;"><em><span style="color: lime;"> SiebelJS.Extend(</span></em><em><span style="color: lime;"><span style="color: white;"><strong>ContactPM</strong></span></span></em></span><span style="background-color: #666666;"><em><span style="color: lime;">, SiebelAppFacade.PresentationModel);
</span></em></span><span style="background-color: white; color: lime;"> </span><span style="background-color: #d5a6bd;">step 4.4: init method to add properties and methods </span></pre>
<pre><span style="background-color: #666666;"><em><span style="color: lime;"> </span></em><em><span style="color: lime;"><span style="color: white;"><strong>ContactPM</strong></span></span></em></span><span style="background-color: #666666;"><em><span style="color: lime;">.prototype.Init = function () {
SiebelAppFacade.</span></em><em><span style="color: lime;"><span style="color: white;"><strong>ContactPM</strong></span></span></em><em><span style="color: lime;">.superclass.Init.call(this);</span></em></span>
<span style="background-color: yellow;">this.AddProperty("isEmailSet", "");
this.AddMethod("FieldChange", OnFieldChange, { sequence: false, scope: this });
</span> <span style="background-color: yellow;">SiebelJS.Log("Model Init call");</span>
<span style="background-color: #666666;"><span style="color: lime;">};</span></span></pre>
<span style="background-color: #666666;"></span><br />
<pre><span style="background-color: #d5a6bd;">step 5: define custom methods here </span></pre>
<span style="background-color: #666666;">
</span>
<br />
<pre> <span style="background-color: yellow;">function OnFieldChange(control, value) {
SiebelJS.Log("Model OnFieldChange call for field:"+control.toString());
if (control.GetName() === "EmailAddress") {
this.SetProperty("isEmailSet", (value ? true : false));
}
}</span>
<span style="background-color: #666666;"><span style="color: lime;"> return <em><strong><span style="color: white;">ContactPM</span></strong></em>;
} ());
return "SiebelAppFacade.</span><span style="color: white;"><em><strong>ContactPM</strong></em></span></span><span style="background-color: #666666; color: lime;">";
});
}</span></pre>
</td></tr>
</tbody></table>
<strong><span style="font-family: Verdana, sans-serif;"><br /></span></strong>
<strong><span style="font-family: Verdana, sans-serif;">Now, let’s look at ContactPR.js</span></strong><br />
<br />
<br />
<table border="3" cellpadding="3" cellspacing="1" style="table-layout: fixed; width: 615px;" unselectable="on">
<tbody>
<tr>
<td valign="top" width="607"><pre><em><span style="background-color: #d5a6bd;">Step 1: Verify that ContactPR Object class doesn’t exist as you can have only one instance of class in JavaScript </span></em></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;">if( typeof( SiebelAppFacade.</span></span></i><span style="font-size: 10pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black; mso-themecolor: background1;"><span style="color: white;">ContactPR</span> </span></i></span><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;">) === "undefined" ){</span></span></i></span></span></pre>
<span style="background-color: #666666;"></span><br />
<pre><span style="background-color: #d5a6bd;">Step 2: Add ContactPR to Siebel SiebelAppFacade NameSpace. </span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">SiebelJS.Namespace( "SiebelAppFacade.</span></span></i></span></span><span style="background-color: #666666;"><span style="color: lime;"><span style="font-size: 10pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black; mso-themecolor: background1;"><span style="color: white;">ContactPR</span></span></i></span></span></span><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;">" );</span></span></i><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black; mso-themecolor: background1;"></span></i></span></span></pre>
<span style="background-color: #666666;"></span><br />
<pre><span style="background-color: #d5a6bd;">Step3: Define custom Physical Renderer file location and other dependencies if any. Presently we have no dependencies hence [] </span></pre>
<span style="background-color: #666666;">
</span>
<br />
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">define("siebel/custom/</span></span></i></span></span><span style="background-color: #666666;"><span style="color: lime;"><span style="font-size: 10pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black; mso-themecolor: background1;"><span style="color: white;">ContactPR</span></span></i></span></span></span><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;">", ["order!siebel/phyrenderer"], function () {</span></span></i></span></span></pre>
<span style="background-color: #666666;"></span><br />
<pre><span style="background-color: #d5a6bd;">Step 4: Add ContactPR Constructor within the class </span></pre>
<span style="background-color: #666666;">
</span>
<br />
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">SiebelAppFacade.</span></span></i></span></span><span style="background-color: #666666;"><span style="color: lime;"><span style="font-size: 10pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black; mso-themecolor: background1;"><span style="color: white;">ContactPR</span> </span></i></span></span></span><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;">= (function () {</span></span></i></span></span></pre>
<span style="background-color: #666666;"></span><br />
<pre></pre>
<span style="background-color: #666666;">
</span>
<br />
<pre><span style="background-color: white; color: lime;"> </span><span style="background-color: #d5a6bd;">Step 4.1: declare Class constructor as function </span></pre>
<span style="background-color: #666666;">
</span>
<br />
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;"><span style="background-color: white;"> </span>function </span></span></i></span></span><span style="background-color: #666666;"><span style="color: lime;"><span style="font-size: 10pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black; mso-themecolor: background1;"><span style="color: white;">ContactPR</span></span></i></span></span></span><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;">(pm) {</span></span></i></span></span></pre>
<span style="background-color: #666666;"></span><br />
<pre><span style="background-color: white; color: lime;"> </span><span style="background-color: #d5a6bd;">Step 4.2: inherit super Class constructor to custom class </span></pre>
<span style="background-color: #666666;">
</span>
<br />
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;"> SiebelAppFacade.</span></span></i></span></span><span style="background-color: #666666;"><span style="color: lime;"><span style="font-size: 10pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black; mso-themecolor: background1;"><span style="color: white;">ContactPR</span></span></i></span></span></span><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;">.superclass.constructor.call(this, pm);</span></span></i></span></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="background-color: #666666;"><span style="color: lime;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">};</span></span></span></span></i></pre>
<span style="background-color: #666666;"></span><br />
<pre><span style="background-color: white; color: lime;"> </span><span style="background-color: #d5a6bd;">Step 4.3: declare your class as an extension of PR. Extended class now can access all prebuilt functions within default PR </span></pre>
<span style="background-color: #666666;">
</span>
<br />
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">SiebelJS.Extend(</span></span></i><span style="color: white; font-size: 10pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black; mso-themecolor: background1;">ContactPR</span></i></span><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;">, SiebelAppFacade.PhysicalRenderer);</span></span></i></span></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><i><span style="background-color: #666666; color: lime; font-size: 10pt;"></span></i></pre>
<span style="background-color: #666666;"></span><br />
<pre><span style="background-color: white; color: lime;"> </span><span style="background-color: #d5a6bd;">step 4.4: init method to Attach PM Binding </span></pre>
<span style="background-color: #666666;">
</span>
<br />
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;"> </span></span></i><span style="color: white; font-size: 10pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black; mso-themecolor: background1;">ContactPR</span></i></span><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;">.prototype.Init = function () {</span></span></i></span></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">SiebelAppFacade.</span></span></i></span></span><span style="background-color: #666666;"><span style="color: lime;"><span style="color: white; font-size: 10pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black; mso-themecolor: background1;">ContactPR</span></i></span></span></span><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;">.superclass.Init.call(this);</span></span></i></span></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">SiebelJS.Log("ContactPR - Init call");</span></span></i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"></span></span></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="background-color: #666666; color: lime; font-size: 10pt;"></span></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: #666666;"><span style="color: lime;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="font-size: 10pt;"></span></span></span></span> </pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="color: black;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="font-size: 10pt;"> </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="font-size: 10pt;">this.AttachPMBinding("isEmailSet", validateEmail)</span><span style="font-size: 10pt;">;</span></span></span></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="color: black;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">};</span></span></span></span></pre>
<span style="background-color: #666666;"></span><br />
<pre><span style="background-color: #d5a6bd;">step 5: define custom methods here </span></pre>
<span style="background-color: #666666;">
</span>
<br />
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="color: black;"><span style="font-size: 10pt;"> </span></span><span style="background-color: yellow;"><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #4f76ac;">function</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> validateEmail</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">()</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">{</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">SiebelJS.Log</span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">(</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #823125;">"Contact PR - validateEmail"</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">);</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"> </pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #4f76ac;">var</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> controls </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">=</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #4f76ac;">this</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;">.GetPM</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">()</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;">.Get</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">(</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #823125;">"GetControls"</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">);</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #4f76ac;">var</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> cntrl </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">=</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> controls</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">[</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #823125;">"EmailAddress"</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">];</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black; font-size: 10pt;"> </span></span></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #4f76ac;">var</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> emailcntrl </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">=</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> cntrl.GetInputName</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">();</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;"> </span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #4f76ac;">var</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> email </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">=</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> $</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">(</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #823125;">'input[name="'</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">+</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;">emailcntrl</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">+</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #823125;">'"]'</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">)</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;">.val</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">();</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #4f76ac;">var</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> emailReg </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">=</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #9b5f9b;">/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">;</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"></span></span></span></span> </pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> if(</span></span></span></span><span style="background-color: yellow;"><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;">email == </span></span></span></span><span style="background-color: yellow;"><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #823125;">"</span></span></span></span><span style="background-color: yellow;"><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #823125;">"</span></span></span></span><span style="background-color: yellow;"><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;">) // If email is blank then don’t validate!</span></span></span></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #4f76ac;">return</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #9b5f9b;">true</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">;</span></span></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"></span><span style="font-size: 10pt;"></span></span></span></span> </pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> alert</span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">(</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #823125;">"going to validate"</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">);</span></span></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #4f76ac;"> </span></span></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #4f76ac;"> if</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">(</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">!</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;">emailReg.test</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">(</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> email </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">)</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">)</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">{</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">alert</span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">(</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #823125;">"Please enter a valid Email"</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">);</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;"> </span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #4f76ac;">return</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #9b5f9b;">false</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">;</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">}</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black; font-size: 10pt;"> </span></span></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #4f76ac;">else</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">{</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">alert</span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70;">(</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #823125;">"This is a valid Email"</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">);</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span></span></span><span style="font-size: 10pt;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #4f76ac;">return</span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"> </span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #9b5f9b;">true</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">;</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">}</span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: yellow;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: black;"><span style="font-size: 10pt;"> </span></span></span><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"><span style="color: #1e7c70; font-size: 10pt;">}</span></span></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: yellow; color: #1e7c70; font-size: x-small;"><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: yellow;"></span></span> </pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: #666666;"><span style="color: lime;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;"><i> <span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;">return </span></i><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black; mso-themecolor: background1;">ContactPR</span></i></span><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;">;</span></span></i></span></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="background-color: #666666;"><span style="color: lime;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">} ());</span></span></span></span></i></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><span style="background-color: #666666;"><span style="color: lime;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">return "SiebelAppFacade.</span></span></i><span style="font-size: 10pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black; mso-themecolor: background1;">ContactPR</span></i></span><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="font-size: 10pt;">";</span></span></i></span></span></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="background-color: #666666;"><span style="color: lime;"><span style="font-size: 10pt;"> </span><span style="font-size: 10pt;">});</span></span></span></span></i></pre>
<pre style="background: white; margin: 0cm 0cm 0pt;"><i><span style="background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat; mso-highlight: black;"><span style="background-color: #666666; color: lime; font-size: 10pt;">}</span></span></i></pre>
</td></tr>
</tbody></table>
<pre></pre>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">I hope you enjoyed this thorough explanation for Applet PM and PR with a simple example. If so, please hit like! Let me know if you have any questions.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Shiv</span>Shttp://www.blogger.com/profile/13636876457402555607noreply@blogger.com0tag:blogger.com,1999:blog-2548259877820684769.post-49392762506720558352014-07-18T11:56:00.001+01:002014-07-25T10:10:35.181+01:00Open UI Customization - Where all your customizations should go?I had it embedded in my earlier blog and thought of having it on a separate post so that one can refer to as and when needed. <br />
<table border="0" cellpadding="0" cellspacing="0" style="width: 672px;"> <tbody>
<tr> <td valign="top" width="483"><strong>custom swt files: (web template files)</strong> <br />
<ul>
<li>All your custom swt files should go under: <ul>
<li><span style="color: blue;"><em>for server - \siebsrvr\WEBTEMPL\OUIWEBTEMPL\custom</em> </span> </li>
<li><span style="color: blue;">for client – <em>\<Client Install Dir>\WEBTEMPL\OUIWEBTEMPL\custom</em> </span></li>
</ul>
</li>
<li>It is not advisable to modify vanilla swt files. But, If you need to modify the vanilla swt files, you need to copy them from <em><span style="color: blue;">\siebsrvr\WEBTEMPL\OUIWEBTEMPL</span> </em>to<em><span style="color: blue;">\siebsrvr\WEBTEMPL\OUIWEBTEMPL\custom</span></em> and modify there. In such cases, don’t remove the vanilla swt from it’s original place. This is especially helpful when you patch/upgrade, Siebel installation will take care of upgrading your vanilla swt. If you want to revert to original then, simply delete/rename your <span style="color: blue;">/CUSTOM</span> swt file. Or you can take a ne copy into<span style="color: #222222;"> </span><span style="color: blue;">/CUSTOM</span> and add your changes. </li>
<li>When your applet/view refers to this web template, Open UI will look, <ul>
<li>first under <em><span style="color: blue;">\siebsrvr\WEBTEMPL\OUIWEBTEMPL\CUSTOM</span>.</em> </li>
<li>If not found then, it looks under <em><span style="color: blue;">\siebsrvr\WEBTEMPL\OUIWEBTEMPL</span></em> </li>
<li>If not found then, it looks under <span style="color: blue;"><em>\siebsrvr\WEBTEMPL\CUSTOM</em></span> </li>
<li>If not found then, it looks under <em><span style="color: blue;">\siebsrvr\WEBTEMPL\</span></em></li>
</ul>
</li>
</ul>
</td> <td valign="top" width="187"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLYJeVPOMBCrbQ1QxfFn_VEb20teCwYSIU7i6mwbJEzXFzRXoBiSIg-hD9dDNDsb1SMrfCnHRwV5fIcB077t1vyYjWPByn5d4XX82shbGu4U5qvtHDWuwNJwpekbDa8G47u1qh9Thf8MIC/s1600-h/image%25255B38%25255D.png"><br /><img border="0" height="148" src="https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcTFHwoIIjlz5exeJggqRsAi6IKWarX-FlSQHQHHeaILHF09L8E7" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" width="178" /><br /><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSwdBTQ2DfALbKxKOJKpa08fDfkPEarZfuLyVgl1b4ENYodzj7Ftvna8ZBTbT7BUL0Q6RHHr3Da_-NIuu5sUpU0wCbtrKKGxZwIDdFyVJel8TDjKa7kdNcgezmu8fIu4HnziNwKNrGHTM_/?imgmax=800" height="156" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="185" /></a></td></tr>
</tbody></table>
<table border="0" cellpadding="0" cellspacing="0" style="width: 673px;"> <tbody>
<tr> <td valign="top" width="495"><strong>custom .js files: </strong><br />
<ul>
<li>All your custom js files should go on web server or on your client: <span style="color: blue;"><em>\PUBLIC\enu\FILES\<Siebel_Build>\SCRIPTS\siebel\CUSTOM</em> </span> </li>
<li>If you need to modify the vanilla js files, you need to copy them from<span style="color: blue;"> \siebel\</span> to <span style="color: blue;">\siebel\custom\</span> and modify there. You also need to update your manifest files and administration when you do so.</li>
</ul>
<strong>custom .css files: </strong><br />
<ul>
<li>All your custom css files should go on web server or on your client:<span style="color: blue;"><em>\PUBLIC\enu\FILES\custom\</em> </span> </li>
<li>If you need to modify the vanilla css files, you need to copy them from <span style="color: blue;">\FILES\</span> to <a href="file://files/custom/"><span style="color: blue;">\FILES\custom\</span></a> and modify there. You also need to update your theme.js file when you do so.</li>
</ul>
<strong>custom image files: </strong><br />
<ul>
<li>All your custom image files should go on web server or on your client:<span style="color: blue;"><em>\PUBLIC\enu\IMAGES\custom\</em> </span> </li>
<li>Make sure that you custom .css or .js files refer to above location for images.</li>
</ul>
</td> <td valign="top" width="176"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTQ3wUDHEVVmqkSDhNamn6sGf97wIK0uKv-Dom_wfaKpIBFO5vc5SnE9K09YCmw1teEbgSnBm6sLKxKrHJ2i-YGuT0PdeRaEjLJqW0618BJdeCg15wAv46vzEdOzy6R-qPAMgCNsYEXABH/s1600-h/image%25255B34%25255D.png"><strong></strong></a><strong><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCiopSayXAfkv3lcn5mrEFB7d9E6iMcCMHf9PRy_KngBq0EbSOt9HxeGonSjFSwhi1oQPsUoO4rblrcsbkvOw7eQ_IJRVOlwvnuoPMD5cdfAb7W59y9lJMtAPgsje6Owu5vIIwchIsBeov/s1600-h/image%25255B39%25255D.png"><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfwnkkRWWTmNGiUyu498av736py63QJfrJwWhGEBhn-LCwBhpgT1343WnSA1DkWNjxfFq-hq0iFIgaKB8L9pCBUeNyBWaCF7nHXXkCo1YNHdbGnqjYia7m5DPys6Q-ateraJnTWWJHg6Wt/?imgmax=800" height="366" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="184" /></a></strong></td></tr>
</tbody></table>
<br />
Hope this is useful. Let me know if any questions.<br />
Shiv<br />
Shttp://www.blogger.com/profile/13636876457402555607noreply@blogger.com2tag:blogger.com,1999:blog-2548259877820684769.post-70961728430667747842014-07-17T15:50:00.001+01:002014-07-25T10:10:58.698+01:00Salesforce.com Vs Oracle Siebel CRM on-going battle - round n!I was in the same dilemma as to whether to upgrade existing Oracle Siebel enterprise or embrace latest cloud based solutions in the market viz. Oracle CX, Microsoft dynamics or Salesforce.com. If you have not seen my earlier blog where I did a comparison between these and finally decided to go with Siebel 8.1 upgrade, then do check <strong><u><a href="http://siebel-openui.blogspot.co.uk/2014/06/siebel-upgrade-vs-moving-into-cloud-my.html" target="_blank">Siebel Upgrade Vs move to cloud</a></u></strong>. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://twimgs.com/informationweek/galleries/automated/840/vs_full.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://twimgs.com/informationweek/galleries/automated/840/vs_full.png" height="200" width="200" /></a></div>
As a common observer, I am really impressed by phenomenal campaigns run by SFDC in the market everywhere – in most of those, there will be comparisons against Oracle CX or Siebel CRM. I must say, Oracle’s marketing strategy is very poor in comparison with SFDC’s.I have gathered some of the claims/comments in those campaigns and rebutted them with facts as per my understanding. <br />
<br />
<strong><em>SFDC Supporter: Siebel 8 was released in 2007 and Oracle’s controlled availability announcement ensures that there will never be a Siebel 9. Not only is Siebel innovation dead, but even bug fixes will come out less and less frequently. Mobility for Oracle is an afterthought. The traditional Siebel mobile apps are archaic and Open UI doesn’t deliver robust out-of-box capability.</em></strong><br />
#1. Oracle switched the numbering scheme that was publically used from Siebel 7, 8, etc to Innovation Pack 2013, 2014, 2015 etc. It is possibly correct that there will likely not be a Siebel 9, but it would be because of changed numbering scheme, not because Oracle stopped investing. Note that Oracle has increased the frequency of "bug fixes" from annual delivery of patch sets to monthly patching processes.<br />
#2. As for Mobility, Siebel IP2013 release included connected and disconnected mobile capabilities (one year before Salesforce delivered disconnected). At this point we have many customers that are using Open UI to deploy Siebel on a variety of browsers and devices.<br />
<br />
<strong><em>SFDC Supporter: If you are currently evaluating or using Siebel CRM, you should be aware that Oracle has revoked Siebel CRM’s generally available (GA) status and has put Siebel CRM on controlled availability (CA). Oracle putting Siebel on controlled availability is the first step towards end-of-life status. Oracle’s slow rate of innovation on Siebel will come to a halt.</em></strong><br />
Siebel is still being one of the Oracle's core products that is generally available to be sold to any customer. Additionally, Controlled Availability is a status that is used in many capacities including new product introduction and not only product retirement. Oracle has a robust roadmap defined for delivering innovation into the future using annual innovation packs. <br />
<br />
<em><strong>SFDC Supporter: Oracle may continue to issue their two annual fix packs, but there will be fewer bug fixes and no interesting innovation in these fix packs.</strong></em><br />
Siebel does not deliver two annual fix packs. Siebel delivers an annual innovation pack and delivers monthly patch sets to resolve bugs. This is a huge increase in velocity in comparison with previous years.<br />
<br />
<strong><em>SFDC Supporter: Oracle support will become more costly and provide a lower level of value. As Oracle forces its customers to move from premier support to extended support to sustaining support, the </em></strong><br />
<a name='more'></a><strong><em>maintenance costs rise and the benefits of the support service are reduced.</em></strong><br />
Over 82% of customers are on the latest release of Siebel which entitles them to premier support. The Oracle's support program guarantees Siebel customers an option for support with defined KPIs. Salesforce does not provide documented KPIs for customers without explicit CEO approval (according to Gartner). This means that Salesforce customers do not have a guaranteed support arrangement today.<br />
<br />
<strong><em>SFDC Supporter: Ask yourself when was the last time you asked Oracle for a Siebel enhancement request and it came out in a new Siebel release?</em></strong><br />
See the roadmap for the 1000's of solutions that Oracle has delivered since Oracle acquired Siebel.<br />
<br />
<strong><em>SFDC Supporter: Compare Siebel’s non-existent innovation with Salesforce’s 3 seamless releases every year. Upgrades require no work on our customer’s part and the service interruption for an upgrade is less than 5 minutes. Recent Salesforce releases include over 25,000 Idea Exchange points, ideas generated by and voted on by our customers. Salesforce is delivering real innovation to its customers.</em></strong><br />
Siebel is focused on delivering innovation around Customer Experience, Industry Innovations and Business Agility. Customers can access <strong><u><a href="http://www.oracle.com/us/products/applications/siebel/overview/index.html" target="_blank">Oracle.com</a></u></strong> to discover what is being done in terms of innovations. <br />
<br />
<strong><em>SFDC Supporter: Market Leadership</em></strong><br />
#1. Salesforce fails to highlight all of the solutions where Siebel is a leader. Contact analyst relations to obtain the Gartner Mega-vendors presentation shared in San Diego last year that highlighted the notable absence of Salesforce from Field Service, Marketing & CPQ Magic Quadrants / Market scopes.<br />
#2. Siebel is also listed as a leader in many of the elements in these assessments that Salesforce highlighted. <br />
#3. Also should note that Siebel provides On-Premise solutions where Salesforce does not. Gartner reported last year that less than 50% of customers have deployed in the cloud - what are those customers using?<br />
#4. Siebel has thousands of customers and estimated millions of users.<br />
#5. Siebel was also reported by Michael Maoz (Gartner) to be the only viable/proven option for large contact centers.<br />
<br />
<strong><em>SFDC Supporter: Siebel CRM does not have a platform--customers need to procure a 3rd party platform for customizations and partners must build their own platforms.</em></strong><br />
#1. Siebel provides out of the box functionality for the following sample of solutions: Customer Master, Marketing/Loyalty, Sales, CPQ/Commerce and Service/Field Service.<br />
#2. In addition, Siebel supports 20+ industries from the same solutions. All of these capabilities are delivered with native administration and extensibility through a common platform. By comparison, Salesforce does not provide the functional footprint of Siebel.<br />
<br />
<strong><em>SFDC Supporter: The challenge for customers is none of the Oracle products work well together--and they certainly don’t work with Siebel. They have different UIs (some built in Oracle Java, others Microsoft .Net, others force.com), different customer models, different deployment models (cloud vs On Premise), and different customization tools. With Oracle’s announcement that Siebel has been relegated to controlled availability, there will be no further investment in integrating these products with Siebel.</em></strong><br />
#1. Siebel does not require the solutions mentioned to deliver business benefit to customers.<br />
#2. Customers choosing to augment Siebel with these acquisitions will find a number of pre-built capabilities to support integration.<br />
#3. There is a roadmap of integrations planned into the future to support existing Siebel customers and their desire to augment Siebel with additional functionality provided by newly acquired solutions.<br />
#4. Salesforce used to praise the simplicity of cloud applications by claiming that customers did not have to worry about technology platforms. Since when has a vendor of cloud applications become so focused on customer in underlying technology platforms? Perhaps since Gartner called them out for having an inordinately complicated mishmash of technology platforms under their applications.<br />
<br />
<b>Salesforce portfolio Vs Oracle CRM portfolio.</b> Oracle offers a CX suite to customers which provides a number of capabilities that allows them to stage meaningful and memorable experiences for their customers. Oracle Siebel is a core part of this CX suite and it is surrounded by a comprehensive portfolio of widely-used applications. CX is a specialty area where Oracle has synergistic solutions for commerce, sales & marketing, service & support, social, and insight. Oracle Siebel occupies an important place in this our CX product strategy. Thus, it is wrong to think that Siebel is going to disappear overnight. Consequently, various Oracle CX applications are integrated so that customers can amplify the business benefits that they can derive from the Oracle CX suite as a whole. As an example, Oracle Siebel is integrated with Oracle Social Relationship Management, Oracle Knowledge, and Oracle Policy Automation. Simply put, Salesforce plays a musical chairs version of buzzword bingo while Oracle delivers customer experience solutions. <br />
<br />
<b>Salesforce does not offer an enterprise-class service automation platform</b>. Despite being the best positioned product in the Gartner Magic Quadrant for Customer Engagement Center 2014 report (<a href="http://www.gartner.com/reprints/oracle?id=1-1TEY8V2&ct=140424&st=sb">here</a>), significant product cautions have been included for Salesforce Service Cloud. These include, <span style="background-color: yellow;">"<i>As clients build out more-complex CEC capabilities, they discover maintenance complexities that were not apparent when the installations were simpler...</i>", "<i>Salesforce support does not demonstrate sufficient depth or consistency yet to deal with a global set of complex customer service environments in a timely manner</i>", "<i>References relate that product pricing for complex customer service environments is not as transparent as the published guidelines suggest</i>", "<i>The vendor is only at the beginning of addressing the needs of large, complex, retail, B2C contact centers...</i>"</span>, and <span style="background-color: yellow;">"</span><i><span style="background-color: yellow;">The company has limited Asian, South American or Eastern European presence in larger-scale (more than 200 seats) CECs</span>.</i>" This indicates that while Salesforce may be able to perform well in a subset of the business processes related to service automation they clearly do not deliver business processes across the full spectrum of service & support areas. In contrast, Oracle Siebel has proven itself, across geographies and industries, as a massively scalable platform that powers game changing service engagements on a daily basis. <br />
<br />
<b>Salesforce AppExchange model is fundamentally flawed.</b> The AppExchange model is often positioned as the solution to the functional gaps and missing capabilities in Salesforce. Examples, of this, in the case of Service Cloud, are apps for customer surveys, agent co-browsing, click-to-call, and virtual agent. Customers should beware of using AppExchange apps to compensate for lack of primary and/or foundational functionality in the base application. There are two main reasons for this which are (1) transaction costs and (2) integration risks. First of all, third party apps are sold by different vendors and the customer has to run as many procurement cycles as the number of apps that they need to use. These costs of scoping, screening, selecting, and sourcing various third party apps can be quite high as they are offered by large vendors as well as independent developers. The customer has to realize that they are potentially not dealing with a reputed software firm but rather with an unknown and unproven software developers. Secondly, while each third party app is certified for integration with Salesforce it is not necessarily certified for integration with all the other third party apps that a customer has sourced. This means that if multiple third party apps do not integrate properly with each other then the customer needs to fix this problem which results in costs. If the customer wants to do some due diligence upfront to confirm that their third party apps will work together nicely then that will lead to a cumbersome selection process. For this reason, it is worth pointing out that the list of apps on AppExchange should not be regarded as a big range of choices as dependencies and compatibilities between the apps will determine those that can viably cooperate. Oracle's App Marketplace is a key initiative however the apps available on it are not meant as substitutes or fillers for primary and/or foundational functionality in the base application. <br />
<br />
<b>S</b><b>alesforce confuses industry content with industry selling.</b> Despite the fanfare that has surrounded their “industry strategy”— Salesforce hasn’t failed to underwhelm. Instead of revealing a comprehensive portfolio of pre-built industry content within their applications Salesforce has pitched an industry sales model in its place. Regrettably for Salesforce they launched this misinformation campaign against an Oracle solution (i.e., Siebel) that has led the CRM space for almost two decades with its out-of-the-box industry content. While Salesforce paraded its “thought leaders” and “industry shapers”— it did not divulge when or how it will deliver pre-built industry content to its CRM customers. It merely described a sales structure and go-to-market plan geared around vertical messaging. To be fair, they also included a navigational taxonomy on their AppExchange that allows a user to browse third-party apps by industry. Indeed, their work to date, in this area, has been to deliver a framework and a demo, but not industry-specific application content. This forces customers to take the framework that is given to them and trust that they can create an industry solution on their own. Customers have to build data/schema, policies, common flows and UI to represent industry content by themselves or via consultants. Their offering comes nowhere near the out-of-the-box industry business content that is delivered with Oracle Siebel. Moreover, the value potential of this business content is amplified by the industry-specific business processes and business rules supported by Siebel. So, what Oracle Siebel provides to a customer helps that customer to shorten their time to value, gain business certainty, and benefit from context-relevant intellectual property. This frees them up our customers to focus their resources on their core business activities of innovating, competing, and winning. By contrast, Salesforce gives its customers flashy web-pages, vapourware demos, animated videos, and misinformation campaigns.<br />
<br />
So, my verdict, if you are a small scale company without any existing back end systems like billing, invoicing, logistics etc. then Oracle CX or SFDC could be a quick winner – very easy to setup and start the ball rolling. Oracle CX or SFDC struggles when it comes to integrating with your existing enterprises – as there is no robust integration layer in SFDC – you may have to invest heavily to get Oracle CX or SFDC integrated with your existing systems. But, if you are a enterprise organization having complex systems supporting your operations then Siebel would be your solution as it sits next to them and exposes all capabilities to integrate neatly with your existing architecture. SFDC also not cheap! You also need to understand the overall cost associated with both the products on a long run – read this interesting article to get a bit of insight - <strong><u><a href="http://searchoracle.techtarget.com/feature/Oracle-Siebel-vs-Salesforce-faceoff-Siebel-is-more-versatile" target="_blank">Siebel vs. Salesforce.com on cost</a></u></strong><br />
<strong><br /></strong>
I was bit off the track; will resume with my Open UI discussions shortly ;)<br />
Shiv<br />
<br />Shttp://www.blogger.com/profile/13636876457402555607noreply@blogger.com1tag:blogger.com,1999:blog-2548259877820684769.post-41330639389592452542014-07-10T11:02:00.001+01:002014-07-10T16:37:10.278+01:00Open UI Customization - Part 3–Themes explained!<br />
The traditional Siebel HI comes with monotonous look and feel which is blue colour themed. With Open UI, sky is the limit for your themes. As detailed in my pervious blog, <a href="http://siebel-openui.blogspot.co.uk/2014/06/open-ui-customization-part-1-intro.html" target="_blank">Open UI Customization - Part 1 – Intro</a>, Open UI comes with below out of the box themes. Each theme refers to set of JavaScript and CSS files which provide different look and feel to your application.<br />
You can change the theme by navigating to Tools -->User Preferences --> Behavior and select values from drop-down for "Navigation Control" and "Theme" fields<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDmvPuX3PJkHmjI5lKidwZZvc0HP9Tl7lSOWPHebyucYxJOsuwUbTkfskgA7wPWIvgQ90q7XrLmANrwncre3UUEmVGQ_Kcz6LZGJ7vyXD1_aIuavQ52_p7jprq4VHQm4KN9r_OfW7YR9Wx/s1600-h/image%25255B4%25255D.png" style="margin-left: 1em; margin-right: 1em;"><img alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK5zL8dbw1WlmDeXUx34tFrdmOzQhdl2QZTkgaGB3T9IYL1hlXBApUlr1Vz0fejQSkRImNCQ_g9hFmKZRXsERwZIEPAS1BY7okW7w9yYYUy7xaka4y88-AiULd2n5db72-gmxlDgdVkUJb/?imgmax=800" height="300" style="display: block; float: none; margin-left: auto; margin-right: auto;" title="image" width="419" /></a></div>
<br />
Theme 1: Tab - Gray Tab (similar to Siebel HI - Gray colour theme). This is the default theme that Open UI renders.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvUvlk8p2ftIvpUHICsrGnva9HiqFwavcV8GVLsSwkg6sRbklDsBBo61PyCqzBd-wl94iLYOAgIwOPXM5agEj_BtuIU14RlorW5MGSbHZCMXTMiX8bxzNTrjSE1TqbjOFwttTLBaoARXMP/s1600/Gray+Tab.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvUvlk8p2ftIvpUHICsrGnva9HiqFwavcV8GVLsSwkg6sRbklDsBBo61PyCqzBd-wl94iLYOAgIwOPXM5agEj_BtuIU14RlorW5MGSbHZCMXTMiX8bxzNTrjSE1TqbjOFwttTLBaoARXMP/s1600/Gray+Tab.jpg" height="280" width="520" /></a></div>
<br />
Theme 2: Tab - Tangerine (similar to Siebel Hi - Tangerine colour theme) <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6bTuCfsddHqkjkoDHNEWrOIJ7pEN_2VvMIOUdtoae_No4ltexJ9J1D5sSzs0dvq57d_K89HJu_aKTkEUVQlThL9s7mxMA5EloXna8aDYqrr-bM_H6eAXn-9JqIMr_KupcdLSP8oRcFqHi/s1600/Tree+-+Gray+Accordion.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6bTuCfsddHqkjkoDHNEWrOIJ7pEN_2VvMIOUdtoae_No4ltexJ9J1D5sSzs0dvq57d_K89HJu_aKTkEUVQlThL9s7mxMA5EloXna8aDYqrr-bM_H6eAXn-9JqIMr_KupcdLSP8oRcFqHi/s1600/Tree+-+Gray+Accordion.jpg" height="280" width="520" /></a></div>
<br />
Theme 3: Tree - Gray Accordion (Screen Tabs in Tree structure - Gray colour theme) <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfeuwOMSNngLBictFafp44IX-ijaWg4ahugoYWmaEONctgYereI-VFh3IGjiYXd4QnG1fkFKo5p4p8AZ2Y_43zl6zMikX9pwCc2UPvzG1h01WqHp-xMJiTiVZ17qcgOIQ3N8ks_cLKoMvb/s1600/Tab+-+Tangerine.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfeuwOMSNngLBictFafp44IX-ijaWg4ahugoYWmaEONctgYereI-VFh3IGjiYXd4QnG1fkFKo5p4p8AZ2Y_43zl6zMikX9pwCc2UPvzG1h01WqHp-xMJiTiVZ17qcgOIQ3N8ks_cLKoMvb/s1600/Tab+-+Tangerine.jpg" height="280" width="520" /></a></div>
<br />
Theme 4: Tree - Tangerine Accordion (Screen Tabs in Tree structure - Tangerine colour theme)<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiV3rCCpBbmuSbMKd-1MckWdjOH0k0ocHgxoQA1y99OQxqZobNQUgPObGnJeMO_J6thO9E2UKXZgWb4prDYp_Upbbqjzq-pjXFTer4hhLR2dGmAjzbEPMk09htrtWrrjvgzoiuY9fdEnFc_/s1600/Tree+-+Tangerine.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiV3rCCpBbmuSbMKd-1MckWdjOH0k0ocHgxoQA1y99OQxqZobNQUgPObGnJeMO_J6thO9E2UKXZgWb4prDYp_Upbbqjzq-pjXFTer4hhLR2dGmAjzbEPMk09htrtWrrjvgzoiuY9fdEnFc_/s1600/Tree+-+Tangerine.jpg" height="280" width="520" /></a></div>
<b> </b><b></b><br />
<b><b><br /></b></b>
<b><b><br /></b></b>
<b><b>So, when you pick a specific theme and log into the application, what Open UI does to render that theme?</b></b><br />
<br />
<a name='more'></a><ul>
<li>All out-of-the-box theme details are stored in \PUBLIC\enu\FILES\<Siebel_Build>\SCRIPTS\siebel\theme.js </li>
<li>If you open the \siebel\theme.js file and observe the code. Let’s take example of GRAY_TAB theme (Tools -->User Preferences –> Behavior and select values from drop-down for "Navigation Control = Tab and "Theme" = Gray Tab <blockquote>
<span style="color: #004080; font-size: x-small;"><em>SiebelApp.ThemeManager.addTheme("GRAY_TAB", {<br /> css: {<br /> sb_theme: "files/theme-base.css",<br /> sc_theme: "files/theme-gray.css",<br /> sn_theme: "files/theme-nav-tab.css",<br /> sca_them: "files/theme-calendar.css",<br /> sd_theme: IE8inc<br /> },<br /> objList: []<br />});</em></span></blockquote>
</li>
</ul>
<blockquote>
Below table describes the sequence that Siebel Open UI uses to load Ids and cascading style sheet files when it renders the client on a desktop with GRAY_TAB theme. You can see different Ids and their usage below.</blockquote>
<ul> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjJt1Pu1C0s8RfJw-g_hnD2gfjr0WsgpWCF2IIFYhuQl-gAnfrPmg8x49c-tMUv9v1pw543aCaspkcjlQIq2Z78PqmR4OR3L9q1yKFFYBRhmSh-43S-sfB4h_qKGL5gyY2zBRisgHHivAM/s1600-h/image%25255B9%25255D.png"><span style="color: #222222;"></span><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqIp8-ZD22acygdEe39v44AMN3SB7PBFdHvWZXWzCBCERRp_FZUbyQIBPajL1jhmF2BBqD8h7Q3A_afwXQ6NoAtBeWnyUJ8dOOOHxWoe_RNrgt1Lu9lkrecMWBpY3sBKsfF21W_GdvJz17/?imgmax=800" height="232" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="483" /></a><br />You can see above, there are three different Ids controlling the look and feel:<br />
<ul>
<li>sb_theme – controlling the page layout </li>
<li>sc_theme – controlling the color schemes and the style</li>
<li>sn_theme - controlling how tab navigation - Tabbed Vs Tree or your custom</li>
</ul>
<li>So, when user picks Tab navigation and Gray theme then, open UI refers to <br />\siebel\theme.js and loads all the .css files in the order specified under section: <span style="color: #004080;"><em>SiebelApp.ThemeManager.addTheme("GRAY_TAB")</em></span> </li>
<li><em><span style="color: #004080; font-size: x-small;"></span></em>These css files will dictate the UI layout and colors displayed. </li>
</ul>
<strong>Where all your customizations should go?</strong><br />
<blockquote>
<strong>custom swt files: (web template files)</strong><br />
<ul>
<li>All your custom swt files should go under: <span style="color: #004080;"><em>\siebsrvr\WEBTEMPL\OUIWEBTEMPL\custom</em></span> </li>
<li>It is not advisable to modify vanilla swt files. But, If you need to modify the vanilla swt files, you need to copy them from <span style="color: #004080;"><em>\siebsrvr\WEBTEMPL\OUIWEBTEMPL </em></span>to <span style="color: #004080;"><em>\siebsrvr\WEBTEMPL\OUIWEBTEMPL\custom</em></span> and modify there. In such cases, don’t remove the vanilla swt from it’s original place. </li>
<li>When your applet/view refer to this web template, </li>
<li>Open UI will look <ul>
<li>first under <span style="color: #004080;"><em>\siebsrvr\WEBTEMPL\OUIWEBTEMPL\custom. </em></span> </li>
<li>If not found then, it looks under <span style="color: #004080;"><em>\siebsrvr\WEBTEMPL\OUIWEBTEMPL </em></span> </li>
<li>If not found then, it looks under <span style="color: #004080;"><em>\siebsrvr\WEBTEMPL\custom</em></span> </li>
<li>If not found then, it looks under <span style="color: #004080;"><em>\siebsrvr\WEBTEMPL\</em></span></li>
</ul>
</li>
</ul>
<strong>custom .js files:</strong><br />
<ul>
<li>All your custom js files should go on web server or on your client: <em><span style="color: #004080;">\PUBLIC\enu\FILES\<Siebel_Build>\SCRIPTS\siebel\custom\ </span></em> </li>
<li>If you need to modify the vanilla js files, you need to copy them from \siebel\ to \siebel\custom\ and modify there.</li>
</ul>
<strong>custom .css files:</strong><br />
<ul>
<li>All your custom css files should go on web server or on your client: <em><span style="color: #004080;">\PUBLIC\enu\FILES\custom\ </span></em> </li>
<li>If you need to modify the vanilla css files, you need to copy them from \siebel\ to \siebel\custom\ and modify there.</li>
</ul>
</blockquote>
<strong>Now, let’s try adding our own color theme – call it - RED_TAB</strong><br />
(I picked this ugly color just for demo purposes – you can really do amazing things!)<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFPN1iP9CeOLDesQQvibbTcRu-KFKhNrkQA3TMDX5cobYIaMxX9gsA8GJW9Htw0MJ0rm1uqibYKkrwdTg8q8vy-ZG0qodkzGaMS04I1FP3OGEba4wgTM4zKGYPvl-SbedI6tv0Mqrb4jVe/s1600-h/image%25255B17%25255D.png" style="margin-left: 1em; margin-right: 1em;"><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhicPApJqbunK_-TWPGlNUgdOacXlUKIMqXGWCDHho5wnH37CqoazKu_vDo4ixzmMqGuYoSSCQrFkpyhen0z0i0FBf5Y8AoFZ8Uz6v9iH-fUm_sDjzJkKN6dsVc1YZqOOucCub0v7xMiire/?imgmax=800" height="332" style="background-image: none; border-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="533" /></a></div>
<br />
<strong></strong><u>Step 1: create a new custom <em><span style="color: #004080;">theme-red-tab.css</span></em></u> file and store under \PUBLIC\enu\FILES\custom\ on your web server. You can download my copy from here: <em><span style="color: #004080;"><a href="https://drive.google.com/file/d/0B0IV_ky_Dy3fWmN5dGRNZ1hWZ1U/edit?usp=sharing" target="_blank">theme-red-tab.css</a></span></em><br />
<div align="left">
<pre><u>Step 2: Register you theme in theme.js</u>: Add an entry in “theme.js” file in <em><span style="color: #004080;">\public\enu\<Siebel_Build>\scripts\siebel\custom</span></em> </pre>
</div>
<br />
NOTE: you are not copying \siebel\theme.js into \siebel\custom\ in this case. It’s already there provided by Oracle. If not, then create a new theme.js file and paste below code.<br />
<pre><em><span style="color: #004080;">SiebelApp.ThemeManager.addTheme(
"RED_TAB", {
css : {
sb_theme : "files/theme-base.css",
sc_theme : "files/theme-gray.css",
sn_theme : "files/theme-nav-tab.css",
sca_theme : "files/theme-calendar.css",
<strong>sce_theme: "files/custom/theme-red-tab.css", <span style="color: red;">//You are adding under sce_theme as you are playing around with only the colors! (See above table about various Ids)</span></strong></span></em><em><span style="color: #004080;">
sd_theme : IE8inc
},
objList : []
});</span></em></pre>
<br />
<u>Step 3: Add the a new LOV for your theme</u>: Navigate to Administration – Data > List of Values, add below LOV and do clear cache<br />
Type: OUI_THEME_SELECTION<br />
Display Value: Red Tab<br />
Language Independent Code: RED_TAB<br />
Parent LIC: NAVIGATION_TAB<br />
Order: 3<br />
<br />
<u>Step 4: Change your user preference to refer to new Red Tab theme:</u> Go to Tools > User Preferences > Behavior and set the following:<br />
Navigation Control: Tab<br />
Theme: Red Tab <br />
<u>Step 5: Register your /custom/theme.js in Manifest Files Admin (if not already done)</u>: Go to Administration - Application > Manifest Files and add a new entry with the following value:<br />
Name: siebel/custom/theme.js<br />
<br />
<u>Step 6: Register your new theme at the application level in Manifest Admin (if not already done)</u> Go to Administration Application > Manifest Administration and add the following :<br />
In UI Objects:<br />
Type: Application<br />
Usage Type: Common<br />
Name: PLATFORM DEPENDENT<br />
In Object Expression:<br />
Expression: Desktop<br />
Level : 1<br />
In Files:<br />
Name: siebel/custom/theme.js<br />
<br />
<u>Step 7: Test it!:</u> Clear your browser cache. Restart your servers; if using dedicated client just log out and log back in. See the results!<br />
<br />
<strong>Tip time!: </strong><br />
<br />
It’s all okay but how do you know which object class/id to which the CSS needs to be applied? It’s really easy! How? You need to start loving google chrome browser! This is how I did above modifications. If you open and see my <span style="color: #004080;"><a href="https://drive.google.com/file/d/0B0IV_ky_Dy3fWmN5dGRNZ1hWZ1U/edit?usp=sharing" target="_blank"><em>theme-red-tab.css</em></a></span> file and pick the first section – it looks something like below: <br />
<br />
<em><span style="color: #004080;"><span style="color: red;">#s_sctrl #s_sctrl_tabScreen.ui-tabs ul.ui-tabs-nav li a</span> {<br /> color: white;<br /> …<br />}</span></em><br />
<br />
In code I am referring to all <u>screen tabs</u> and setting background color. To arrive at above CSS patch, all you need to do is, right click on one of the screen tabs on your client in chrome browser and click on “Inspect Element”. You can see below my <a> tag is highlighted and on the right side you see all the .css files referred and influenced. In this screenshot, you are seeing our custom <span style="color: #004080;"><a href="https://drive.google.com/file/d/0B0IV_ky_Dy3fWmN5dGRNZ1hWZ1U/edit?usp=sharing" target="_blank"><em>theme-red-tab.css</em></a></span> is referred. If you had not done this custom theme, then you should be seeing the default: theme-gray.css here and it’s config. So all you need to do is, copy the element details from the right hand side and tailor CSS as per your need. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgP84pIalDiNsLaEFyisj36CgqrKd1ZqvdeCLlB-19tg6Whsiwwx8YXHyD83V1cAeG57iPKeuB0ZV-_tPk7CHa5EwmAQddExRLfgcfW_VjdXzda_hKtbgRly045RuDpSbEqTRVXdpOtMx_/s1600-h/image%25255B31%25255D.png" style="margin-left: 1em; margin-right: 1em;"><img alt="image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio9tdq9xTU9KOKc-LS1AMz51wiyP2c8LI9cyHKTlE9ChAFkFwhDS-WiOivOzMup-IZdMV0Wf6l9U3XUtkLFdTu2Y1NR2X4Bg_f8_ojOH-I-qBQCEJ6WYtofRzhBL5U__C6exT-g03RIyiI/?imgmax=800" height="365" style="background-image: none; border: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="515" /></a></div>
<br />
<br />
<br />
What I have shown is just the tip of the iceberg. Above example was only to tailor the basic color theme; you can do so much here! you can tailor the whole layout – make it look like facebook! or like salesforce? <br />
<br />
Hope you are enjoying reading my blogs. If you are liking them, I would really appreciate your likes below. Please provide your valuable comments so as to keep myself motivated to keep blogging!<br />
<br />
Have a good day!<br />
<br />
Shiv<br />
<br />
<br />
<br />Shttp://www.blogger.com/profile/13636876457402555607noreply@blogger.com1tag:blogger.com,1999:blog-2548259877820684769.post-49335523389685856592014-07-08T16:59:00.001+01:002014-07-08T16:59:41.564+01:00Open UI Customization - Part 2 - understanding Manifest<p>If you are new to Open UI and haven’t read my previous previous blog:<a href="http://siebel-openui.blogspot.co.uk/2014/06/open-ui-customization-part-1-intro.html" target="_blank">Open UI Customization - Part 1 – Intro</a>, please do so. In that I have discussed, how Open UI differs from Siebel High Interactivity framework and introduction to PM and PR – which will be discussed at length here. </p> <p>With Open UI framework, you can control the business logic and UI at the client browser side for below objects: <ul> <li>Views <li>Applets <li>Screen Tabs <li>Tool bar <li>Application Menu</li></ul> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiX4kfWqGLQwTvcjQpU_ebo0DUtuzYybC74mGRTYcr-ARtjjdU5rxM7-aER6CfPoX9yCghFlE-bM0fHB5KuQAlo-E-OJWUO_A_wKrBJ7yDl6xyB2Ddxn_8WlbXwctB4PKw4WbpWyc1VZYtl/s1600-h/PM-PR%25255B19%25255D.jpg"><img style="display: block; float: none; margin-left: auto; margin-right: auto" title="PM-PR" alt="PM-PR" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsfwHxLXYOQKxsqGw3DjH9c5iwTNuzWGnF3SVVto3-S3DD5cKbCcYmgGajFU0juoehVF5fJc4mLPK6iQIYbCqcqW37MVbt8ELdbG-Ff9BE8l6k9GkRM6borglsSLpNbbZVYa-phNSjHygD/?imgmax=800" width="427" height="396"></a></p> <p>Siebel Open UI uses the presentation model (PM) and the physical renderer (PR) to separate the logical user interface from the rendering. This configuration allows you to modify the user interface without having to modify the logical structure and behaviour of the client.</p> <p>For example, you can modify a PM to add a list column in a list applet so that it iterates through list columns and renders them without modifying the PM. This column can reside on the client even if the Siebel Server contains no representation of it. Similarly, you can modify the PR to use a third-party, grid-to-carousel control to display a list applet as a carousel without modifying a PM.</p> <p><strong>Manifest Administration</strong></p> <p>Before we start building our own PM and PR js files to customize the look and feel of an applet/view etc, let’s first understand how Open UI identifies the required js files to render a specific UI element – applet, view, screen.</p> <p>A <strong>manifest</strong> is a set of instructions that Siebel Open UI uses to identify the JavaScript files that it must download from the Siebel Server to the client so that it can render screens, views, and applets. </p> <p>In order to administrator Manifest, from 8.1.1.11 onwards, Oracle has provided dedicated admin screens. The model is completely different in prior 8.1.1.9-8.1.1.10 releases – which I won’t be covering here. </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0gkYd4pzBt759zOUJiOJHkrJ0FprWOsYJqMG7ht7d2FEVetAPq6Er_bSrhTkmo5kQ3deSWT3yP20QVcJkfBuugZCn0WgamXisOl8RJwMxAwcwYE3AR4iqswL5Ega18ZPE-BI935eaQfqk/s1600-h/image%25255B15%25255D.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjINSJXU5V7ekCz4bZVHaqsM5MHkUoVgW7xtHzD-U6OP4p203D_pxCoIgIHoBUcK_TGpiyKNGCf_EqQzfK4gJiU-qFx7MZZBY8VEqWjXPznV1e_YQcxF4nhAXNeb86qzxLedyVeVc71hNbh/?imgmax=800" width="445" height="285"></a></p> <p><strong></strong></p> <a name='more'></a> <p><strong>Step 1: register custom js files</strong></p> <p>Navigate to Sitemap –> Administration – Application –> Manifest Files</p> <p>Click New to create a new record and provide the path of your custom .js file as shown below.</p> <p><a href="http://lh4.ggpht.com/-5OMeTmv5ssw/U7wVRRj-rOI/AAAAAAAAOuw/fUDQfn08Xcs/s1600-h/image%25255B19%25255D.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ5ejmTzWwk09hMhwsTEkCa1GThQ1IRaZTfFXOCkNESb1-JpVTJXfmJ9AjrpK5f9lquj_jmPwrG4bv-DxGhE47-DBqsnI-mby3Fjcih92nTP4gvO22gbG37JkpTab57GiTrlC0kBEEWmX1/?imgmax=800" width="448" height="298"></a></p> <p><strong>Step 2: Associate custom js to PM and PR of your applet/view/application etc</strong></p> <p>Navigate to Sitemap –> Administration – Application –> Manifest Administration. While you are here at Manifest Administration, observe how the vanilla configuration looks like. </p> <p>Search for <u>Type: Application</u>. You should find two entries as shown below.</p> <p>Name PLATFORM INDEPENDENT: The js files listed here are downloaded the device irrespective of the device and platform (windows, unix, IOS, android) etc</p> <p>Name PLATFORM DEPENDENT: The js files listed here are downloaded depending on the device and platform. </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoKCxOZknEzV5J7kFWu4IILlV2w4ITPFGxXuVGr2BEZsTA7G8MAnsmHEfyVD1C1G0tiy_AFc7gZRBKZlOvSJKpyJQCZF2SSaBv0V_dVkpAOtBYXImfhXT5hylk1eM0WxOjkiYflhZqBg_E/s1600-h/image%25255B48%25255D.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj24hsFHz9TfVjvOYgejN7wk3WvpXESYL2TS_erU2_GQ3V-_Avh-9OMFbfRQSsZOcTA5auPLXllMmnUpSd9KuxfgTVKUOiKQvrWFgulcGJsOKsYPMlLJndDoiInAqFP0iShpnsD_WiY48Qc/?imgmax=800" width="471" height="266"></a></p> <p><u>Object Expression applet:</u> Here you define Expressions to determine the type of device/platform accessing Open UI and depending on this, all the js files listed under <u>Files Applet</u> will be sent to client browser. </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1O-qH-YmvnTc6KtJPYJMYtUBHO00GYUgYWxj65xa0CSUGLKI84WikhdHbFGLWn9PDZiQ1DSrW12Q3MB9qmiVwE86NG1VCDMvmKH6_8xSXd4TKe925-kI-0za_qUVkHrBlt2WhYK0AnY50/s1600-h/image%25255B43%25255D.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMjjaSvKnm0KH92kG_bukmAO0NPaUklsyeFCB9amCftNE0nOYy4yVhAwQi_yhIuomuZB4wnJrLmmTzz9bM04IeeLcBPgpb6hd-GPkNNAWHr1U0xaGb9RMK-Avw3irzh2iSykN35Gd_9hB7/?imgmax=800" width="19" height="21"></a> A group expression is a type of expression that Siebel Open UI uses to arrange sub-expressions into a group in the Object Expression list. </p> <p>For example, “Siebel ePharma Mobile Offline Phone” group uses the AND operator to group three expressions into the following group expression: ”Siebel ePharma Mobile” AND Phone AND Offline</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibtxZMpo97A0MfkEvV7sIOMa2NCoZ-AVYhPhcjHfILIJ7_qv-LTj0U9yJFx5zVDuiXZt5ZcUSF_O676CQEqFaSIFAvyDLjaX2IFWwVShieI1M5Zy09MC962-hk4SKNQZKMfhmZ4nGsI8Rd/s1600-h/image%25255B53%25255D.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMemjYMCqfYTbz_18x2yHPkSDysjBvKU6XG0tTbyKboCD18p7cW7jBPCzsP9J40PbVoDdNIp7Bb5QxSX_khIf017pjefPHECNGoAuOTTtEOoVt0eEn-Wx-xaPAWof3NO6s0EjNfHU3HG9q/?imgmax=800" width="19" height="18"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE4FBy-e8YHL7Osck6-El1j0ugN4ET_9DdT9XynOIvpsaOi-MeuLPkAEGei2w7f6kD9hqJicMy-2XDyUssBXHUB9VcwcaUI_WsPP-bhnoR4vcCQwuFVPGkCeWF8h5Gt1gEWqtBFVBzX4zs/s1600-h/image%25255B58%25255D.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8eFn4ratR40AW3ynKHTVLhiB4UYlroj6opQhR3u4GHGQzl2Q-y2va4ETVzH-t9EUDFQS-3IUcR3v1Zhpy0kaP9uiKXXv7hzju7QrXlYDnuYbKxq_hysh3Gtv5p3tnq5uMFkQArpaAEdZj/?imgmax=800" width="19" height="19"></a> Siebel Open UI uses the Level field to determine the order it uses to evaluate expressions. In the screenshot attached, it uses the following sequence:</p> <p>Evaluates the “Siebel Service Portal” group first.<br>Evaluates the “Siebel ePharma Mobile Offline Phone” group next.<br>Evaluates the “Siebel ePharma Mobile Offline Tablet” group last.</p> <p>It uses the Level field within a group to determine the order it uses to evaluate each<br>subexpression</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDrxReByqHX9g1mYNEVeROuyeqYz1nSIyJDNh-LDKGKMmkC2YyGjyKN3S1997-C5z17xGUo-jHDx8PFeSOF6p83T6WMFUo-sz3nAvzwfhHPmbfHp2aCqPggUap0afZMMo8iG3K4ozLBEcJ/s1600-h/image%25255B63%25255D.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRHkZ2dM3ClpMBrYvAOq-TXf6K3MDU9_z3tNQW4CBgOMWXBlKNEYCILvvwagL4bDWtc8wephCrYEbxxd2szvl0Ieps8HcK-8pkQOEo7wsmQlgP3ufFfHxTiMII9bFt1c5tqz4E4F62_zBs/?imgmax=800" width="19" height="19"></a>Siebel Open UI uses the Files list to identify the files it must download.</p> <p>If above seemed complicated – let’s take a simple example. Let’s say we have customized Contact Form Applet and we have below js files.</p> <div> <ul> <li>For PM - siebel/custom/ContactPModel.js <li>For PR - siebel/custom/ContactRenderer.js</li></ul></div> <p>Follow step 1 to register above js files. Now, let’s see how we register above js files to Contact Form Applet.</p> <p>To register your custom PM - ContactPModel.js file. </p> <ul> <li>Create a new record under UI Objects and pick below fields.</li> <ul> <li>Type: Applet</li> <li>Usage Type: Presentation Model</li> <li>Name: Contact Form Applet <your applet name here></li></ul> <li>Now, add Object Expression. Since, this customization is for Desktop applications only. Create a new record and add below fields.</li> <ul> <li>Expression: Pick Desktop</li> <li>Level: 1</li></ul> <li>Now, associate your ContactPModel.js to above Object Expression. When all done, it should look like below.</li></ul> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjW66tso6KgxlJ8DBIltycAaMdViVUeqBNeLolYwtHqFa5lO824Ieu2YMuYi6KcZz1TBChnHwvsVzQ8s4m8Xm3qpd9ljgX7g9ucJ2ZMkkJ_NSwr-sOctIeeuCV1RP8MXb7d_wwoMnpjXNRz/s1600-h/image%25255B79%25255D.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjznEeZbFZyZD1GB-gRk8xMMM4RzqeZfGzuD10LeR7-Nhr7gQPFQsRPlZgVY9tCgZusL_BCtUicUpb1pygsUwxNCoAM2wIB272KWBBIe0qpjb_jX9k2j2G6RCgSs5JjSwPFjy4ez3nJeSj6/?imgmax=800" width="480" height="225"></a></p> <ul> <li>For above steps to register your ContactRenderer.js. Only different is the Usage Type in this case will be “Physical Renderer”. It should look something like below,</li></ul> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipsrzs5A4s05sF87AIWspjrYWsMifI4mPxvMeMLDj6yOKMjSfjdZwM8hO-Zvb-XhxTZKN3vrpqqbq6Ak9ei7IjZOSSDkSqyzuGrSLWlGoUgTCh9XrUu75q_6RlN8WbYJtlt0cHpkExHjhL/s1600-h/image%25255B78%25255D.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmtJqpe_QseVXjmxXGaz11VKZ4kzi_lo0kOH4c1kEY6K11DH0Mb74IekNTt2ZLX2cEMsXcPekOZQmgFEZhByxjJGaRyrCJKCAXse8_MbTp01DWs6Po3fhO_WOspqw1ufVMVrfdPdbBDfK5/?imgmax=800" width="488" height="209"></a></p> <p><strong>Now let’s see the end-to-end journey as to how Siebel Open UI Renders a View or Applet: </strong>Imagine, you have customized PM and PR for a Contact Form Applet and you have those js files registered under Manifest administration as explained above. Now, user attempts to navigates to the Contact Form applet and below actions would happen. </p> <p><a href="http://docs.oracle.com/cd/E14004_01/books/config_open_ui/architecture4.html" target="_blank"><img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://docs.oracle.com/cd/E14004_01/books/config_open_ui/images/javascript_and_css_file_loading.png" width="437" height="391"></a></p> <ol> <li>Siebel Open UI creates the view that displays this applet. This creation is similar to how Siebel CRM creates a view in high-interactivity mode. <li><a name="wp1250279"></a>Siebel Open UI references the manifest to identify the files it must download to the client <li><a name="wp1234566"></a>Siebel Open UI downloads the JavaScript files it identified in Step 3 to the client. <li><a name="wp1234567"></a>PM formats the data and applies application logic. <li><a name="wp1240918"></a>PR registers itself with a corresponding object. A presentation model also does this registration. <li><a name="wp1234571"></a>Siebel Open UI loads the cascading style sheets according to entries that the <strong>theme.js</strong> file contains. <li><a name="wp1234575"></a>Siebel Open UI uses PM, PR, and CSS files to render the Form Applet.</li></ol> <div id="Manifest"> <p> <p>Above are the baby steps towards understanding the end to end flow. In the next blog, I will be explaining another baby step to change the logo on your application. </p> <p>Till then, happy reading!</p> <p>Shiv</p></p></div> Shttp://www.blogger.com/profile/13636876457402555607noreply@blogger.com0tag:blogger.com,1999:blog-2548259877820684769.post-48345985492277866462014-07-03T10:15:00.001+01:002014-07-03T15:46:01.251+01:00Open UI Customization - useful tools needed<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: Verdana, sans-serif;">Before we crack on understanding how to customize Open UI, I thought of sharing some useful tools that I use. As you might have realized by now that Open UI is all about Javascripts, Jqueries and CSS. You need really good editors/tools to manage your customization.</span><br />
<div>
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<b><span style="font-family: Verdana, sans-serif;">1) Version Control tool:</span></b></div>
<div>
<span style="font-family: Verdana, sans-serif;">Since, you will be updating your Open UI related files quite often, it is essential that you have a good version control tool. There are plenty of good free tools available - but I prefer open source tool: <a href="http://git-scm.com/" target="_blank">git</a>.</span></div>
<div>
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="clear: left; float: left; font-family: Verdana, sans-serif; margin-bottom: 1em; margin-right: 1em;"><a href="http://git-scm.com/" target="_blank"><img border="0" src="http://bacsoftwareconsulting.com/blog/wp-content/uploads/2012/06/git.jpg" height="334" width="520" /></a></span></div>
<div>
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<br />
<b><span style="font-family: Verdana, sans-serif;">2) Editors to edit your JS, CSS, HTML files:</span></b><br />
<span style="font-family: Verdana, sans-serif;">Any text editor like below would do. But I don't like both ;) See at the bottom which tool I love to use.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><a href="http://notepad-plus-plus.org/" target="_blank">Notepad++</a></span><br />
<span style="font-family: Verdana, sans-serif;"><a href="https://www.textpad.com/" target="_blank">Textpad</a></span><br />
<br />
<a name='more'></a><br /><br />
<b><span style="font-family: Verdana, sans-serif;">3) You need the best browser to test your changes:</span></b><br />
<span style="font-family: Verdana, sans-serif;">I prefer Google chrome - as it comes with plenty of uagent switchers. uagent switcher is especially useful if you want to test your Open UI and Open UI mobile customizations on various browsers and devices. </span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">I use <a href="https://chrome.google.com/webstore/detail/user-agent-switcher/lkmofgnohbedopheiphabfhfjgkhfcgf" target="_blank">User-Agent Switcher</a> (you need chrome to access this link). Using this, </span><span style="font-family: Verdana, sans-serif;">you can make your chrome act like any other browser - IE, Safari or Firefox OR as a tablet - iOS based device, android based device or windows phone etc. </span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://chrome.google.com/webstore/detail/user-agent-switcher/lkmofgnohbedopheiphabfhfjgkhfcgf" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;" target="_blank"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDK9pKHzVSo57rfhVxZWiEyhjh6ccDyCbB7qNMTZPT6P97CCA9ATorLur_9JrKTCcsEk1h0Si-yJvVmrAxdqhAf0dN2HYmcFzgZxYdnIQehjVndSGa6DTp-KIxq2Oizl58bz7_xAAqrVUO/s1600/uagent-switch.jpg" height="210" width="520" /></a></div>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<b><span style="font-family: Verdana, sans-serif;"><br /></span></b>
<span style="font-family: Verdana, sans-serif;"><br /></span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">See my browser in action showing Open UI Sales Mobile application in iPad mode:</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFI8vTdPv8r5SPX5vBP2kqsi6TGUZrj3TttydrgiEyoQVWmI9uLQD5OegONQnDTiW_gCWlFWnY6asivjkPyDKbn8Xr9iUfPkxUam2hYp9EVHe4CfYmaFLauCSPApphu6dFuFmlMLpskK9F/s1600/chrome-mobile.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFI8vTdPv8r5SPX5vBP2kqsi6TGUZrj3TttydrgiEyoQVWmI9uLQD5OegONQnDTiW_gCWlFWnY6asivjkPyDKbn8Xr9iUfPkxUam2hYp9EVHe4CfYmaFLauCSPApphu6dFuFmlMLpskK9F/s1600/chrome-mobile.jpg" height="416" width="520" /></a></div>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Finally, not a hidden secrete - <b>which tool I love the most</b>?</span><br />
<span style="font-family: Verdana, sans-serif;">I use <b><span style="color: #351c75;"><a href="http://www.microsoft.com/web/webmatrix/" target="_blank">Microsoft WebMatrix</a></span></b> - a free, lightweight, cloud-connected web development tool - it has below features</span><br />
<span style="font-family: Verdana, sans-serif;">1) <u>Very nice editor </u>- auto-fill for HTML, Javascript, Jquery and CSS files. </span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<iframe allowfullscreen="" frameborder="0" height="300" src="//www.youtube.com/embed/tiLT62iCdC4" width="532"></iframe><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">2) </span><u style="font-family: Verdana, sans-serif;">Beautiful integration with source control too</u><span style="font-family: Verdana, sans-serif;">l - GIT</span><br />
<span style="font-family: Verdana, sans-serif;">Manage your whole public/enu folder as a project. </span><span style="font-family: Verdana, sans-serif;">You can create multiple versions of the whole folder structure - can easily revert back to a previous version if something gets broken. </span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<iframe allowfullscreen="" frameborder="0" height="300" src="//www.youtube.com/embed/Q_6gYba3C1k" width="532"></iframe><br />
<br />
<span style="font-family: Verdana, sans-serif;">4) co</span><span style="font-family: Verdana, sans-serif;">mes w</span><span style="font-family: Verdana, sans-serif;">ith </span><u style="font-family: Verdana, sans-serif;">iPhone, iPad and windows phone emulator</u><span style="font-family: Verdana, sans-serif;"> - free!</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<iframe allowfullscreen="" frameborder="0" height="300" src="//www.youtube.com/embed/YnNexjeZAqY" width="532"></iframe>
<br />
<br />
<span style="font-family: Verdana, sans-serif;">So, crack on with </span><b style="font-family: Verdana, sans-serif;"><span style="color: #351c75;"><a href="http://www.microsoft.com/web/webmatrix/" target="_blank">Microsoft WebMatrix</a></span></b><span style="font-family: Verdana, sans-serif;">. Set it up, download all the required extensions. Let me know if any questions. Shortly, I will post my first Hello World! blog on Open UI customization. </span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Till then, happy days!</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Shiv</span><br />
<br />
<br />
<br /></div>
</div>
Shttp://www.blogger.com/profile/13636876457402555607noreply@blogger.com3tag:blogger.com,1999:blog-2548259877820684769.post-14039630215491678472014-06-30T17:27:00.001+01:002014-07-10T16:42:21.532+01:00Open UI Customization - Part 1 - Intro<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: Verdana, sans-serif;">So, you have decided to customize Open UI look and feel? </span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">If you haven't read my previous blogs on enabling Open UI, here are the links:</span><br />
<div class="MsoNormal" style="background: white; line-height: 21.45pt; margin-bottom: 3.75pt; mso-outline-level: 1; vertical-align: baseline;">
<u><span style="color: blue; font-family: "Tahoma","sans-serif"; font-size: 9.0pt; mso-bidi-font-size: 10.0pt; mso-bidi-font-weight: bold; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB; mso-font-kerning: 18.0pt;"><a href="http://siebel-openui.blogspot.co.uk/2014/06/enabling-siebel-open-ui-detailed.html"><span style="color: blue; font-size: 10.0pt; mso-bidi-font-size: 11.0pt;">Enabling Siebel
Open UI - detailed instructions!</span></a><o:p></o:p></span></u></div>
<br />
<div class="MsoNormal" style="background: white; line-height: 21.45pt; margin-bottom: 3.75pt; mso-outline-level: 1; vertical-align: baseline;">
<u><span style="color: blue; font-family: "Tahoma","sans-serif"; font-size: 9.0pt; mso-bidi-font-size: 10.0pt; mso-bidi-font-weight: bold; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB; mso-font-kerning: 18.0pt;"><a href="http://siebel-openui.blogspot.co.uk/2014/06/enabling-open-ui-mobile-detailed.html"><span style="color: blue; font-size: 10.0pt; mso-bidi-font-size: 11.0pt; mso-bidi-font-weight: normal;">Enabling Open UI Mobile - detailed instructions!</span></a><o:p></o:p></span></u></div>
<div>
<span style="font-family: Verdana, sans-serif;">Customizing Open UI needs completely different skill sets. If you are Siebel expert having no knowledge on web design then you are starting at level 0. First thing you need is to understand below web design technologies:</span><br />
<span style="font-family: Verdana, sans-serif;">HTML and HTML5</span><br />
<span style="font-family: Verdana, sans-serif;">CSS and CSS3</span><br />
<span style="font-family: Verdana, sans-serif;">Java Script</span><br />
<span style="font-family: Verdana, sans-serif;">JQuery Framework</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">You can refer to below very useful blogs which give some directions as to where you can learn above technologies. Ok! spend couple of weeks on above and continue here</span><br />
<h1 class="entry-title" itemprop="headline" style="background-color: white; border: 0px; font-family: tahoma, sans-serif; line-height: 28.600000381469727px; margin: 0px 0px 5px; max-width: 100%; padding: 0px 5px 0px 10px; text-shadow: rgb(189, 182, 189) 1px 1px 1px; vertical-align: baseline; word-wrap: break-word;">
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; line-height: 21.45pt; margin-bottom: 3.75pt; vertical-align: baseline;">
<span style="color: blue; font-weight: normal;"><span style="font-family: Tahoma, sans-serif; font-size: 10pt;"><a href="http://siebelunleashed.com/how-to-learn-siebel-open-ui/" target="_blank">How to learn
Siebel Open UI? –<span style="color: blue;"> </span></a></span><span style="font-family: "Tahoma","sans-serif"; font-size: 10pt;"><a href="http://siebelunleashed.com/how-to-learn-siebel-open-ui/" target="_blank"><span style="color: blue;">from siebelunleashed.com</span></a><o:p></o:p></span></span></div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; line-height: 21.45pt; margin-bottom: 3.75pt; vertical-align: baseline;">
<span style="color: blue; font-family: Tahoma, sans-serif; font-size: 10pt; font-weight: normal;"><a href="http://www.siebel-essentials.com/2014/03/time-to-learn-languages-of-web-and-good.html" target="_blank">Time to Learn
the Languages of the Web (and Good Design) </a></span><span style="color: blue; font-family: Tahoma, sans-serif; font-size: 10pt;"><a href="http://www.siebel-essentials.com/2014/03/time-to-learn-languages-of-web-and-good.html" style="font-weight: normal;" target="_blank"><span style="color: blue;">–from siebel-essentials.com</span></a><span style="color: #001ebd;"><o:p></o:p></span></span></div>
</h1>
<span style="font-family: Verdana, sans-serif;">Oracle has provided some default themes. Each theme refers to set of JavaScript and CSS files which provide different look and feel to your application.</span></div>
<div>
<span style="font-family: Verdana, sans-serif;"><br /></span><span style="font-family: Verdana, sans-serif;">Let's take a quick look at those. You can change the theme by navigating to Tools -->User Preferences --> Behavior and select values from drop-down for "Navigation Control" and "Theme" fields.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Theme 1: Tab - Gray Tab (similar to Siebel Hi - Gray colour theme)</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvUvlk8p2ftIvpUHICsrGnva9HiqFwavcV8GVLsSwkg6sRbklDsBBo61PyCqzBd-wl94iLYOAgIwOPXM5agEj_BtuIU14RlorW5MGSbHZCMXTMiX8bxzNTrjSE1TqbjOFwttTLBaoARXMP/s1600/Gray+Tab.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvUvlk8p2ftIvpUHICsrGnva9HiqFwavcV8GVLsSwkg6sRbklDsBBo61PyCqzBd-wl94iLYOAgIwOPXM5agEj_BtuIU14RlorW5MGSbHZCMXTMiX8bxzNTrjSE1TqbjOFwttTLBaoARXMP/s1600/Gray+Tab.jpg" height="280" width="520" /></a></div>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<br />
<div>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Theme 2: </span><span style="font-family: Verdana, sans-serif;">Tab - </span><span style="font-family: Verdana, sans-serif;">Tangerine </span><span style="font-family: Verdana, sans-serif;"> </span><span style="font-family: Verdana, sans-serif;">(similar to Siebel Hi - </span><span style="font-family: Verdana, sans-serif;">Tangerine </span><span style="font-family: Verdana, sans-serif;">colour theme)</span><br />
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfeuwOMSNngLBictFafp44IX-ijaWg4ahugoYWmaEONctgYereI-VFh3IGjiYXd4QnG1fkFKo5p4p8AZ2Y_43zl6zMikX9pwCc2UPvzG1h01WqHp-xMJiTiVZ17qcgOIQ3N8ks_cLKoMvb/s1600/Tab+-+Tangerine.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfeuwOMSNngLBictFafp44IX-ijaWg4ahugoYWmaEONctgYereI-VFh3IGjiYXd4QnG1fkFKo5p4p8AZ2Y_43zl6zMikX9pwCc2UPvzG1h01WqHp-xMJiTiVZ17qcgOIQ3N8ks_cLKoMvb/s1600/Tab+-+Tangerine.jpg" height="280" width="520" /></a></div>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Theme 3: Tree - Gray Accordion (Screen Tabs in Tree structure - Gray colour theme)</span></div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6bTuCfsddHqkjkoDHNEWrOIJ7pEN_2VvMIOUdtoae_No4ltexJ9J1D5sSzs0dvq57d_K89HJu_aKTkEUVQlThL9s7mxMA5EloXna8aDYqrr-bM_H6eAXn-9JqIMr_KupcdLSP8oRcFqHi/s1600/Tree+-+Gray+Accordion.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6bTuCfsddHqkjkoDHNEWrOIJ7pEN_2VvMIOUdtoae_No4ltexJ9J1D5sSzs0dvq57d_K89HJu_aKTkEUVQlThL9s7mxMA5EloXna8aDYqrr-bM_H6eAXn-9JqIMr_KupcdLSP8oRcFqHi/s1600/Tree+-+Gray+Accordion.jpg" height="280" width="520" /></a></div>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Theme 4: Tree - </span><span style="font-family: Verdana, sans-serif;">Tangerine Accordion </span><span style="font-family: Verdana, sans-serif;">(Screen Tabs in Tree structure - </span><span style="font-family: Verdana, sans-serif;">Tangerine </span><span style="font-family: Verdana, sans-serif;">colour theme)</span></div>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiV3rCCpBbmuSbMKd-1MckWdjOH0k0ocHgxoQA1y99OQxqZobNQUgPObGnJeMO_J6thO9E2UKXZgWb4prDYp_Upbbqjzq-pjXFTer4hhLR2dGmAjzbEPMk09htrtWrrjvgzoiuY9fdEnFc_/s1600/Tree+-+Tangerine.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiV3rCCpBbmuSbMKd-1MckWdjOH0k0ocHgxoQA1y99OQxqZobNQUgPObGnJeMO_J6thO9E2UKXZgWb4prDYp_Upbbqjzq-pjXFTer4hhLR2dGmAjzbEPMk09htrtWrrjvgzoiuY9fdEnFc_/s1600/Tree+-+Tangerine.jpg" height="280" width="520" /></a></div>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><b><br /></b></span><br />
<span style="font-family: Verdana, sans-serif;"><b><br /></b></span>
<span style="font-family: Verdana, sans-serif;"><b><br /></b></span>
<span style="font-family: Verdana, sans-serif;"><b><br /></b></span>
<span style="font-family: Verdana, sans-serif;"><b><br /></b></span>
<span style="font-family: Verdana, sans-serif;"><b><br /></b></span>
<span style="font-family: Verdana, sans-serif;"><b><br /></b></span>
<span style="font-family: Verdana, sans-serif;"><b><br /></b></span>
<span style="font-family: Verdana, sans-serif;"><b><br /></b></span>
<span style="font-family: Verdana, sans-serif;"><b><br /></b></span>
<span style="font-family: Verdana, sans-serif;"><b><br /></b></span>
<span style="font-family: Verdana, sans-serif;"><b><br /></b></span>
<span style="font-family: Verdana, sans-serif;"><b><br /></b></span>
<span style="font-family: Verdana, sans-serif;"><b><br /></b></span>
<span style="font-family: Verdana, sans-serif;"><br /></span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Before we start customizing the look and feel for Open UI Siebel. It is essential to understand the Open UI Architecture and how it differs from traditional Siebel High Interactive framework.</span><br />
<div>
<span style="font-family: Verdana, sans-serif;"></span><br />
<a name='more'></a><span style="font-family: Verdana, sans-serif;"><b>How High Interactive </b></span><b style="font-family: Verdana, sans-serif;">Siebel </b><span style="font-family: Verdana, sans-serif;"><b>renders UI?</b></span>
<span style="font-family: Verdana, sans-serif;">In Siebel HI, all the UI configuration for Pages, Views and Applets reside in SWT files (Siebel Web Templates). </span><span style="font-family: Verdana, sans-serif;">Siebel CRM in HI mode, uses a SWE template to render each applet directly from the Siebel repository to the user </span><span style="font-family: Verdana, sans-serif;">interface in the client and each applet references a business component to get Siebel CRM metadata </span><span style="font-family: Verdana, sans-serif;">and data from the repository. This configuration does not allow you to customize how Siebel CRM </span><span style="font-family: Verdana, sans-serif;">renders this applet at client side browser unless you use Siebel Tools to modify the repository. </span><span style="font-family: Verdana, sans-serif;">A SWE template customization is also very limited via tools</span><span style="font-family: Verdana, sans-serif;">. </span></div>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><b>How Open UI renders UI?</b></span><br />
<span style="font-family: Verdana, sans-serif;">Open UI configuration is more closely aligned with current guidelines for Web design than the </span><span style="font-family: Verdana, sans-serif;">configuration that high interactivity uses. Siebel Open UI allows you to customize how Siebel CRM </span><span style="font-family: Verdana, sans-serif;">renders individual objects in the client without having to use Siebel Tools, and it allows you use an </span><br />
<span style="font-family: Verdana, sans-serif;">alternative configuration, such as your custom configuration or a third-party configuration, to bind </span><span style="font-family: Verdana, sans-serif;">the Siebel business layer to user interface objects. </span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">As you can see below, In case of Siebel HI, there is no control on the UI rendering on client side. Where as in case of Open UI, you have full control on the UI rendering due to the introduction of Javascripts and CSS to de-couple the look and feel and to certain extent some business logic too.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://docs.oracle.com/cd/E14004_01/books/config_open_ui/architecture10.html#wp1254719" target="_blank"><img border="0" src="http://docs.oracle.com/cd/E14004_01/books/config_open_ui/images/architecture_comparison.png" height="458" width="520" /></a></div>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Now let's see how Open UI works end to end.</span><br />
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpVTBfuP4AR40BL9_VZhHSBZYcaQwViHKfnTJX4Um-bXbm5HHt_UNtB59-J2WdPeNnbhhE6kSJjaJDCYMmNRRuvwz09b7XKzbCBSsaGDTR6Sw_-YIWM4BmtzdWmqoNet3-yxMqi7YYqycs/s1600/Journey.jpg" imageanchor="1" style="display: inline !important; margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpVTBfuP4AR40BL9_VZhHSBZYcaQwViHKfnTJX4Um-bXbm5HHt_UNtB59-J2WdPeNnbhhE6kSJjaJDCYMmNRRuvwz09b7XKzbCBSsaGDTR6Sw_-YIWM4BmtzdWmqoNet3-yxMqi7YYqycs/s1600/Journey.jpg" height="473" width="520" /></a></div>
<br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">As you can see above, when user requests to navigate to a specific view:</span><br />
<span style="font-family: Verdana, sans-serif;">At sever side:</span><br />
<ul style="text-align: left;">
<li><span style="font-family: Verdana, sans-serif;">Requested view gets created based on the view and applet SWTs on similar to HI</span></li>
<li><span style="font-family: Verdana, sans-serif;">Manifest set-up (discussed later), determines which JavaScript and CSS files to load at client end.</span></li>
</ul>
<span style="font-family: Verdana, sans-serif;">At client side:</span><br />
<ul style="text-align: left;">
<li><span style="font-family: Verdana, sans-serif;">HTML, JavaScript and CSS files will be sent via the web server to the </span><span style="font-family: Verdana, sans-serif;">to the client browser.</span></li>
<li><span style="font-family: Verdana, sans-serif;">Presentation Model and Physical Renderer Java scripts work together to build the required UI and business logic changes at client side.</span></li>
<li><span style="font-family: Verdana, sans-serif;">Finally HTML and CSS will render the UI on the client browser</span></li>
</ul>
<div style="font-family: Verdana, sans-serif;">
<span style="font-family: Verdana, sans-serif;"><b>What are these Physical Renderer (PR) and Presentation Models (PMs)?</b></span></div>
<div class="separator" style="clear: both; font-family: Verdana, sans-serif; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgCuURhcSGm8iVJPNXyPgujsxFqd1LVAozjAHnRr__naZBI0iLYrP32OkKEeOXAq7LyKidNhBBxsq80mPzVXQNMN4S5lWBFfWT8krmybSqovS6l9PsrTIv4iLbCNxEnbr40lkmgFMy2M-t/s1600/PRPMClientside.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgCuURhcSGm8iVJPNXyPgujsxFqd1LVAozjAHnRr__naZBI0iLYrP32OkKEeOXAq7LyKidNhBBxsq80mPzVXQNMN4S5lWBFfWT8krmybSqovS6l9PsrTIv4iLbCNxEnbr40lkmgFMy2M-t/s1600/PRPMClientside.png" height="258" width="400" /></a></div>
<div style="font-family: Verdana, sans-serif;">
<span style="font-family: Verdana, sans-serif;"><b><br /></b></span></div>
<div style="font-family: Verdana, sans-serif;">
<span style="font-family: Verdana, sans-serif;"><b>Presentation Model:</b></span></div>
<span style="font-family: Verdana, sans-serif;">A presentation model is a single or set of JavaScript files that work with runtime(data generated at client-side) and metadata (data from server) and allow </span><span style="font-family: Verdana, sans-serif;">you to control and customize the logic, content and client interaction. </span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">It determines the logic </span><span style="font-family: Verdana, sans-serif;">to apply, captures client interactions, such as the user leaving a control, collects field values, and </span><span style="font-family: Verdana, sans-serif;">sets properties. A presentation model can get Properties and Methods from the proxy, and then expose </span><span style="font-family: Verdana, sans-serif;">them for external use. </span><br />
<div style="font-family: Verdana, sans-serif;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div style="font-family: Verdana, sans-serif;">
<b>Physical Renderer:</b></div>
<span style="font-family: Verdana, sans-serif;">A physical renderer is </span><span style="font-family: Verdana, sans-serif;">a single or set of JavaScript files</span><span style="font-family: Verdana, sans-serif;"> that Siebel Open UI uses to build the user interface. It allows </span><span style="font-family: Verdana, sans-serif;">you to use custom or third-party JavaScript code to render the user interface. It binds a presentation </span><br />
<span style="font-family: Verdana, sans-serif;">model to a physical control. </span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">It can enable different behavior between a desktop client and a mobile </span><span style="font-family: Verdana, sans-serif;">client. It allows the presentation model to remain independent of the physical user interface objects </span><span style="font-family: Verdana, sans-serif;">layer. For example, it can display the same records in an applet in the following different ways:</span><br />
<ul style="text-align: left;">
<li><span style="font-family: Verdana, sans-serif;"> List Applet</span></li>
<li><span style="font-family: Verdana, sans-serif;"> Carousel</span></li>
<li><span style="font-family: Verdana, sans-serif;"> Calendar etc</span><span style="font-family: Verdana, sans-serif;"> </span></li>
</ul>
<span style="font-family: Verdana, sans-serif;">So, PM is like the brain behind providing all the data and logic to PR. PR is building the actual UI which is shown to the user. </span><br />
<div style="font-family: Verdana, sans-serif;">
<br /></div>
<div style="font-family: Verdana, sans-serif;">
Now, let's take a look at what we can customize/tailor at client side. With Open UI framework, you can control the business logic and UI at the client browser side for below objects:</div>
</div>
<ul style="text-align: left;">
<li><span style="font-family: Verdana, sans-serif;">Views</span></li>
<li><span style="font-family: Verdana, sans-serif;">Applets</span></li>
<li><span style="font-family: Verdana, sans-serif;">Screen Tabs</span></li>
<li><span style="font-family: Verdana, sans-serif;">Tool bar</span></li>
<li><span style="font-family: Verdana, sans-serif;">Application Menu</span></li>
</ul>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLYtbOHzt_7Sc-_wqWMRzTSu8pIomdYEmYdpDnaNyMvMQmNmSnf54hYryY07KLaYEHS-Ov6mK4-USGSedFLTP-whrQZ5Lf1jyWP1MFe16RufmaHbJh9xueyVBQA2T-sHcHa9_N1ufdCkJB/s1600/PM-PR.jpg" imageanchor="1" style="clear: left; display: inline !important; margin-bottom: 1em; margin-left: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLYtbOHzt_7Sc-_wqWMRzTSu8pIomdYEmYdpDnaNyMvMQmNmSnf54hYryY07KLaYEHS-Ov6mK4-USGSedFLTP-whrQZ5Lf1jyWP1MFe16RufmaHbJh9xueyVBQA2T-sHcHa9_N1ufdCkJB/s1600/PM-PR.jpg" height="437" width="504" /></a><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif;">As you can see above, each object has it's own PM and PR which you can extend to modify as per your business need.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">In the next post, I will be going deep into the methods and properties available on PM and PR and how you can extend them to customize for your need.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Till then, happy reading!</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Shiv </span></div>
<div>
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<br /></div>
</div>
Shttp://www.blogger.com/profile/13636876457402555607noreply@blogger.com0tag:blogger.com,1999:blog-2548259877820684769.post-90512579761160786072014-06-28T20:54:00.002+01:002014-07-04T15:19:00.026+01:00Enabling Open UI Mobile - detailed instructions!<div dir="ltr" style="text-align: left;" trbidi="on">
<h3 class="post-title entry-title" itemprop="name" style="background-color: white; color: #222222; font-weight: normal; margin: 0.75em 0px 0px; position: relative;">
<span style="font-family: Verdana, sans-serif; font-size: small;">Please read my previous blog for enabling Open UI here:</span></h3>
<h3 class="post-title entry-title" itemprop="name" style="background-color: white; color: #222222; font-weight: normal; margin: 0.75em 0px 0px; position: relative;">
<span style="color: #888888; font-family: Verdana, sans-serif; font-size: x-small; text-decoration: none;"><a href="http://siebel-openui.blogspot.co.uk/2014/06/enabling-siebel-open-ui-detailed.html" style="color: #888888; text-decoration: none;" target="_blank">Enabling Siebel Open UI - detailed instructions!</a></span></h3>
<h3 class="post-title entry-title" itemprop="name" style="background-color: white; margin: 0.75em 0px 0px; position: relative;">
<span style="color: #222222; font-family: Verdana, sans-serif; font-size: small; font-weight: normal;"><span style="line-height: 18.479999542236328px;"><b>Steps to have Open UI Mobile enabled: </b></span><br style="line-height: 18.479999542236328px;" /><u style="line-height: 18.479999542236328px;"><b>1) Create Object manager for Open UI</b></u></span></h3>
<div>
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;"></span></span><br />
<div>
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;">Follow the steps from previous blog to create new Object Manager SalesmObjMgr_enu. To enable Open UI Mobile for SalesmObjMgr_enu set below params: <span style="font-size: x-small;">(Imporant ones: EnableOpenUI, MobileApplication and CFGApplicationName)</span></span></span><br />
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-yfti-tbllook: 1184; width: 480px;">
<tbody>
<tr style="height: 15.0pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0;">
<td style="background: #D6E3BC; border: solid windowtext 1.0pt; height: 15.0pt; mso-background-themecolor: accent3; mso-background-themetint: 102; mso-border-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 126.4pt;" valign="top" width="169"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">Param<o:p></o:p></span></div>
</td>
<td style="background: #D6E3BC; border-left: none; border: solid windowtext 1.0pt; height: 15.0pt; mso-background-themecolor: accent3; mso-background-themetint: 102; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 233.4pt;" valign="top" width="311"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">Value<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 15.0pt; mso-yfti-irow: 1;">
<td style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 126.4pt;" valign="top" width="169"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: #222222;"><span style="font-family: Verdana, sans-serif; font-size: x-small;">EnableOpenUI<o:p></o:p></span></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 233.4pt;" valign="top" width="311"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">TRUE<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 15.0pt; mso-yfti-irow: 2;">
<td style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 126.4pt;" valign="top" width="169"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">AppletSelectStyle<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 233.4pt;" valign="top" width="311"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">"Applet Select"<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 15.0pt; mso-yfti-irow: 3;">
<td style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 126.4pt;" valign="top" width="169"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">HighInteractivity<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 233.4pt;" valign="top" width="311"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">TRUE<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 15.0pt; mso-yfti-irow: 4;">
<td style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 126.4pt;" valign="top" width="169"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">MobileApplication<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 233.4pt;" valign="top" width="311"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">TRUE<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 15.0pt; mso-yfti-irow: 5;">
<td style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 126.4pt;" valign="top" width="169"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">EnableInlineForList<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 233.4pt;" valign="top" width="311"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">Never<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 15.0pt; mso-yfti-irow: 6;">
<td style="border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 126.4pt;" valign="top" width="169"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">ShowWriteRecord<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 233.4pt;" valign="top" width="311"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">TRUE<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 18.05pt; mso-yfti-irow: 7;">
<td style="border-top: none; border: solid windowtext 1.0pt; height: 18.05pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 126.4pt;" valign="top" width="169"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">EnableSIFocusTracking<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 18.05pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 233.4pt;" valign="top" width="311"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">TRUE<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 49.45pt; mso-yfti-irow: 8;">
<td style="border-top: none; border: solid windowtext 1.0pt; height: 49.45pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 126.4pt;" valign="top" width="169"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">SupportedMobileBrowser<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 49.45pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 233.4pt;" valign="top" width="311"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">"Tablet:iPad,Linux,Android-Chrome,webOS,MSIE-Windows
NTTouch,MSIE-Windows NT-ARM|Phone:iPhone,iPod,Linux,Android-Chrome-Mobile,MSIEWindows
Phone"<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 12.95pt; mso-yfti-irow: 9; mso-yfti-lastrow: yes;">
<td style="border-top: none; border: solid windowtext 1.0pt; height: 12.95pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 126.4pt;" valign="top" width="169"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><span style="color: #222222;">CFGApplicationName</span><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 12.95pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 233.4pt;" valign="top" width="311"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;">"Siebel Sales Enterprise Mobile"<o:p></o:p></span></div>
</td>
</tr>
</tbody></table>
<span style="background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;"><br /></span>
<span style="background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;">Below are the srvrmgr commands to set them:</span></div>
</div>
<h3 class="post-title entry-title" itemprop="name" style="margin: 0.75em 0px 0px; position: relative;">
<div>
<div style="color: #222222; line-height: 18.479999542236328px;">
<span style="background-color: #b6d7a8;"><span style="font-family: Verdana, sans-serif; font-size: x-small; font-weight: normal;">change param EnableOpenUI = True for compdef SalesmObjMgr_enu</span></span></div>
<div style="color: #222222; line-height: 18.479999542236328px;">
<span style="background-color: #b6d7a8;"><span style="font-family: Verdana, sans-serif; font-size: x-small; font-weight: normal;"><br /></span></span></div>
<div style="color: #222222; line-height: 18.479999542236328px;">
<span style="background-color: #b6d7a8;"><span style="font-family: Verdana, sans-serif; font-size: x-small; font-weight: normal;">change param AppletSelectStyle = "Applet Select" for compdef SalesmObjMgr_enu</span></span></div>
<div style="color: #222222; line-height: 18.479999542236328px;">
<span style="background-color: #b6d7a8;"><span style="font-family: Verdana, sans-serif; font-size: x-small; font-weight: normal;"><br /></span></span></div>
<div style="color: #222222; line-height: 18.479999542236328px;">
<span style="background-color: #b6d7a8;"><span style="font-family: Verdana, sans-serif; font-size: x-small; font-weight: normal;">change param HighInteractivity = True for compdef SalesmObjMgr_enu</span></span></div>
<div style="color: #222222; line-height: 18.479999542236328px;">
<span style="background-color: #b6d7a8;"><span style="font-family: Verdana, sans-serif; font-size: x-small; font-weight: normal;"><br /></span></span></div>
<div style="color: #222222; line-height: 18.479999542236328px;">
<span style="background-color: #b6d7a8;"><span style="font-family: Verdana, sans-serif; font-size: x-small; font-weight: normal;">change param MobileApplication = True for compdef SalesmObjMgr_enu</span></span></div>
<div style="color: #222222; line-height: 18.479999542236328px;">
<span style="background-color: #b6d7a8;"><span style="font-family: Verdana, sans-serif; font-size: x-small; font-weight: normal;"><br /></span></span></div>
<div style="color: #222222; line-height: 18.479999542236328px;">
<span style="background-color: #b6d7a8;"><span style="font-family: Verdana, sans-serif; font-size: x-small; font-weight: normal;">change param EnableInlineForList = Never for compdef SalesmObjMgr_enu</span></span></div>
<div style="color: #222222; line-height: 18.479999542236328px;">
<span style="background-color: #b6d7a8;"><span style="font-family: Verdana, sans-serif; font-size: x-small; font-weight: normal;"><br /></span></span></div>
<div style="color: #222222; line-height: 18.479999542236328px;">
<span style="background-color: #b6d7a8;"><span style="font-family: Verdana, sans-serif; font-size: x-small; font-weight: normal;">change param ShowWriteRecord = True for compdef SalesmObjMgr_enu</span></span></div>
<div style="color: #222222; line-height: 18.479999542236328px;">
<span style="background-color: #b6d7a8;"><span style="font-family: Verdana, sans-serif; font-size: x-small; font-weight: normal;"><br /></span></span></div>
<div style="color: #222222; line-height: 18.479999542236328px;">
<span style="background-color: #b6d7a8;"><span style="font-family: Verdana, sans-serif; font-size: x-small; font-weight: normal;">change param EnableSIFocusTracking = True for compdef SalesmObjMgr_enu</span></span></div>
<div style="color: #222222; line-height: 18.479999542236328px;">
<span style="background-color: #b6d7a8;"><span style="font-family: Verdana, sans-serif; font-size: x-small; font-weight: normal;"><br /></span></span></div>
<div>
<div style="color: #222222; line-height: 18.479999542236328px;">
<span style="background-color: #b6d7a8;"><span style="font-family: Verdana, sans-serif; font-size: x-small; font-weight: normal;">change param SupportedMobileBrowser = "Tablet:iPad,Linux,Android-Chrome,webOS,MSIE-Windows NTTouch,MSIE-Windows NT-ARM|Phone:iPhone,iPod,Linux,Android-Chrome-Mobile,MSIEWindows Phone" for compdef SalesmObjMgr_enu</span></span></div>
<div style="color: #222222; line-height: 18.479999542236328px;">
<span style="background-color: #b6d7a8;"><span style="font-family: Verdana, sans-serif; font-size: x-small; font-weight: normal;"><br /></span></span></div>
<span style="background-color: #b6d7a8; color: #222222; font-family: Verdana, sans-serif; font-size: x-small;"><span style="font-weight: normal; line-height: 18.479999542236328px;">change param CFGApplicationName = "Siebel Sales Enterprise Mobile" for compdef SalesmObjMgr_enu</span></span></div>
<div style="background-color: white; color: #222222; font-weight: normal; line-height: 18.479999542236328px;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
</div>
</h3>
<h3 class="post-title entry-title" itemprop="name" style="background-color: white; color: #222222; font-weight: normal; margin: 0.75em 0px 0px; position: relative;">
<span style="font-family: Verdana, sans-serif;"><span style="font-size: small; line-height: 18.479999542236328px;"></span><span style="font-size: small; line-height: 18.479999542236328px;"></span><span style="font-size: small; line-height: 18.479999542236328px;">After creating the compdef you need to activate it using below command.</span><br style="line-height: 18.479999542236328px;" /><span style="background-color: #b6d7a8; font-size: x-small; line-height: 18.479999542236328px;">activate component definition <code class="cComputrFontEmphasis" style="font-style: italic;">component_alias_name</code></span><br style="line-height: 18.479999542236328px;" /><span style="font-size: small; line-height: 18.479999542236328px;">In our case, it will be</span><br style="line-height: 18.479999542236328px;" /><span style="font-size: x-small;"><span style="background-color: #b6d7a8; line-height: 18.479999542236328px;">activate component definition </span><span style="background-color: #b6d7a8; line-height: 18.479999542236328px;">SalesmObjMgr_enu</span></span><br style="line-height: 18.479999542236328px;" /><span style="font-size: small; line-height: 18.479999542236328px;"><br /></span><span style="font-size: small; line-height: 18.479999542236328px;"></span><span style="font-size: small; line-height: 18.479999542236328px;">Now, synchronize the comp by running below command.</span><br style="line-height: 18.479999542236328px;" /><span style="line-height: 18.479999542236328px;"><span style="background-color: #b6d7a8; font-size: x-small; line-height: 27px;">Sync comps</span></span><br style="line-height: 18.479999542236328px;" /><br style="line-height: 18.479999542236328px;" /><span style="font-size: small; line-height: 18.479999542236328px;"><b><u>2)Set-up web server for Open UI</u></b></span><br style="line-height: 18.479999542236328px;" /><span style="font-size: small; line-height: 18.479999542236328px;"><br /></span><span style="font-size: small; line-height: 18.479999542236328px;"></span><u style="font-size: medium; line-height: 18.479999542236328px;">a) Adding Virtual Directory for salesm_enu</u><br style="line-height: 18.479999542236328px;" /><span style="font-size: small; line-height: 18.479999542236328px;">> Logon to your web server and navigate to \BIN directory under SWEApp. In my case, </span><span style="font-size: small; line-height: 18.479999542236328px;">D:\SIA81\SWEApp\BIN</span><br style="line-height: 18.479999542236328px;" /><span style="font-size: small; line-height: 18.479999542236328px;">> Run below command from windows command prompt to create a virtual directory on your IIS.</span><br style="line-height: 18.479999542236328px;" /><span style="line-height: 18.479999542236328px;"><span style="background-color: #b6d7a8; font-size: x-small;">metabaseedit.exe salesm_enu eapps.mtb</span></span><br style="line-height: 18.479999542236328px;" /><u style="font-size: medium; line-height: 18.479999542236328px;"><br /></u><span style="font-size: small; line-height: 18.479999542236328px;"></span><u style="font-size: medium; line-height: 18.479999542236328px;">b) Pointing your virtual directory entry to the new Object Manager</u><br style="line-height: 18.479999542236328px;" /><span style="font-size: small; line-height: 18.479999542236328px;">> Take back up of your </span><span style="font-size: small; line-height: 18.479999542236328px;">D:\SIA81\SWEApp\BIN\</span><span style="font-size: small; line-height: 18.479999542236328px;">eapps.cfg</span><br style="line-height: 18.479999542236328px;" /><span style="font-size: small; line-height: 18.479999542236328px;">> copy the existing entry for your Siebel HI Object Manager and modify the ConnectionString it as below.</span></span></h3>
<div>
<span style="font-family: Verdana, sans-serif;"><span style="font-size: small; line-height: 18.479999542236328px;"></span></span><br />
<a name='more'></a><span style="font-family: Verdana, sans-serif;"><span style="font-size: small; line-height: 18.479999542236328px;"><br /></span></span></div>
<div>
<span style="font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;"></span></span><br />
<div>
<span style="font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;">[/salesm_enu]</span></span></div>
<span style="font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;">
</span></span>
<br />
<div>
<span style="font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;">EncryptedPassword = True</span></span></div>
<span style="font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;">
</span></span>
<br />
<div>
<span style="font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;">AnonUserName = <existing anonymous user></span></span></div>
<span style="font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;">
</span></span>
<div>
<span style="font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;">AnonPassword = <existing anonymous user password></span></span></div>
<span style="font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;">
<div>
ConnectString = siebel.TCPIP.None.None://<gateway>:<port>/<EnterpriseName>/<span style="background-color: #b6d7a8;">SalesmObjMgr_enu</span></div>
<div>
WebPublicRootDir = D:\SIA81\SWEApp\public\enu</div>
<div>
SiebEntSecToken = <existing token></div>
</span></span></div>
<h3 class="post-title entry-title" itemprop="name" style="background-color: white; color: #222222; font-weight: normal; margin: 0.75em 0px 0px; position: relative;">
<div style="line-height: 18.479999542236328px;">
<b style="font-family: Verdana, sans-serif; font-size: medium;"><u>3) Restart your enterprise in below order:</u></b></div>
<span style="font-family: Verdana, sans-serif;"><span style="font-size: small; line-height: 18.479999542236328px;">> Bring down world wide web, all Sieb servers and gateway</span><br style="line-height: 18.479999542236328px;" /><span style="font-size: small; line-height: 18.479999542236328px;">> Bring up in this order: Gateway, all sieb servers and WWW</span><br style="line-height: 18.479999542236328px;" /><span style="font-size: small; line-height: 18.479999542236328px;"><br /></span><span style="font-size: small; line-height: 18.479999542236328px;"></span><span style="font-size: small; line-height: 18.479999542236328px;">Now, access the new URL: </span><span style="background-color: #b6d7a8; font-size: x-small; line-height: 18.479999542236328px;">http://<webserver>/salesm_enu</span><br style="line-height: 18.479999542236328px;" /><span style="font-size: small; line-height: 18.479999542236328px;"><br /></span><span style="font-size: small; line-height: 18.479999542236328px;"></span><span style="font-size: small; line-height: 18.479999542236328px;">Let me know how it goes!</span></span></h3>
</div>
Shttp://www.blogger.com/profile/13636876457402555607noreply@blogger.com1tag:blogger.com,1999:blog-2548259877820684769.post-81913643128301912692014-06-28T11:36:00.002+01:002014-07-03T15:47:22.624+01:00Enabling Siebel Open UI - detailed instructions!<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: Verdana, sans-serif;">If you have reached to this blog, it means you have done the upgrade to Siebel 8.1.1.11. If you haven't yet decided then refer to my previous blogs on Siebel upgrade and the need for Open UI here:</span><br />
<br />
<span style="font-family: Verdana, sans-serif;"><a href="http://siebel-openui.blogspot.co.uk/2014/06/siebel-upgrade-vs-moving-into-cloud-my.html" style="background-color: white; color: #888888; line-height: 18.479999542236328px; text-decoration: none;" target="_blank">Siebel upgrade Vs moving to cloud</a></span><br />
<h3 class="post-title entry-title" itemprop="name" style="background-color: white; color: #222222; font-weight: normal; margin: 0.75em 0px 0px; position: relative;">
<span style="font-family: Verdana, sans-serif; font-size: small;"><a href="http://siebel-openui.blogspot.co.uk/2014/06/the-need-for-siebel-openui.html" style="color: #888888; text-decoration: none;" target="_blank">The need for Siebel OpenUI</a></span></h3>
<h3 class="post-title entry-title" itemprop="name" style="background-color: white; color: #222222; font-weight: normal; margin: 0.75em 0px 0px; position: relative;">
<span style="font-family: Verdana, sans-serif; font-size: small;"><a href="http://siebel-openui.blogspot.co.uk/2014/06/the-need-for-open-ui-mobile-siebel-crm.html" style="color: #888888; text-decoration: none;" target="_blank">The need for Open UI Mobile</a></span></h3>
<span style="font-family: Verdana, sans-serif;"><b><br /></b></span>
<span style="font-family: Verdana, sans-serif;"><b>Prerequisites for enabling Open UI:</b></span><br />
<span style="font-family: Verdana, sans-serif;">> Siebel 8.1.1.11 with latest patch set installed</span><br />
<span style="font-family: Verdana, sans-serif;">> Incremental Repository Merge completed</span><br />
<span style="font-family: Verdana, sans-serif;">> Latest fully compiled srf is deployed</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;"><b>Steps to have Open UI enabled: </b></span><br />
<u style="color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;"><b>1) Create Object manager for Open UI</b></u><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;">It is always easy to clone an existing working Siebel HI Object manager rather than creating a brand new one. I will give you details for both the options.</span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;"><u><br /></u></span></span>
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;">NOTE:I am a big fan of using srvrmgr command line as you can build re-usable commands and run them on DEV, test and prod whenever you need. Below is how you connect to srvrmgr command.</span></span><br />
<div class="MsoNormal" style="background-color: white; font-family: Verdana, Geneva, sans-serif; font-size: 13px; line-height: 18.479999542236328px; margin: 0in 0in 0pt 0.45in; text-indent: -0.25in;">
<span style="font-family: Verdana; font-size: xx-small;">1.</span><span style="font-family: 'Times New Roman';"> </span><span style="font-family: Verdana; font-size: xx-small;">Login into the Application server and navigate to the Drive where Siebel Server is installed (eg: d:\sia81\siebsrvr\bin)</span></div>
<div class="MsoNormal" style="background-color: white; font-family: Verdana, Geneva, sans-serif; font-size: 13px; line-height: 18.479999542236328px; margin: 0in 0in 0pt 0.45in; text-indent: -0.25in;">
<span style="font-family: Verdana; font-size: xx-small;">2.</span><span style="font-family: 'Times New Roman';"> </span><b><span style="font-family: Verdana; font-size: xx-small;">SRVRMGR /G “gateway servername” /e “enterprise servername” /u login /p password</span></b></div>
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;"><u><br /></u></span></span>
<span style="font-family: Verdana, sans-serif;"><span style="background-color: white; color: #222222; line-height: 18.479999542236328px;"><u>Option 1) Clone your current Siebel HI Object Manager</u></span></span><br />
<span style="font-family: Verdana, sans-serif;">Connect to srvrmgr command prompt and run below command</span><br />
<span style="background-color: #b6d7a8;"><span style="font-family: 'Lucida Console';">copy compdef from </span><code class="cComputrFontEmphasis" style="font-family: 'Courier New', Courier, mono; font-style: italic;">source_comp_def_alias</code><span style="font-family: 'Lucida Console';"> to </span><code class="cComputrFontEmphasis" style="font-family: 'Courier New', Courier, mono; font-style: italic;">target_comp_def_alias</code></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: white; line-height: 18.479999542236328px;">For example, I want to clone </span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: white; line-height: 18.479999542236328px;">my current Siebel HI Object manager SSEObjMgr_enu into </span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: white; line-height: 18.479999542236328px;">a new Open UI (OUI) Object manager SSEObjMgrOUI_enu</span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: white; line-height: 18.479999542236328px;"></span></span><br />
<a name='more'></a><span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: white; line-height: 18.479999542236328px;"><br /></span></span>
<span style="background-color: #b6d7a8;"><span style="font-family: 'Lucida Console';">copy compdef from </span><code class="cComputrFontEmphasis" style="font-family: 'Courier New', Courier, mono; font-style: italic;">SSEObjMgr_enu</code><span style="font-family: 'Lucida Console';"> to </span><code class="cComputrFontEmphasis" style="font-family: 'Courier New', Courier, mono; font-style: italic;">SSEObjMgrOUI_enu</code></span><br />
<div>
<br /></div>
<div>
<span style="font-family: Verdana, sans-serif;"><span style="background-color: white; color: #222222; line-height: 18.479999542236328px;"><u>Option 2) Create a new Object Manager for Open UI</u></span></span><br />
<span style="background-color: #b6d7a8; font-family: Verdana, sans-serif;">Connect to srvrmgr command prompt and run below command</span><br />
<span style="background-color: #b6d7a8; font-family: 'Lucida Console';"></span></div>
<div class="MsoNormal">
<span style="background-color: #b6d7a8;"><span style="font-family: 'Lucida Console'; line-height: 115%;">create component definition </span><code><i><span style="line-height: 115%;">component</span></i></code><span style="font-family: 'Lucida Console'; line-height: 115%;">_</span><code><i><span style="line-height: 115%;">alias_name</span></i></code><span style="font-family: 'Lucida Console'; line-height: 115%;"><br />
for component type </span><code><i><span style="line-height: 115%;">existing_component_type_alias_name</span></i></code><span style="font-family: 'Lucida Console'; line-height: 115%;"><br />
component group </span><code><i><span style="line-height: 115%;">existing_component_group_alias_name</span></i></code><span style="font-family: 'Lucida Console'; line-height: 115%;"> </span><br />
run mode <code><i><span style="line-height: 115%;">run_mode</span></i></code><span style="font-family: 'Lucida Console'; line-height: 115%;"> </span><br />
full name <code><i><span style="line-height: 115%;">"component_full_name"<br />
</span></i></code><span style="font-family: 'Lucida Console'; line-height: 115%;">description </span><code><i><span style="line-height: 115%;">"description_of_component"<br />
</span></i></code><span style="font-family: 'Lucida Console'; line-height: 115%;">with parameter <o:p></o:p></span></span></div>
<span style="background-color: #b6d7a8;"><code><i><span style="line-height: 115%;">parameter_alias_name1</span></i></code><code><i><span style="line-height: 115%;">=value,</span></i></code><span style="font-family: 'Lucida Console'; line-height: 115%;"> </span><code><i><span style="line-height: 115%;">parameter_alias_name1</span></i></code><code><i><span style="line-height: 115%;">=value</span></i></code></span><br />
<span style="background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;"><br /></span>
<span style="font-family: Verdana, sans-serif;">For example, I want to create a new object manager: </span><span style="background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;">SSEObjMgrOUI_enu for my Sales application,</span><br />
<span style="background-color: #b6d7a8; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;">create component definition SSEObjMgrOUI_enu </span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: #b6d7a8; line-height: 18.479999542236328px;">for component type AppObjMgr </span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: #b6d7a8; line-height: 18.479999542236328px;">component group Sales</span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: #b6d7a8; line-height: 18.479999542236328px;">run mode interactive </span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: #b6d7a8; line-height: 18.479999542236328px;">full name "Sales Object Manager OUI (ENU)"</span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: #b6d7a8; line-height: 18.479999542236328px;">description "Sales Object Manager OUI (ENU)"</span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: #b6d7a8; line-height: 18.479999542236328px;">with parameter </span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: #b6d7a8; line-height: 18.479999542236328px;">MaxMTServers = 2,</span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: #b6d7a8; line-height: 18.479999542236328px;">MinMTServers=2,</span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: #b6d7a8; line-height: 18.479999542236328px;">MaxTasks = 120,</span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: #b6d7a8; line-height: 18.479999542236328px;">CFGClientRootDir="D:\SIA81\siebsrvr",</span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: #b6d7a8; line-height: 18.479999542236328px;">CFGTempDir="D:\SIA81\siebsrvr\temp",</span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: #b6d7a8; line-height: 18.479999542236328px;">CFGApplicationName="Siebel Sales Enterprise",</span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: #b6d7a8; line-height: 18.479999542236328px;">CFGApplicationSplashText = "Siebel Sales OUI",</span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: #b6d7a8; line-height: 18.479999542236328px;">CFGApplicationTitle = "Siebel Sales OUI",</span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: #b6d7a8; line-height: 18.479999542236328px;">CFGRepositoryFile="siebel_sia.srf"</span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: #b6d7a8; line-height: 18.479999542236328px;">SecAdptMode = "LDAP",</span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: #b6d7a8; line-height: 18.479999542236328px;">SecAdptName = "LDAPSecAdpt",</span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: #b6d7a8; line-height: 18.479999542236328px;">ConfigFile = "siebel.cfg",</span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: #b6d7a8; line-height: 18.479999542236328px;">Lang = "ENU",</span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: #b6d7a8; line-height: 18.479999542236328px;">CFGShowMessageBar = "User Enable",</span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: #b6d7a8; line-height: 18.479999542236328px;">Crypt = “NONE”,</span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: #b6d7a8; line-height: 18.479999542236328px;">FileSystem = "\\siebsrvr1\Siebfs",</span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: #b6d7a8; line-height: 18.479999542236328px;">LocaleCode = "ENU",</span></span><br />
<span style="background-color: #b6d7a8; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;">NamedDataSource="ServerDataSrc,GatewayDataSrc"</span><br />
<br />
<span style="background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;">To enable Open UI for above Object Manager set param:</span><span style="background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;">EnableOpenUI to TRUE as shown below</span><span style="background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;"> (you can include it while creating the comp iteselft)</span><br />
<div>
<div>
<span style="background-color: #b6d7a8;"><span style="color: #222222; font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;">change param EnableOpenUI = True for compdef </span></span><span style="color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;">SSEObjMgrOUI_enu</span></span></div>
</div>
<span style="background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;"><br /></span>
<span style="background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;">After creating the compdef you need to activate it using below command.</span><br />
<span style="background-color: #b6d7a8; font-family: Verdana, sans-serif;">activate component definition <code class="cComputrFontEmphasis" style="font-style: italic;">component_alias_name</code></span><br />
<span style="background-color: white; font-family: Verdana, sans-serif;">In our case, it will be</span><br />
<span style="background-color: #b6d7a8;"><span style="font-family: Verdana, sans-serif;">activate component definition </span><span style="color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;">SSEObjMgrOUI_enu</span></span><br />
<span style="background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;"><br /></span>
<span style="background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;">Now, synchronize the comp by running below command.</span><br />
<span style="font-family: Verdana, sans-serif;"><span style="background-color: #b6d7a8; line-height: 27px;">Sync comps</span></span><br />
<br />
<span style="background-color: white;"><b><u><span style="color: #222222; font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;">2)Set-up web server for Open UI</span></span></u></b></span><br />
<span style="background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;"><br /></span>
<u><span style="background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;">a) </span><span style="color: #222222; font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;">Adding Virtual Directory for salesoui_enu</span></span></u><br />
<span style="background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;">> Logon to your web server and navigate to \BIN directory under SWEApp. In my case, </span><span style="color: #222222; font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;">D:\SIA81\SWEApp\BIN</span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;">> Run below command from windows command prompt to create a virtual directory on your IIS.</span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: #b6d7a8; line-height: 18.479999542236328px;">metabaseedit.exe salesoui_enu eapps.mtb</span></span><br />
<u><span style="background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;"><br /></span></u>
<u><span style="background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;">b) </span><span style="color: #222222; font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;">Pointing your virtual directory entry to the new Object Manager</span></span></u><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;">> Take back up of your </span></span><span style="color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;">D:\SIA81\SWEApp\BIN\</span><span style="color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;">eapps.cfg</span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;">> copy the existing entry for your Siebel HI Object Manager and modify the ConnectionString it as below.</span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: white; line-height: 18.479999542236328px;">[/salesoui_enu]</span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: white; line-height: 18.479999542236328px;">EncryptedPassword = True</span></span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: white; line-height: 18.479999542236328px;">AnonUserName = <existing anonymous user></span></span><br />
<span style="background-color: white;"><span style="color: #222222; font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;">AnonPassword = </span></span><span style="color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;"><existing anonymous</span><span style="color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;"> user password></span></span><br />
<span style="background-color: white; color: #222222; font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;">ConnectString = siebel.TCPIP.None.None://<gateway>:<</span><span style="line-height: 18.479999542236328px;">port>/<EnterpriseName>/</span></span><span style="background-color: #b6d7a8; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;">SSEObjMgrOUI_enu</span><br />
<span style="color: #222222; font-family: Verdana, sans-serif;"><span style="background-color: white; line-height: 18.479999542236328px;">WebPublicRootDir = D:\SIA81\SWEApp\public\enu</span></span><br />
<span style="background-color: white;"><span style="color: #222222; font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;">SiebEntSecToken = </span></span><span style="color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;"><existing token</span><span style="color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;">></span></span><br />
<div>
<u><span style="color: #222222; font-family: Verdana, sans-serif;"><span style="line-height: 18.479999542236328px;"><br /></span></span></u></div>
<span style="background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;"><b><u>3) Restart your enterprise in below order:</u></b></span><br />
<span style="background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;">> Bring down world wide web, all Sieb servers and gateway</span><br />
<span style="background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;">> Bring up in this order: Gateway, all sieb servers and WWW</span><br />
<span style="background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;"><br /></span>
<span style="background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;">Now, access the new URL: </span><span style="background-color: #b6d7a8;"><span style="color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;">http://<webserver>/</span><span style="color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;">salesoui_enu</span></span><br />
<span style="background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;"><br /></span>
<span style="background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;">Let me know how it goes!</span><br />
<span style="background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;"><br /></span>
<span style="background-color: white; color: #222222; font-family: Verdana, sans-serif; line-height: 18.479999542236328px;">Shiv</span><br />
<br /></div>
Shttp://www.blogger.com/profile/13636876457402555607noreply@blogger.com0tag:blogger.com,1999:blog-2548259877820684769.post-71164976400681420592014-06-24T10:19:00.001+01:002014-07-03T15:47:39.429+01:00How to go about Siebel Upgrade - your path to Open UI!<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: Verdana, sans-serif;">Ok, if you have reached to this post then, it means you have decided to upgrade your Siebel. If still not sure then, review my previous blog on <a href="http://siebel-openui.blogspot.co.uk/2014/06/siebel-upgrade-vs-moving-into-cloud-my.html" target="_blank">Siebel upgrade Vs moving to cloud</a> and then come back here.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">In this part I will be covering all the preparation work that you need to do to go for Siebel upgrade. </span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><b>These are the questions you need to first get clarified:</b></span><br />
<span style="font-family: Verdana, sans-serif;">1) What is your current version and is it SEA or SIA?</span><br />
<span style="font-family: Verdana, sans-serif;">This will determine, whether you can have one step upgrade or you need to have two step upgrade.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">2) What is your current DB version. Is your database Unicode compliant?</span><br />
<span style="font-family: Verdana, sans-serif;">Latest Siebel works on Oracle R11g and unicode at best. You may need to plan for DB upgrade along with Unicode conversion.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">3) Do you have actuate reports to be migrated to BIP?</span><br />
<span style="font-family: Verdana, sans-serif;">If yes, you need to include in your plan to convert all actuate reports into BIP and will increase your upgrade and testing window.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">4) Do you have Old Siebel eScript T (typeless) Engine or New ECMA Version 4 ST (Strong Type) Engine?</span><br />
<span style="font-family: Verdana, sans-serif;">Siebel 8.*, by default has ST Engine for eScripting. If you have T Engine, you may need to validate most of your eScript code to make it compliant with ST Engine.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">5) Do you have CTI telephony integration? </span><br />
<span style="font-family: Verdana, sans-serif;">In Siebel 8.*, the CTI architecture is completely changed. If you have CTI, you need to study more to understand the new system.</span><br />
<br />
<span style="font-family: Verdana, sans-serif;"><b>Identify your Siebel upgrade path:</b></span><br />
<span style="font-family: Verdana, sans-serif;">You can perform one step upgrade directly from following previous releases to Siebel 8.1.1.11 SIA:</span><br />
<ul style="text-align: left;">
<li><span style="font-family: Verdana, sans-serif;">Siebel 7.5.3 SIA</span></li>
<li><span style="font-family: Verdana, sans-serif;">Siebel 7.7.2 SIA</span></li>
<li><span style="font-family: Verdana, sans-serif;">Siebel 7.8.2 SEA and 7.8.2 SIA</span></li>
<li><span style="font-family: Verdana, sans-serif;">Siebel 8.0 SEA and 8.0 SIA</span></li>
<li><span style="font-family: Verdana, sans-serif;">Siebel 8.1.1 SEA</span></li>
</ul>
<span style="font-family: Verdana, sans-serif;">See below table for full details taken from <a href="http://docs.oracle.com/cd/E14004_01/books/UPG/UPG_SimplOver2.html#wp1116759" target="_blank">Oracle bookshelf</a> </span><br />
<table border="0" cellpadding="5">
<tbody>
</tbody><colgroup><col width="20%"></col>
<col width="25%"></col>
<col width="55%"></col>
</colgroup><tbody>
<tr align="left" bgcolor="#A1BC84" valign="top">
<th><div class="ptbh1TableHead1">
Current Version</div>
</th>
<th><div class="ptbh1TableHead1">
Upgrade Approach</div>
</th>
<th><div class="ptbh1TableHead1">
Upgrade Tasks</div>
</th>
</tr>
<tr align="left" bgcolor="#EAF4DA" valign="top">
<td>7.5.3 SEA through 7.7.2 SEA</td>
<td>* Full database upgrade.
<br />
* Two-step repository upgrade.
</td>
<td>You must perform a two-step repository upgrade:
<br />
* Upgrade 7.5.3 SEA through 7.7.2 SEA to 8.1.1 SEA
<br />
* Upgrade 8.1.1 SEA to 8.1.1.11 SIA
</td>
</tr>
<tr align="left" bgcolor="#EAF4DA" valign="top">
<td>7.5.3 SIA</td>
<td colspan="1" rowspan="5">* Full database upgrade.
<br />
* Single-step upgrade.</td>
<td colspan="1" rowspan="5">Perform a full database upgrade. A Development environment upgrade and a Production environment upgrade is required.
<br />
* You can directly upgrade to Siebel CRM version 8.1.1.11. It is a single-step upgrade and post-upgrade process.
<br />
* The New Customer repository, generated through a three-way repository merge, contains all the content from the Siebel CRM version 8.1.1.11 Innovation Pack.</td>
</tr>
<tr align="left" bgcolor="#EAF4DA" valign="top">
<td>7.7.2 SIA</td>
</tr>
<tr align="left" bgcolor="#EAF4DA" valign="top">
<td>7.8.2 SIA and SEA</td>
</tr>
<tr align="left" bgcolor="#EAF4DA" valign="top">
<td>8.0 SIA and SEA</td>
</tr>
<tr align="left" bgcolor="#EAF4DA" valign="top">
<td>8.1.1.0 to 8.1.1.7 SEA</td>
</tr>
<tr align="left" bgcolor="#EAF4DA" valign="top">
<td>8.1.1.0 to 8.1.1.9 SIA</td>
<td>* Maintenance release installation.
<br />
* Incremental repository merge.</td>
<td>Run Oracle Universal Installer (OUI) maintenance release installer to apply the Siebel CRM version 8.1.1.11 SIA maintenance release.
<br />
<div class="pn2Note2">
<b class="cBold">NOTE: </b> Siebel Innovation Pack content is not included in the maintenance release.</div>
If you intend to use Open UI and new features included from the Siebel CRM version 8.1.1.11 Innovation Pack then you must import it using incremental repository merge.</td></tr>
</tbody></table>
<div>
<br />
<a name='more'></a><br /></div>
<div>
<span style="font-family: Verdana, sans-serif;">Based on your current Siebel version, above table will guide you to your upgrade path. You will be lucky if you got to do one step upgrade as two step upgrade will take double the effort. If you are upgrading from 7.x versions then there is a change in address model too which you need to consider in your upgrade. </span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><b>How long?:</b></span><br />
<span style="font-family: Verdana, sans-serif;">Next question you have in your mind would be how long? Well it is very subjective but to give an idea - below is a break up</span><br />
<span style="font-family: Verdana, sans-serif;">1) Dev upgrade - 4 to 6 weeks</span><br />
<span style="font-family: Verdana, sans-serif;">2) Test upgrade - 2 weeks</span><br />
<span style="font-family: Verdana, sans-serif;">3) Regression testing - 4 to 8 weeks depending on system complexity</span><br />
<span style="font-family: Verdana, sans-serif;">4) Production upgrade - 2 weeks</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">All in all, you are looking around 12 weeks to 18 weeks timeline. </span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><b>Planning:</b></span><br />
<span style="font-family: Verdana, sans-serif;">By now, you should have arrived at a conclusion on below items.</span><br />
<span style="font-family: Verdana, sans-serif;">1)DB upgrade to 11g along with uni-code</span><br />
<span style="font-family: Verdana, sans-serif;">2) Upgrade path - one step or two steps</span><br />
<span style="font-family: Verdana, sans-serif;">3) I need Actuate to BIP conversion</span><br />
<span style="font-family: Verdana, sans-serif;">4) I need T to ST engine script conversion</span><br />
<span style="font-family: Verdana, sans-serif;">5) I need to take care of CTI setup</span><br />
<span style="font-family: Verdana, sans-serif;">6) Engage QA team to review all regression tests scripts</span><br />
<span style="font-family: Verdana, sans-serif;">7) Plan your system architecture for DEV, TEST and PROD servers - number of app servers and DBs needed. </span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">It is advisable that you leave your current systems untouched and build brand new Databases and application servers for Siebel 8.1 setup.</span><br />
<br />
<span style="font-family: Verdana, sans-serif;"><b>Preparation:</b></span><br />
<span style="font-family: Verdana, sans-serif;">1) Build new 11g DB Unicode: <outside the scope of this discussion></span><br />
<span style="font-family: Verdana, sans-serif;">Engage your DBAs to prepare a brand new 11g with unicode database for you.</span><br />
<span style="font-family: Verdana, sans-serif;">2) Application server setup:</span><span style="font-family: Verdana, sans-serif;"><outside the scope of this discussion></span><br />
<span style="font-family: Verdana, sans-serif;">Engage your infrastructure team to build new Virtual machines for Windows 2008 R2 64 bit or Unix environment for your app servers as needed.</span><br />
<br />
<span style="font-family: Verdana, sans-serif;"><b>Execution:</b></span><br />
<span style="font-family: Verdana, sans-serif;"><b><u>1) Database setup:</u></b></span><br />
<span style="font-family: Verdana, sans-serif;">Copying from current 10g to 11g:</span><br />
<span style="font-family: Verdana, sans-serif;">If from non-unicode to unicode then follow below steps, (DBA experts to be engaged here)</span><br />
<span style="font-family: Verdana, sans-serif;">a. If you are doing non-unicode to unicode conversion then, do a dataexp from your current Siebel 10g database to create dmp files. </span><br />
<span style="font-family: Verdana, sans-serif;">b. From the dmp files export only the table schema into a file.</span><br />
<span style="font-family: Verdana, sans-serif;">c. Edit the table schema file containing SQLs to create tables to Change byte semantics on char and varchar2 columns to char semantics.</span><br />
<span style="font-family: Verdana, sans-serif;">d. Ask DBAs to run the edited schema file on the new 11g db to create tables.</span><br />
<span style="font-family: Verdana, sans-serif;">e. Now, using dataimp util import the data from dmp files into your 11g unicode database.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">If you are already having unicode DB then it's a straight dataexp from your current DB and dataimp onto your new 11g unicode database.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">NOTE: above is just for guidance, please engage Oracle DBAs who have experience in doing above. </span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><b><u>2) Running the Siebel DEV upgrade:</u> (a detailed blog on DEV upgrade will be posted soon)</b></span><br />
<span style="font-family: Verdana, sans-serif;">Prerequisites: </span><br />
<span style="font-family: Verdana, sans-serif;">Your DB preparation is done. You have Siebel tools 8.1.1.* software installed on DEV box. </span><br />
<span style="font-family: Verdana, sans-serif;">Go through Siebel bookshelf: </span><span style="font-family: Verdana, sans-serif;"><a href="http://docs.oracle.com/cd/E14004_01/books/PDF/8182UPG.pdf" target="_blank">Siebel Database Upgrade </a></span><span style="font-family: Verdana, sans-serif;"><a href="http://docs.oracle.com/cd/E14004_01/books/PDF/8182UPG.pdf" target="_blank">Guide</a> in detail to understand the whole process. </span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Below are the high level DEV upgrade steps:</span><br />
<span style="font-family: Verdana, sans-serif;"><b>Prepare application data</b>. These tasks prepare test data for migration. </span><br />
<span style="font-family: Verdana, sans-serif;"><b>Upgrade database (upgrep)</b>. You run the Database Configuration Wizard in upgrep mode. </span><span style="font-family: Verdana, sans-serif;">They perform a basic upgrade of the Siebel database schema and load repositories to prepare </span><span style="font-family: Verdana, sans-serif;">for the repository merge. Both upgrep and upgphys modes are run as a single step in the </span><span style="font-family: Verdana, sans-serif;">Database Configuration Utility. </span><br />
<span style="font-family: Verdana, sans-serif;"><b>Merge repository</b>. You use Siebel Tools to merge your existing repository with the repository in </span><span style="font-family: Verdana, sans-serif;">the new release. Postmerge utilities upgrade form applets and verify that applets and views are </span><span style="font-family: Verdana, sans-serif;">configured correctly. </span><br />
<span style="font-family: Verdana, sans-serif;"><b>Run postmerge utilities. </b>You use Siebel Tools to run a set of utilities that examine the merged </span><span style="font-family: Verdana, sans-serif;">repository. The utilities analyze your customizations and apply changes to them as needed to </span><span style="font-family: Verdana, sans-serif;">conform to the user interface in the new release. </span><br />
<span style="font-family: Verdana, sans-serif;"><b>Upgrade database (upgphys).</b> You run the Database Configuration Utilities in upgphys mode. </span><span style="font-family: Verdana, sans-serif;">They further upgrade the Siebel database with changes resulting from the repository merge and </span><span style="font-family: Verdana, sans-serif;">complete the database upgrade. </span><br />
<span style="font-family: Verdana, sans-serif;">The Database Configuration Utilities also generate the customer repository definition file and </span><span style="font-family: Verdana, sans-serif;">logical schema definition file that are used as input to the production test environment and </span><span style="font-family: Verdana, sans-serif;">production upgrades.</span><br />
<span style="font-family: Verdana, sans-serif;"><span style="color: red;"><br /></span></span>
<span style="color: red;"><span style="font-family: Verdana, sans-serif;">NOTE: During the synchronization process, custom columns in the Siebel Schema that are not </span><span style="font-family: Verdana, sans-serif;">in the Siebel Repository are not deleted but custom indexes in the Siebel Schema that are not in </span><span style="font-family: Verdana, sans-serif;">the Siebel Repository are deleted. </span></span><br />
<span style="color: red;"><span style="font-family: Verdana, sans-serif;"><br /></span></span>
<span style="font-family: Verdana, sans-serif;">> Validate, fix workflows and deploy.</span><br />
<span style="font-family: Verdana, sans-serif;">> Validate and correct all e-Script errors.</span><br />
<span style="font-family: Verdana, sans-serif;">> The Address entity is changed in Siebel 8.1 in comparison with Siebel 7.*. You need to make required repository changes needed to support it. Vanilla changes will be taken care by the upgrade process it self.</span><br />
<span style="font-family: Verdana, sans-serif;">> Compile the srf and bring your application up. </span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Do all rounds of unit tests and fix miss aligned applets.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><u><b>3) Test upgrade:</b></u></span><br />
<span style="font-family: Verdana, sans-serif;">Prerequisites: </span><br />
<span style="font-family: Verdana, sans-serif;">Your Test DB preparation is done as explained in </span><span style="font-family: Verdana, sans-serif;"><u>1) Database setup</u></span><span style="font-family: Verdana, sans-serif;"> setup under Execution section for DEV upgrade.</span><br />
<span style="font-family: Verdana, sans-serif;">You have Siebel server, web server 8.1.1.* softwares installed on TEST boxes.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Below are the high level test steps:</span><br />
<span style="font-family: Verdana, sans-serif;"><b>Prepare application data. </b>These tasks are about preparing application data for migration. </span><br />
<span style="font-family: Verdana, sans-serif;"><b>Upgrade database (upgrep).</b> You run the Database Configuration Utilities in upgrep mode. </span><br />
<span style="font-family: Verdana, sans-serif;">They perform a basic upgrade of the Siebel database schema:</span><br />
<span style="font-family: Verdana, sans-serif;">> You run the utility in Prepare for Production mode before running it in upgrep mode. The </span><span style="font-family: Verdana, sans-serif;">Prepare for Production mode reviews the upgraded development environment database </span><span style="font-family: Verdana, sans-serif;">schema and creates input files. The upgrep mode uses these files to make schema changes </span><span style="font-family: Verdana, sans-serif;">to the Siebel database.</span><br />
<span style="font-family: Verdana, sans-serif;">> The upgrep mode imports the repository and schema definition files from the development </span><span style="font-family: Verdana, sans-serif;">environment upgrade. It uses these files to upgrade the Siebel database. </span><br />
<span style="font-family: Verdana, sans-serif;">> The upgphys portion runs automatically. It makes several administrative changes to table </span><span style="font-family: Verdana, sans-serif;">data, including updating the schema version in S_APP_VER. It does not make schema </span><span style="font-family: Verdana, sans-serif;">changes.</span><span style="font-family: Verdana, sans-serif;"> </span><br />
<span style="font-family: Verdana, sans-serif;">> Migrate the Address data from old table </span><span style="font-family: Verdana, sans-serif;">S_ADDR_ORG </span><span style="font-family: Verdana, sans-serif;">to new </span><span style="font-family: Verdana, sans-serif;">S_ADDR_PER table. </span><br />
<div>
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<span style="font-family: Verdana, sans-serif;">> Deploy the new srf and bring the application back up.</span><br />
<span style="font-family: Verdana, sans-serif;">> Deploy all the required workflows.</span><br />
<span style="font-family: Verdana, sans-serif;">> Make the required administration changes to support your production like configurations - all custom comps and tuning goes here.</span><br />
<span style="font-family: Verdana, sans-serif;">> Ask DBAs to do the DB tuning - schema and system stats to be gathered.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Carry out multiple iterations of regression tests until you are satisfied.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">All set for go-live? Production upgrade is no different than test one. As you have seen, the most time consuming task is DEV upgrade. Once you have nailed it, the test and prod upgrades should be much easier.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">I will publish a detailed post on DEV upgrade sooner. Till then, take care!</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Shiv</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<br />
<br />
<br />
<br />
<br />
<br /></div>
</div>
Shttp://www.blogger.com/profile/13636876457402555607noreply@blogger.com0tag:blogger.com,1999:blog-2548259877820684769.post-3858808317957559482014-06-18T13:59:00.001+01:002014-07-04T15:19:21.032+01:00The need for Open UI Mobile - Siebel CRM on any Device! <div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: left;">
<span style="font-family: Verdana, sans-serif;">The recent studies show that the World is </span><i style="font-family: Verdana, sans-serif;">Getting Even More Mobile!</i><span style="font-family: Verdana, sans-serif;"> See below trend analysis on </span><a href="http://www.businessinsider.com/mobile-will-eclipse-desktop-by-2014-2012-6" style="font-family: Verdana, sans-serif;" target="_blank">business insider</a><span style="font-family: Verdana, sans-serif;"> - Pretty soon Tables/Smartphone will out-sell PCs! </span></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://fm.cnbc.com/applications/cnbc.com/resources/files/2014/01/22/comscore.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><span style="font-family: Verdana, sans-serif;"><img border="0" src="http://fm.cnbc.com/applications/cnbc.com/resources/files/2014/01/22/comscore.jpg" height="290" width="400" /></span></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><div align="center" style="margin: 2.9pt 0cm 0.0001pt; vertical-align: baseline;">
<span style="font-family: Verdana, sans-serif; font-size: xx-small;">Pretty soon Tablets/Smartphones will out-sell PCs!</span><span style="font-family: Verdana, sans-serif; font-size: small;"> <o:p></o:p></span></div>
</td></tr>
</tbody></table>
<div style="text-align: left;">
<span style="font-family: Verdana, sans-serif;">Take me and you! apart from your usual office hours - where do you spend most of your time - on your PC/laptop or on your tablets/smart phones? Let's face the reality, our users want information on their finger tips - where ever and which ever device they are using.</span></div>
<div style="text-align: left;">
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"></span></div>
<div style="text-align: left;">
<span style="font-family: Verdana, sans-serif;">Oracle has innovated a brand new architecture to bring your Favourite Siebel which was bounded to your </span><span style="font-family: Verdana, sans-serif;">Internet Explorer 8 on </span><span style="font-family: Verdana, sans-serif;">Windows - to a true device and browser independent platform - called Open UI! </span></div>
<div style="text-align: left;">
<b style="font-family: Verdana, sans-serif;"><br /></b></div>
<div style="text-align: left;">
<b style="font-family: Verdana, sans-serif;">Siebel Open UI</b><span style="font-family: Verdana, sans-serif;"> for sure is the next big thing in Siebel CRM world! </span><span style="font-family: Verdana, sans-serif;">Siebel Open UI </span><span style="font-family: Verdana, sans-serif;">is built on an open architecture that </span><span style="font-family: Verdana, sans-serif;">can run any Siebel business application on any Web browser that is compliant with </span><span style="font-family: Verdana, sans-serif;">the World Wide Web Consortium (W3C) standards. It can display data in Web browsers that support </span><span style="font-family: Verdana, sans-serif;">Web standards on various operating systems, such as Windows, Mac OS, or Linux. For example:</span></div>
<span style="font-family: Verdana, sans-serif;">■ Internet Explorer 9 onwards</span><br />
<span style="font-family: Verdana, sans-serif;">■ Google Chrome</span><br />
<span style="font-family: Verdana, sans-serif;">■ Mozilla Firefox</span><br />
<span style="font-family: Verdana, sans-serif;">■ Apple Safari and many more modern browsers</span><span style="font-family: Verdana, sans-serif;"></span><br />
<div style="text-align: left;">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<span style="font-family: Verdana, sans-serif;">Please see my previous blogs to have more discussions on Open UI itself. </span><br />
<span style="font-family: Verdana, sans-serif;">- </span><a href="http://siebel-openui.blogspot.co.uk/2014/06/the-need-for-siebel-openui.html" style="font-family: Verdana, sans-serif;" target="_blank">The need for Siebel Open UI</a><br />
<span style="font-family: Verdana, sans-serif;">- <a href="http://siebel-openui.blogspot.co.uk/2014/06/siebel-upgrade-vs-moving-into-cloud-my.html" target="_blank">Siebel upgrade Vs moving to cloud assessment</a></span><br />
<div>
<br /></div>
<span style="font-family: Verdana, sans-serif;">So, what is Open UI Mobile?</span><br />
<span style="font-family: Verdana, sans-serif;">It's a Siebel mobile application which can work in connected or disconnected mode. This application is built on top of jQuery Mobile user interface system. jQuery Mobile is a HTML5-based user interface system designed to make responsive web sites and apps that are accessible on all smartphone, tablet and desktop devices.</span><br />
<br />
<span style="font-family: Verdana, sans-serif;">What do you get with Open UI Mobile?</span><br />
<span style="font-family: Verdana, sans-serif;">It's a device independent web based mobile application for Siebel. So you don't need to worry to build custom application for each device. It works on all modern tablets and smart phones seamlessly</span><span style="font-family: Verdana, sans-serif;">.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://jquerymobile.com/resources/devices.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://jquerymobile.com/resources/devices.png" height="253" width="320" /></a></div>
<br />
<a name='more'></a><br />
<br />
<span style="font-family: Verdana, sans-serif;">Your web application leverages all native device capabilities like </span><br />
<span style="font-family: Verdana, sans-serif;">- Camera integration</span><br />
<span style="font-family: Verdana, sans-serif;">- Signature capturing</span><br />
<span style="font-family: Verdana, sans-serif;">- making calls, sending text messages and emails directly from your Siebel Account or Contact</span><br />
<span style="font-family: Verdana, sans-serif;">- native map integration to drive you to the customer location</span><br />
<br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi336cjqT-7gMZDmFWjcuZr7n_Rca5nAXv8azJ99DG0aQjPAel8bTCI_EwLh3Oa2g-J3lVjfOajJZWeGd0eCjD5mj-I4t2fk3fdA0c5kEblv_IV768bM2cJYtdu2WFHHJLUByjQUVycceEb/s1600/NativeTab.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi336cjqT-7gMZDmFWjcuZr7n_Rca5nAXv8azJ99DG0aQjPAel8bTCI_EwLh3Oa2g-J3lVjfOajJZWeGd0eCjD5mj-I4t2fk3fdA0c5kEblv_IV768bM2cJYtdu2WFHHJLUByjQUVycceEb/s1600/NativeTab.png" height="187" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Use all Native Device Capabilities on your mobile app!</td></tr>
</tbody></table>
<span style="font-family: Verdana, sans-serif;">Take a look at below variations of Open UI Mobile on ipad</span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9ZTyvo80Ddacktk4Eqmv0lT-SdARhUCB5HdR3ti-Hc-GxfN1p27pfVoF6PsdRUk5kRCj3NbIsuE8rlzkOpSYdwh_RL9KjewV6RCeC_Bi8uylV63pX0RrxvYfo_unUQeVbTJ54eKNp4t8o/s1600/OOB+Tab.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9ZTyvo80Ddacktk4Eqmv0lT-SdARhUCB5HdR3ti-Hc-GxfN1p27pfVoF6PsdRUk5kRCj3NbIsuE8rlzkOpSYdwh_RL9KjewV6RCeC_Bi8uylV63pX0RrxvYfo_unUQeVbTJ54eKNp4t8o/s1600/OOB+Tab.png" height="332" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;">Tablet: Out of the Box Open UI Example</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgfRj844Q2bnHfu5Bfd5op9svcFdXe92R7VvPheLK7GkZ_A4wgm7ESokhRoanmrdNDDtzOPK-j8kz-NCtRPK2fRAMIbqNM2eTxECyn879Gac9T-3_oZzgI6pI4FbwCih4x6AYtMeDYIUNQ/s1600/Custom+Tab.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgfRj844Q2bnHfu5Bfd5op9svcFdXe92R7VvPheLK7GkZ_A4wgm7ESokhRoanmrdNDDtzOPK-j8kz-NCtRPK2fRAMIbqNM2eTxECyn879Gac9T-3_oZzgI6pI4FbwCih4x6AYtMeDYIUNQ/s1600/Custom+Tab.png" height="290" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;">Tablet: Custom, Tiles-based Example</td></tr>
</tbody></table>
<b><br /></b>
<br />
<div style="text-align: left;">
<span style="font-family: Verdana, sans-serif;"><b>So, what do you need to get Open UI mobile?</b></span><br />
<span style="font-family: Verdana, sans-serif;"><b>Step 1: Upgrade to the latest Siebel innovation pack 2014. </b></span><br />
<span style="font-family: Verdana, sans-serif;">It's 8.1.1.11 with PS7. Oracle is releasing patch sets almost every month to add more and more enhancements to the Open UI framework. Read my previous blogs for deciding on Siebel upgrade and making a business case. </span><br />
<span style="font-family: Verdana, sans-serif;">- </span><a href="http://siebel-openui.blogspot.co.uk/2014/06/the-need-for-siebel-openui.html" style="font-family: Verdana, sans-serif;" target="_blank">The need for Siebel Open UI</a><br />
<span style="font-family: Verdana, sans-serif;">- <a href="http://siebel-openui.blogspot.co.uk/2014/06/siebel-upgrade-vs-moving-into-cloud-my.html" target="_blank">Siebel upgrade Vs moving to cloud assessment</a></span></div>
<div style="text-align: left;">
<span style="font-family: Verdana, sans-serif;"></span><br />
<span style="font-family: Verdana, sans-serif;"></span></div>
<b><span style="font-family: Verdana, sans-serif;"></span><span style="font-family: Verdana, sans-serif;">Step 2: Enable Open UI Mobile</span></b><br />
<span style="font-family: Verdana, sans-serif;">Oracle has shipped new Application (Siebel tools --> Application) objects for each CRM vertical.</span><br />
<span style="font-family: Verdana, sans-serif;">></span><span style="font-family: Verdana, sans-serif;">Siebel Sales Enterprise Mobile - </span><span style="font-family: Verdana, sans-serif;">The Siebel Sales Application for OpenUI Mobile</span><br />
<span style="font-family: Verdana, sans-serif;">></span><span style="font-family: Verdana, sans-serif;">Siebel Service for Mobile - The Siebel Service Application for OpenUI Mobile</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">You know that behind every Siebel HI application, there is an Object Manager component? For example, Siebel sales has SSEObjMgr_enu object manager. So, what Oracle has done is they have provided a set of component params to switch Open UI or Open UI Mobile on. </span><br />
<span style="font-family: Verdana, sans-serif;">EnableOpenUI - Setting to TRUE will true your existing Siebel HI into Open UI enabled</span><br />
<span style="font-family: Verdana, sans-serif;">MobileApplication - Setting </span><span style="font-family: Verdana, sans-serif;">EnableOpenUI and </span><span style="font-family: Verdana, sans-serif;">to TRUE will enable Open UI Mobile.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">To have Open UI enabled: </span><br />
<span style="font-family: Verdana, sans-serif;">> Clone your current Siebel HI Object Manager</span><br />
<span style="font-family: Verdana, sans-serif;">> Update parameter EnableOpenUI to TRUE</span><br />
<span style="font-family: Verdana, sans-serif;">> setup a new URL on your webserver to point to this new Object Manager</span><br />
<span style="font-family: Verdana, sans-serif;">> Restart everything and see</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">To have Open UI Mobile enabled: </span><br />
<span style="font-family: Verdana, sans-serif;">> Clone your current Siebel HI Object Manager</span><br />
<span style="font-family: Verdana, sans-serif;">> Update comp param EnableOpenUI to TRUE</span><br />
<span style="font-family: Verdana, sans-serif;">> Update comp param </span><span style="font-family: Verdana, sans-serif;">MobileApplication </span><span style="font-family: Verdana, sans-serif;">to TRUE</span><br />
<span style="font-family: Verdana, sans-serif;">> Update comp param ApplicationName to '</span><span style="font-family: Verdana, sans-serif;">Siebel Sales for Mobile' or '</span><span style="font-family: Verdana, sans-serif;">Siebel Service for Mobile' depending on which application you want to enable</span><br />
<span style="font-family: Verdana, sans-serif;">> setup a new URL on your webserver to point to this new Object Manager</span><br />
<span style="font-family: Verdana, sans-serif;">> Restart everything and see</span><br />
<div>
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<span style="font-family: Verdana, sans-serif;">And see the results on your ipad or any device you got! You will be amazed as to what you have achieved and how easily and quickly! I will share another blog to detail all the steps needed to achieve above and how you can test it.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Note that you will have to configure/customize your out of the box to meet your business needs. I will publish another blog on customization for Open UI Mobile in near future. See below screenshots for some of the customizations collated from various sources.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Till then, thanks for going though my blog! Keep reading! Keep sharing :)</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Shiv</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNH0daT12KeQMB_3JHzlgaz0L_PXprOf9hMY7YGWkXM2mPGedeMP85uZbG1ThhyphenhyphenL02Qkj_r0ZeqLE09ncP4ZVFNtkk6x8Nxl7BnTPsn2bSyhAbNteIXRZUH3hG-gXM9cl5pI_-jmW1ZBJr/s1600/Cust+1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNH0daT12KeQMB_3JHzlgaz0L_PXprOf9hMY7YGWkXM2mPGedeMP85uZbG1ThhyphenhyphenL02Qkj_r0ZeqLE09ncP4ZVFNtkk6x8Nxl7BnTPsn2bSyhAbNteIXRZUH3hG-gXM9cl5pI_-jmW1ZBJr/s1600/Cust+1.png" height="263" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXUDHj8bj1aLK_HQCQ5qnNySTLfhDQUouLvGwYU1hjlDMoY4rEzvzLCF9IyjkzvCwnag6Y8J_w8P_DPOu9PPr20nuoblwv_6pf-jur07HM7vbMebdEBsbzjBHMU6LcqnsC2RBUiHt6rhvQ/s1600/Cust+2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXUDHj8bj1aLK_HQCQ5qnNySTLfhDQUouLvGwYU1hjlDMoY4rEzvzLCF9IyjkzvCwnag6Y8J_w8P_DPOu9PPr20nuoblwv_6pf-jur07HM7vbMebdEBsbzjBHMU6LcqnsC2RBUiHt6rhvQ/s1600/Cust+2.png" height="323" width="640" /></a></div>
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;"></span>
</div>
Shttp://www.blogger.com/profile/13636876457402555607noreply@blogger.com1tag:blogger.com,1999:blog-2548259877820684769.post-36752801022198836282014-06-13T13:35:00.001+01:002014-07-03T15:48:51.293+01:00The need for Siebel OpenUI<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="color: #0b5394; font-family: Verdana, sans-serif;"><b>Business Challenges with the current Siebel interface</b></span><br />
<span style="background-color: white; color: #0b5394; font-family: Verdana, sans-serif;"><br /></span>
<span style="color: #0b5394; font-family: Verdana, sans-serif;">The main issue we are facing is user adoption related. The Siebel look and feel is completely outdated and offers very rigid User Interface. This leads to the need for more training time and effort. Increased Time for Performing Tasks. Moreover, users at time feel Siebel as a policing tool and not a tool to automate and improve their efficiency. You might have heard many saying "I need to log this SR/Activity because my boss says" or "I manage my work on excel and later in the day dump onto Siebel" etc etc. This is all due to usability of the application. Why users prefer excel over Siebel screen to log info?</span><br />
<span style="background-color: white; color: #0b5394; font-family: Verdana, sans-serif;"><br /></span>
<span style="background-color: white; color: #0b5394; font-family: Verdana, sans-serif;">The second issue is it's Infrastructure Dependency. As you know, Siebel Hight Interactive version can work only on outdated IE8 and Windows platform. Due to this we can’t use other browser nor have IE upgraded -leading to inability to access other modern HTML5 based applications like MS SharePoint, workday or attask etc.</span>
<span style="background-color: white; color: #0b5394; font-family: Verdana, sans-serif;">
</span>
<br />
<div style="margin: 0cm; text-align: justify; vertical-align: baseline;">
<span style="background-color: white; color: #0b5394; font-family: Verdana, sans-serif;"><br /></span></div>
<span style="background-color: white; color: #0b5394; font-family: Verdana, sans-serif;">
</span>
<br />
<div style="margin: 0cm; vertical-align: baseline;">
<span style="background-color: white; color: #0b5394; font-family: Verdana, sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNOAFtW0xJ1D7Xt5wXstjRWRuD1bvibAri4ZYH5hbEhXu-t4WXxUYdstcYSTPzk8N7E7aatZQ1cZKK205kQiN6KxaNjynyfMfLI7RTW7SB2qd-aPQwJsjC89Xy8o34KYkfVfcOLfEVQQue/s1600/mac.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: justify;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNOAFtW0xJ1D7Xt5wXstjRWRuD1bvibAri4ZYH5hbEhXu-t4WXxUYdstcYSTPzk8N7E7aatZQ1cZKK205kQiN6KxaNjynyfMfLI7RTW7SB2qd-aPQwJsjC89Xy8o34KYkfVfcOLfEVQQue/s1600/mac.png" height="157" width="200" /></a></span><br />
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: white; color: #0b5394; font-family: Verdana, sans-serif;"><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; font-family: Verdana, sans-serif; line-height: 115%;"><b>Modernize with Siebel
Open UI</b><span style="font-size: x-large;"><o:p></o:p></span></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="background-color: white; color: #0b5394; font-family: Verdana, sans-serif;"><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; font-family: Verdana, sans-serif; line-height: 115%;"><span style="line-height: normal;"><br /></span></span>
Oracle has done a great job in bringing up this new UI framework for Siebel called "Open UI". As the name suggests - Oracle aims to make Siebel work on any browser and any device! </span><span style="color: #0b5394; font-family: Verdana, sans-serif;">Open UI transforms Siebel into a modern and intuitive CRM platform, with next-generation mobile support for Tablets and Smartphones.Open UI allows Siebel to run in all modern web browsers including IE9, Chrome, Firefox and Safari. It removes the need for Active X controls and allows Siebel to present a transformed and richer UI based on modern web technology.</span><br />
<span style="color: #0b5394; font-family: Verdana, sans-serif;"><br /></span>
<span style="color: #0b5394; font-family: Verdana, sans-serif;">Not only that the UI can be completely tailored based on your organization needs. This is all possible due to the open and modern web architecture that Oracle has adapted. It's HTML5, CSS and Java script based. Using this, organizations can build various themes - which offer different layout and colours to the screens. Open UI greatly enhances user experience and productivity, taking advantage of the latest web innovations with device driven layouts, intuitive navigation, touch optimization and enhanced accessibility support – same URL, different UI.</span></div>
<div class="separator" style="clear: both; text-align: justify;">
<span style="background-color: white; color: #0b5394; font-family: Verdana, sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghlv9oZ6EMXca5kTmOYjKV3ZO3BJJwL8aMtYN9cj8JmJh9LdhAv2bvmRvZYF82MDlHSEqmfthgfeZVKhSPhr9FAuVZ6IXbJCGBRbtod4zY90TQgI7VXHFlawS3YxPVj2Cjx7M_ux4xWvLb/s1600/ipad.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: justify;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghlv9oZ6EMXca5kTmOYjKV3ZO3BJJwL8aMtYN9cj8JmJh9LdhAv2bvmRvZYF82MDlHSEqmfthgfeZVKhSPhr9FAuVZ6IXbJCGBRbtod4zY90TQgI7VXHFlawS3YxPVj2Cjx7M_ux4xWvLb/s1600/ipad.png" height="112" width="200" /></a><span style="color: #0b5394; text-align: justify;"></span></span></div>
<a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: justify;"><br /></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: justify;"><br /></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><span style="background-color: white; color: #0b5394; font-family: Verdana, sans-serif;"><span style="text-align: justify;">The best of all - no license cost to use Open UI! But yes Open UI is available only beyond Siebel 8.1.1.9 versions. So, if you are on 7.x or 8.0.x versions then, you need to undergo a painful upgrade process. </span></span><br />
<a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: justify;"><br /></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: justify;"><br /></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><span style="background-color: white; color: #0b5394; font-family: Verdana, sans-serif;"><span style="text-align: justify;"><br /></span>
<span style="text-align: justify;">In my company, we upgraded from Siebel 7.8 to Siebel 8.1.1.7 last year. I did it with the help of implementation partners and a small in-house development team. Month 1 for DEV upgrade - Month 2 TEST upgrade - Month 2,3&4 full testing - End of Month 4 go-live. It took 4-5 months from start to finish. </span></span><br />
<span style="background-color: white; color: #0b5394; font-family: Verdana, sans-serif;"><span style="text-align: justify;"><br /></span></span>
<span style="background-color: white; color: #0b5394; font-family: Verdana, sans-serif;"><span style="text-align: justify;">See my other <a href="http://siebel-openui.blogspot.co.uk/2014/06/siebel-upgrade-vs-moving-into-cloud-my.html" target="_blank">blog on upgrade assessment</a> that I did and why picked Siebel upgrade as against to moving into cloud based solutions here. One thing for sure, Siebel upgrade is not a big deal as long as you know what you got to do and engage right partners to help. Especially with the IRM (Incremental Repository Merge) utility that Oracle has released, it makes upgrade very simple and easy. </span></span><br />
<span style="background-color: white; color: #0b5394; font-family: Verdana, sans-serif;"><span style="text-align: justify;"><br /></span>
<span style="text-align: justify;">After that we have patched 8.1.1.10 and 8.1.1.11 as and when they became available to leverage all the enhancements and bug fixes on Open UI. </span></span><br />
<span style="background-color: white; color: #0b5394; font-family: Verdana, sans-serif;"><span style="text-align: justify;"><br /></span>
<span style="text-align: justify;">Enough of upgrade story, let's continue with Open UI. </span></span><br />
<span style="background-color: white; color: #0b5394; font-family: Verdana, sans-serif;"><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: justify;"><br /></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><span style="text-align: justify;"><br /></span></span><br />
<a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: justify;"><br /></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><span style="background-color: white; color: #0b5394; font-family: Verdana, sans-serif;"><span style="text-align: justify;">Again! Oracle has done a clever job in designing the default theme. The default theme they have built looks more or less like Siebel HI. This is mainly to avoid huge costs on user trainings. See below screenshots for example,</span></span><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEjwILbcWR4w_4uxiy7fw6AZQCdeWn6lKnzoxbK-r3RLtfAzFVWvhy5EqPlHudEzG-M7OVo_huztL-Dq-hf591EQ4bfB_kwgrV4nOks-Efgvevgnj2GQE2RoqNlEmhXB8e2f0AsVN60mvY/s1600/Siebel-Accounts.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEjwILbcWR4w_4uxiy7fw6AZQCdeWn6lKnzoxbK-r3RLtfAzFVWvhy5EqPlHudEzG-M7OVo_huztL-Dq-hf591EQ4bfB_kwgrV4nOks-Efgvevgnj2GQE2RoqNlEmhXB8e2f0AsVN60mvY/s1600/Siebel-Accounts.png" height="409" width="640" /></a></div>
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPW-hTavKyIL_ft7g57ZnVzFfIRSvoZUNwSlPTXQ2mEPR6K7dmeAr9dOIg9tUs7EOE8VaRNNWsjyhY9jOldAMBpW01nx1yQb9MprV33Wefg1eGnsPwYViYMzAschH1V2KYmTWf-qNjZ28c/s1600/open-ui-glamour-shot-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPW-hTavKyIL_ft7g57ZnVzFfIRSvoZUNwSlPTXQ2mEPR6K7dmeAr9dOIg9tUs7EOE8VaRNNWsjyhY9jOldAMBpW01nx1yQb9MprV33Wefg1eGnsPwYViYMzAschH1V2KYmTWf-qNjZ28c/s1600/open-ui-glamour-shot-1.png" float="right" height="516" width="640" /></a>
<br />
<div style="text-align: justify;">
<span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="background-color: white;">
</span></span>
<br />
<div style="text-align: justify;">
<div style="color: black; font-family: 'Times New Roman'; text-align: left;">
<span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="background-color: white;"><span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="text-align: justify;"></span></span></span></span><br />
<a name='more'></a><span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="background-color: white;"><span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="text-align: justify;"><br /></span></span></span></span>
<span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="background-color: white;"><span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="text-align: justify;">So, what it takes to have Open UI in your organization? Again, Oracle has made it so simple. You know that behind every Siebel HI application, there is an Object Manager component? For example, Siebel sales has SSEObjMgr_enu object manager. So, what Oracle has done is they have provided a component param called EnableOpenUI for all the Object Managers. So, if you want to have both your current Siebel HI and Open UI then, </span></span></span></span><br />
<span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="background-color: white;"><span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="text-align: justify;">> Clone your current Siebel HI Object Manager</span></span></span></span><br />
<span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="background-color: white;"><span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="text-align: justify;">> Update parameter EnableOpenUI to TRUE</span></span></span></span><br />
<span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="background-color: white;"><span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="text-align: justify;">> setup a new URL on your webserver to point to this new Object Manager</span></span></span></span><br />
<span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="background-color: white;"><span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="text-align: justify;">> Restart everything and see</span></span></span></span></div>
<div style="text-align: left;">
<div style="color: black; font-family: 'Times New Roman';">
<span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="background-color: white;"><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: justify;"><br /></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><span style="color: #0b5394; font-family: Verdana, sans-serif;"><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: justify;"><br /></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><span style="text-align: justify;"><br /></span><span style="text-align: justify;">And see the results! You will be amazed! I will post another blog detailing all technical bits to do above. But for now, it's just the benefits of Open UI that I wanted to discuss today.</span></span></span></span></div>
<div style="color: black; font-family: 'Times New Roman';">
<span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="background-color: white;"><span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="text-align: justify;"><br /></span></span></span></span></div>
<span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="background-color: white;"><span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="text-align: justify;"> So for a while, until all hidden processes, issues are uncovered and fixed on Open UI you can keep both Siebel HI and Open UI running together. Once all your users are happy with Open UI, you can retire the traditional Siebel HI forever.</span></span></span></span><br />
<span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="background-color: white;"><span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="text-align: justify;"><br /></span></span>
<span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="text-align: justify;">By now, you may have realized Open UI is a natural extension to existing Siebel investments. It's like putting a new skin to your existing application. All your customizations, configurations integration investments stay in tact.</span></span></span></span><br />
<span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="background-color: white;"><span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="text-align: justify;"><br /></span></span>
<span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="text-align: justify;">Here is the finishing summary to compare HI Vs OUI:</span></span></span></span><br />
<br />
<div style="text-align: justify;">
</div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy-oJqlXtCNCFPD0K54YnEx_beF1m8YpKV1EdY2O-3B5p5dfOzTbzVPeIUJeRdCGUP98LU9aRN5mAtRNq7eZ1-Zxu9TrrGmvo87Kgjl-QaShGtBliakSQCTDmo_at7RC9LYL4mWuecD3NP/s1600/Summary.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy-oJqlXtCNCFPD0K54YnEx_beF1m8YpKV1EdY2O-3B5p5dfOzTbzVPeIUJeRdCGUP98LU9aRN5mAtRNq7eZ1-Zxu9TrrGmvo87Kgjl-QaShGtBliakSQCTDmo_at7RC9LYL4mWuecD3NP/s1600/Summary.png" height="440" width="640" /></a><span style="color: #0b5394; font-family: Verdana, sans-serif;"><span style="background-color: white;"></span></span><br />
<span style="background-color: white; color: #0b5394; font-family: Verdana, sans-serif; text-align: justify;"><br /></span>
<br />
<div class="MsoNormal">
<span style="background: white; color: #0b5394; font-family: "Verdana","sans-serif"; font-size: 13.5pt; line-height: 115%;">In the subsequent blogs,
I will talk about the overall strategy needed to adapt Open UI. Stay tuned!!! See below screenshots for some of the customizations collated from various
sources.</span><o:p></o:p></div>
<span style="background-color: white; color: #0b5394; font-family: Verdana, sans-serif; text-align: justify;"><br /></span>
<span style="background-color: white; color: #0b5394; font-family: Verdana, sans-serif; text-align: justify;">Shiv</span><br />
<span style="background-color: white; color: #0b5394; font-family: Verdana, sans-serif; text-align: justify;"><br /></span>
<span style="background-color: white; color: #0b5394; font-family: Verdana, sans-serif; text-align: justify;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglMAJuNw63VAOLoLI6bIOkbuEggcQapLZO2Cr9VTA1o9ypctwv_fRg-QjTZjbCLIlIRMh4Faf0nIIk-oRAiKY-F7auqwIIvNbsweez_sGZeMV3WQ1mXtISRH_3nqPGloxma2I0ymlx4MYn/s1600/Cust+1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglMAJuNw63VAOLoLI6bIOkbuEggcQapLZO2Cr9VTA1o9ypctwv_fRg-QjTZjbCLIlIRMh4Faf0nIIk-oRAiKY-F7auqwIIvNbsweez_sGZeMV3WQ1mXtISRH_3nqPGloxma2I0ymlx4MYn/s1600/Cust+1.png" height="403" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB7n0reE_TQsaheQ1_sUEotgZSVsdWKzIcUZbXkKW7QNHMaC4lnbmWEqImRMd5L7heoDbDzkLPu1lwVCgrSuy7mBrZgZs-eVfDQseLJg6swYMvORSmdKmBYTurVbVPaOb_Bwh-OQpbx2LU/s1600/Cust+2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB7n0reE_TQsaheQ1_sUEotgZSVsdWKzIcUZbXkKW7QNHMaC4lnbmWEqImRMd5L7heoDbDzkLPu1lwVCgrSuy7mBrZgZs-eVfDQseLJg6swYMvORSmdKmBYTurVbVPaOb_Bwh-OQpbx2LU/s1600/Cust+2.png" height="388" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZKudyiNc7Y1LZ25PwyoQX_J7_L39XmoCcY5AiubIN9YsDOmIZYWiVulX6zRSMD7aa0jXeouvH4kK2L-IuU0gitHQm7wNlZvoMY543rv9ocm28iNgQ-8VRqLpR51ZIMXrMFeWP1FlcPwtI/s1600/Cust+3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZKudyiNc7Y1LZ25PwyoQX_J7_L39XmoCcY5AiubIN9YsDOmIZYWiVulX6zRSMD7aa0jXeouvH4kK2L-IuU0gitHQm7wNlZvoMY543rv9ocm28iNgQ-8VRqLpR51ZIMXrMFeWP1FlcPwtI/s1600/Cust+3.png" height="420" width="640" /></a></div>
</div>
</div>
</div>
<div style="margin-bottom: .0001pt; margin: 0cm; vertical-align: baseline;">
<a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.blogger.com/blogger.g?blogID=2548259877820684769" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
</div>
<div class="separator" style="clear: both; text-align: center;">
<b></b>
</div>
<o:p></o:p>
</div>
<!-- Blogger automated replacement: "https://images-blogger-opensocial.googleusercontent.com/gadgets/proxy?url=http%3A%2F%2F1.bp.blogspot.com%2F-UFMdYnKFql4%2FU5rQabReYqI%2FAAAAAAAAOfU%2F6m-R2YASRyo%2Fs1600%2Fmac.png&container=blogger&gadget=a&rewriteMime=image%2F*" with "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNOAFtW0xJ1D7Xt5wXstjRWRuD1bvibAri4ZYH5hbEhXu-t4WXxUYdstcYSTPzk8N7E7aatZQ1cZKK205kQiN6KxaNjynyfMfLI7RTW7SB2qd-aPQwJsjC89Xy8o34KYkfVfcOLfEVQQue/s1600/mac.png" --><!-- Blogger automated replacement: "https://images-blogger-opensocial.googleusercontent.com/gadgets/proxy?url=http%3A%2F%2F4.bp.blogspot.com%2F-M16eKdAKq9E%2FU5rQbPmrNNI%2FAAAAAAAAOfY%2FEcaDUofrd18%2Fs1600%2Fipad.png&container=blogger&gadget=a&rewriteMime=image%2F*" with "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghlv9oZ6EMXca5kTmOYjKV3ZO3BJJwL8aMtYN9cj8JmJh9LdhAv2bvmRvZYF82MDlHSEqmfthgfeZVKhSPhr9FAuVZ6IXbJCGBRbtod4zY90TQgI7VXHFlawS3YxPVj2Cjx7M_ux4xWvLb/s1600/ipad.png" -->Shttp://www.blogger.com/profile/13636876457402555607noreply@blogger.com1tag:blogger.com,1999:blog-2548259877820684769.post-29788640800731892402014-06-12T14:01:00.000+01:002014-07-03T15:49:03.704+01:00Siebel Upgrade Vs moving into cloud - my analysis!<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="margin-bottom: .0001pt; margin: 0cm;">
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Verdana, sans-serif;">I have been working in Siebel
world for almost 12 year now. I am a big fan of Siebel architecture and the
flexibility this product offers to cater for all sorts of weird business
needs. I have played various roles including developer, designer, architect
and functional expert. Presently working as CRM Manager at CHEP (www.chep.com)
looking after the Siebel delivery.</span></div>
<div style="margin: 0cm 0cm 0.0001pt;">
<o:p></o:p></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Verdana, sans-serif;">Last year, in my company we
were on Siebel 7.8 version and I was thrown into a situation – do we really
need to upgrade Siebel or throw it and bring other cloud based solutions. So, I
decided to go to the bottom of this analysis and conclude what is best for the organization.
I picked up all the leading CRM suites available in the market and did a round
1 bird’s eye view comparison and we decided to stick to two leading could
providers salesforce and CRMoD by oracle and of course existing Siebel.<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<!--[if gte vml 1]><v:shapetype
id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="Picture_x0020_1" o:spid="_x0000_i1025" type="#_x0000_t75"
style='width:451.5pt;height:198pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\badlis\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--><span style="font-family: Verdana, sans-serif;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMnyBYWg4tXfGfbCbjDVfNmiSG3Baww0QnSsMv0wAovRpv20ETp8kaoLaQ-E9A-YpOGycPl25fcEMNX5FPxlQMVRxpVtyI05BIqC5dINrGIGjExLLyB8COliCeNN0tHxcSgbGA2dclt4CZ/s1600/CRMComp.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMnyBYWg4tXfGfbCbjDVfNmiSG3Baww0QnSsMv0wAovRpv20ETp8kaoLaQ-E9A-YpOGycPl25fcEMNX5FPxlQMVRxpVtyI05BIqC5dINrGIGjExLLyB8COliCeNN0tHxcSgbGA2dclt4CZ/s1600/CRMComp.jpg" height="175" width="400" /></a></div>
<br />
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br />
<a name='more'></a><br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Verdana, sans-serif;">It followed by series of workshops,
POCs and meetings with Oracle & salesforce.com. As you know, I can be biased towards Siebel –
but I took a neutral stand to evaluate these cloud based solutions – to do apple
to apple comparison in all aspects. <o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-family: Verdana, sans-serif;">We decided these key criteria for
evaluation:<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 36.0pt; margin-right: 0cm; margin-top: 0cm; mso-list: l2 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol;">·<span style="font-family: 'Times New Roman';">
</span></span><!--[endif]--><span style="font-family: Verdana, sans-serif;">Look and Feel<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 36.0pt; margin-right: 0cm; margin-top: 0cm; mso-list: l2 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol;">·<span style="font-family: 'Times New Roman';">
</span></span><!--[endif]--><span style="font-family: Verdana, sans-serif;">Out of the box CRM capabilities<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 36.0pt; margin-right: 0cm; margin-top: 0cm; mso-list: l2 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol;">·<span style="font-family: 'Times New Roman';">
</span></span><!--[endif]--><span style="font-family: Verdana, sans-serif;">Ease of configuration/customization to tailor it for our needs<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 36.0pt; margin-right: 0cm; margin-top: 0cm; mso-list: l2 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol;">·<span style="font-family: 'Times New Roman';">
</span></span><!--[endif]--><span style="font-family: Verdana, sans-serif;">Integration with host of existing backend ERP/BI systems.<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 36.0pt; margin-right: 0cm; margin-top: 0cm; mso-list: l2 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol;">·<span style="font-family: 'Times New Roman';">
</span></span><!--[endif]--><span style="font-family: Verdana, sans-serif;">Mobility – support for tablets and smartphones<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 36.0pt; margin-right: 0cm; margin-top: 0cm; mso-list: l2 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol;">·<span style="font-family: 'Times New Roman';">
</span></span><!--[endif]--><span style="font-family: Verdana, sans-serif;">Analytics – rich reports, dashboards and alerts<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 36.0pt; margin-right: 0cm; margin-top: 0cm; mso-list: l2 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol;">·<span style="font-family: 'Times New Roman';">
</span></span><!--[endif]--><span style="font-family: Verdana, sans-serif;">Cost!<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYi7_UxomP1v-IPZVQdd7XROG7_mm3OaGmAwM7V01ABPc8H5YYTsovrKU637loqEx78d4KYnhfZFB9TbWzEQJqS1IImNLzysjCWe5zIoCViJqfFA4ZWGWbO6KUR2kq1V40sIS9UQHrF1RS/s1600/CRMComp2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYi7_UxomP1v-IPZVQdd7XROG7_mm3OaGmAwM7V01ABPc8H5YYTsovrKU637loqEx78d4KYnhfZFB9TbWzEQJqS1IImNLzysjCWe5zIoCViJqfFA4ZWGWbO6KUR2kq1V40sIS9UQHrF1RS/s1600/CRMComp2.jpg" height="312" width="400" /></a></div>
<br />
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif; line-height: 115%;">*note it’s my
personal opinion and my judgement based on the workshops and researches.<o:p></o:p></span></div>
<br />
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif; line-height: 115%;">So, the verdict:<o:p></o:p></span></div>
<div class="MsoNormal">
<b><span style="font-family: Verdana, sans-serif; line-height: 115%;">Siebel upgrade:<o:p></o:p></span></b></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><span style="line-height: 20.700000762939453px;">Pros</span></span><span style="font-family: Verdana, sans-serif; line-height: 115%;">:<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpFirst" style="margin-left: 54.0pt; mso-add-space: auto; mso-list: l1 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">-<span style="font-family: 'Times New Roman'; line-height: normal;"> </span></span><!--[endif]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">Cheapest option<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 54.0pt; mso-add-space: auto; mso-list: l1 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">-<span style="font-family: 'Times New Roman'; line-height: normal;"> </span></span><!--[endif]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">Company is accustomed with Siebel both at
IT and business side<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpLast" style="margin-left: 54.0pt; mso-add-space: auto; mso-list: l1 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">-<span style="font-family: 'Times New Roman'; line-height: normal;"> </span></span><!--[endif]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">Oracle road map for Siebel looks promising.
Open UI coming up. <o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif; line-height: 115%;">Cons:<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpFirst" style="margin-left: 54.0pt; mso-add-space: auto; mso-list: l1 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">-<span style="font-family: 'Times New Roman'; line-height: normal;"> </span></span><!--[endif]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">Lower user adoption due to complex and
huge screens<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 54.0pt; mso-add-space: auto; mso-list: l1 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">-<span style="font-family: 'Times New Roman'; line-height: normal;"> </span></span><!--[endif]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">No support for Mobility<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 54.0pt; mso-add-space: auto; mso-list: l1 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">-<span style="font-family: 'Times New Roman'; line-height: normal;"> </span></span><!--[endif]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">Still need to manage and maintain all
hardware systems to support Siebel<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpLast" style="margin-left: 54.0pt; mso-add-space: auto;">
<br /></div>
<div class="MsoNormal">
<b><span style="font-family: Verdana, sans-serif; line-height: 115%;">Oracle CRM On Demand:<o:p></o:p></span></b></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><span style="line-height: 20.700000762939453px;">Pros</span></span><span style="font-family: Verdana, sans-serif; line-height: 115%;">:<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpFirst" style="margin-left: 54.0pt; mso-add-space: auto; mso-list: l1 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">-<span style="font-family: 'Times New Roman'; line-height: normal;"> </span></span><!--[endif]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">Cheaper compared to salesforce.com<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 54.0pt; mso-add-space: auto; mso-list: l1 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">-<span style="font-family: 'Times New Roman'; line-height: normal;"> </span></span><!--[endif]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">Meets all current and future business
needs<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 54.0pt; mso-add-space: auto; mso-list: l1 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">-<span style="font-family: 'Times New Roman'; line-height: normal;"> </span></span><!--[endif]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">Offline, Mobility and BI fully
supported<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpLast" style="margin-left: 54.0pt; mso-add-space: auto; mso-list: l1 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">-<span style="font-family: 'Times New Roman'; line-height: normal;"> </span></span><!--[endif]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">Removes hardware support costs<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif; line-height: 115%;">Cons:<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpFirst" style="margin-left: 54.0pt; mso-add-space: auto; mso-list: l1 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">-<span style="font-family: 'Times New Roman'; line-height: normal;"> </span></span><!--[endif]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">Huge impacts on business while moving from
Siebel to CRMoD. <o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 54.0pt; mso-add-space: auto; mso-list: l1 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">-<span style="font-family: 'Times New Roman'; line-height: normal;"> </span></span><!--[endif]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">Might miss some functionality - CRMoD
may not be able to support all complex processes that are configured on Siebel.<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpLast" style="margin-left: 54.0pt; mso-add-space: auto; mso-list: l1 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">-<span style="font-family: 'Times New Roman'; line-height: normal;"> </span></span><!--[endif]--><span style="font-family: Verdana, sans-serif;"><span style="line-height: 115%;">Need to have a separate integration
layer to support integrations with </span><span style="line-height: 20.700000762939453px;">back-end</span><span style="line-height: 115%;"> ERP and BI systems <o:p></o:p></span></span></div>
<div class="MsoNormal">
<b><span style="font-family: Verdana, sans-serif; line-height: 115%;">Salesforce.com: </span></b><span style="font-family: Verdana, sans-serif; line-height: 115%;">was rejected mainly on due to the cost
associated with the licenses.<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif; line-height: 115%;">When we presented
above to business, the obvious choice for them was to upgrade Siebel and stay
with it – play safe!<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif; line-height: 115%;">Business reasons to
approve Siebel upgrade rather than to move to CRMoD:<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpFirst" style="margin-left: 54.0pt; mso-add-space: auto; mso-list: l0 level1 lfo3; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">-<span style="font-family: 'Times New Roman'; line-height: normal;"> </span></span><!--[endif]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">Fear of unknown <b><o:p></o:p></b></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 72.0pt; mso-add-space: auto; mso-list: l0 level2 lfo3; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: 'Courier New'; line-height: 115%;">o<span style="font-family: 'Times New Roman'; line-height: normal;"> </span></span><!--[endif]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">Siebel is in use from around 15 years
and users are comfortable in using it - though they complaint about the
usability.<b><o:p></o:p></b></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 72.0pt; mso-add-space: auto; mso-list: l0 level2 lfo3; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: 'Courier New'; line-height: 115%;">o<span style="font-family: 'Times New Roman'; line-height: normal;"> </span></span><!--[endif]--><span style="font-family: Verdana, sans-serif;"><span style="line-height: 115%;">Business </span><span style="line-height: 20.700000762939453px;">wasn't</span><span style="line-height: 115%;"> confident that all
their custom processes will be fulfilled by CRMoD</span></span><b style="font-family: Verdana, sans-serif; line-height: 115%;"><o:p></o:p></b></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 54.0pt; mso-add-space: auto; mso-list: l0 level1 lfo3; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">-<span style="font-family: 'Times New Roman'; line-height: normal;"> </span></span><!--[endif]--><span style="font-family: Verdana, sans-serif;"><span style="line-height: 115%;">There </span><span style="line-height: 20.700000762939453px;">wasn't</span><span style="line-height: 115%;"> any significant cost
benefit by moving out of Siebel</span></span><b style="font-family: Verdana, sans-serif; line-height: 115%;"><o:p></o:p></b></div>
<div class="MsoListParagraphCxSpLast" style="margin-left: 54.0pt; mso-add-space: auto; mso-list: l0 level1 lfo3; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">-<span style="font-family: 'Times New Roman'; line-height: normal;"> </span></span><!--[endif]--><span style="font-family: Verdana, sans-serif; line-height: 115%;">Open UI looked promising –it will make
Siebel to match with other cloud based solutions<b><o:p></o:p></b></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif; line-height: 115%;">After above decision,
the choice was obvious to go for Siebel upgrade. It took us 4 months to
complete the upgrade from Siebel 7.8 SEA-Non Unicode to Siebel 8.1.1.7
SIA-Unicode. We had expert advice from a small but expert company called Ponder
Pro. They helped us in doing DEV, TEST and Production upgrade seamlessly. They
also helped us to fix any performance issues encountered by the users.<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif; line-height: 115%;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif; line-height: 115%;">Since Apr-2013, our
users have been using Siebel 8.1. The platform has been really promising –
performing at it’s peak. <o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif; line-height: 115%;">In between, we have
applied 8.1.1.10, 8.1.1.11 PS 4 on our systems. <o:p></o:p></span></div>
<br />
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif; line-height: 115%;">The Siebel journey continues…eagerly
waiting for Open UI and Open UI mobile </span><span style="font-family: Verdana, sans-serif; line-height: 20.700000762939453px;">roll-out</span><span style="font-family: Verdana, sans-serif; line-height: 115%;">. </span></div>
</div>
</div>
Shttp://www.blogger.com/profile/13636876457402555607noreply@blogger.com1