• Blog Post: Adding a new Panel to a Summary screen e.g. Company Summary

    A screen like the company summary screen has a very particular structure because it is partially defined in meta data and partial has its structure hard coded into the system action being called. The detail of this is discussed in the article " Changing a Summary Screen (e.g. Company Summary Screen...
  • Blog Post: Adding Clientside Code into Dynamically Built Workflow Action screens

    I had a conversation with a participant at one of the recent Bootcamps regarding the use of clientside code in dynamically built workflow screens. This topic has also appeared in the Forums with the community site. The partner's customer had a requirement that when a user was processing an opportunity...
  • Blog Post: Customizing Progress Screens when Workflow Switched Off (Lead/Opportunity/Cases/Solutions)

    There are 4 core entities in the system that have progress tables. Lead Opportunity Cases Solutions There are default workflows provides for these entities and in most implementations of Sage CRM the powerful feature of the graphical workflow engine will be used. This is found...
  • Blog Post: Injecting javascript into system action screens with no Custom Content field

    ** Note a better technique is described in this blog post ** One of the very nice features of CRM is the Custom Content field on screens. They allow you to enhance the functionality of screens and add business logic to be processed client-side, making for a smoother user experience. But there are...
  • Blog Post: Adding Dedupe Behaviour to the Lead Entity

    This article has been updated to ensure the variables that are passed can take into account a wider range of characters in passed names including umlauts, accents and cedillas. Although this article describes a technique for adding dedupe behaviour to the Lead table it may be adapted for other entities...
  • 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: How do default addresses and persons get created for a Company?

    When you create a new company using the standard system behaviour the Address and Person contact details that you provide get recorded into their separate tables and foreign key references are recorded on the company table to indicate which address and which person are default for that company. The foreign...
  • Blog Post: Clientside control of fields in Search screens including detection of grids and lists

    This tip is a modified product of a conversation that took place between a couple of my colleagues in the UK and US. The need was to find a technique that would allow the easy clientside control of fields with the search screens. It had to be clientside because the technique was needed for the hosted...
  • Blog Post: Making ServerSide objects available to ClientSide code (onChange and Custom Content scripts)

    If you have started to code with Sage CRM you will know that the world is seemingly divided into two, ServerSide and ClientSide. The objects and properties that we can use ServerSide can not be used within the browser. We have useful methods like CRM.GetContextInfo() which we use in Create Scripts, Validation...
  • Blog Post: Intelligent Selects

    Fields such as the user selection list (oppo_assigneduserid) are examples of a type of field known as an Intelligent Select The intelligent select in edit mode displays additional structures, a search box and a magnifying glass image. The search box associated with the intelligent select or user select...
  • Blog Post: Using Custom Content Script to Change the Properties of a Field based on Displayed Value (before Sage CRM v7.2)

    Note: This type of customization has become easier in Sage CRM v7.2 using the new Client Side API). The fields in screens are output with clear 'IDs' that allow the control of the field caption and data to be very easy. The HTML that makes up the display of a field like the comp_name...
  • Blog Post: Working Client Side with User Select Lists

    A customer had the need for a field on their company screen that works superficially like the highlighted section in this picture of the new communication screen. Really what the customer wanted was to have a field that contains a list of user names. The user names need to get added to the list by the...
  • Blog Post: Changing Search Select Advanced display fields

    CRM allows you to change the display fields used in an Search Select Advanced (SSA) field but it does not give you control over the order of the fields displayed. The following function, placed in the custom content of the screen, will allow you to change the order of the display fields: <script>...
  • Blog Post: Refreshing the Screen

    There are 3 ways of refreshing a screen in CRM. 1. The best way for a user to refresh a screen, for example a listing of Communications under the My CRM area, is to click the tab in the menu. This recalls the URL and refreshes the page safely. This is the way of refreshing a screen that should be taught...
  • Blog Post: Quotations in onChange Scripts

    Sage CRM uses JScript as its internal scripting language. And within JScript string literals can be included in your scripts by enclosing them in matching pairs of single or double quotation marks. Double quotation marks can be contained within strings surrounded by single quotation marks, and single...
  • Blog Post: How would you go about changing the font color of a caption in CRM?

    How would you go about changing the font color of a caption or field in Sage CRM? Below is a screen shot from my own system. This is the system that I use for testing ideas and proving concepts. The system has been integrated with a Sage BMS and the image below shows a customised opportunity summary...
  • Blog Post: Adding Google Charts in Sage CRM screens using Client Side code

    A customer had the requirement to display certain numeric data graphically within their Self Service site. Their requirement was to turn a field displaying numeric data on their public site into a 'widget'. They could have used a create script on the field and Sage CRM's own CRMGraphicBlock...
  • Blog Post: Choices in Customizing Lists

    You only need to follow the tags " List Page " or " List Block " to see that there have been lots of articles written already about how lists can be customized. In this article I want to step back and bring all these points together so we can see the range of options that we have...
  • Blog Post: Identification (ID) of Checkbox Fields in Clientside Code

    Checkbox controls (like Radio buttons) will have to be handled differently to other CRM field type within HTML. The way they are rendered in HTML must be taken into account. Checkboxes can theoretically be grouped on the same input name. In fact Fields in Sage CRM that are defined as Checkboxes in meta...
  • Blog Post: Barcode

    The following is a simple example of how to create a bar code, it requires the jquery barcode library which can be downloaded from the web. With custom content we could dynamically create a barcode on our CRM screen, or with HTML mail merge we could add barcodes to our documents. <html> <head>...
  • Blog Post: QR Code

    The following is a simple example of how to create a qr code, it requires the jquery qrcode library which can be downloaded from the web. With custom content we could dynamically create a qrcode on our CRM screen, or with HTML mail merge we could add barcodes to our documents. <html> <head>...
  • Blog Post: sdata crud (update example using SID)

    The following is an example of how to update a field, in this case an Oppo_OpportunityUId, via client side 'Custom Content' using an sdata2/sagecrm2 (CRUD) call. In this example the aim is to copy the hidden Opportunity Id to a new field so that it can be exposed to the end user as a unique reference...