Browse By Tags

  • Blog Post: Working with 'Create Follow-Up Task' and 'Create Follow-Up Appointments' using Server Side code

    The image above shows the New Task screen. Both the New Task and New Appointment screens allow a user to Create Follow-up Communications. A customer might have a business requirement to know whether the communication a user is currently entering is actually a followup of another communication. That...
  • Blog Post: Workflow and Web Services

    The CRM Webservices API allows the change of the data in the record or set of records being manipulated but it can't invoke the workflow behaviour to change the workflow state. You can have a Web Services call change the stage and the status fields and any other data field you want but the workflowstate...
  • Blog Post: The Values() collection

    This article has been edited and corrected. The code in this article has been changed to follow the coding convention that was introduced in Sage CRM 6.2 The Values() collection can be used in all serverside scripts to examine the passed in Values from a form. Create Scripts Validate Scripts...
  • Blog Post: Correcting inbound data using Table Level scripts and Values() collection

    Occasionally we need to be able to correct data that has been submitted to bring it within tolerance. An example of this maybe where someone has chosen a customer credit limit level that is too high and we need to change this to the maximum allowed value based on the customer current outstanding orders...
  • Blog Post: Using a Table Level Script to Track Changes to Data Made by Users.

    This article uses an idea first mentioned in " Validation Rules Don't Always Mean Stop! ". The example 'UpdateRecord' event function below will write out into a log file which fields have changed. It won't write every field in the screen so we first need to know what fields...
  • Blog Post: Controlling the Detached TableLevel Script Interval

    This article was updated 31st October 2009 to correct hyperlinks. Detached TableLevel Scripts are created in the same way as TableLevel scripts, except you select Detached Table Level from the Script Type list when completing the Table Script details. Unlike TableLevel scripts, Detached Table Level...
  • Blog Post: TableLevel Scripts and SQL TimeOuts

    Any SQL statement may take time to run and result in a timeout error. In Sage CRM the general timeout period is controlled within the Administration -> System -> Database screen by setting the Query Timeout field value. This is expressed in seconds and represents the maximum amount of time that...
  • Blog Post: Interacting Table Level Scripts: A Chain Reaction

    Consider this scenario. There is an UpdateRecord() event function in a TLS on the Company. When the Company assigned user is changed (comp_primaryuserid) then all the 'In Progress' opportunities belonging to that company are reassigned to the new company account manager (oppo_assigneduserid...
  • Blog Post: Using a TableLevel script to Update Submitted Values

    This article has been updated 22nd May 2009 to ensure the code follows the convention introduced in Sage CRM 6.2. Imagine you have a requirement to a ensure that a particular opportunity field contains certain data as an Opportunity record is inserted. In addition this information should be partially...
  • 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: Sage CRM 6.2 Quick Start Performance Guide

    This document has been made available for development partners. This covers version Sage CRM 6.2. We are pleased to announce the release of the 'Sage CRM Quick Start Performance Guide'. The idea behind this Guide is to provide you with some quick hints and tips to try to optimize CRM performance...
  • Blog Post: How do you know if your Table Level Scripts are being executed?

    Hi all, Something I've come across time and time again is where people are not sure if their Table Level Scripts are being executed. It's difficult to see where you went wrong on your table level script if you're not even sure whether it has been executed or not. Furthermore if you...
  • Blog Post: Getting Information about Web Services in Sage CRM

    There are two relevant items of documentation: The Web Services Guide and the System Administration Guide. You can also find general information about the webservices in a recorded webinar within the training section of the DPP website. And there are articles written about webservices on the blog . When...
  • Blog Post: A Table Level Script to update Opportunities when a Company is Reassigned

    A customer had the requirement that when a company was reassigned to a different account manager, the opportunities that belonged to that company that were still in progress should automatically be reassigned to the new company account manager. This was accomplished using an UpdateRecord event function...
  • Blog Post: How can I get the SID in Serverside scripting?

    The SID is the session ID value. The SID may be wanted if you are building a string that represents a hyperlink that will be returned to the browser. The SID after all only is needed for a new web request, we do not actually need it within server side scripts normally as there we are already in the context...
  • Blog Post: Function library for tablescripts

    The code on this page was corrected 31st October 2009. Tablescripts are great, they allow you to add code to Sage CRM which will always fire when a table event happens, for example, the company is updated. Look in the developer/admin guides for more details on them. The problem is that you may...
  • Blog Post: Taking a Snapshot of Currency Exchange Values

    Sage CRM offers Multi Currency features. This allows, for example, a Sales user in the UK to quote in Sterling for their British Customers and to Quote in Euros for their German customers. The Sales Manager in Ireland can then see both quotes expressed in Euros or a financial controller in the US could...
  • Blog Post: Validation rules don't always mean "Stop!"

    This article has been updated to follow the coding convention that was introduced in Sage CRM 6.2 I was asked recently about how to create a log of when data was changed within a particular screen. Now the requirement was focussed on the screen and not on the the record. If we had been interested...
  • 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: Create a reminder task for a user when an opportunity is inserted.

    Workflow is very powerful but one of the limitations is that Follow Up Actions, such as 'Create Task' or 'Create Appointment' can not be invoked on Primary Rules. Note : The action 'Create Appointment' is new for Sage CRM 7.3 sp3. This means that if a business rule states...
  • Blog Post: Adding Additional Custom Logs to Sage CRM

    If you are working on an integration of Sage CRM with another system you may have a requirement to Log errors that are specific to the integration itself. For example integrating Sage CRM with an ERP system you may wish to report errors fully so that possibly several lines worth of info) is logged to...
  • 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: Objects Available in the Internal COM API

    The diagram below contains the objects, methods and properties that are the main ones used in the internal COM API of Sage CRM. These objects can be used in field level scripts; Create and Validate and also in TableLevel scripts and Workflow JScript conditions. The are sometimes...
  • Blog Post: Reporting on Customizations

    One of the chief advantages of Sage CRM is that it is meta data based. The definitions of screens, lists and business rules like workflow are all stored in the database. If you change the definition in the database then it immediately changes the system with out need to recompile or otherwise 'deploy'...
  • Blog Post: Validation of Dates

    The validation of dates can be tricky. Partly this is due to jscript and partly down to the flexibility that Sage CRM provides in allowing dates to be presented. I have covered how default values dates can be controlled in the article: Populating Default Date Field Values Other Date related articles...