• Blog Post: Sage CRM 7.2: Why Remove the Framesets?

    The structure of the screen created by Sage CRM v7.1 and earlier is frames based. If you have done any exploring of Sage CRM 7.2 you may well have discovered that there are hidden frames in the page. If you right click on a page in Sage CRM v7.1 or earlier and view source you will see the frames...
  • Blog Post: Sage CRM 7.2: The Impact of Frameset Removal on Code in Upgraded Systems

    The removal of the framesets in Sage CRM 7.2 has an impact in the follow areas onChange and Custom Content scripts. ASP extensions .NET extensions CTI Note: Depending on how you have coded customizations in Custom Gadgets there may be a potential impact on your Interactive Dashboards...
  • Blog Post: Sage CRM 7.2: Differences in Object References in Client Side Code (onChange & Custom Content)

    Consider the screen shown below This image happens to shown a data from a secondary entity being displayed in a summary screen in Sage CRM v7.1. You can see that in addition to the main entity information being displayed in the main part part of the screen there is also information from the...
  • Blog Post: Sage CRM 7.2: Enhanced Charting Options with Fusion Widgets

    Charts in Sage CRM 7.2 are now generated using HTML 5 meaning that Adobe Flash is no longer needed on the Client. This covers the display of charts in reports and in the Interactive Dashboards. In addition, Sage CRM 7.2 has extended the use of the Fusion Charts software within Sage CRM by including...
  • Blog Post: Useful Date Functions

    Occasionally you will need to fetch a date from either the CRM database or perhaps from an external system that is then needs to be formatted so it looks like a CRM date. All users are able to set their date preferences. The are other articles that discuss handling dates Add/Subtract...
  • Blog Post: The Client Side CurrentUser object

    In every screen (entrygroup) where you can add javascript (<script>) into the custom content box you can reference the clientside CurrentUser object. You can see that this has been used in several articles in the blogs such as " Controlling Buttons using Client Side code " And other...
  • Blog Post: The Clientside Control of Lists and Columns (for Sage CRM v7.1 and earlier)

    Note : This article discusses techniques relevant for Sage CRM v7.1 and earlier. If you are using Sage CRM 7.2 please refer to the articles that discuss the new Client Side API. I have previously provided an example of a function that may be used in a search screen to test whether the page contained...
  • Blog Post: Example Code to Generate a Pseudo-Random Password

    A Customer had a need as part of a Case Workflow to generate a Self Service username and password for their contacts. They were using an ASP page to do this and asked whether I had any code to generate a password for Self Service. This is a simple little script and you may find this useful for your...
  • Blog Post: Write to the CRM logs in a server-side script

    If you are developing a server-side script such as a Create Script, Validate Script or Table Level Script, it is often useful to write debugging information to a log. Jeff has blogged about a technique for doing this using the Scripting.FileSystemObject. I'd like to share with you a very simple...
  • Blog Post: How to filter a pipeline object based on filter screen values

    We know that a LIST block can be filtered based on a standard filter screen block via var filter = eWare.GetBlock("MyFilterBoxName"); var list = eWare.GetBlock("MyListName"); list.ArgObj = filter; Can we filter a pipeline object in a similar fashion? Unfortunately you cannot...
  • Blog Post: Jack's Hack FAQ

    hack [hāk] -verb (used with object): To cut, notch, slice, chop, or sever (something.) To damage or injure by crude, harsh, or insensitive treatment; mutilate; mangle. -computing jargon: A quick job that produces what is needed, but not well. To alter the intended...
  • Blog Post: Getting server side stuff client side (for Sage CRM v7.1sp2 and earlier)

    Note: This article discusses techniques relevant for Sage CRM v7.1sp2 and earlier. If you are using Sage CRM 7.2 please refer to the articles that discuss the new Client Side API. In this post I will be exploring the possibilities of combining the CRM.AddContent method and some javascript data transmission...
  • Blog Post: Managing Client Side Code in Sage CRM (for Sage CRM v7.1sp2 and earlier)

    Note: This article discusses techniques relevant for Sage CRM v7.1 and earlier. If you are using Sage CRM 7.2sp2 please refer to the articles that discuss the new Client Side API. How do we manage our client side script in Sage CRM to maximise our ability to maintain the code ? For those new to...
  • Blog Post: Sage CRM 7.2: Creating and Using ASP pages

    I have noted in previous articles that Sage CRM 7.2 has eliminated the use of Frames within its general screen architecture. Why Remove the Framesets? The Impact of Frameset Removal on CTI integrations The Impact of Frameset Removal on Code in Upgraded Systems ASP pages however are...
  • Blog Post: Using AJAX to access server-side objects client-side (for Sage CRM v7.1 and earlier)

    Note: This article discusses techniques relevant for Sage CRM v7.1 and earlier. If you are using Sage CRM 7.2 please refer to the articles that discuss the new Client Side API. *** See my recent blog post for information about an AJAX gotchya *** *** See my recent blog post for a different...
  • Blog Post: Sage CRM 7.2: The New Client Side API

    This is a simplified and specialised set of code libraries that will allow easy screen customizations. The API is based on the JQuery syntax although I must stress that knowledge of JQuery is not needed in order to use the API. The API is included as part of the full product development cycle and...
  • Blog Post: Adding a Button that Passes Contextual Information to an External Webpage

    You can add a button In a custom ASP page In a the code of a .NET assembly In a an existing system screen Buttons in an ASP Page If this is in an ASP page then the code for a simple button to call an external ASP page looks like var strCallASPButton = CRM.Button("ASP"...
  • Blog Post: Sage CRM 7.2: The Impact of Frameset Removal on CTI integrations

    Consider the following image. The default basic CTI offering in Sage CRM v7.1 used the frameset structure as highlighted in the above image. Sage CRM has a very flexible set of APIs and there have always been several hooks in existence to allow other companies to create CTI software that can...
  • Blog Post: Javascript Coding Made Easier with a Development Studio - Jet Brains Webstorm

    I see most of us in the developer community wanting to develop Sage CRM Client Side customizations via Javascript, but we when we use Visual Studio may not have great flexibility in writing client side code, This studio i.e. Web Storm helps you write Javascript based code for both HTML & HTML 5 with...
  • Blog Post: Filing e-mails against custom entities

    * The code in this article has been updated to fix a bug that caused it not to work for any entity that did not have a prefix that matched the entity name * A while back Jeff Richards wrote a blog post about how to add a button to the communications tab of a custom entity to send an e-mail just like...
  • Blog Post: Sage CRM 7.2: Script Libraries: Defining Namespace References

    In a previous article " Script Libraries: Reusing Client Side Code Between Screens " I discussed how Sage CRM 7.2 will automatically add any javascript file that you add to the custom folder into the header of every page produced by the system. It is a good idea when adding script libraries...
  • Blog Post: Sage CRM 7.2: Binding Client Side Script to the onLoad event using crm.ready()

    Sage CRM 7.2 has a Client Side method crm.ready() which is used to execute scripts once the page is loaded. In earlier versions of Sage CRM we could use 'Plain Old Javascript' to associate custom code to the moment the page was loaded. In Internet Explorer the way to do this was: window...
  • Blog Post: Sage CRM 7.2: Script Libraries: Reusing Client Side Code Between Screens

    It has always been possible in Sage CRM to share client side code between screens. In Sage CRM v7.1sp2 and earlier we could do this by using a shared external script library. For example if we wanted a set of business rules to be available in both the PersonBoxLong screen and the PersonBoxDedupe screen...
  • Blog Post: Including a JavaScript file in CRM screens

    OK, so lets say you have a bunch of javascript functions that you have put into a js file to use on multiple screens, or you want to use a 3rd party javascript library such as jQuery , prototype or scriptaculous with Sage CRM. How do you get the library/libraries loaded? Here are a couple of snippets...
  • Blog Post: How can I redirect to another screen immediately after entering a record? (for Sage CRM v7.1sp2 and earlier)

    Note: This article discusses techniques relevant for Sage CRM v7.1sp2 and earlier. If you are using Sage CRM 7.2 please refer to the articles that discuss the new Client Side API. This article has been prompted by the following business requirement. A customer needed to immediately redirect to the...