• 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: A CurrentUser object in WebServices?

    If you are working with Sage CRM's WebService Interface then you will know that the API is very much focussed on Data Access and not on the user interface or 'Meta Data'. But I have written before about how we 'discover' information about the system even if it is not in the version...
  • Blog Post: Dynamically Routing Web Services Requests to another Install of CRM

    In the Web Services API of the Sage CRM the webservices class itself has a string property called "Url". The URL property contains the URL location to which the SOAP requests are directed. It does not contain the pointer to the WSDL, this is set in the web reference of the project and the...
  • Blog Post: Sage CRM's SOAP Web Services and Sage CRM's COM based Web Self Service API.

    The two APIs that I wish to consider in this article are mature, well developed and stable. They've been in the product for a very long time. Nevertheless, they are still used and still very much a useful pair of development options. In fact, they both play a very important part in integration and...
  • Blog Post: Creating XML feeds from Sage CRM

    In this article I want to think about the creation of an XML feed from within CRM. The structure of an XML feed may look like this: [code language="xml"] <chart caption='Monthly Sales Pipeline' subcaption='For FYE 2009' xAxisName='Month' yAxisName='Sales'...
  • Blog Post: Creating Web Service Applications that handle unknown tables and columns

    We are able to create applications that can interact with Sage CRM remotely using the Web Service Interface. If the external application is going to be able to make reference to the data, objects and methods within the Sage CRM via a web call, then the data structures, properties, objects and methods...
  • Blog Post: The importance of column prefixes in tables exposed via the Web Services API

    This is a little quirk. If you have added a new table into the CRM database that you intend to access via the webservices interface, then be sure that the table column makes use of column prefixes. For example if you have added a new project table then make sure that the columns are called names like...
  • Blog Post: Finding out what CRM data has changed since the last Web Services Interaction

    If you use WebServices to query CRM Data then you may need to find out what data has changed since last update. If you wish to find out what data has changed in CRM since a certain date then you can use queryid This is designed to return a set of id's based on a token date time, and is used for synching...
  • Blog Post: Updating Multiselect fields using the Web Service Interface

    Below are two ways to achieve this. First is the UpdateACompany method that shows how to do it using the update method. The second is UpdateACompanyRecord, this shows how to do it with the updaterecord method. The code examples are in C#. 'binding' is the name of the CRM webservice object...
  • Blog Post: Zip Check

    This is a little mod I came up with after adding in a few addresses in CRM. In this day and age of modern technoligy why in the world would we have to type in the City and the State if we know the Zip? I mean really, think of the time you will save by having a tool that could help with this. OMG think...
  • Blog Post: Security and the SData Gadget and ReadOnly SData provider

    For an introduction to SData REST based web services then please see the article " Accessing SData Provider " Another example of how SData is used in Sage CRM's Interactive Dashboard feature can be found here: " An SData Example – the Sage CRM Interactive Dashboard SData Gadget...
  • Blog Post: Adding a Company Entity using the Sage CRM SOAP Web Service API

    Below is some code that will add a company, a default contact (Person) and a default business telephone number. When adding a company entity (with address, email etc) to Sage CRM via the Webservices API, CRM will automatically use the first data item in as the default person, and address etc. It will...
  • Blog Post: Web Services Logon Tip

    If you experience difficulty logging on via the web service interface to a CRM Install (that was installed using windows authentication) this can be helped by setting the UseDefaultCredentials flag for the web service client to true. See highlighted line in the code snippet below. private static bool...
  • Blog Post: Embed Sage CRM PDF Reports in External Applications

    An external application can make use of Sage CRM reports. It is not appropriate to invoke HTML reports from a 3rd party or external application as these are designed to interact with the Sage CRM interface. You only need think about the auto hyperlinking feature which allows drill down into Sage CRM...
  • Blog Post: Grabbing Serverside Information using a SOAP Webservice call (AJAX)

    Please note that this is only a part worked solution. I have added this to show how an web service request can be made from a client to extract any information (available to web services) that is needed from the server. This example is based on code that is discussed within the Developer training...
  • Blog Post: Selection Lists in Web Services

    The code below is an extract of the simple webservices demo application found elsewhere on this site. Please note the following assumptions 1) CRM60 is the webservice object 2) CRMCompany is a previous retrieved Company record 2) The code is to retrieve the selection values of the comp_source field and...
  • Blog Post: More thoughts on the Web Services and the StoredProc datatype

    The StoredProc data type only will fire when a record object is added to a screen object. Specifically this must be a new record. The actually firing of the StoredProc is tied to the loading of the interface rather than the use of the record object. When there is no screen (EntryGroup Block) then there...
  • Blog Post: Sage CRM 2017: Using Sysadmin

    Sysadmin is a little known but useful path flag that can be used in Sage CRM to list the current logged on users. It can also be used to manage current logged on sessions. In path looks like http://servername/installname/eware.dll/sysadmin If you attempt to use this when not on the server you...
  • Blog Post: Redirecting to an ASPX (ASP .NET) Page from a Classic COM ASP page

    This article follows on from an earlier article " Combining CRM WebServices and ASP.NET ". That article had discussed using the SOAP based webservices of Sage CRM within an ASP.NET page. I had mentioned that such ASPX pages can be called from Sage CRM tabs (and by extension Button Groups...
  • Blog Post: Session ID in Web Services

    When accessing Sage CRM via the Web Services API a user session needs to be created. private WebService WS=new WebService(); private logonresult SID; SID=WS.logon("wsuser","x3%b0H2"); WS.SessionHeaderValue = new SessionHeader(); WS.SessionHeaderValue.sessionId = SID.sessionid; //...
  • Blog Post: Web Service Sessions

    Sage CRM's web service API allows developers to manipulate CRM records remotely. It is possible for a 3rd party application or website to access the CRM server to read, create, update, or delete records for each exposed entity, for example, Companies, People, Opportunities, Cases, Quotes and Orders...
  • Blog Post: Invoking Workflow from Self Service and Web Service (SOAP) Based Applications

    One of the challenges that a developer will face when working with Self Service or with an external Application using the SOAP Web Services interface is that workflow is not fully covered by the APIs. Self Service and Workflow Self Service uses the COM API and is designed for use in ASP pages....
  • Blog Post: Fetching data using the SOAP Web Services. Using queryid() & queryidnodate(), queryrecord() and query().

    A colleague asked me a very simple question. "I want to do a basic query with simple parameters e.g. in SQL: select * from opportunity where Oppo_ChannelId = 1 and Oppo_Product='TimEx5'. Do you have any sample web services code?" This is not such a straightforward question in...
  • Blog Post: Real Time Data Views.. How do they work?

    You might have heard about something called Real Time Data Views but you may be wondering what they're all about. Well if you are a Sage ERP developer and you are creating a SOAP or GCRM integration with Sage CRM or you already have a SOAP or GCRM integration with CRM then read on... The concept...
  • Blog Post: How are transactions managed over multiple webservice requests?

    This is an interesting question and depending of what we understand by the word 'transactions' it can have a couple of answers. Answer 1 The first thing to note is that each webservice request is an HTTP transaction. A request is made and the reponse is given, so the question could be about how...