Posts Tagged ‘CRM’

CRM 2011 Developer Road Tour New Zealand




I’m hitting the road again doing a speaking tour, targeting .NET developers, to 7 various .NET User Groups throughout the country. Smile


Here is the blurb,

Title Microsoft Dynamics CRM 2011 – A Developer’s Perspective
Description “After 3 years of research and development, Microsoft Dynamics CRM 2011 was recently release earlier this year, online then on-premise from the same codebase. Come to this session to learn about the latest and greatest in the toolbox for developing business applications with Microsoft Dynamics CRM 2011. Specifically we’ll explore in depth on the new APIs, WCF, OData, LINQ, Sandboxing, Azure and WF.”
Level 300
Target Audience .NET developers with little or no experience with Microsoft Dynamics CRM 2011


Here is the schedule:

Date Time Location User Group RSVP
19/05/2011 6:00 p.m. – 7:30 p.m. Centre for Innovation University of Otago
(Downstairs seminar room)
87 St David Street
Dunedin .NET User Group Link
24/05/2011 11:30 a.m. – 12:30 p.m. 7 Forests Rd
Nelson .NET User Group Link
31/05/2011 6:00 p.m. – 7:30 p.m. Room A116/119
Ground Floor of the Awanui Building,
Massey University’s Hokowhitu Campus
Palmerston North .NET User Group Link
3:30 pm – 5:00 pm
Eastern Institute of Technology (EIT), Gloucester Street, Taradale, Napier, Room C117 Hawke’s Bay .NET User Group Link
15/06/2011 6:00 p.m. – 8:00 p.m. Wintec Central City Campus Hamilton .NET User Group Link
6:00pm – 8:00 p.m.
Bongard Centre, Bay of Plenty Polytechnic, 200 Cameron Road Tauranga .NET User Group Link
TBA 8/477A Devon St East, Strandon New Plymouth .NET User Group TBA


I will update this schedule as more detail comes to light. Smile


I’m a Microsoft Dynamics CRM MVP



Today, I received in my email from the local MVP lead that I have been awarded MVP for Microsoft Dynamics CRM. This is a key milestone for my career.

Here is the link to my profile

Here I’d like to say thanks to a few that I can’t have possibly achieved this without…

1. Thanks to MSFT for giving me this recognition for my contribution to the local technical community and Rose for nominating me 🙂

2. Thanks to Tokes, my mentor back at Intergen day. Thanks for your relentless nurturing and help in my Intergen days and beyond.

3. Chris Auld, thanks for taking me under your wings and inspiring me along the way.

4. @TeamIntergen – my last employer, thanks for giving me the great opportunities to work on the most challenging projects there are in New Zealand along with a team of awesome Intergenites.

5. Thanks to folks from local MBS and DPE team: Darryl Burling, Catherine Eibner, Stuart Gibbs, Dirk Develter.

6. Mostly importantly, thanks to everyone in the local Dynamics community, you are the stars!!!

Failure: The SQL Server ‘{0}’ is unavailable

The Background:

I’ve started working with Microsoft Dynamics CRM since early days of version 3.0 and have done “quite a few” installations over the years. However, this is a new one to me…

This particular setup has a front end CRM Server and a SQL Server 2008 and SSRS backend. It was for a client in the banking industry that runs  mission critical applications, as a result their IT infrastructure is very much locked down and they have M to the power of N layers of firewall in between the CRM Server and their SQL Server; with *everything* enforced via group policies.

The Problem:

When we install CRM on the CRM server, on the very last check list dialog it one warning and one error that prevented the installation from going ahead;

The warning message:

|Warning| Check SqlServerAgentValidator : Warning: Setup was unable to verify that SQL Server Agent (SqlAgent$crm) was running.

The error message:

|  Error| Check CrmSqlDomainValidator : Failure: The SQL Server ‘{0}’ is unavailable.

And sure enough, we saw the following details getting logged in the server setup log.

09:11:50|Verbose| Calling BaseGroup.Validate
09:12:11|Warning| Check SqlServerAgentValidator : Warning: Setup was unable to verify that SQL Server Agent (SqlAgent$crmdev) was running.
09:12:11| Info| Check SqlInstanceNameValidator: Success
09:12:11| Error| Check CrmSqlDomainValidator : Failure: The SQL Server '{0}' is unavailable.
09:12:11| Info| Check SqlServerValidator: Success
09:12:11| Info| Check SysAdminValidator: Success
09:12:11| Info| Check WordBreakerValidator: Success
09:12:11| Info| Check FullTextInstalledValidator: Success
09:12:11| Info| Check FullTextRunningValidator: Success
09:12:11| Info| Check ConfigDatabaseFilesValidator: Success
09:12:12| Info| Check CrmDatabaseFilesValidator: Success
09:12:12|Verbose| BaseGroup.Validate completed


Judging from the warning and error messages, we initially suspected the following causes:

  • The SQL Agent window services wasn’t running on the SQL server.
  • The SQL Server instance itself wasn’t running.
  • The user account used to install CRM wasn’t a Local Admin on the SQL server.
  • The user account used to install CRM wasn’t a System Admin on the SQL Server instance.

After checking with the system administrator and the DBA, all of these have been configured correctly.

But, we were quite adamant that the CRM installer was, in one way or another, unable to access SQL Server. So, we ran a SQL profile trace to see if the responsible SQL Server instance was getting a reaction from the CRM installer. To our surprise, it did execute a bunch of scripts against the SQL server instance. (FYI: The sort of stuff that the CRM installer does to the SQL Server is beyond sanity… Try to run a SQL profile trace on the CRM installer and you’ll know exactly what I mean.)

Then we started digging deeper around how else does CRM interact with SQL Server apart from TCP port 1433 for SQL Server Sockets service… With help from the support team from Microsoft Australia, we found out that there is a whole raft of other ports that the CRM Web Application and  the Data Connector require to connect to the SQL Server.


In our case, we needed a burn through the M to the power of N layers of firewalls on TCP port 445 between CRM Server and the SQL Server. After this firewall burn, the CRM installation was completed successfully.

“So, ” I hear you ask, “what the hell is TCP port 445 used for?” – Microsoft Directory Services (Microsoft-DS), and I quote, “Active Directory service required for Active Directory access and authentication”.

Your inevitable second question is, “what other ports does CRM use?” Here is an exhaustive list of Network ports used for Microsoft Dynamics CRM 4.0.

Network ports used for the Microsoft Dynamics CRM Web application

The following table lists the ports used for a server that is running a full-server installation of Microsoft Dynamics CRM. Moreover, with the exception of the Microsoft SQL Server server role, and the Microsoft Dynamics CRM Connector for Microsoft SQL Server Reporting Services server role, all server roles are installed on the same computer.

Protocol Port Number Description Explanation
TCP 80 HTTP Default Web application port. This port may be different as it can be changed during Microsoft Dynamics CRM Setup. For new Web sites, the default port number is 5555.
TCP 135 MSRPC RPC endpoint resolution
TCP 139 *NETBIOS-SSN NETBIOS session service
TCP 443 HTTPS Default secure HTTP port. The port number may be different from the default port. This secure network transport must be manually configured. Although this port is not required to run Microsoft Dynamics CRM, it is strongly recommended. For information about how to configure HTTPS for Microsoft Dynamics CRM, see the article “Make Microsoft Dynamics CRM 4.0 client-to-server network communications more secure.”
TCP 445 Microsoft-DS Active Directory service required for Active Directory access and authentication
UDP 123 *NTP Network Time Protocol
UDP 137 *NETBIOS-NS NETBIOS name service
UDP 138 *NETBIOS-dgm NETBIOS datagram service
UDP 445 Microsoft-DS Active Directory required for Active Directory access and authentication
UDP 1025 *Blackjack DCOM, used as an RPC listener

Network ports used by SQL Server running the Microsoft Dynamics CRM Connector for Microsoft SQL Server Reporting Services server roles

The following table lists the ports that are used for a computer that is running SQL Server and has only SQL Server and the Microsoft Dynamics CRM Connector for Microsoft SQL Server Reporting Services server roles installed.

Protocol Port Number Description Explanation
TCP 135 MSRPC RPC endpoint resolution
TCP 139 NETBIOS-SSN NETBIOS session service
TCP 445 Microsoft-DS Active Directory service required for Active Directory access and authentication
TCP 1433 ms-sql-s SQL Server sockets service. This port is required for access to SQL Server. Note that, this number may be different if you have configured your SQL Server to use a different port number.
UDP 123 *NTP Network Time Protocol
UDP 137 *NETBIOS-NS NETBIOS name service
UDP 138 *NETBIOS-dgm NETBIOS datagram service
UDP 445 Microsoft-DS Active Directory required for Active Directory access and authentication
UDP 1025 *Blackjack DCOM, used as an RPC listener

* This port and service are not strictly used by Microsoft Dynamics CRM but may be required for the various underlying platform components, such as Windows or Active Directory.

There are a couple of source for this information.

1.  (Don’t worry, I totally knew where to find this page by heart… NOT!)

2. Page 60 of the Planning Guide in the Implementation Guide, I should have known this one better.

WEB 304 Building Silverlight Application for Microsoft Dynamics CRM 4.0

This is the second session I delivered in Tech Ed 2009 Australia. It went bloody well I reckon, heaps better than my first session in terms of delivery and time management, and evaluations have rightfully reflected on this as well.

The following is a link the source code I used for this demo.



1. I originally developed this code sample for Business Action Training Tour (BATT) that happened around the world in May/June 2009.

2. This is Silverlight 3.0 code.

3. It uses a charting control from Silverlight 3.0 Control Toolkit, July 2009 version.

4. It will be published on MSDN as a HOL by DPE Corp.

5. As I mentioned earlier, I’m allowed to distribute my Tech Ed decks freely. Sorry about that folk, but you can always email me and ask questions about it. 🙂

DYN330 SharePoint Strategies for Microsoft Dynamics CRM

This is my first session at Tech Ed 2009, Australia. In fact, this is my first time presenting at Tech Ed ever. It was nerve-wracking presenting in front of hundreds of people. Thanks to the folks who came to this session. I got 6 more twitter followers as a result of that!!! I hope you got something out of it, as much as I intended to deliver 🙂

So here is source code that I used in today’s session.



1. This code includes:
    a. Chromeless SharePoint site definition
    b. CRM Workflow for creating the SharePoint site
    c. CRM Plugin assembly that upload CRM email attachment to SharePoint site
    d. Business Data Catalog application definition for CRM
        (This is based on the Analytics Accelerator)

2. The SharePoint site definition was built with WSP Builder v1.0.6, the latest at the time of this post. The CRM solution was built with CRM Developer Toolkit v1.1. You might want to download and install these tools to build the code.

3. Apologies that I can’t provide the slide decks for download as they are only available for Tech Ed 2009 attendees from CommNet.


Microsoft Business Solutions in China

First thing first, MBS is short for Microsoft Business Solutions and is synonymous with Microsoft Dynamics. Microsoft Dynamics is Microsoft’s offerings on ERP and CRM systems.

On a recent trip to China, I delivered a training courseBusiness Action World Tour – in Mandarin, in Beijing and Shanghai, China, and here is the blog post I promised on MBS in China.

While I was there, I had a chance to work with folks from MBS China, MCS Shanghai, a local MBS partner on a 4000 seats CRM implementation for a local bank. In this post I write about what I have seen / learnt / realized some of the unique characteristics of the Chinese market in the business solutions arena and Microsoft Business Solutions in particular from working with these folks.

The business solutions market in China is pretty fairly partitioned
Tier 1 companies, ones that employ tens or hundreds of thousands of people like large telcos, banks, insurance companies, power companies, big manufacturing plants and some foreign invested global corporations. They are floating in all major stock exchange markets and are chopped up between SAP, Oracle, Siebel, IBM etc, a few global competitors. This is a global phenomena and this is no exception in China. So in terms of business solutions in this market tier, the level of maturity on both demand and supply sides is comparable to it in most developed countries. Microsoft is positioning its Dynamics Suite of ERP and CRM systems at tier 2 and 3, and there is no *good* ERP and CRM, local or foreign, for the small to medium market (Tier 2 & 3) in China apart from the Microsoft Dynamics Suite, this is great for Microsoft in the long run. But, this market tier is nowhere as mature as tier one. MBS isn’t doing particularly well comparing to other parts of the world – MBS GCR only has an annual sales target of 9 millions US and 3 millions for CRM, this is shockingly low for a 1.4 billion population economy.

In general, businesses in China, don’t fully understand the function of IT in a business
This is a true reflection of a developing economy. Business solutions in China for tier 2 and 3 market is still at its very early days, they don’t really have well defined business processes to drive their business operations, things happen and decisions are made on a very ad hoc basis, unorganized verbal communications is the main channel of driving business operations. They typically see IT systems as commodities that they can live without or a one off purchase and then shelved away for the rest of its life, there is no drive for adoption or satisfaction. They don’t see IT systems as an ongoing investment for the business to adapt changes in the business. In general, business owners and managers in China have a very primitive view on IT, they haven’t understood the value propositions of IT solutions in a business. They haven’t realized how IT solutions can drive productivity at individual workers level as well as organization level. They are yet to see the role of IT in driving company wise business operations’ efficiency, transparency, predictability and consistency. Concepts like Business Intelligence, Line of Business Solutions, Workflow driven business operations and organization collaborations are only just starting to emerge in this market tier. Then again, this is China we are talking about here, one of the main characteristics of the Chinese economy is cheap labour – if businesses can achieve the same tasks with 100 men running around manufacturing plants at 10 dollars a day, why would they choose to spend 3 million dollars on an ERP system that does roughly about the same thing?

There are, however, businesses in this tier are leading the way in adopting Line of Business solutions. They are riding at the forefront of this MBS wave and taking full advantage of being an early technology adopter. They wish to achieve two main goals from adopting a LOB solution. One, through implementing a LOB solution, they wish to define and formalize their business processes that drive their business operations. Two, they wish to benchmark these business processes against them of worldwide best practices in their specific industry verticals. This is more than just a couple of Business Analysts joggling along and formalize what’s already there. This is having specialized business consultants with relevant industry knowledge come in, look at their businesses and define their processes. This is distinctly different from what we have here in New Zealand and most developed countries where businesses already have a well defined set of business processes and business operations are driven by these processes. What they need is a *tool* to realize/automate these processes. In other words, businesses in the western world know what they do the best, IT systems implementers like Intergen, are literally “implementers” and working with the business to *refine* their business processes at the most.

So, what businesses in China need are end to end business solutions in their respective industry vertical, can MBS meet these needs?

MBS ecosystem in China lack business knowledge
In China, the MBS ecosystem is made up of MBS in China, MCS China and local MBS partners in China.

Microsoft Business Solutions (MBS) China, is a marketing and sales team that’s geared around license sales on the suite of Microsoft Dynamics products. (At the time of this blog post, MBS China only officially supports Microsoft Dynamics CRM and AX). They have technical pre-sales support, but that’s as far as it goes. They are not involved in post sales implementation.

Microsoft Consulting Services (MCS) China is a team of technology specialists and is very light on Dynamics but nevertheless they still are involved in implementations with their very limited Dynamics capability. There was only one person in MCS Shanghai that has had MSCRM implementation experience.

Local MBS partners, these folks are the main task forces for implementing MBS solutions in China. They are either foreign invested or home grown. What you’ll find amongst these partners is, they have good technical capabilities just like any other Microsoft dev shops, however they lack knowledge on industry vertical business solutions.

When I was helping out on this 4000 seat CRM implementation for a local bank, one of the senior managers asked for “Business solution for Customer Relationship Management in the banking sector”. No one could answer to that request, not MBS China, not MCS China, not the partner.

So here we have; businesses asking for best practices, benchmark business processes and solutions for running a paper mill factory on one hand, and 10 C# coders dressed up in suits and ties sitting across the table looking blindly at each other on the other hand. I’m not sure how well this deal is going down for.

There is a distinct mismatch between what the market *wants* and what MBS ecosystem in China can “provide”. This sets MBS apart from SAP and Oracle. No wonder MBS China has shockingly low sales targets…

IT service is cheap and very competitive in China
”Cheap labour” doesn’t  just apply to brick shifters, it applies across the economy and also to IT Services. On average local MBS partners charge at RMB¥2000 (NZD $600 – $350, USD$300-$175 depending on forex rate) per person per day. So for the foreign companies that want to explore the Chinese market, you simply can’t compete on price with the local partners, unless you are to set up an offshore office that hire locals and pay local wages as well.

Political and social pressure
This is another unique characteristic of the Chinese economy – a social and political one. There is a fair bit of pressure from central government and communities on keeping people employed, so businesses sometimes have to consider striking a very fine balance between employment rates and company efficiency. So businesses do have to think twice before implementing a system and make a whole lot of people redundant…

Where to from here???
The demand for business solutions in China in tier 2 and 3 is already picking up, with the Chinese economy and this market matures over time, the demand will grow exponentially.

Microsoft and partners need to take a long and hard look at this market, look at the needs and wants of this market.

1. To the Chinese market, MSFT needs to position the Dynamics suite not just as products but more importantly as end to end business solutions offerings in variously different industry verticals, put solutions ahead of products.

2. MSFT actually needs to *BUILD* these business solutions offerings on top of the Dynamics products and ship them with the products, put business back into the solutions. Keep your eyes on SAP and Oracle and no else where.

3. MSFT and partners need to look at building up their capabilities around providing business solutions offerings to their customers. There needs to be business processes people, there needs to be business consultants that specialize in different industry verticals not just technical people. Again, look at how SAP and Oracle build their implementation partners.

There is a long way ahead of us all my friends, and it only gets more exciting! 🙂

CRM Licensing in Dev, UAT and Production

There is plenty of information out there on MSCRM licensing model; Server License, Device CAL and User CAL, Connector License etc etc… But, if you are a dev shop, or an organization that does your own development, if you follow standard software release cycle practice and have Development, User Acceptance Testing and finally Production environments. What’s the licensing situation around these? After a bit of a chat with the local MS Dynamics CRM Specialist Dirk.Develter@MSFT, here is the breakdown.


Server and user CALs – The organization has to have the server licensed, this is usually via MSDN which covers the Server License as well as up to 10 user CALs.

User Acceptance Testing (UAT)

Server – These have to be purchased separately for each installed CRM Server instances OR if the organization has MSDN they could use these as well.
If the organization has bought Server licenses for Production, they may NOT use these for UAT as they are physically separate CRM Server instances.

User CALs – If the organization has MSDN feel free, if not these will have to be purchased separately. BUT, if the organization has purchased CALs for Production they can use these for UAT as well.

Bottom line is – if there is a separate installed CRM Server instance (or server role in the case of Enterprise edition), you need a separate server license.


Server and user CALs – cough up with the hard cold cash and dash them to MSFT.