• Blog Post: Controlling the Display of Drop Down Options in Team Select Fields

    Many system entities such as Opportunities, Leads and Cases can be assigned to a Team. Custom Entities can also have Teams assigned to them. For historic reasons the Team field in the database is called channelid. user_primarychannelid oppo_channelid case_channelid lead_channelid ...
  • Blog Post: Using a Function in a CreateScript

    In the article " Creating Global Code for OnCreate and Validate scripts " I discussed how we can reuse functions across different create scripts either in the same screen or between different screens. One of the techniques that I suggested was the use of either a specialised table to hold...
  • 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: Using SearchSQL to limit data returned by selection lists

    In the screen shot below we can see the demo user "Susan Maye" is limited to assigned the new opportunity to only people in the "Direct Sales" team. This has been accomplished by using the property of the field (a.k.a entryblock) called SearchSQL. The SearchSQL property is discussed...
  • Blog Post: Using a Create Script to control a Search Screen

    The screen below shows the default company search screen. You can see that a user can search for "Inactive" companies. But... A customer might have the need to stop users from including "Inactive" companies in their searches. The companies should still be accessible in...
  • Blog Post: How to Hide the Assigned User Column in the Case List when in My CRM context

    A customer had the requirement to hide the column "Assigned To" from the Case List in the MyCRM menu. but show it in other contexts like company, person and especially Team? Note : This would be the same idea for any List called from the My CRM or Team contexts, e.g OpportunityList...
  • Blog Post: Field Level Security and Create Scripts

    The control of field level security can be found against each field listed under the Field tab in the customization area. Administration | Customization | TableName We know from the documentation that the field security interface provides a simple code-free approach for administrators to define how users...
  • Blog Post: Getting Hold of User Information in Code

    If you need to control the display of screen elements like buttons in ASP pages (or even client side in the browser screens) according to the identity of the CRM users then you will obviously need to be able to access the current user id. In ASP pages you can get hold of user information by using context...
  • 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: Populating Default Date Field Values

    This article has been updated. Create Script example Date/Time fields can can have their values set by using the DefaultType property. If DefaultType set to 6 then the field displays the Current Date/Time DefaultType = 6; If DefaultType set to 14 then the field displays the Current Date/Time plus...
  • 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: The display of a photo or image in the person screen

    The idea behind this article is that you can use the normal document upload to upload a picture file into the library. That image can then be displayed on the person summary screen. You will have to change options on the libr_type top allow files of type 'image' to be uploaded. I have assumed...
  • Blog Post: Lookup Fields that Side Step Security

    In this article I would like to discuss a number of distinct concepts and then bring them together. Search Select Advanced Fields Security and Data Access Dynamically Changing Field Properties using an Internal (Create) Script Imagine a business requirement to include in the Company Field...
  • Blog Post: Adding a LinkedIn Gadget to the Person Summary Screen

    LinkedIn is one of the most popular Social Media networks and is highly relevant to the business community. Sage CRM offers within the Interactive Dashboard the ability to research contacts directly in the LinkedIn community. Please see the article " Using Sage CRM to make LinkedIn work for you...
  • Blog Post: Using the COM Graphic Object in a Create Script within Sage CRM screens

    An on Premise Sage CRM customer had the the requirement to display the Opportunity Certainty data graphically. This can be achieved using the GraphicBlock object to create a graphic that can then be displayed by the Caption property of the field. You can learn more about the graphic object in...
  • Blog Post: Using Create Script in GridColumns

    In the image below we can see the Company Name is displayed in an opportunity list that is in the context of the company and so that column is redundant and does not need to be shown. The list is created by the opportunitylist system action which is used in a number of contexts My CRM...
  • Blog Post: Another Validation Trick for Search Screens

    This article has been prompted by a question I was asked at a recent Developer training course in Johannesburg, South Africa. I wrote some time ago an article called " Field Level Scripting in Search Screens " that discussed scripting in search screens. One of the tips discussed in the article...
  • Blog Post: Company and Person Workflow Progress with Tracking tab in CRM

    Many thanks must go to a colleague in the UK professional services team for this article. Introduction Customers often request the ability to track Company or Person changes in much the same way that CRM offers with Opportunity and Case entities. As standard, CRM does not offer a CompanyProgress...
  • Blog Post: Working with a Person's Address Type

    When you edit or add a new address for a person in Sage CRM you are invited to specify whether the address is a Business address or a Home address. This choice is then shown on the address list for the person. The default choice for address type is 'Business' or 'Home'. This...
  • Blog Post: Displaying an Image on a Custom Entity Page

    This article has been prompted by a forum question and builds on an earlier article I wrote called " The display of a photo or image in the person screen ". That article discussed how to provide the facility to upload an image that is then displayed on the person summary screen. But what about...
  • Blog Post: Field Level Scripting in Search Screens

    Imagine the situation where there may be a problem with allowing users to search against a entity with out putting in at least one search criterion. You may find the searching against companies too slow if people do not put in the company name for example. If we consider the CompanySearchBox used in...
  • Blog Post: CurrentUser object in Serverside Code

    The CurrentUser object can be used in all serverside code including Create Scripts, Validation scripts, Table Level scripts and Workflow javascript conditions. It provides information about the current user session. You can list the properties of the CurrentUser object by using this snippet of code in...
  • Blog Post: More about the Values and FormValues collections

    The Values() and FormValues() collections are serverside methods that are analogous to the ASP Request.Form() and Request.QueryString() collections. In an ASP page we can see the submitted values of the HTML form by examining the Request.Form() collection: e.g. [code language="javascript"...
  • Blog Post: Using a Create Script to produce an automatically incrementing number.

    This example code is provided by a colleague in Switzerland. It provides an alternative way of creating an automatically incrementing field value. The result of the code is to create an incrementing number that includes the current "year" as a prefix and then "-" plus a number that...
  • Blog Post: Using the COM CRM.CreateQueryObj() to call a Stored Procedure.

    Below is some code that illustrates how a Stored Procedure maybe invoked in the QueryObject. var strSQL = "DECLARE @@ret int"; strSQL += " EXEC @@ret=eware_get_identity_id 'notes'"; strSQL += " INSERT notes"; strSQL += " (note_noteid,note_foreigntableid,note_foreignid...