View more results: All Community | Partner Community
  • Blog Post: You may need to recreate views manually

    This article has been updated to include new material for Sage CRM 6.2 Please note that this is not an exhaustive discussion and but simply represents the things that come to my mind when seeing this error. Why does it appear? The can be several reasons why this message appears and it usually comes...
  • Blog Post: Allowing Views that Return Duplicate Person records to be used in Group definitions

    Please see the article " Reports, Saved Searches and Groups " for background information on how Groups are defined in Sage CRM. This article is relevent when needing to create Groups that are based on a view that returns multiple instances of the same person record. This maybe because of...
  • Blog Post: Building Cross Database Views for Reporting

    You may need to reference data held outside of Sage CRM and within another application's database for a variety of business requirements including Reporting Graphing Reports within CRM are based on views and so if the SQL within a view can provide a way of accessing data in an external...
  • Blog Post: The Design of Web Service Applications and Performance

    My hope is that if you have attended any of my presentations about the Web Services interface for Sage CRM you will have taken away with you an impression of the importance of the design of the client application and how this would affect performance. The source code for the sample application which...
  • Blog Post: Getting the Database DataType for a field

    The code example in this article has been corrected and brought into line with the coding standard introduced in Sage CRM 6.2 Occasionally you may be faced with a requirement to know what database datatype a field is before you start to work with it. This type of information is not held in the...
  • Blog Post: Reports and Graphs using Key Attribute Data

    Reports and Report Charts can only be built from views. So If we want to create a Report Chart that uses Key Attribute Data then we must first create the view. The structure of the tables that holds the key attribute data is complex and trying to work this out on our own to build a view would be a deeply...
  • Blog Post: Getting Rid of Demo and Test Data

    One of the tips that I suggest in my lectures is to carry out development with a system loaded with a reasonable amount of data. This is to allow you to get a sense of what the behaviour of the finished system would be like. There are also some fields like intelligent selects and user selections that...
  • Blog Post: The Journal Table

    I was tempted to start a new series of articles called " Mysterious Tables of Sage CRM " but since this is supposed to be a sensible library of "Hints, Tips and Tricks" I have resisted. Nevertheless there are a few tables in the Sage CRM database that whose purpose maybe obscure to...
  • Blog Post: The SQL Tab Clause and the User Admin screens

    This article has been updated (29th April 2009) to use the coding convention introduced in Sage CRM 6.2 Normally when you enter a SQL Tab condition associated with an option in a Tabgroup you can either work with the current entity in context or the current user in context. But what if you want...
  • Blog Post: Discovering Data Relationships in Code

    You may have a business requirement to cascade a change through the child records of a company. I have discussed previously how a table level script can be used to update all opportunities if the company is reassigned to a new account manager. See the article " A Table Level Script to update Opportunities...
  • Blog Post: How to add mobile number to My Contacts List block

    A query was raised recently about how to add fields, such as Mobile Phone Number, to the My Contacts list block. This query can be answered in 2 parts; firstly how to do retrieve the data we want to display and secondly from where, or from what view, does the List block retrieve it's data. We already...
  • Blog Post: How to display an oppo_opportunityid or another primary key in lists and reports.

    Once you have been working with Sage CRM for a little while you will notice that the primary keys (unique ID fields) have been suppressed from the interface. By that, I mean that you can't refer to them directly in Lists and Screens. This is normally fine as the keys job is only to allow Sage...
  • Blog Post: Who's been looking at my data? Recording access to Company and Person screens

    I have discussed creating logs and audit trails of changes to data in previous articles. See Using a Table Level Script to Track Changes to Data Made by Users. Validation rules don't always mean "Stop!" But many customers have the much more straight forward business need...
  • Blog Post: Sage CRM v7.1: If you don't check your views for Custom Entities you may lose functionality

    I have discussed some of the changes to the Data Model in Sage CRM v7.1 previously and I hope you have seen the article " Components that reference views need to be reviewed for Sage CRM v7.1 " that discusses the type of error that you may get when installing components developed in Sage CRM...
  • Blog Post: Why does N’ appear in system generated SQL?

    You may have seen in the SQL logs that Sage CRM passes strings using an N prefix. This denotes that the subsequent string is in Unicode (the N actually stands for National language character set). Which means that you are passing an NCHAR, NVARCHAR or NTEXT value, as opposed to CHAR, VARCHAR or TEXT...
  • Blog Post: Some thoughts about the Library

    I hope that the material that I put here is of use and is relevant to developers and partners implementing CRM. I can't claim all the articles published here under my name as 'all my own work'. I am a magpie of code snippets and will quite happily steal the bright ideas of cleverer colleagues...
  • 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: Step away from the SQL and put your hands where I can see them!

    Amongst Sage CRM developers there are two almost irresistible urges. The first is the itch to write code and try to solve all problems with "if, else" statements. Those of us who are experienced with Sage CRM will eventually learn that much coding can be avoided and we are gradually weaned...
  • Blog Post: Database Case-Sensitivity and Connecting to an External Case Sensitive Database

    If you are working with SQL Server you may have read in the System Administration guide that when installing Sage CRM the SQL server main install needs to have a case insensitive collation. A binary collation, or a case sensitive collation, is not supported for installation. But the documentation...
  • Blog Post: Adding Advanced Find and Mass Update and Groups for a Custom Entity (Project)

    This article is derived from a tip sent to me by a very experienced North American colleague and expanded as a consequence of a suggestion from a equally expert Singaporean colleague. The article will take you though the steps to add a custom entity to the Advanced Find screen. To do this you will need...
  • Blog Post: Sage CRM v7: SQL Authentication for MS SQL Server is needed when upgrading.

    In Sage CRM 6.2 is was possible to install on Microsoft SQL Server using either Windows Authentication or SQL Authentication. But when upgrading to Sage CRM v7, you are gived no ‘windows authentication’ option, so you are obliged to use SQL authentication to connect to the database...
  • Blog Post: Sage CRM v7:How to tracking a SData provider request to see the SQL that is fired.

    Perhaps you want to control the logging to see the REST request get handled and then see the database interaction. You may want to see how SQL changes between users (e.g. Mayes/Admin/Ebden) and how that may effect the XML payload returned. To see that information you need to set the logging level...
  • Blog Post: Using Quick Notifications to alert users of reassigned records

    The links in this article were corrected 22nd May 2009. Oh how angry I get with myself sometimes. I am a very stupid person. Someone sends me an email entitled 'a quick question' and in my idiocy I start trying to answer the question and look up nearly 3 hours later to find I have consumed...
  • Blog Post: Adding Derived Fields in Views into Meta Data

    I orginally wrote about creating derived fields in a view in the article " Custom_Edits and Derived Fields Created in Views ". This discussion is a continuation of the ideas expressed in that article and will show how meta data definitions of a calculated field can be easily added into Meta...
  • 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...