Archive for April, 2010

Record Counter For Microsoft Dynamics CRM 4.0

April 19, 2010 Leave a comment

When you open Microsoft Dynamics CRM and select a view that contains more records than can be shown on one page, you don’t know how many records are in this view. My Record Counter creates a ‘dummy’ record (just emulates it without creation of this record in CRM) and it shows the count of records and pages in the primary field. It works even if the count of records in fetch response is greater then 5000.

Every time this plugin is called, it calculates the count of records and pages.

Here is my code:

   1:  using System;
   2:  using System.Collections.Generic;
   3:  using System.Text;
   4:  using Microsoft.Crm.Sdk;
   5:  using Microsoft.Crm.SdkTypeProxy;
   6:  using Microsoft.Win32;
   7:  using System.Xml;
   8:  using Microsoft.Crm.SdkTypeProxy.Metadata;
   9:  using Microsoft.Crm.Sdk.Metadata;
  11:  namespace RecordCounter
  12:  {
  13:      public class ExecuteHandler : IPlugin
  14:      {
  16:          #region IPlugin Members
  18:          public void Execute(IPluginExecutionContext context)
  19:          {
  20:              if (context.Depth != 1) //To calculate count of pages and records another one fetch will be executed
  21:                  return;//so to avoid infinite loops i need to check the depth of request - if it more then 2 - return
  23:              if (context.MessageName == "Execute" && context.InputParameters.Contains("FetchXml"))
  24:              {
  25:                  XmlDocument indoc = new XmlDocument();
  26:                  indoc.LoadXml((string)context.InputParameters["FetchXml"]);
  28:                  //Retrieve name of entity to display
  29:                  string entityName = indoc.SelectSingleNode("//fetch/entity").Attributes["name"].InnerText;
  31:                  if (entityName == EntityName.savedquery.ToString() ||//To make Advanced Find Work
  32:                      entityName == EntityName.businessunitnewsarticle.ToString() ||//To make Literature work
  33:                      entityName == EntityName.resource.ToString() ||//To make Service calendar work
  34:                      entityName == EntityName.systemuser.ToString() ||//To make Service calendar work
  35:                      entityName == ||//To make Service calendar work
  36:                      entityName == EntityName.asyncoperation.ToString())
  37:                      return;
  39:                  //Creation of Metadata service - it will be need for retrieving of main attribute of entity
  40:                  IMetadataService mservice = context.CreateMetadataService(false);
  42:                  RetrieveEntityRequest request = new RetrieveEntityRequest();
  43:                  request.RetrieveAsIfPublished = false;
  44:                  request.LogicalName = entityName;
  45:                  request.EntityItems = EntityItems.EntityOnly;
  46:                  string primaryFieldName = ((RetrieveEntityResponse)mservice.Execute(request)).EntityMetadata.PrimaryField;                
  47:                  //CrmService Creation
  48:                  ICrmService crmService = context.CreateCrmService(true);
  50:                  //Count of records by page - for calculation of pages count
  51:                  int pagecount = int.Parse(indoc.DocumentElement.Attributes["count"].InnerText);
  53:                  //I remove this attributes for retrieve of all records in current view
  54:                  indoc.DocumentElement.Attributes.Remove(indoc.DocumentElement.Attributes["count"]);
  55:                  indoc.DocumentElement.Attributes.Remove(indoc.DocumentElement.Attributes["page"]);
  57:                  foreach (XmlNode node in indoc.SelectNodes("//fetch/entity/attribute"))
  58:                      indoc.SelectSingleNode("//fetch/entity").RemoveChild(node);
  60:                  foreach (XmlNode node in indoc.SelectNodes("//fetch/entity/order"))
  61:                      indoc.SelectSingleNode("//fetch/entity").RemoveChild(node);
  63:                  foreach (XmlNode node in indoc.SelectNodes("//fetch/entity/link-entity"))
  64:                      foreach(XmlNode subnode in node.SelectNodes("./attribute"))
  65:                          node.RemoveChild(subnode);
  67:                  XmlAttribute aggrAttr = indoc.CreateAttribute("aggregate");
  68:                  aggrAttr.Value = "true";
  69:                  indoc.DocumentElement.Attributes.Append(aggrAttr);
  71:                  XmlNode field = indoc.CreateNode(XmlNodeType.Element, "attribute", null);
  73:                  XmlAttribute nameAttr = indoc.CreateAttribute("name");
  74:                  nameAttr.Value = string.Format("{0}id", (entityName == EntityName.activitypointer.ToString() ? "activity" : entityName));
  75:                  field.Attributes.Append(nameAttr);
  77:                  XmlAttribute aggregateAttr = indoc.CreateAttribute("aggregate");
  78:                  aggregateAttr.Value = "count";
  79:                  field.Attributes.Append(aggregateAttr);
  81:                  XmlAttribute aliasAttr = indoc.CreateAttribute("alias");
  82:                  aliasAttr.Value = "C";
  83:                  field.Attributes.Append(aliasAttr);
  85:                  indoc.SelectSingleNode("//fetch/entity").AppendChild(field);
  87:                  //Xml of full result (without paging)
  88:                  string fullResult = crmService.Fetch(indoc.OuterXml);
  90:                  XmlDocument fullResultDocument = new XmlDocument();
  91:                  fullResultDocument.LoadXml(fullResult);
  93:                  //Total record count by fetch
  94:                  int totalRecordCount = int.Parse(fullResultDocument.SelectSingleNode("//resultset/result/C").InnerText);
  95:                  int totalPageCount = (totalRecordCount / pagecount) + ((totalRecordCount % pagecount) == 0 ? 0 : 1);
  97:                  string result = string.Format("Total records = {0}, Total pages = {1}", totalRecordCount, totalPageCount);
  99:                  //Result XML which is the result shown in Grid
 100:                  XmlDocument outdoc = new XmlDocument();
 101:                  outdoc.LoadXml((string)context.OutputParameters["FetchXmlResult"]);
 103:                  //Creation of record which will show totals
 104:                  XmlNode ResultNodeText = outdoc.CreateNode(XmlNodeType.Element, primaryFieldName, null);
 105:                  ResultNodeText.InnerText = result;
 107:                  XmlNode ResultNodeId = outdoc.CreateNode(XmlNodeType.Element, string.Format("{0}id", (entityName == EntityName.activitypointer.ToString() ? "activity" : entityName)), null);
 108:                  ResultNodeId.InnerText = Guid.Empty.ToString();
 110:                  XmlNode res = outdoc.CreateNode(XmlNodeType.Element, "result", null);
 111:                  res.AppendChild(ResultNodeText);
 112:                  res.AppendChild(ResultNodeId);
 114:                  XmlNode ResultNodeType;
 116:                  //Following code repair icon for record counter icon
 117:                  if (entityName == EntityName.activitypointer.ToString())
 118:                  {
 119:                      ResultNodeType = outdoc.CreateNode(XmlNodeType.Element, "activitytypecode", null);
 120:                      ResultNodeType.InnerText = "4212";
 121:                      res.AppendChild(ResultNodeType);
 122:                  }
 124:                  //This code repair report view
 125:                  if (entityName ==
 126:                  {
 127:                      ResultNodeType = outdoc.CreateNode(XmlNodeType.Element, "reporttypecode", null);
 128:                      ResultNodeType.InnerText = "1";
 129:                      res.AppendChild(ResultNodeType);
 130:                  }
 132:                  //Adding record with label of count of pages and records as a first record in recordset
 133:                  outdoc.SelectSingleNode("//resultset").InsertBefore(res, outdoc.SelectSingleNode("//resultset").FirstChild);
 134:                  context.OutputParameters["FetchXmlResult"] = outdoc.OuterXml;
 135:              }
 136:          }
 138:          #endregion
 140:      }
 141:  }

Registration of the step for this plugin:

The following screen shots tell the rest of the story.

Advanced find:


Public and private views:

Quick find:

Form assistant:

Auto resolve lookup view:

Source code you can download here. There are some additional comments that you might find interesting at my blog site for this post.


CRM MVP Andriy Butenko


The Dynamic Duo: Outlook 2010 beta & CRM for Outlook Client

April 19, 2010 Leave a comment


I recently downloaded Office 2010 Beta and installed it on my CRM Test server. My CRM test environment includes the following:

    • Windows 2003
      • Wish it were Windows 2008 but it is on my rather long ‘To Do’ list
    • SQL 2008
    • CRM for Outlook Client
      • Update Rollup 9
      • Desktop Version
    • Office 2010 Beta

I don’t have the CRM E-mail Router installed because I don’t want to unintentionally send e-mail from CRM but I do have the SRSS Data Connector up and running.

For those of you who haven’t had an opportunity to see the Office 2010 product running with Dynamics CRM then I think there is a good chance you’ll be pleased. Although I haven’t had much time to work with the software, I already have a few favorite features:

  • Ribbon replaces the toolbars
    • I like the Ribbon feature in all the Office products
    • I continually discover new features available from the Ribbon that allow me get work done with fewer clicks
  • CRM Menu moved to the Add-In section
  • Very Nice drop down menu from the CRM button
    • Let’s you check for updates and perform several other tasks
  • Highly Configurable to Support Individual Needs & Preferences
    • Customize the Ribbon; Change Color Scheme; Customize Quick Access Toolbar; etc.

Here are a few screen shots. I chose Silver as my Color Scheme. Other options include Blue and Black.




I think the look is much cleaner, more concise, smooth transitions from one area of the application to another, easier on the eye and best of all, It Works!!

Ok, and although this is not a CRM specific item, I love the Send a Smiley, Send a Frown feature of Office 2010 beta. If you discovered a feature you really like, have a suggestion, or run into an issue you can simply click the icon from the task bar, the program automatically takes a snapshot of your screen, you can add a problem description, the program automatically grabs some environment information and off it goes to Microsoft. How cool is that! I realize this might be included for Beta only, but I still like it!


Hope you have a chance to check out Microsoft Office 2010 Beta for yourself soon!


Donna Edwards

Microsoft rolls out CRM for Nonprofits

April 19, 2010 Leave a comment

The Microsoft Dynamics CRM team has made a Nonprofit Solution for CRM Online available today. The functionality included in the Solution will allow a Nonprofit/NGO to get up and running with a cloud based solution in a few minutes.


The price for this CRM Nonprofits/NGOs is $9.99/user/month

The solution comes with functionality for:

  • Donation and pledge management
  • Member and constituent management
  • Campaign management
  • Case management
  • Event management
  • Tailored dashboards and reports

NGOs can manage constituent and donor engagements from within the browser or from within Outlook. and have the ability to take data offline and work in a disconnected mode as well.

“Nonprofits and NGOs are always challenged with doing more with less,” said Sarah Barnhart, senior program manager of community affairs at Microsoft. “We see technology being a key enabler of helping nonprofits to reduce administration and focus their resources on where they can have the biggest impact. Microsoft Dynamics CRM for nonprofits and NGOs includes customized features that simplify administration and management for organizations of every size.”

To find out more and to sign up, visit:


Nikhil Hasija

Update Rollup 10 for Microsoft Dynamics CRM 4.0

April 19, 2010 Leave a comment

The Microsoft Dynamics CRM Sustained Engineering (SE) team released Microsoft Dynamics CRM 4.0 Update Rollup 10 on Thursday, April 8, 2010.

The links below will take you to the necessary information about Update Rollup 10:

General Details about Update Rollup 10

Update Rollup 10 is cumulative. However, the Update Rollup 10 CRM Client and Data Migration Client packages require Update Rollup 7 to be installed. For all other CRM components you do not need to install any previous Update Rollups prior to Update Rollup 10

The Update Rollup 10 download contains updates for the 40 supported Language Packs. Prior to installing the Update Rollup 10 Language pack you must install the original Language pack. If you have Language Packs installed, you should:

  • Download the Update Rollup 10 Language Pack
  • Install the Update Rollup 10 Language Pack
  • De-provision the Language Pack
  • Re-provision the Language Pack

Information about how to avoid reboots when installing the CRM Outlook Client can be found in the Update Rollup 4 blog posting.

The Update Rollup 10 Client can be deployed before the server is upgraded to Update Rollup 10.

Steps to make the Update Rollup 10 Client available via AutoUpdate can be found in the Update Rollup 4 blog posting. The Link and Patch IDs can be found in KB article 979347.

Each update rollup could have fixes that require manual configuration. Please see the “Hotfixes and updates that you have to enable or configure manually” section in KB 979347.

Microsoft Dynamics CRM Client for Microsoft Outlook

Update Rollup 10 includes updates to the CRM client to improve the reliability during synchronization of the offline client. Specific scenario information can be found in KB 979347.

Microsoft Dynamics CRM E-mail Router

The Update Rollup 10 CRM E-mail Router has added support for Exchange Online.

How to get support for Update Rollup 10

To get support please contact Microsoft Product Support. For a complete list of Microsoft Product Support Services telephone numbers and information about support costs, visit the following Microsoft Web site:;[LN];CNTACTMS

Note In special cases, charges that are ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The usual support costs will apply to additional support questions and issues that do not qualify for the specific update in question.


Matt Brown

Using Microsoft SQL Reporting Services with Microsoft CRM Online

April 6, 2010 3 comments

Microsoft CRM Online has a built in reporting wizard that allows you to create reports online without any other tools. These reports are persisted in the CRM Online application. This allows you to create reports without any detail knowledge of the report architecture. This is very convenient for users and requires very little training to create your own reports, eliminating the need to know query languages or report formatting. The report wizard reduces the complexity of building reports and makes report building available to end users regardless of their report building prowess. Reducing complexity often results in scaled down functionality. An example of this ability to insert images or complex computations inside the report itself. So, to start, let’s at look at our supported, out of the box options:

1. CRM Online Reporting Wizard

2. CRM Online Views

3. CRM Online Export to Excel

4. CRM Online Mail Merge

As you can see, there are a number of ways to do reporting out of the box with CRM Online. Each of these offers both pros and cons. It’s widely known that Microsoft Reporting Services offers an extensive and robust framework for managing reports, commonly known as SRS.

Some of the advantages of SRS is the built in Visual Studio Report Designer and the server application to host the reports for access via a web browser. There are a good number of reasons to want to use SRS to manage CRM reports. The heart of an SRS report is RDL. RDL stands for Report Definition Language. RDL is defined using XML. RDL allows user to build reports similar to how html allows users to build web pages.
Get on with it already….

To start, let’s define the steps we need to take to use SRS to host a CRM Online Report.

1. Extract CRM Data and make accessible to SRS.

2. Create SRS Report based on the data.

3. Create a report in CRM Online that points to the SRS report.

*The solution assumes you have your own instance of SRS.

1. Extract CRM Data and make accessible to SRS.

For obvious reasons, I wanted to introduce the out of the box reporting of CRM Online as well as SRS. First Loaded Question – Can I use SRS with CRM Online ? Well, not out of the box. SRS needs a data source to connect to the data. CRM Online supports web service access to the data. Access directly to the db layer is not accessible. Let’s look at the SRS data sources available:

SRS Data Sources

You can see here that there is no native support for CRM Online. So we have to transform CRM Online data into a format that can be supported by SRS. Here are the 3 popular options:

Create a copy of CRM Data into a local SQL Server
The first option you might consider is to create a copy of the data from CRM Online to a local SQL Server. This to me is the least reasonable choice because it will require some pretty serious kung fu to move all the data plus build a new database in SQL to hold the data. Also, moving large amounts of data across an HTTP connection is not really sufficient.

Build an ODBC Connector
The next option to consider is to build an ODBC connector that used CRM Web Services calls on one side and exposed an ODBC interface on the other. This is not a bad option but I wanted something that could build reports in the background also. Plus the last time I wrote an ODBC connector , well let’s just say I’ve changed keyboards a few times.

So we are left with our third choice, XML. ( Who would have thunk ‘d it ).

XML is the lingua franca of data exchange ( just say no to tables ). It’s entire purpose is in describing data exchange. Industry approved. Respected, liked and loved by all.

At this point, I should point out that when using the SRS XML data source you must specify a web url to be used to load the data. File protocols are not supported.  However, you can store the file on a web server and access using HTTP.

Now, we need to determine how to get our data out of CRM Online and into to scantily clad XML.

Out of the box
Back to the out of the box options for a moment. You could create advanced find views and export the data into an Excel file and use Excel to save as xml. A bit manual but should work fine.

Custom Web Service
This option would require you to create a web service that accesses CRM Online for data and return it as XML. I like this option from an architecture but not crazy about since I can’t schedule a web service to run automatically to update reports. Plus requires a server to host my web service and there are more security considerations. One advantage is you might be able to reuse the web services in other applications needing CRM data.

This option is to create software that runs locally that will pull data out of CRM and store in a XML file. I like this option the best since the reports can be scheduled run off hours and automatically. In addition, I find it the simplest of all the development options if your building the data extract yourself.

Another option would be to look at 3rd party integration tools such as ScribeSoft.

I decided to use a custom application or also known as agent/service/application.

I’ve built a tool previously, FetchIt Part 1 and FetchIt Part 2, that allows a fetch xml query to execute against CRM Online and have the results written to a file. It’s a simple console application that can run anywhere. It’s a simple in design. The development effort is relatively low and there is lots of sample code for how to make a fetch call. A console application can be scheduled to run automatically using the Windows Scheduler. It can be run on any machine with internet access. It can be run multiple times on a single machine ( once for each query ). The only thing needed is to change the fetch query statement in a configuration file for each report.

Fetch XML
Fetch XML is an important part of the solution since it can be used to make complex queries into CRM Online. The prevents the need to have all the data local to do complex queries using SQL server. Fetch XML is part of the CRM Online web services and software SDK.

Here’s an example of querying all opportunities records in CRM.
<fetch mapping=’logical’><entity name=’opportunity’><all-attributes/></entity></fetch>

Here’s an example of querying all open opportunities records in CRM and joining data from the account record.

<fetch mapping="logical" > 
  <entity name="opportunity"> 
    <attribute name="estimatedclosedate" /> 
    <attribute name="estimatedvalue" /> 
    <attribute name="name" /> 
      <condition attribute="salesstagecode" operator="eq" value="200001" /> 
    <link-entity name="account" from="accountid" to="accountid"> 
      <attribute name="name" /> 
    <link-entity name="systemuser" from="systemuserid" to="owninguser"> 
      <attribute name="fullname" /> 
      <attribute name="systemuserid" /> 
Step 1 complete.


2. Create SRS Report based on the extracted CRM Data.

Creating SRS reports is well documented and describe elsewhere much better than I would attempt. A few resources I would recommend:

Programming Microsoft SQL Server 2005
Microsoft SQL Server 2005 Reporting Services
Microsoft SQL Server Reporting Services

While I won’t build the report in depth in the blog, I will point out the process I used. One of the reason I wanted to create an SRS report was to do computations in the report. Notice in my sample report that I sum the estimated value of all the opportunities for each user and provide a total count. This is just to demonstrate some of the computations you could do in a SRS report.

The first step is to create a shared data source to be used by the report designer. Notice that xml file that I used FetchIt to create is stored on my localhost web server.

This can be any URL other than file protocols.

Here’s a look at the Report Designer for my report.Report Designer

On the Data tab, be sure to set your Data Query for you report to be empty. <Query></Query>. See SRS documentation for more info. Basically, we want all the records in the XML file. You could use this query to query the xml data.

Next load your report into SQL Reporting Manager. Be sure to create a data source for the report in the SRS Manager.


Report Manager

Next, create a report link in the SRS Manager. Copy the link and use in CRM Online. I found this easiest to open the report in my browser and copy the address.


Step 2 complete.

3. Create a report in CRM Online that points to the SRS report.
A nice feature of the built in CRM Online Reporting is that I can create a report that points to a web page or a file. The file option works nice for Excel documents and Word docs. I can use the web page option to specific my SRS Report.



Step 3 complete.

Opening the report from CRM Online will open the report in SRS.

Report Manager


You can build SRS reports for CRM Online in 3 easy steps.

1. Extract CRM Data and make accessible to SRS.

2. Create SRS Report based on the data.

3. Create a report in CRM Online that points to the SRS report.

Fetch XML allows you to build complex queries to sort and present your CRM Online data. It’s part of the CRM SDK, easy to use and well documented.
Using Microsoft SQL Reporting Services to report on CRM Online data is possible with a little effort. SRS gives you the ability to create rich reports using charts, computations, and text/images. In addition, you could use SRS to schedule reports to be automatic and emailed. There are many advantages to using SRS.


Jon White

The Power of Choice and the Firewall

April 6, 2010 3 comments

In 2010 owners of Microsoft Dynamics CRM On Premise installations will be inclined to re-visit how they are managing their Firewall configuration and access to their CRM system. Why haven’t I included the other implementation scenarios? Because they already ‘Got it, so they Get it’.

Power of Choice implementation Firewall Review

On Demand CRM

  • CRM Online – Internet access is native to the implementation. The only way you can get access to CRM hosted by Microsoft is over the Internet via an SSL browser interface (https://) or from within Microsoft Outlook. Organizations utilizing the Online version of the product are comfortable with their data residing outside of their network and accessing data over a secure connection.
  • Partner Hosted – Access is primarily by IFD mode but can be also setup for VPN connections. IFD Mode is a configuration of the CRM Server authentication model supported by the necessary DNS and Firewall settings. This allows Outlook users who are running in the Outlook Anywhere Mode (previously known as RPC over HTTP) to utilize the Outlook CRM integration over the Internet. IFD Mode uses Forms-based Authentication.

On Premise CRM

  • On Premise – By default it is locked down without any access outside the firewall. Extending the CRM system so that it is accessible over the Internet requires opening up the Firewall for the port CRM is running on and redirecting the port to the CRM server. Authentication is handled via integrated windows authorization. The user sees the pop-up Login/PW Window. The user will only be able to access CRM from Internet Explorer and not Outlook over the Internet.
  • On Premise IFD – Can be implemented with the IFD Configuration Tool by following the steps in the IFD Scenarios Document. Allows full functionality of CRM within Outlook including running reports over the Internet.

Year 2010 – Game Changers

For those of you that fall into the segment of On Premise with no access to CRM from outside the firewall you will experience a sea change event in 2010, because:

1. The public release of Windows Azure will validate cloud services in the Microsoft community.

2. Mobile Devices will become Mobile Platforms. Talking on our cell phone will be how we least use the device. There is also an emerging form factor revolution in the mobile device area. These devices will become more prevalent and CRM/XRM mobile access will become common place. Bing “Microsoft Courier” and draw your own conclusions. Hardware will finally catchup with the versatile ‘yellow pad of paper’.

3. Cost – ISVs are recognizing that they can build full featured solutions to expand or enhance the functionality of the CRM platform in the cloud environment as a Software+Service. The realization that they can deliver, support and roll out releases and bug fixes faster for hosted applications is coming of age in 2010. You only have to look at the upgrades that have been made to CRM Online in the last year as proof of the flexibility this approach allows.

4. Code on Server with CRM V.Next – CRM Online will allow code on the Microsoft platform just like applications installed for On Premise implementations. The specifics aren’t public yet but this will further enhance the selection of CRM Online as a full function platform. As a consequence adoption momentum will escalate and S+S will ride along.

Year 2010 – Action Plan

Consider the business value and technical considerations of utilizing the wave of cloud applications for CRM that will appear in 2010. If you decide to go ahead here is a list of some online technical resources:

CRM Implementation Guide online via TechNet:

Other TechNet

Microsoft Dynamic CRM Team Blog Postings

I relish the Power of Choice. The ability to select how and where the CRM application and data can reside open up the product to a broader range of organizations than any other CRM system in the marketplace.

Jerry Weinstock

Microsoft Dynamics CRM 4.0 Adapter for Microsoft Dynamics GP

Announcing the availability of the Microsoft Dynamics CRM 4.0 Adapter for Microsoft Dynamics GP 10.0 Feature Pack 1 and Software Development Kit (SDK!)


The Microsoft Dynamics GP 10 Feature Pack 1 supports International English for organizations interested in integrating Microsoft Dynamics CRM 4.0 and Microsoft Dynamics GP 10  in locales outside of the United States. The feature pack also provides support for custom objects and tables allowing organizations to expand their CRM and ERP integration beyond sales order processing. Enhancements to  mapping management tools and to the already strong logging capabilities make it even easier to configure and manage the adapter.

In addition to built-in sales order processing integration and point-and-click customizations we are introducing the availability of an  adapter software development kit. This SDK contains documentation, templates, and sample code to help third party developers and partners who want to extend the functionality of the Microsoft Dynamics Adapter.


The detailed highlights of Feature Pack 1 include:

1.  International English Support

2. New Functionality:

  • New CRM Adapter Configuration Window showing all customizable CRM entities and allow user selection
  • Updated Log User Interface and Functionality

            1. Ability to group by any column header

            2. More detailed information

            3. Easier to read and find what you’re looking for

  • System Preparation Functionality and Synchronization Documentation
  • Maps – Updated Status section User Interface and Functionality

            1. Easier editing of integration frequency and cutoff date

            2. Last run status displays number of records written & number failed to write 

            3. Added a link to view log

            4. Progress Bar displays when the map integration is running

Partners who have existing customers who utilize the Microsoft Dynamics CRM 4.0 Adapter for Microsoft Dynamics GP 10.0 can download the Feature Pack 1 and the SDK at the following location: (Downloads Section)

Partners can obtain the Feature Pack and the SDK for existing customers from PartnerSource.  While the Adapter is available free of charge new customers should obtain the Adapter by ordering it through their partner  from  the Microsoft Dynamics GP Price List.  Ordering the Microsoft Dynamics CRM 4.0 Adapter for Microsoft Dynamics GP 10.0 helps us keep track of who is entitled for support.

There is no need to uninstall the existing adapter to upgrade. Existing Customers can just install the Microsoft Dynamics Adapter.msi over the top of their existing installation.  For new customers, the Microsoft Dynamics Adapter.msi already includes Feature Pack 1 so, just install the Microsoft Dynamics CRM 4.0 Adapter for Microsoft Dynamics GP 10.0.


Barry Givens