רשומות

מציג פוסטים מתאריך ינואר, 2013

[FieldName.TransCode]

While the whole world running for Open UI but I am still flagging my own old issues.Recently during performance improvement drive from my inner soul,  i read an interesting property while querying on Multilingual fields. If you know about TransCode function this post in not for you. In Multilingual environment, with loads of records, querying on Multilingual field can be really taxing as these searches require a join to the S_LST_OF_VAL table in the resulting SQL code. To increase the performance one can append "TransCode" function with field name to retrieve the (untranslated) language-independent code (LIC) from a column in the base table, rather than returning the display value. Syntax: [Status.TransCode] = 'closed' This function can be used in 1 - In Calculated Fields. 2 - In script. for ex. in GetFieldValue("Status.TransCode") statement 3 - In Workflows. 4 - In Link/Picklist searchspec. 5 - In DVM validation expression. I am sure most of guys in siebel

adding voice input in siebel openUI :: Physical Render experiement

תמונה
Please Note: Here we are using a webkit property. That means this feature will work only in google chrome. Google chrome supports it's own voice search property. We can add this property to our application by adding "x-webkit-speech" in our input fields. Here we can create a physical render and implement this feature. <!-------------------CODE Begins----------------------------!> if( typeof( SiebelAppFacade.GoogleVoicePR ) === "undefined" ){     SiebelJS.Namespace( "SiebelAppFacade.GoogleVoicePR" );         SiebelApp.S_App.RegisterConstructorAgainstKey( "GoogleVoicePRenderer", "SiebelAppFacade.GoogleVoicePR" );         SiebelAppFacade.GoogleVoicePR = ( function(){                         function GoogleVoicePR( pm ){             SiebelAppFacade.GoogleVoicePR.superclass.constructor.call( this, pm );             var controls = this.GetPM().Get( "GetControls" );             var cntrl = controls[ "Last Name" ]

Mapping & Finishing customization (Part � 4)

תמונה
Part - 1 Part - 2 Part - 3 This is our final steps in this customization. Here we are going to Map our custom physical render & Physical Model.   We are validating the EmailAddress field in contact form applet. We are mapping our Key. Hope you remember our key, that we used to register. So in tools go to contact   form applet. Expand Applet user property 1.        Create a new user property Name -> Physical_Render and Render Key as its value (Shown in fig) Another user property Physical_Model and Model key as its   value. Compile Object. 2.        Now Copy our code (Physical Render & Physical model )to SCRIPTS->Siebel->custom folder 3.        Open OBJECTS Folder. There you can see � manifest_extensions.map �. Open   this in a notepad or wordpad.   Map our Key with applet. 4.        Open �custom_manifest.xml� in the same folder. Find   <PLATFORM_KEY_SPECIFIC>                                 <PLATFORM Name="Desktop"> Here we map our physical rend

Mapping & Finishing customization (Part – 4)

תמונה
Part - 1 Part - 2 Part - 3 This is our final steps in this customization. Here we are going to Map our custom physical render & Physical Model.   We are validating the EmailAddress field in contact form applet. We are mapping our Key. Hope you remember our key, that we used to register. So in tools go to contact   form applet. Expand Applet user property 1.        Create a new user property Name -> Physical_Render and Render Key as its value (Shown in fig) Another user property Physical_Model and Model key as its   value. Compile Object. 2.        Now Copy our code (Physical Render & Physical model )to SCRIPTS->Siebel->custom folder 3.        Open OBJECTS Folder. There you can see “ manifest_extensions.map ”. Open   this in a notepad or wordpad.   Map our Key with applet. 4.        Open “custom_manifest.xml” in the same folder. Find   <PLATFORM_KEY_SPECIFIC>                                 <PLATFORM Name="Desktop"> Here we map our physical rend

Coding Physical Render(Part -3)

 Read Part -1 Read Part-2  I have given three color for code. Red indicated that it is mandatory. Black indicates comment and green indicates custom code. if( typeof( SiebelAppFacade.ValidatePR ) === "undefined" ){     SiebelJS.Namespace( "SiebelAppFacade.ValidatePR" );         SiebelApp.S_App.RegisterConstructorAgainstKey( "ValidatePRenderer", "SiebelAppFacade.ValidatePR" );         SiebelAppFacade.ValidatePR = ( function(){                                                 function ValidatePR( pm ){             SiebelAppFacade.ValidatePR.superclass.constructor.call( this, pm );             this.GetPM().AttachPMBinding( "isEmailSet",   validateEmail, { scope: this });                 /* This is very important. We bing � isEmailSet � variable. So that this will track changes in this variable in physical model. and if changes happed, then validateEmail will execute. */         }                 SiebelJS.Extend( ValidatePR, SiebelAppFaca

Coding Physical Render(Part -3)

 Read Part -1 Read Part-2  I have given three color for code. Red indicated that it is mandatory. Black indicates comment and green indicates custom code. if( typeof( SiebelAppFacade.ValidatePR ) === "undefined" ){     SiebelJS.Namespace( "SiebelAppFacade.ValidatePR" );         SiebelApp.S_App.RegisterConstructorAgainstKey( "ValidatePRenderer", "SiebelAppFacade.ValidatePR" );         SiebelAppFacade.ValidatePR = ( function(){                                                 function ValidatePR( pm ){             SiebelAppFacade.ValidatePR.superclass.constructor.call( this, pm );             this.GetPM().AttachPMBinding( "isEmailSet",   validateEmail, { scope: this });                 /* This is very important. We bing “ isEmailSet ” variable. So that this will track changes in this variable in physical model. and if changes happed, then validateEmail will execute. */         }                 SiebelJS.Extend( ValidatePR, SiebelAppFaca