Browse By Tags

  • 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: Customizing the Opportunity Pipeline Summary Information

    Can we customise the "Statistics for All stages" that appear next to the pipeline in My CRM / Opportunities? The pipeline graphic and its associated statistics are driven from within the dll and have no definition within meta data. This means that we have no obvious way of changing the data...
  • 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: Field Identification in Clientside code in Sage CRM screens (including Self Service and Web To Lead)

    One of the most important tricks that anyone starting to write scripts for use in Sage CRM needs to know is how fields can be very easily identified when they are written out onto the screen. The HTML snippets below are from the CompanyBoxLong screen. In View Mode [code language="html"...
  • 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: 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: Using Client Side code in Workflow

    You can use Client Side code in Sage CRM workflow. The image below shows an Opportunity that is being progressed through a workflow in Sage CRM. In this example opportunity workflow the maximum certainty allowed for any stage has been controlled. e.g. Lead - 5 Qualified - 10 Quote Submitted - 15 Negotiating...
  • Blog Post: Pixel Perfect gadget contents with jquery

    I thought I'd share this: so I'm trying to create a custom gadget that displays a map and I want it to resize to fit the size of the gadget in a flexible layout. I needed a method of finding the height and width of the IFrame. It turns out this is very easy to do with some simple jquery. ...
  • Blog Post: Using the Clientside API to control Tabs

    Consider the following business rule. "A customer has a requirement that the Case Tab in the company screen should only display when the Company has an agreed service level agreement and the user accessing the screen is in the 'Customer Service' team." This is a business rule...
  • Blog Post: Detecting Screen Mode in the Client Side API

    Sage CRM Screens can exist in different ‘Modes’. The basic two modes that we have to worry about in Client Side code are View and Edit. We can use the fact that in Sage CRM <INPUT> HTML tags are named and have an ID with same name as the physical field in the database. e.g. <input...
  • Blog Post: Control of Grids, Lists and Columns Using the Client Side API

    The Client Side API contains methods that make it much easier to select rows, columns and individual cells for manipulation. Properties can be set, new data displayed in tool tips and the style of each cell can be changed. The documentation contains a good discussion of how to use the API. You can...
  • Blog Post: Creating Ajax calls using the Client Side API.

    Below is a screen shot of an Opportunity Summary page. You can see that as the mouse hovered over the Company Name in the 'For' panel of the screen a tool-tip appeared that displayed the company's Status and Type. This is information that is not normally available within the browser when...
  • Blog Post: Controlling Tabs with the Client Side API

    One of the common requirements that I hear during my conversations with partners and customers who are implementing Sage CRM is that at different points within a workflow or business process the organisation may need to make a user concentrate on only certain options that are most relevant at the time...
  • Blog Post: Calling extensions (ASP pages and .NET assemblies) from buttons added using the client side API

    The new Client Side API adds a very easy way of adding new buttons. crm.addButton(imageURL,captionfamily,captioncode,[options]) The new Client Side API allows application extensions to be called. This would typically mean calling either an ASP page or a .NET assembly. In order to do this we need...
  • Blog Post: Controlling the properties of New Buttons adding using the Client Side API

    The previous article " Calling Extensions (ASP pages and .NET assemblies) from Buttons added using the Client Side API " discussed how new buttons can be added to system screens. This article will look at how we can add the button exactly where we need and how we can control the behaviour...
  • Blog Post: Adding a Print Screen button to a system page using the client side API

    In this article I would like to consider 3 examples of adding a custom print button to a system screen. The button to be added will open a new version of the current screen that has minimal formatting which will allow the relevant information on the screen to be printed. The screen that will be used...
  • Blog Post: Adding Protection to Your Code in Script Libraries

    A partner recently asked me "how can I discourage any fiddling with the code I have written for my customer". The person who asked me this was anxious about two things. They wanted to make sure that their code didn't break, and they didn't want unauthorized people to 'borrow'...
  • Blog Post: Controlling FusionChart Widgets with the Client Side API

    The image above shows that the value of the oppo_certainty field has been rendered as a graphic widget. The certainty is shown as a value on a linear gauge using the features of the FusionChart libraries that can be used within Sage CRM. I created the chart above using the following code that was...
  • Blog Post: Adding Additional Information to the TopContent of a System Screen using the Client Side API

    In the image below you can see that I have added some additional HTML to the TopContent of the Person Summary screen. The following code can be added to the custom content box of a system screen like the PersonBoxLong or CompanyBoxLong. [code language="javascript"] <script> crm...
  • Blog Post: Creating a Mashup with a FusionChart and Ajax Data using the Client Side API

    The screen shot above of a Company Summary screen shows a graph displaying the count of opportunities and cases belonging to the company in the TopContent area. This has been created using the following code added to the Custom Content box of the CompanyBoxLong screen. <script> var myResults...
  • Blog Post: Hiding Panels in System Screens in Sage CRM

    Screens like the Opportunity Summary, Case Summary and Company Summary page are divided into different panels. Much of the page layout in the current version is controlled by HTML Tables. CSS styles are used to format the display of the tables and their TD tags. In these summary pages the different...
  • Blog Post: Controlling Default Values in Search Screens

    A customer had an issue. Their sales team used the Lead and Opportunity features extensively. Each day many leads were created in the system but the sales team members were getting annoyed that as they searched for the new leads through the main search page they were being distracted by those leads that...
  • Blog Post: Creating a compound filter (filterWhere) using the Client Side API

    This article is about the client side API. Specifically this article is concerned with how to write a script to handle the information within a grid and then apply an action to the cells, row or columns of the grid where more than one criteria is needed. Examples of using the client side API with...
  • Blog Post: Using an External Script file to add event code to a field.

    A customer had the requirement to place some rules on the company name field to discourage users from entering characters that were not allowed in business names. Which special characters may be used in a business name will differ between countries. I am most familiar with the UK rules having set...