View more results: All Community | Partner Community
  • 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: 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: 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: 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: The 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: 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: Defining Namespace References

    In a previous article " Script Libraries: Reusing Client Side Code Between Screens " I discussed how Sage CRM 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: Binding Client Side Script to the onLoad event using crm.ready()

    Sage CRM has a Client Side method crm.ready() which is used to execute scripts once the page is loaded. We do not have to worry whether the browser is Chrome or Internet Explorer. The crm.ready() method will take the browser version into account and add the function we pass to it in the correct way...
  • Blog Post: 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 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 then we could...
  • 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: Controlling the RecentList using Client Side Code

    The GoRecent function is held in Sage CRM in an external file which is included in every page. Sage CRM Code Example <script> function doCode() { SageCRM.webMenu.GoRecent('C'); } </script>
  • 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: Modify field on another table in a workflow action

    When choosing a field for the Display Field For Amendment action, you can select fields from the view that are not on the table the rule is based on. For example you can select the comp_primaryuserid if you use the vSummaryOpportunity view to base your rule on. However this will not work by design: You...
  • Blog Post: CRM.AddContent() & Dummy Field Trick

    I thought I had written about this trick before but it appears not! A customer needed a technique to allow a chart to be displayed at the top of the company screen. This is a bit like the PipeLineGraphic of the OpportunityList or CaseList system screens. The way this has been added is really...
  • Blog Post: Conditionally send e-mail on entity creation

    It is common to have CRM send out an e-mail on the creation of a new entity. For example you may have an e-mail sent to the assigned user on a new Opportunity notifying them that a the Opportunity has been created and that it is assigned to them. This is achieved by putting a Send E-mail action on the...
  • Blog Post: Using Chrome to help write Client Side Scripts

    What I find is so useful about the Chrome developer console is that it lets you edit JavaScript code on the fly and so is a very good way of starting to evolve a business rule that needs to be written in the Custom Content field or even an onChange script. In the image above you can see how I have...
  • 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...