<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://dpp.sagecrm.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Hints, Tips and Tricks</title><link>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/default.aspx</link><description>Technical Hints Tips and Tricks that cover customization and development using Sage CRM.   API usage and coding are covered.</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Web to Lead example files</title><link>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/02/08/web-to-lead-example-files.aspx</link><pubDate>Mon, 08 Feb 2010 13:46:00 GMT</pubDate><guid isPermaLink="false">94c6599b-6b03-4097-ac1a-0c4ca7ff1508:3375</guid><dc:creator>Jeff Richards</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/rsscomments.aspx?PostID=3375</wfw:commentRss><comments>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/02/08/web-to-lead-example-files.aspx#comments</comments><description>&lt;p&gt;I have discussed Web to Lead a few times previously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2008/12/17/webtolead-https-and-ports.aspx"&gt;WebToLead, HTTPS and Ports&lt;/a&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2009/10/01/working-around-date-time-field-issues-in-web-to-lead-forms-in-sage-crm-6-2.aspx"&gt;Working around Date/Time field issues in Web to Lead forms in Sage CRM 6.2&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;As part of my revision of my training materials in preparation for Sage CRM v7 I have added a couple of HTML files to the resource section.&amp;nbsp; These extra files should save a little bit of work for those of you wanting to demonstrate the Web To Lead feature.&lt;/p&gt;
&lt;p&gt;A quick way of using them is to unzip them in to the root of the default Self Service install.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;C:\Program Files\Sage\CRM\CRMSelfServiceDemo &lt;/p&gt;
&lt;p&gt;The files follow the look and feel of the demo Panoply Technologies self service site.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;webtolead.html&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;webtoleadthanks.html&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/webtolead1.png"&gt;&lt;img border="0" src="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/webtolead1.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The webtolead.html file can be edited by dropping in the HTML generated by the Web to Lead feature.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/webtolead3.png"&gt;&lt;img border="0" src="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/webtolead3.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;They can then be accessed by browsing to:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://localhost/crmselfservicedemo/webtolead.html"&gt;http://localhost/crmselfservicedemo/webtolead.html&lt;/a&gt;&lt;br /&gt;and&lt;/p&gt;
&lt;p&gt;&lt;a href="http://localhost/crmselfservicedemo/webtoleadthanks.html"&gt;http://localhost/crmselfservicedemo/webtoleadthanks.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/webtolead4.png"&gt;&lt;img border="0" src="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/webtolead4.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://dpp.sagecrm.com/aggbug.aspx?PostID=3375" width="1" height="1"&gt;</description><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Download/default.aspx">Download</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/WebtoLead/default.aspx">WebtoLead</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Web+To+Lead/default.aspx">Web To Lead</category></item><item><title>WebServiceSoapClient() vs WebService() or (Add Service Reference vs Add Web Reference)</title><link>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/02/05/webservicesoapclient-vs-webservice-or-add-service-reference-vs-add-web-reference.aspx</link><pubDate>Fri, 05 Feb 2010 17:07:00 GMT</pubDate><guid isPermaLink="false">94c6599b-6b03-4097-ac1a-0c4ca7ff1508:3370</guid><dc:creator>Jeff Richards</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/rsscomments.aspx?PostID=3370</wfw:commentRss><comments>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/02/05/webservicesoapclient-vs-webservice-or-add-service-reference-vs-add-web-reference.aspx#comments</comments><description>&lt;p&gt;As I noted in my earlier article (&lt;a href="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/02/05/windows-visual-studio-2008-and-sage-crm-web-services.aspx"&gt;Visual Studio 2008 and Sage CRM Web Services&lt;/a&gt;) if you are using Visual Studio 2008 then it is perfectly possible to continue to use the Add Web Reference way of working.&amp;nbsp; And it is up to you which way you choose to code.&lt;br /&gt;&lt;br /&gt;If you have used &amp;#39;Add Service Reference&amp;#39; to connect to a CRM install then you will be using the WebServiceSoapPort class.&amp;nbsp; Below are just 2 examples of how the code will differ.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Log on (WebServiceSoapClient)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;WebServiceSoapPort CRMService = new WebServiceSoapPortClient();&lt;br /&gt;logonRequest crmLogonRequest = new logonRequest();&lt;br /&gt;crmLogonRequest.username = &amp;quot;Admin&amp;quot;;&lt;br /&gt;crmLogonRequest.password = &amp;quot;P455w0rd&amp;quot;;&lt;br /&gt;logonResponse CRMLogon = CRMService.logon(crmLogonRequest);&lt;/p&gt;
&lt;p&gt;SessionHeader crmSessionHeader = new SessionHeader();&lt;br /&gt;crmSessionHeader.sessionId = CRMLogon.result.sessionid;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Logon (WebService)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;WebService CRMService = new WebService();&lt;br /&gt;logonresult CRMLogon = CRMService.logon(&amp;quot;Admin&amp;quot;, &amp;quot;P455w0rd&amp;quot;);&lt;/p&gt;
&lt;p&gt;CRMService.SessionHeaderValue = new SessionHeader();&lt;br /&gt;CRMService.SessionHeaderValue.sessionId = CRMLogon.sessionid;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Logoff (WebServiceSoapClient)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;logoffRequest crmLogoffRequest = new logoffRequest();&lt;br /&gt;crmLogoffRequest.SessionHeader = crmSessionHeader;&lt;br /&gt;crmLogoffRequest.sessionId=CRMLogon.result.sessionid;&lt;br /&gt;logoffResponse crmLogoff = CRMService.logoff(crmLogoffRequest);&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Logoff (WebService)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;CRMService.logoff(CRMService.SessionHeaderValue.sessionId);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://dpp.sagecrm.com/aggbug.aspx?PostID=3370" width="1" height="1"&gt;</description><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Web+Services/default.aspx">Web Services</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/SOAP/default.aspx">SOAP</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Visual+Studio+2005/default.aspx">Visual Studio 2005</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Add+Service+Reference/default.aspx">Add Service Reference</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Add+Web+Reference/default.aspx">Add Web Reference</category></item><item><title>Updating/Hidding a value on the fly before it gets displayed</title><link>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/02/05/updating-hidding-a-value-on-the-fly-before-it-gets-displayed.aspx</link><pubDate>Fri, 05 Feb 2010 16:28:00 GMT</pubDate><guid isPermaLink="false">94c6599b-6b03-4097-ac1a-0c4ca7ff1508:3369</guid><dc:creator>Wing Kwong</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/rsscomments.aspx?PostID=3369</wfw:commentRss><comments>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/02/05/updating-hidding-a-value-on-the-fly-before-it-gets-displayed.aspx#comments</comments><description>&lt;p&gt;This technique&amp;nbsp;can be&amp;nbsp;used to hide or update HTML content.&amp;nbsp; With most fields being identified with a &amp;lt;DIV ID=....&amp;gt; tag, you can use the innerHTML method in Javascript. However, let&amp;#39;s say you want to change a particular Error message.&amp;nbsp;The error message tag&amp;nbsp;is not idented.&amp;nbsp; The source code looks like this:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;span class="845471219-04022010"&gt;&lt;font face="Arial" color="#0000ff" size="2"&gt;&amp;lt;TABLE WIDTH=100% &lt;strong&gt;CLASS=ErrorContent&lt;/strong&gt;&amp;gt;&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Error Mesage&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&amp;lt;/TABLE&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;In order to hide or change it, you will have to use its class instead. The following script can be placed under&amp;nbsp;&amp;quot;Custom Content&amp;quot;.&lt;/p&gt;
&lt;div align="left"&gt;&lt;font face="Arial" color="#0000ff" size="2"&gt;&lt;span class="250303819-04022010"&gt;&amp;lt;script for=window event=onload&amp;gt; &lt;br /&gt;function LoadMe(){ &lt;br /&gt;document.getElementsByClassName = function(cl) {&lt;br /&gt;var retnode = [];&lt;br /&gt;var myclass = new RegExp(&amp;#39;\\b&amp;#39;+cl+&amp;#39;\\b&amp;#39;);&lt;br /&gt;var elem = this.getElementsByTagName(&amp;#39;*&amp;#39;);&lt;br /&gt;for (var i = 0; i &amp;lt; elem.length; i++) {&lt;br /&gt;var classes = elem[i].className;&lt;br /&gt;if (myclass.test(classes)) retnode.push(elem[i]);&lt;br /&gt;}&lt;br /&gt;return retnode;&lt;br /&gt;}; &lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font face="Arial" color="#0000ff" size="2"&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;&lt;font face="Arial" color="#0000ff" size="2"&gt;&lt;span class="250303819-04022010"&gt;
&lt;div align="left"&gt;var myElement = document.getElementsByClassName(&amp;#39;ErrorContent&amp;#39;)[0]; &lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;if (myElement.innerText==&amp;#39;ImpersonateLoggedOnUser2 failed 5&amp;#39;){&lt;br /&gt;myElement.innerText=&amp;quot;Please check your domain security settings.&amp;quot;;&lt;br /&gt;}&lt;/div&gt;
&lt;div align="left"&gt;} &lt;br /&gt;LoadMe();&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;In the script above, it will change the message if the error is &amp;quot;ImpersonateLoggedOnUser2 failed 5&amp;quot; to something else.&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;img src="http://dpp.sagecrm.com/aggbug.aspx?PostID=3369" width="1" height="1"&gt;</description></item><item><title>Visual Studio 2008 and Sage CRM Web Services</title><link>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/02/05/windows-visual-studio-2008-and-sage-crm-web-services.aspx</link><pubDate>Fri, 05 Feb 2010 15:51:00 GMT</pubDate><guid isPermaLink="false">94c6599b-6b03-4097-ac1a-0c4ca7ff1508:3368</guid><dc:creator>Jeff Richards</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/rsscomments.aspx?PostID=3368</wfw:commentRss><comments>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/02/05/windows-visual-studio-2008-and-sage-crm-web-services.aspx#comments</comments><description>&lt;p&gt;I have recently received a couple of emails asking me for help with starting a Web Service project when using Visual Studio 2008.&amp;nbsp; Both my correspondents had previously been using Visual Studio 2005 and had been used to adding Web References.&lt;/p&gt;
&lt;p&gt;In Visual Studio 2005 a web reference would be added from the Project menu as in the image below.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/addwebreference1.png"&gt;&lt;img border="0" src="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/addwebreference1.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The URL for the Sage CRM installation would be entered and the web reference was complete.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/addwebreference2.png"&gt;&lt;img border="0" src="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/addwebreference2.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;BUT in a new Visual Studio 2008 Add Web Reference seems to have disappeared!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/addservicereference1.png"&gt;&lt;img border="0" src="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/addservicereference1.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;quot;Add Web Reference&amp;quot; has not disappeared but it is hiding.&amp;nbsp; This is because &amp;quot;Add Web Reference&amp;quot; uses .Net Framework 2.0. conventions and technology.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;If you want to add a Web Reference in Visual Studio 2008&lt;/p&gt;
&lt;p&gt;Use the Add Service Reference option from the Project menu&lt;/p&gt;
&lt;p&gt;&lt;a href="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/addservicereference2.png"&gt;&lt;img border="0" src="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/addservicereference2.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And then click the Advanced... button to open the Service Reference Settings Screen.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/addservicereference3.png"&gt;&lt;img border="0" src="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/addservicereference3.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can now click the &amp;#39;Add Web Reference&amp;#39; button which produces the familiar screen above.&lt;br /&gt;&lt;/p&gt;&lt;img src="http://dpp.sagecrm.com/aggbug.aspx?PostID=3368" width="1" height="1"&gt;</description><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Web+Services/default.aspx">Web Services</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Visual+Studio+2005/default.aspx">Visual Studio 2005</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Add+Service+Reference/default.aspx">Add Service Reference</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Add+Web+Reference/default.aspx">Add Web Reference</category></item><item><title>New Video explaining how SData is used in the Interactive Dashboard in Sage CRM v7</title><link>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/02/01/new-video-explaining-how-sdata-is-used-in-the-interactive-dashboard-in-sage-crm-v7.aspx</link><pubDate>Mon, 01 Feb 2010 09:07:00 GMT</pubDate><guid isPermaLink="false">94c6599b-6b03-4097-ac1a-0c4ca7ff1508:3365</guid><dc:creator>Jeff Richards</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/rsscomments.aspx?PostID=3365</wfw:commentRss><comments>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/02/01/new-video-explaining-how-sdata-is-used-in-the-interactive-dashboard-in-sage-crm-v7.aspx#comments</comments><description>&lt;p&gt;A new video that discusses the use of SData in the Sage CRM v7 Interactive Dashboard has been added to the SData showcase &lt;a href="http://sdata.sage.com/sdatacore_showcases.html"&gt;site&lt;/a&gt;.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;The Sage CRM new Interactive Dashboard enables simple, codeless data integration with the SData Gadget. Simply by point-and-click interaction, a user can integrate other Sage products like ERP systems and even third party vertical customizations from our Business Partner community.&lt;/p&gt;
&lt;p&gt;To view the video click &lt;a href="http://sdata.sage.com/sdatacore_showcases_SageCRMDashboard.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://dpp.sagecrm.com/aggbug.aspx?PostID=3365" width="1" height="1"&gt;</description><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Sage+CRM+7.0/default.aspx">Sage CRM 7.0</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Interactive+Dashboard/default.aspx">Interactive Dashboard</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/SData/default.aspx">SData</category></item><item><title>Localized Beta for Sage CRM v7 available </title><link>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/01/29/localized-beta-for-sage-crm-v7-available.aspx</link><pubDate>Fri, 29 Jan 2010 15:42:00 GMT</pubDate><guid isPermaLink="false">94c6599b-6b03-4097-ac1a-0c4ca7ff1508:3363</guid><dc:creator>Jeff Richards</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/rsscomments.aspx?PostID=3363</wfw:commentRss><comments>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/01/29/localized-beta-for-sage-crm-v7-available.aspx#comments</comments><description>&lt;p&gt;The localized feature review beta build of Sage CRM v7 is now available for download by invited beta programme participants. The localized builds for French, German, Spanish and Chinese have been added to the Sage CRM Beta Software folder in the Resources section.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://dpp.sagecrm.com/files/folders/sage_crm_beta_software/entry3359.aspx"&gt;Sage CRM v7 Beta Release (Chinese)&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://dpp.sagecrm.com/files/folders/sage_crm_beta_software/entry3362.aspx"&gt;Sage CRM v7 Beta Release (French)&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://dpp.sagecrm.com/files/folders/sage_crm_beta_software/entry3360.aspx"&gt;Sage CRM v7 Beta Release (German)&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://dpp.sagecrm.com/files/folders/sage_crm_beta_software/entry3361.aspx"&gt;Sage CRM v7 Beta Release (Spanish)&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; It is important that the &lt;a href="http://dpp.sagecrm.com/files/folders/sage_crm_beta_software/entry3347.aspx"&gt;release notes&lt;/a&gt; that apply to all languages are read by all beta participants.&lt;/p&gt;
&lt;p&gt;This beta phase is focused on gaining feedback on the new features in Sage CRM v7. &lt;/p&gt;
&lt;p&gt;The new features of Sage CRM v7 are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;The interactive dashboard&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Active directory provisioning&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;SData provider&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Interface enhancements and product branding updates&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Mixed and system expiry licensing&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;GCRM integration contract&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;This phase will finish on 19th February 2010 so you will need to get your feedback in before then.&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Please send all queries, issues and feedback to &lt;a href="mailto:SageCRMBeta7@Sage.com"&gt;SageCRMBeta7@Sage.com&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://dpp.sagecrm.com/aggbug.aspx?PostID=3363" width="1" height="1"&gt;</description><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Chinese/default.aspx">Chinese</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Sage+CRM+7.0/default.aspx">Sage CRM 7.0</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/beta/default.aspx">beta</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/German/default.aspx">German</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/French/default.aspx">French</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Spanish/default.aspx">Spanish</category></item><item><title>Revised and Updated C# Code Snippets for Visual Studio</title><link>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/01/29/revised-and-updated-c-code-snippets-for-visual-studio.aspx</link><pubDate>Fri, 29 Jan 2010 14:05:00 GMT</pubDate><guid isPermaLink="false">94c6599b-6b03-4097-ac1a-0c4ca7ff1508:3357</guid><dc:creator>Jeff Richards</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/rsscomments.aspx?PostID=3357</wfw:commentRss><comments>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/01/29/revised-and-updated-c-code-snippets-for-visual-studio.aspx#comments</comments><description>&lt;p&gt;The code snippets that are installed as part of the Sage CRM SDK have been revised and edited.&amp;nbsp; Additional snippets for both the .NET API and the SOAP Web Service Interface have been created.&lt;/p&gt;
&lt;p&gt;The new version of the SDK installer will be available at the time of the release of Sage CRM v7.&amp;nbsp; Development partners who wish to use the new snippets independently of the SDK can download these now from the beta section of the resources area of the website.&amp;nbsp; The links can be found at the bottom of this article.&lt;/p&gt;
&lt;p&gt;These snippets work with both Visual Studio 2005 and Visual Studio 2008 and with Visual C# Express Edition.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Copy the Zip file to&lt;/p&gt;
&lt;p&gt;C:\Documents and Settings\[username]\My Documents\Visual Studio 2005\Code Snippets\Visual C#\My Code Snippets&lt;/p&gt;
&lt;p&gt;or&lt;/p&gt;
&lt;p&gt;C:\Documents and Settings\[username]\My Documents\Visual Studio 2008\Code Snippets\Visual C#\My Code Snippets&lt;/p&gt;
&lt;p&gt;The file &amp;quot;&lt;a href="http://dpp.sagecrm.com/files/folders/revised_sdk_resources/entry3355.aspx"&gt;Sage CRM 7 DOTNET Snippets.zip&lt;/a&gt;&amp;quot; should be unzipped to a folder called &amp;quot;Sage CRM 7 DOTNET Snippets&amp;quot;.&lt;br /&gt;The file &amp;quot;&lt;a href="http://dpp.sagecrm.com/files/folders/revised_sdk_resources/entry3356.aspx"&gt;Sage CRM 7 Web Service Snippets.zip&lt;/a&gt;&amp;quot; should be unzipped to a folder called &amp;quot;Sage CRM 7 Web Service Snippets&amp;quot;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://dpp.sagecrm.com/aggbug.aspx?PostID=3357" width="1" height="1"&gt;</description><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Web+Services/default.aspx">Web Services</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Code+Snippets/default.aspx">Code Snippets</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/.NET+API/default.aspx">.NET API</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/C_2300_/default.aspx">C#</category></item><item><title>Sage CRM Solo Hints and Tips Guide</title><link>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/01/28/sage-crm-solo-hints-and-tips-guide.aspx</link><pubDate>Thu, 28 Jan 2010 16:05:00 GMT</pubDate><guid isPermaLink="false">94c6599b-6b03-4097-ac1a-0c4ca7ff1508:3351</guid><dc:creator>Jeff Richards</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/rsscomments.aspx?PostID=3351</wfw:commentRss><comments>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/01/28/sage-crm-solo-hints-and-tips-guide.aspx#comments</comments><description>&lt;p&gt;This document has been made available for development partners.&amp;nbsp; This covers version Sage CRM 6.2. &lt;/p&gt;
&lt;p&gt;We are pleased to announce the release of the &amp;#39;Sage CRM Solo Hints and Tips Guide&amp;#39;. This guide supplements the existing &amp;#39;Sage CRM 6.2 Solo Guide&amp;#39;. Its aim is to provide additional knowledge of the Solo module, specifically to CRM Professional Services, Implementers and those in Support Groups who support it. &lt;/p&gt;
&lt;p&gt;It provides a run-through of our disconnected solution for distributed remote clients. It outlines the Solo module’s purpose, it describes how it currently works, it provides tips and hints for implementing it, it documents ‘known’ error messages and their resolutions, it provides frequently asked questions and associated answers.&lt;/p&gt;
&lt;p&gt;We give hints on best practise when carrying out a Solo Implementation and tips on supporting/trouble shooting Solo functionality effectively. &lt;/p&gt;
&lt;p&gt;This is in effect a ‘Best Practise’ Solo Guide, to aid those implementing and supporting it towards setting up this module successfully.&lt;/p&gt;
&lt;p&gt;Development Partners can download the guide from here: &lt;a href="http://dpp.sagecrm.com/files/folders/additional_documentation/entry3350.aspx"&gt;Sage CRM Solo Hints and Tips Guide&lt;/a&gt;&lt;/p&gt;&lt;img src="http://dpp.sagecrm.com/aggbug.aspx?PostID=3351" width="1" height="1"&gt;</description><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/SOLO/default.aspx">SOLO</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Sage+CRM+6.2/default.aspx">Sage CRM 6.2</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Troubleshooting/default.aspx">Troubleshooting</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/System+Administration/default.aspx">System Administration</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/6.2/default.aspx">6.2</category></item><item><title>Final Beta for Sage CRM v7 available today</title><link>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/01/26/final-beta-for-sage-crm-7-0-available-tomorrow.aspx</link><pubDate>Tue, 26 Jan 2010 14:44:00 GMT</pubDate><guid isPermaLink="false">94c6599b-6b03-4097-ac1a-0c4ca7ff1508:3333</guid><dc:creator>Jeff Richards</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/rsscomments.aspx?PostID=3333</wfw:commentRss><comments>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/01/26/final-beta-for-sage-crm-7-0-available-tomorrow.aspx#comments</comments><description>&lt;p&gt;The team in Dublin will release the feature review beta build of Sage CRM v7 (English Language) on Tuesday 26th January 2010 for download by invited beta programme participants. This is the final phase of the overall beta programme for Sage CRM v7. &lt;/p&gt;
&lt;p&gt;This beta phase is focused on gaining feedback on the new features in Sage CRM v7. &lt;/p&gt;
&lt;p&gt;The new features of Sage CRM v7 are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The interactive dashboard&lt;/li&gt;
&lt;li&gt;Active directory provisioning&lt;/li&gt;
&lt;li&gt;SData provider&lt;/li&gt;
&lt;li&gt;Interface enhancements and product branding updates&lt;/li&gt;
&lt;li&gt;Mixed and system expiry licensing&lt;/li&gt;
&lt;li&gt;GCRM integration contract&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;This phase will finish on 19th February 2010 so you will need to get your feedback in before then.&amp;nbsp;&amp;nbsp; On Friday 29th January 2010 localized versions of the beta will be available; French, German, Spanish and Chinese. &lt;/p&gt;
&lt;p&gt;Please send all queries, issues and feedback to &lt;a href="mailto:SageCRMBeta7@Sage.com"&gt;SageCRMBeta7@Sage.com&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://dpp.sagecrm.com/aggbug.aspx?PostID=3333" width="1" height="1"&gt;</description><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Sage+CRM+7.0/default.aspx">Sage CRM 7.0</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/beta/default.aspx">beta</category></item><item><title>Sage CRM 6.2 Quick Start Performance Guide</title><link>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/01/26/sage-crm-6-2-quick-start-performance-guide.aspx</link><pubDate>Tue, 26 Jan 2010 09:41:00 GMT</pubDate><guid isPermaLink="false">94c6599b-6b03-4097-ac1a-0c4ca7ff1508:3323</guid><dc:creator>Jeff Richards</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/rsscomments.aspx?PostID=3323</wfw:commentRss><comments>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/01/26/sage-crm-6-2-quick-start-performance-guide.aspx#comments</comments><description>&lt;p&gt;This document has been made available for development partners.&amp;nbsp; This covers version Sage CRM 6.2. &lt;/p&gt;
&lt;p&gt;We are pleased to announce the release of the &amp;#39;Sage CRM Quick Start Performance Guide&amp;#39;.&amp;nbsp; The idea behind this Guide is to provide you with some quick hints and tips to try to optimize CRM performance before an Implementer leaves a Customer site, and around the time a Customer site is about to go &amp;#39;Live&amp;#39;.&lt;/p&gt;
&lt;p&gt;By default CRM installs with default timeout and ‘interval’ settings. However we have found that some of these settings may not be conducive to an overly efficient, optimized CRM install particularly where the install has been heavily customized. e.g. a Customer may have numerous customized notification rules, so their ‘Notification Interval’ will need to be modified. Another customer may have large amounts of Outlook Integration Users, they consequently should not have their ‘auto sync’ option set to ‘1 minute’ [that means that every end user may be trying to connect to the Web Server and synchronize every minute].&lt;/p&gt;
&lt;p&gt;So some of these need to be tweaked and fine-tuned across different sites depending on how the system is used and how it has been customized.&lt;/p&gt;
&lt;p&gt;Before an Implementer leaves a customer site, they should ensure the following hints/tips have been carried out.&lt;/p&gt;
&lt;p&gt;Development Partners can download the guide from here: &lt;a href="http://dpp.sagecrm.com/files/folders/additional_documentation/entry3322.aspx"&gt;Sage CRM 6.2 Quick Start Performance Guide&lt;/a&gt;&lt;/p&gt;&lt;img src="http://dpp.sagecrm.com/aggbug.aspx?PostID=3323" width="1" height="1"&gt;</description><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/table+level+scripts/default.aspx">table level scripts</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Outlook+Integration/default.aspx">Outlook Integration</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Escalation+Rules/default.aspx">Escalation Rules</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Installation/default.aspx">Installation</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Performance/default.aspx">Performance</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/6.2/default.aspx">6.2</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/indexer+service/default.aspx">indexer service</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/intervals/default.aspx">intervals</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/escalations/default.aspx">escalations</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/configuration/default.aspx">configuration</category></item><item><title>Changing the sort order of an SSA (Search Select Advanced) field</title><link>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/01/25/changing-the-sort-order-of-an-ssa-search-select-advanced-field.aspx</link><pubDate>Mon, 25 Jan 2010 15:34:00 GMT</pubDate><guid isPermaLink="false">94c6599b-6b03-4097-ac1a-0c4ca7ff1508:3320</guid><dc:creator>JackAllan</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/rsscomments.aspx?PostID=3320</wfw:commentRss><comments>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/01/25/changing-the-sort-order-of-an-ssa-search-select-advanced-field.aspx#comments</comments><description>&lt;p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;I was recently asked how&amp;nbsp;to change the view order of the drop down in a SSA field (Advanced Search Select/Search Select Advanced).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;The sorting is always on the view field for the SSA field in alphabetical order.&amp;nbsp; You cannot change that.&amp;nbsp; But you can change which field is used for the view field.&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;How SSA fields behave is different for each entity.&amp;nbsp; There are four translations for each entity that tell CRM how to create SSA fields.&amp;nbsp; These translations all have a code that matches the name of entity and a Caption Family Type of ‘Tags’.&amp;nbsp; The family is different for each bit of information, here is what they mean:&lt;/span&gt; 
&lt;ul&gt;
&lt;li&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;ss_entities – this translation tells CRM that the entity is available for use in an SSA field.&amp;nbsp; Each of the translations should be set to the entity name&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;ss_searchtables – this translation tells CRM which table or view to use to get the information for the SSA field.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;ss_idfields – this translation tells CRM which field in the table/view defined in ss_searchtables to use as the value/id field for the SSA field.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;ss_viewfields – this translation tells CRM which field is used as the display field for the SSA&lt;/span&gt; &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;Note that the display field defined in the ss_viewfields translation is different from the view fields defined in the SSA field meta-data, the view fields in the meta data refer to which fields should be displayed in the drop down box.&amp;nbsp; The display field is what is shown in the SSA field when a value is selected.&amp;nbsp; For example on the Person entity this defaults to pers_fullname.&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;CRM always sorts the values in the SSA drop down by the ss_viewfield in ascending alphabetical order.&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;To see examples of how these translations are populated go to Administration -&amp;gt; Customisation -&amp;gt; Translations and search for a caption family of “ss_” and a Caption Code of “person”.&amp;nbsp; You will see the following:&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;&lt;/span&gt; 
&lt;blockquote&gt;
&lt;p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;&lt;a href="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/screenshots/personssa.PNG"&gt;&lt;img border="0" src="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/screenshots/personssa.PNG" alt="" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;As an example of how you can use the above information to change the sort order of an SSA field drop down, I will show you how to change the Person SSA field to be sorted by last name instead of first name which is the system default.&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;First we need to create a new field in the vSearchListPerson that is in the format of “&amp;lt;&amp;lt;last name&amp;gt;&amp;gt;, &amp;lt;&amp;lt;first name&amp;gt;&amp;gt;”.&amp;nbsp; We will call this pers_fullname2.&amp;nbsp; We will create it on the existing vSearchListPerson view by adding in the following:&lt;/span&gt; 
&lt;blockquote&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;RTRIM(ISNULL(Pers_LastName, &amp;#39;&amp;#39;)) + &amp;#39;, &amp;#39; + RTRIM(ISNULL(Pers_FirstName, &amp;#39;&amp;#39;)) AS Pers_FullName2&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;Next we update the SS_ViewFields for the Person entity to have pers_fullname2 instead of pers_fullname.&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;Now we refresh the metadata.&amp;nbsp; &lt;/span&gt;
&lt;p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;Now SSA fields will show people in the format of “&amp;lt;&amp;lt;lastname&amp;gt;&amp;gt;, &amp;lt;&amp;lt;firstname&amp;gt;&amp;gt;” and it will be sorted by this, so last name first.&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;Note: to complete this customization you probably would also want to change the view fields on the entity field’s meta data to use pers_fullname2 instead of pers_fullname so that the format is consistent between what is shown in the field and in the selection drop down.&lt;/span&gt; &lt;img src="http://dpp.sagecrm.com/aggbug.aspx?PostID=3320" width="1" height="1"&gt;</description><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Search+Select+Advanced/default.aspx">Search Select Advanced</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/customization/default.aspx">customization</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/JackAllan/default.aspx">JackAllan</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/ssa/default.aspx">ssa</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/advanced+search+select/default.aspx">advanced search select</category></item><item><title>Sage CRM 6.1 and Sage CRM 6.2 Language Packs</title><link>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/01/25/sage-crm-6-2-language-packs.aspx</link><pubDate>Mon, 25 Jan 2010 11:28:00 GMT</pubDate><guid isPermaLink="false">94c6599b-6b03-4097-ac1a-0c4ca7ff1508:3227</guid><dc:creator>Jeff Richards</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/rsscomments.aspx?PostID=3227</wfw:commentRss><comments>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/01/25/sage-crm-6-2-language-packs.aspx#comments</comments><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR:#ffffff;" color="#ff0000"&gt;This article has been updated&amp;nbsp;25th January 2010 to include additional resources.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;For those of you working in different languages there are&amp;nbsp;3 language packs available to extend the translations for Sage CRM 6.1 and 6.2.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;6.1 Language pack for Turkish&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;6.2d Language pack for French, German and Spanish&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;6.2c Language pack for Dutch&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;These Language Packs can be installed on top of an existing CRM installation. The language pack populates the Sage CRM translation table (Custom_Captions) with the relevant language translations. &lt;/p&gt;
&lt;p&gt;The French, German and Spanish language pack is included in one package as the translations for these languages are updated regularly and in parallel. The installer allows the selection of which language you wish to install. &lt;/p&gt;
&lt;p&gt;The language packs can be downloaded by development partners from the resources section.&lt;/p&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://dpp.sagecrm.com/files/folders/languagepacks/entry3317.aspx"&gt;6.1 Language pack for Turkish&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://dpp.sagecrm.com/files/folders/languagepacks/entry3086.aspx"&gt;6.2d Language pack for French, German and Spanish&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://dpp.sagecrm.com/files/folders/languagepacks/entry3088.aspx"&gt;6.2c Language pack for Dutch&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;p&gt;The language packs will install onto any language CRM. It doesn’t check and it doesn’t matter what language version of CRM it installs onto. So a User of French CRM 6.2d could take the language pack and install German and Spanish captions for 6.2d. A Dutch user could take the English 6.2d and install the Dutch 6.2c language pack, and then further install 6.2d French, German or Spanish language pack. All the language pack does is populate the language column in the Custom_Captions with translations for that language.&lt;/p&gt;&lt;img src="http://dpp.sagecrm.com/aggbug.aspx?PostID=3227" width="1" height="1"&gt;</description><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/custom+captions/default.aspx">custom captions</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/translations/default.aspx">translations</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Sage+CRM+6.2/default.aspx">Sage CRM 6.2</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/German/default.aspx">German</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/French/default.aspx">French</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Dutch/default.aspx">Dutch</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Spanish/default.aspx">Spanish</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Language+Pack/default.aspx">Language Pack</category></item><item><title>Dynamically change SearchSQL for an SSA field client-side</title><link>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/01/25/dynamically-change-searchsql-for-an-ssa-field-client-side.aspx</link><pubDate>Mon, 25 Jan 2010 09:44:00 GMT</pubDate><guid isPermaLink="false">94c6599b-6b03-4097-ac1a-0c4ca7ff1508:3316</guid><dc:creator>JackAllan</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/rsscomments.aspx?PostID=3316</wfw:commentRss><comments>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/01/25/dynamically-change-searchsql-for-an-ssa-field-client-side.aspx#comments</comments><description>&lt;p&gt;Recently I was asked if it is possible to restrict a Search Select Advanced field based on criteria that may change client-side.&amp;nbsp; The answer was no, it&amp;#39;s not possible through standard customization.&amp;nbsp; However it&amp;#39;s not impossible...&lt;/p&gt;
&lt;p&gt;&lt;font color="#ff0000"&gt;I want to be very upfront about this blog post: it is about an &lt;strong&gt;&lt;u&gt;un-supported&lt;/u&gt;&lt;/strong&gt; technique for &lt;strong&gt;&lt;u&gt;hacking &lt;/u&gt;&lt;/strong&gt;functionality into CRM using client-side javascript.&amp;nbsp; Before using any of the techniques described in this post please read &lt;/font&gt;&lt;a href="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/01/25/jack-s-hack-faq.aspx"&gt;Jack’s Hack FAQ&lt;/a&gt;&lt;font color="#ff0000"&gt; to learn more about hacks and the risks involved in using them.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;There are two functions that get invoked client-side when a user interacts with an SSA field, they are: window.NavUrl&amp;lt;&amp;lt;fieldname&amp;gt;&amp;gt; and window.ShowPopupOptionsWindow&amp;lt;&amp;lt;fieldname&amp;gt;&amp;gt;.&amp;nbsp; As an excercise in learning, go to a CRM screen that has an SSA field and view the source and find these functions.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;You will see that the SearchSQL is written in here.&amp;nbsp; It gets passed back to CRM when displaying the drop down list of values or when the user goes to the Find pop up screen.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;This means that we &lt;strong&gt;can&lt;/strong&gt; change the SearchSQL client side... It&amp;#39;s within our control.&amp;nbsp; The question is: how?&lt;/p&gt;
&lt;p&gt;What we need to do is to re-write the function, replacing the SearchSQL value with what we want it to be.&amp;nbsp; We can then: replace the existing function with the re-written function, and voila! the SearchSQL has been effectively changed.&amp;nbsp; (Note server-side the SearchSQL has not been altered in the meta-data)&lt;/p&gt;
&lt;p&gt;To do this we will be exploiting some very useful features of javascript:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div&gt;All functions are variables&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;All functions can be turned into their string representation using &lt;a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Function/toString"&gt;toString&lt;/a&gt;().&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;The &lt;a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Functions/eval"&gt;eval&lt;/a&gt; method can be used to execute any string as if you had typed the javascript yourself.&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;So, first things first, we need to get the function into a variable so we can mess with it.&amp;nbsp; We could just say:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;var&amp;nbsp;s = window.NavUrlcase_primarypersonid.toString();&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;but we want to use this hack in multiple places and don&amp;#39;t want to have to re-write it for each scenario.&amp;nbsp; So it&amp;#39;d be nicer if we could load the fieldname into a variable and then use that to reference the function.&amp;nbsp; So instead we will use:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;var&amp;nbsp;s = window[&amp;#39;NavUrl&amp;#39; + strFieldname].toString();&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;So now our&amp;nbsp;variable, s, has the following in it:&lt;/p&gt;
&lt;blockquote&gt;&lt;pre style="BORDER-BOTTOM:#999999 1px dashed;BORDER-LEFT:#999999 1px dashed;PADDING-BOTTOM:5px;BACKGROUND-COLOR:#eee;TEXT-INDENT:0px;PADDING-LEFT:5px;WIDTH:90%;PADDING-RIGHT:5px;FONT-FAMILY:Andale Mono, Lucida Console, Monaco, fixed, monospace;OVERFLOW:auto;BORDER-TOP:#999999 1px dashed;BORDER-RIGHT:#999999 1px dashed;PADDING-TOP:5px;"&gt;&lt;p&gt;&lt;font face="courier new,courier"&gt;function NavUrlcase_primarypersonid(ID,url,fieldname){&lt;br /&gt;var e=&amp;#39;&amp;#39;;if(ID){ if(document.EntryForm.case_primarypersonid.value == ID) { return false; } else e=&amp;#39;&amp;amp;ID=&amp;#39;+ID;}else{if(document.EntryForm.case_primarypersonid!=null &amp;amp;&amp;amp; document.EntryForm.case_primarypersonid.value!=&amp;#39;&amp;#39;){if(confirm(&amp;#39;The field is already matched. Do you want to clear the results?&amp;#39;)){Clearcase_primarypersonid();}return;}}var u=&amp;#39;/jCRM62/eware.dll/Do?SID=111476224537364&amp;amp;Act=1275&amp;amp;Mode=6&amp;amp;CLk=&amp;amp;Key0=4&amp;amp;Key4=1&amp;amp;Key27=40&amp;amp;ViewField=,Pers_FullName,Pers_PhoneFullNumber,&lt;br /&gt;&amp;amp;JumpReturnCol=case_primarypersonid&amp;amp;JumpIdField=Pers_PersonId&amp;amp;JumpNameField=Pers_FullName&amp;amp;SearchEntity=Person&lt;br /&gt;&amp;amp;SearchTable=vSearchListPerson&amp;amp;&lt;font style="BACKGROUND-COLOR:#ffff00;"&gt;SearchSql=&lt;/font&gt;&amp;amp;searchsqld=&amp;amp;SsDef=20&amp;amp;LinkedField=&amp;amp;TiedField=case_primarypersonid&lt;br /&gt;&amp;amp;SearchText=&amp;#39;+encodeURIComponent(document.EntryForm.case_primarypersonidTEXT.value)+e;document.getElementById(&amp;#39;SEARCHFRAMEcase_primarypersonid&amp;#39;).src=u;&lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;&lt;/pre&gt;&lt;/blockquote&gt;
&lt;p&gt;Now all we need to do is replace the existing SearchSQL with our own.&amp;nbsp; Because the function is now a string this can be done very easily with &lt;a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp"&gt;regular expression&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;s = s.replace(/&amp;amp;SearchSql=[^&amp;amp;]*/i, &amp;#39;&amp;amp;SearchSql=&amp;#39; + escape(searchSQL));&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Note we&amp;nbsp;use the built in &lt;a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Predefined_Functions/escape_and_unescape_Functions"&gt;escape&lt;/a&gt; function to put the searchSQL into the correct format.&amp;nbsp;&amp;nbsp; This will handle all the appropriate delimiting for us.&lt;/p&gt;
&lt;p&gt;Next we need to replace the existing function with our new function.&amp;nbsp; To do this we will use the eval function to make javascript interpret our string as an actual function definition.&amp;nbsp; But first we need to strip out the function name, as when you assign a function to a variable it should be an &lt;a href="http://helephant.com/2008/08/javascript-anonymous-functions/"&gt;anonymous&lt;/a&gt; function. To strip the name out we use the replace method again:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;s = s.replace(&amp;#39;NavUrl&amp;#39; + strFieldname, &amp;#39;&amp;#39;);&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;OK, so now we can use the eval statement like this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;eval(&amp;#39;window[\&amp;#39;NavUrl\&amp;#39;+strFieldname]=&amp;#39; + s);&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;This is the equivalent to us typing out by hand the following:&lt;/p&gt;
&lt;blockquote&gt;&lt;pre style="BORDER-BOTTOM:#999999 1px dashed;BORDER-LEFT:#999999 1px dashed;PADDING-BOTTOM:5px;BACKGROUND-COLOR:#eee;TEXT-INDENT:0px;PADDING-LEFT:5px;WIDTH:90%;PADDING-RIGHT:5px;FONT-FAMILY:Andale Mono, Lucida Console, Monaco, fixed, monospace;OVERFLOW:auto;BORDER-TOP:#999999 1px dashed;BORDER-RIGHT:#999999 1px dashed;PADDING-TOP:5px;"&gt;&lt;p&gt;&lt;font face="courier new,courier"&gt;window.NavUrlcase_primarypersonid = function (ID,url,fieldname){&lt;br /&gt;var e=&amp;#39;&amp;#39;;if(ID){ if(document.EntryForm.case_primarypersonid.value == ID) { return false; } else e=&amp;#39;&amp;amp;ID=&amp;#39;+ID;}else{if(document.EntryForm.case_primarypersonid!=null &amp;amp;&amp;amp; document.EntryForm.case_primarypersonid.value!=&amp;#39;&amp;#39;){if(confirm(&amp;#39;The field is already matched. Do you want to clear the results?&amp;#39;)){Clearcase_primarypersonid();}return;}}var u=&amp;#39;/jCRM62/eware.dll/Do?SID=111476224537364&amp;amp;Act=1275&amp;amp;Mode=6&amp;amp;CLk=&amp;amp;Key0=4&amp;amp;Key4=1&amp;amp;Key27=40&amp;amp;ViewField=,Pers_FullName,Pers_PhoneFullNumber,&lt;br /&gt;&amp;amp;JumpReturnCol=case_primarypersonid&amp;amp;JumpIdField=Pers_PersonId&amp;amp;JumpNameField=Pers_FullName&amp;amp;SearchEntity=Person&lt;br /&gt;&amp;amp;SearchTable=vSearchListPerson&amp;amp;SearchSql=pers_lastname%20LIKE%20%27s%25%27&amp;amp;searchsqld=&amp;amp;SsDef=20&amp;amp;LinkedField=&amp;amp;TiedField=case_primarypersonid&lt;br /&gt;&amp;amp;SearchText=&amp;#39;+encodeURIComponent(document.EntryForm.case_primarypersonidTEXT.value)+e;document.getElementById(&amp;#39;SEARCHFRAMEcase_primarypersonid&amp;#39;).src=u;&lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;&lt;/pre&gt;&lt;/blockquote&gt;
&lt;p&gt;Now when the CRM UI goes to call the NavUrl function it will call ours, with the modified SearchSql, instead of the built-in one.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Using all the techniques described above we can create a re-usable function like this:&lt;/p&gt;
&lt;blockquote&gt;&lt;pre style="BORDER-BOTTOM:#999999 1px dashed;BORDER-LEFT:#999999 1px dashed;PADDING-BOTTOM:5px;BACKGROUND-COLOR:#eee;TEXT-INDENT:0px;PADDING-LEFT:5px;WIDTH:90%;PADDING-RIGHT:5px;FONT-FAMILY:Andale Mono, Lucida Console, Monaco, fixed, monospace;OVERFLOW:auto;BORDER-TOP:#999999 1px dashed;BORDER-RIGHT:#999999 1px dashed;PADDING-TOP:5px;"&gt;&lt;p&gt;&lt;font face="courier new,courier"&gt;function SetSSASearchSQL(strFieldname, searchSQL) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!window[&amp;#39;NavUrl&amp;#39; + strFieldname]) return; // if the function does not exist we must not be in edit mode&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // replace SearchSql in the NavUrl function&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; eval(&amp;#39;window[\&amp;#39;NavUrl\&amp;#39;+strFieldname]=&amp;#39; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + window[&amp;#39;NavUrl&amp;#39; + strFieldname].toString().replace(/&amp;amp;SearchSql=[^&amp;amp;]*/i, &amp;#39;&amp;amp;SearchSql=&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + escape(searchSQL)).replace(&amp;#39;NavUrl&amp;#39; + strFieldname, &amp;#39;&amp;#39;) + &amp;#39;;&amp;#39;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // replace SearchSql in the&amp;nbsp;ShowPopup function&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; eval(&amp;#39;window[\&amp;#39;ShowPopupOptionsWindow\&amp;#39;+strFieldname]=&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + window[&amp;#39;ShowPopupOptionsWindow&amp;#39; + strFieldname].toString().replace(/&amp;amp;SearchSql=[^&amp;amp;]*/i, &amp;#39;&amp;amp;SearchSql=&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + escape(searchSQL)).replace(&amp;#39;ShowPopupOptionsWindow&amp;#39; + strFieldname, &amp;#39;&amp;#39;) + &amp;#39;;&amp;#39;);&lt;br /&gt;}&lt;/font&gt;&lt;font face="courier new,courier"&gt;&lt;/font&gt;&lt;/p&gt;&lt;/pre&gt;&lt;/blockquote&gt;
&lt;p&gt;We can then test this function using code like this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;window.attachEvent(&amp;#39;onload&amp;#39;, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function () {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetSSASearchSQL(&amp;#39;case_primarypersonid&amp;#39;, &amp;quot;pers_lastname LIKE &amp;#39;s%&amp;#39;&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;);&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;So there you have it.&amp;nbsp; Using this technique you can dynamically change SearchSql client side on Search Select Advanced fields.&lt;/p&gt;&lt;img src="http://dpp.sagecrm.com/aggbug.aspx?PostID=3316" width="1" height="1"&gt;</description><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/clientside/default.aspx">clientside</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Search+Select+Advanced/default.aspx">Search Select Advanced</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/SearchSQL/default.aspx">SearchSQL</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/JackAllan/default.aspx">JackAllan</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/hack/default.aspx">hack</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/ssa/default.aspx">ssa</category></item><item><title>Jack's Hack FAQ</title><link>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/01/25/jack-s-hack-faq.aspx</link><pubDate>Mon, 25 Jan 2010 09:39:00 GMT</pubDate><guid isPermaLink="false">94c6599b-6b03-4097-ac1a-0c4ca7ff1508:3315</guid><dc:creator>JackAllan</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/rsscomments.aspx?PostID=3315</wfw:commentRss><comments>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/01/25/jack-s-hack-faq.aspx#comments</comments><description>&lt;p&gt;&lt;strong&gt;hack&lt;/strong&gt; [hāk]&lt;/p&gt;
&lt;p&gt;-verb (used with object):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;To cut, notch, slice, chop, or sever (something.)&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;To damage or injure by crude, harsh, or insensitive treatment; mutilate; mangle.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;-computing jargon:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;A quick job that produces what is needed, but not well.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;To alter the intended function of a computer program to suit your needs in a skilful way.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;-Sage CRM Support:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Completely unsupported method of enhancing the product that may break (itself or the core product) with upgrades.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;What makes a hack a hack?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Basically when it relies on the product working in a particular undocumented way.&amp;nbsp; For example, client-side scripting can achieve many useful things by fiddling with the HTML in the browser, however, the way that the user interface is implemented in HTML by CRM is not documented and therefore is subject to change.&amp;nbsp; SageCRM reserves the right to change the internal workings of the product at any-time to improve the product; and we do this all the time!&amp;nbsp; So whenever you create a customization that relies upon an undocumented working of the product you are introducing a risk of that customization breaking (either itself or the whole product) with upgrades.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;When to use a hack?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Officially?&amp;nbsp; Never!&amp;nbsp; Always use the supported UI &amp;amp; API methods of customizing CRM.&amp;nbsp; This is so you can guarantee that your customization will continue to work with patches and upgrades with minimal rework &amp;amp; testing required.&amp;nbsp; Also you have Sage&amp;#39;s help &amp;amp; support in fixing problems should they arise upon patching or upgrading.&amp;nbsp; SageCRM only supports the latest patch level on the last three major releases of the product, so if a customer is tied to an old patch because of the regression testing required for upgrading your unsupported customization they have effectively lost their support from Sage; and this is not good for anyone involved!&lt;br /&gt;Note: CRM patches are released quarterly with major versions approximately once per year.&amp;nbsp; Sage does not support customizations; they support the ability to make customizations and the API’s.&amp;nbsp; The Sage CRM Level 3 Support team will not troubleshoot custom code in a support case, that is a chargeable service.&amp;nbsp; Consult your local PSG team for help with your customizations.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;If it’s not supported why do you blog about hacks?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sometimes a client-side feature, that is not available in the core product, could be very useful to a customer.&amp;nbsp; Sometimes the cost of testing, and possibly re-writing, a hack at each patch/upgrade is less than the benefit of the customization to the customer.&amp;nbsp; Often such features are a convenience to the end user and it does not matter a great deal if the feature is removed entirely if it breaks.&lt;br /&gt;From my experience from working in the CRM Support team I know that people hack CRM all the time, rather than discourage it entirely I’d like to educate people to the risks involved and hopefully show, by way of example, low risk approaches to non standard customizations.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Guidelines&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Always attempt to use the APIs and customization features available in the core product first.&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Never rely on a client-side hack to enforce any kind of business logic or security.&amp;nbsp; (This should be done in server-side scripts: create/validate &amp;amp; table level scripts.)&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;If your hack adds critical functionality to the product seek advice in the form of a customization review from your local PSG teams so they can give you an assessment of the risks you are introducing.&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;If you are using your hack all over the place it may make a great feature for the core product and we’d love to know about your idea.&amp;nbsp;&amp;nbsp; Please log an enhancement request through your support channels and the feature may very well end up in the next version of CRM!&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://dpp.sagecrm.com/aggbug.aspx?PostID=3315" width="1" height="1"&gt;</description><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/clientside/default.aspx">clientside</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Javascript/default.aspx">Javascript</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/customization/default.aspx">customization</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/JackAllan/default.aspx">JackAllan</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/unsupported/default.aspx">unsupported</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/support/default.aspx">support</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/hack/default.aspx">hack</category></item><item><title>Installing Self Service</title><link>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/01/21/installing-self-service.aspx</link><pubDate>Thu, 21 Jan 2010 09:52:00 GMT</pubDate><guid isPermaLink="false">94c6599b-6b03-4097-ac1a-0c4ca7ff1508:3305</guid><dc:creator>Jeff Richards</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/rsscomments.aspx?PostID=3305</wfw:commentRss><comments>http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/2010/01/21/installing-self-service.aspx#comments</comments><description>&lt;p&gt;Below is a simple diagram showing the architecture of Sage CRM&amp;#39;s self service module.&amp;nbsp; You can see that this clearly implies that the Self Service site exists beyond the corporate firewall.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/selfservice.png"&gt;&lt;img border="0" src="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/selfservice.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For a company that is using Sage CRM, how do they go about enabling the Self Service feature on the external site? &lt;/p&gt;
&lt;p&gt;A typically starting point might be one Server on the LAN with&amp;nbsp;a Sage CRM installation. The same server&amp;nbsp;maybe used for the database e.g. MS SQL 2005 and any ERP Software with integration.&lt;/p&gt;
&lt;p&gt;How can we install the Self Service component on new Server to be placed beyond the firewall? The important thing to realise is that Self Service does not has a separate install.&amp;nbsp; You can only install and register the eWare.SelfService object by installing a copy CRM which has Self Service enabled.&amp;nbsp; This means that on the machine you want to use for Self Service you will need to install a copy of Sage CRM with a license that includes Self Service.&lt;/p&gt;
&lt;p&gt;You then need to change the settings so that &amp;#39;new&amp;#39; install points to the correct database within the network.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/selfserviceconfig.png"&gt;&lt;img border="0" src="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/selfserviceconfig.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://dpp.sagecrm.com/aggbug.aspx?PostID=3305" width="1" height="1"&gt;</description><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Self+Service/default.aspx">Self Service</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Installation/default.aspx">Installation</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Sage+CRM+6.2/default.aspx">Sage CRM 6.2</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/System+Administration/default.aspx">System Administration</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/Sage+CRM+7.0/default.aspx">Sage CRM 7.0</category><category domain="http://dpp.sagecrm.com/blogs/hints_tips_and_tricks/archive/tags/configuration/default.aspx">configuration</category></item></channel></rss>