• Blog Post: Building List screens with FilterBoxes

    Custom Pages that contain Search screens are fussy about block positioning. The search block does not work correctly if it is included into the container following the list making it more difficult to create a screen with filterbox like behaviour. The type of Screen I am aiming at is shown here. This...
  • Blog Post: Creating an View/Edit Screen based on a View using the COM ASP API

    Below is a screen shot of a compound screen that populates the fields on the screen from data retrieved from a view. This page has been built using an ASP page. It has used the method CRM.FindRecord(). Syntax is CRM.FindRecord('Entity,vViewName',ArgString); This is a good way...
  • Blog Post: Adding Extra Buttons to the Saved Search Screen

    Sage CRM has a feature called Button Groups that allow a system administrator to add buttons to System Screens. I have discussed Button Groups in several articles. Adding Buttons and Customizing the Email Screens Adding Buttons and Customizing the Outbound Call Screens Adding a Print Button...
  • Blog Post: Adding a Button to Generate an SData feed based on Current Context using the ASP/COM API

    I have discussed before how useful SData can be. If you know the feed details then you can use SData to extract data from Sage CRM into all sorts of applications. But there is a small snag and that is we can't expect users to know that if they want to pull out the Opportunities that belong to...
  • Blog Post: Adding Workflow Capability to a Secondary or Custom Entity

    It is possible to take an existing entity,either one that you have added to the system or an existing table such as notes, and allow it to be workflowed. The technique below will be effective for both custom tables and existing system tables. Using the Library table as an example Add a libr_workflowid...
  • Blog Post: Example Self Service Pages

    This article has be altered to allow download of files from this site. This is a very simple set of pages that can be used to illustrate how the COM API is used to develop self service applications for Sage CRM. There is minimal formatting used. You can drop the pages into an existing self service...
  • Blog Post: Controlling Top Content

    Above is a screen shot that shows a default opportunity summary page. At the top of the page is the frame that contains the TopContent information. Sometimes this is called the context information. In this screen the TopContent brings in data from the Opportunity, the Company and the Person entities...
  • Blog Post: Self Service Workarounds

    If you have been working with Self Service then you know that certain field entrytypes are not rendered in the same way in Self Service screens as they are in the main application extension ASP pages. These oddly behaving fields or entrytypes include Date, DateTime and Search Select Advanced fields...
  • Blog Post: Suppressing Tabgroup display

    If you want to suppress the default tab bar then you can override it. For example when working in the context of the My CRM menu you may wish to call a "new" or "find" page. If we used Response.Write(CRM.GetPage()); then the existing default menu would display. In my example given...
  • Blog Post: Uploading Documents to the Library with the ASP COM API

    In Sage CRM if you have created a new custom entity using the Advanced Customization Wizard then you would have had the option to create a libary page for the entity. This provides a straight forward way of allowing documents to be uploaded into the library and associated with the custom entity. Below...
  • Blog Post: Sending Emails in ASP COM API

    Sage CRM offers a very simple MessageBlock object that you can use for your own pages. This object can either be used automatically to send a message without an interface prompt or it can create a form allowing the details of the email message to be completed. An example use of the MessageBlock that...
  • Blog Post: How to Add an Extra Tab Option to the User Admin tab menu (AdminSingleUser)

    A Customer had a requirement to store additional data about users that were 'Resources' in Sage CRM. The new fields in the User table should be displayed in a page that should only be available when the user was of type 'Resource'. Additional fields can be added to the User table...
  • Blog Post: Basic Code Structure of an Add or Insert Page

    Here we can see the basic code structure for an Insert of a new Record expressed in ASP page code. I have used here a new opportunity record but it really could be any record including tables in third party databases. Please note the comments. if(CRM.Mode ==View) { CRM.Mode = Edit; } var myBlock ...
  • Blog Post: Example of a Complex Screen editing multiple records in ASP

    I have written before about the creation of a complex screen where the ASP page offers the user the ability to edit two records at the same time. See: https://community.sagecrm.com/blogs/hints_tips_and_tricks/archive/2007/10/01/creating-complex-screens-using-the-com-based-asp-api.aspx This code...
  • Blog Post: Adding forecasting quarters

    Updated: A colleague in Frankfurt has thoughtfully provided a German version of this customisation. I've merged it with the English version and packaged it into a custom component for convenience. It's available from the Partner download area . I've left the original instructions and page...
  • Blog Post: Access Team IDs from within ASP pages linked to Team menu

    In an ASP page to get the currentusers team or the selected users team you can access this with the normal GetContextInfo method. var intTeam = eWare.GetContextInfo("user", "user_primarychannelid"); var intSelectedTeam = eWare.GetContextInfo("selecteduser", "user_primarychannelid"...
  • Blog Post: Injecting javascript into system action screens with no Custom Content field

    ** Note a better technique is described in this blog post ** One of the very nice features of CRM is the Custom Content field on screens. They allow you to enhance the functionality of screens and add business logic to be processed client-side, making for a smoother user experience. But there are...
  • Blog Post: Instantiation of the COM (eWare.CRM) object

    The "eWare" or "CRM" COM Object can be instantiated in variety of ways. 1) ASP main interface application extensions 2) ASP Self Service pages 3) External Applications 1) ASP main interface application extensions For application extensions of the main User Interface using ASP pages...
  • Blog Post: Controlling Button Positions in ASP pages

    A customer had a requirement to add additional buttons to a custom ASP page. These buttons had to be displayed at the bottom of the screen in a way similar to the buttons in the marketing area. But you can have the buttons appear anywhere you like in an ASP (or .NET) page. If you have only one...
  • Blog Post: Adding Dedupe Behaviour to the Lead Entity

    This article has been updated to ensure the variables that are passed can take into account a wider range of characters in passed names including umlauts, accents and cedillas. Although this article describes a technique for adding dedupe behaviour to the Lead table it may be adapted for other entities...
  • Blog Post: Listing Files Not Uploaded and Stored using the Sage CRM interface

    Occasionally you may customer requirement to store relatively large numbers of documents associated with a company, person or opportunity record outside the main librabry mechanism. As an example of this requirement imagine an organisation that sells design services to real estate developers. Such a...
  • 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: 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: Building a Workflow Map Diagram that Shows Progress through Workflow

    Workflows in Sage CRM can become long and a user may wish they had a version of the diagram that is available when the workflow is constructed. You can see from this image below that an extra button has been added to the Opportunity screen. In this example application, when the 'Workflow Map'...
  • Blog Post: Passing Variables to an External Site and Embedding the Result in a CRM Page (COM ASP API)

    This example shows how it is possible to pass variables from CRM to an external website and then embed the returned results into a page structure controlled by the standard CRM blocks. You can see the page below has the standard tab group, the notifications and onscreen coaching surrounding the information...