Posts Tagged ‘Microsoft Dynamics’

CRM 2011 Developer Road Tour New Zealand

 

6724.dyn-CRM2011_v_rgb_3

 

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
Dunedin .NET User Group Link
24/05/2011 11:30 a.m. – 12:30 p.m. 7 Forests Rd
Stoke
Nelson
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
09/06/2011
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
16/06/2011
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

CRM Jargon in Chinese

The background:

This is a way overdue post from earlier this year when I delivered some training courses in Mandarin Chinese in China.

Fact is, I had to translate over 300 pages of PPT slides from English to Chinese. So I picked up a lot of CRM jargons in Chinese in a very short period of time. The training courses I delivered were Business Action World Tour in Beijing and Shanghai, which was a 200 level, 4 hours session on xRM with various other MSFT technologies. And Business Action Training Tour, a 300 level 2 day full on training course diving deep on BAWT contents in Guangzhou.

The irony: – 恶补中文!(惡補中文!)

“But aren’t you a native Chinese speaker?” I hear you ask, and “yes” is the answer. However I can articulate these terms well in English since I learnt them in English, but I really had to learn what they are in Chinese as some of them are quite technical.

It’s rather ironic. When my Dad decided that I should become a shepherd and sent me to New Zealand 10 years ago, I had to learn the language – Engrish – pretty much from ground up. The only language that I did know was Chinese, so you’d see Chinese translations scribbled all over the English text I’d have been given to study. This time around, you still see Chinese translations of the English words all over my PPTs. But I was learning Chinese this time rather than English…

The content:

So I’ve compiled a list of these terms from my recollection and I will amend it as I remember more. Some are really simple, others are pretty technical.

English (en-nz) Simplified Chinese (zh-cn) Traditional Chinese
(zh-tw)
CRM 客户关系管理 客戶關係管理
Seamless integration 无缝集成 無縫集成
Multi-currency 多币种 多弊種
Multi-language 多语言 多語言
Marketing Analysis 市场营销分析 市場營銷分析
Data Cleansing 数据清理 數據清理
Opportunity 商业机会,市场机会 商業機會,市場機會
Lead 潜在客户,潜在顾客 潛在客戶,潛在顧客
Contact 联系人,关联者 聯繫人,關連人
Cost 成本 成本
Profit 利润 利潤
Revenue 收入 收入
Sunk cost 沉没成本 沉沒成本
Liability 负债 負債
Equity 所有者权益 所有者權益
Capital 资本 資本
Asset 资产 資產
Marketing Campaign 市场活动 市場活動
Marketing campaign response 市场活动响应 市場活動響應
Mail merge template 邮件合并模板 郵件合併模板
Lead qualification 潜在客户验证 潛在客戶驗證
Customer Loyalty 客户忠诚度 客戶忠誠度
Return on Investment (ROI) 投资回报 投資回報
Service Level Agreement (SLA) 服务级别协议 服務及別協議
Business process 业务流程 業務流程
Real time communication 实时交流 實時交流
Marketing channels 商业渠道 商業渠道
Response rate 响应率 響應率
Sales target 销售指标 銷售指標
Trending analysis 趋势分析 趨勢分析
Up sale 升级销售 升級銷售
Cross sale 交叉销售 交叉銷售
Workflow customization 工作流定义 工作流定義
Workflow rule 工作流规则 工作流規則
Dashboard 监控看板 監控看板
Online marketing 在线营销 在線營銷
Telemarketing 电话营销 電話營銷
Custom UI 自定义用户界面 資定義用戶界面
Support call 支持请求 支持請求
Support case 支持案例 支持案例
Case management 案例管理 案例管理
Customer satisfaction 客户满意度 客戶滿意度
Customer experience 客户体验 客戶體驗
Self service web portal 自助网站 自助網站
Communication channel 交互渠道 交互渠道
Knowledge base 知识库 知識庫
Consistent customer service experience 始终如一的客服体验 始終如一的客戶體驗
Client side scripting 代理脚本 代理腳本
Call centre 呼叫服务中心 呼叫服務中心
Knowledge base article (KBA) 知识库文章 知識庫文章
Third party integration 第三方集成 第三方集成
Quote, sales order, contracts 报价,订单,合同 報價, 訂單, 合同
Offline access 脱机访问 託機訪問
Sales cycle 销售周期 銷售周期
Line of business application (LOB) 商业应用系统 商業應用系統
Follow up process 跟踪流程 跟蹤流程
Lead routing 分派潜在客户 分派潛在客戶
Win rate 成交率 成交率
Wizard driven 向导驱动 嚮導驅動
Customer interactions 客户交互 客戶交互
Open proposal 未决报价 未決報價
From proposal to invoice 从报价到开票 從報價到開票
Close sales 成交 成交
Sales literature 销售宣传资料 銷售宣傳資料
Sales metrics 销售度量 銷售度量
Performance indicator 业绩指标 業績指標
Product catalog 产品目录 產品目錄
Sales pipeline 销售来源 銷售來源
Customer retention 客户保留 客戶保留
Scalability 可伸展性 可伸展性
Software as a Service (SaaS) 软件即服务 軟件即服務
On-Premise deployment 内部部署 內部部署
Custom development 二次开发 二次開發
Plugins 插件 插件
Data visualization 数据可视化 數據可視化
Mobile development 嵌入式开发 嵌入式開發
Vector-based composition 基于矢量的组成 基於矢量的組成
Extensibility 扩展性 擴展性
databinding 数据绑定 數據綁定
Full trust application 全信托应用程序 全信託應用程序
Business productivity 商业效率 商業效率
Business intelligence 商业智能 商業知能
Unified communication 统一通讯 統一通訊
Enterprise search 企业搜索 企業搜索
Office Business Application (OBA) 办公商业应用 辦公商業應用
Web Portal 门户网站 門戶網站
Enterprise Content Management (ECM) 企业内容管理 企業內容管理
Workspace 工作空间 工作空間
Instant messaging 即时通讯 即時通訊
Enterprise Service Bus (ESB) 企业服务总线 企業服務總線
Partner hosted deployment 合作伙伴托管部署 合作夥伴託管部署
Authentication, authorization 认证,授权 認證, 授權
Transaction 事务 事務
Access control 访问控制 訪問控制
Metering, billing 计量,计费 計量, 計費
Platform providers 平台提供商 平台提供商
Industry solution providers 行业解决方案供应商 行業解決方案提供商
Independent Software Vendor (ISV) 软件开发商 軟件開發商
Value Added Resellers (VARs) 增值经销商 增值經銷商
System Integrators (SIs) 系统集成商 系統集成商
Distributors 分销商 分銷商
Multi-tenancy 多托管者架构 多托管者架構
Hosting provider 托管商 托管商
Tenant 托管者 托管者
Database failover 数据库切换 數據庫切換
Downtime 中断时间 中斷時間

Troubleshooting CRM Data Connector

The background:

So, I was called in to troubleshoot a CRM Reporting issue a client had, they had CRM Server front end, SQL Server 2008 + SSRS on the backend server – simple setup.

First thing first, CRM Data Connector is just another name (the real name) for Microsoft Dynamics CRM 4.0 Connector for SQL Reporting Services.

A quick revision and the purpose of the Data Connector

From Barry Givens’ post:

  1. Reports in CRM 4.0 are running out of this thing called “SQL Reporting Services Report Viewer” which is plainly an ASP.Net control that runs on the CRM 4.0 Web server. So when users view reports in CRM 4.0, they are hitting up a URL on the CRM 4.0 Web Server.
  2. Because of this, CRM 4.0 reports are always run in a delegated mode, the CRM and SSRS integration has to handle security. This requires us to use integrated authentication and configure trust for delegation between the CRM server, the SSRS server and the SQL server with the CRM database. [Refer to HOW TO: Configure Kerberos authentication for Microsoft CRM 3.0 and Microsoft SQL Server Reporting Services and Microsoft CRM 3.0: Additional Setup Tasks Required if Reporting Services Is Installed on Different Server.]
  3. MSFT decided to make our life less miserable by shipping this Data Connector with CRM 4.0. It is essentially an SSRS Data Processing Extension and handles all of the delegation for us so that we no longer have to fiddle around Kerberos etc, which wasn’t an option in version 3.0.

Right, back to our problem at hand;

The symptoms:

1. When users try to run a SSRS report via CRM Web App, they get a 401.

[{date time}] Process: w3wp |Organization:{Org Guid}
|Thread: 5
|Category: Application
|User: 00000000-0000-0000-0000-000000000000
|Level: Error
| ErrorInformation.LogError
>MSCRM Error Report:
--------------------------------------------------------------------------------------------------------
Error: Exception of type 'System.Web.HttpUnhandledException' was thrown.
Error Number: 0x80040494
Error Message: The request failed with HTTP status 401: Unauthorized.
Error Details: The request failed with HTTP status 401: Unauthorized.
Source File: Not available
Line Number: Not available
Request URL: http://{IPAddress}:5555/{OrgName}/CRMReports/rsviewer/reportviewer.aspx
Stack Trace Info: [WebException: The request failed with HTTP status 401: Unauthorized.]
at Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.GetSecureMethods()
at Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.IsSecureMethod(String methodname)
at Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.LoadReport(String Report, String HistoryID)
at Microsoft.Reporting.WebForms.ServerReport.GetExecutionInfo()
at Microsoft.Reporting.WebForms.ServerReport.SetParameters(IEnumerable`1 parameters)
at Microsoft.Crm.Web.Reporting.SrsReportViewer.ConfigurePage()
[CrmReportingException: The request failed with HTTP status 401: Unauthorized.]
at Microsoft.Crm.Web.Reporting.SrsReportViewer.ConfigurePage()
at Microsoft.Crm.Application.Controls.AppUIPage.OnPreRender(EventArgs e)
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
[HttpUnhandledException: Exception of type 'System.Web.HttpUnhandledException' was thrown.]
at System.Web.UI.Page.HandleError(Exception e)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest()
at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
at System.Web.UI.Page.ProcessRequest(HttpContext context)
at ASP.{OrgName}_crmreports_rsviewer_reportviewer_aspx.ProcessRequest(HttpContext context)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

2. However, users can directly run the reports via report server URL.

3. When user click on the Preview arrow to the left of each report, like the one shown below;

image

They are greeted with the following error message;

“Reports cannot be run because the Connector for Microsoft SQL Server Reporting Services, a required component for reporting, is not installed on the server that is running Microsoft SQL Server Reporting Services.”

image

4. This is accompanied by the following error message in the CRM Web trace;

[{Date & Time}] Process: w3wp
|Organization:{Org Guid}
|Thread: 6
|Category: Application
|User: 00000000-0000-0000-0000-000000000000
|Level: Error
| ErrorInformation.LogError
>MSCRM Error Report:
--------------------------------------------------------------------------------------------------------
Error: Exception of type 'System.Web.HttpUnhandledException' was thrown.
Error Number: 0x80040492
Error Message: MSCRM Data Connector Not Installed
Error Details: MSCRM Data Connector Not Installed
Source File: Not available
Line Number: Not available
Request URL: http://{IPAddress}:5555/{OrgName}/_grid/preview.aspx?type=9100&id={Report Guid}
Stack Trace Info: [CrmException: MSCRM Data Connector Not Installed]
at Microsoft.Crm.ObjectModel.ReportService.GetReportServer(ExecutionContext context, Boolean verifyAndConfigDataConnector)
at Microsoft.Crm.ObjectModel.ReportService.ListSnapshots(Guid reportId, ExecutionContext context, String[]& HistoryIds, DateTime[]& CreatedDates)
[TargetInvocationException: Exception has been thrown by the target of an invocation.]
at Microsoft.Crm.Application.Utility.Util.RaiseXMLError(Exception exception)
at Microsoft.Crm.Application.Pages.Grids.PreviewPage.ConfigurePage()
at Microsoft.Crm.Application.Controls.AppUIPage.OnPreRender(EventArgs e)
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
[HttpUnhandledException: Exception of type 'System.Web.HttpUnhandledException' was thrown.]
at System.Web.UI.Page.HandleError(Exception e)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest()
at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
at System.Web.UI.Page.ProcessRequest(HttpContext context)
at ASP.{OrgName}__grid_preview_aspx.ProcessRequest(HttpContext context)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Diagnosis and resolution:

The fact that users are able to browse to the reports via report server and getting a 401 via CRM Web application, suggests the Data Connector is playing up. The second error message about Data Connector confirms this assumption. So we decided to reinstall Data Connector. The steps we did this in are the following;

1. Uninstall Data Connector from Add and Remove Programs.

2. Reinstall Data Connector from command line and the following configuration file.

3. Restart SSRS.

4. Recycle CRM AppPool or IISRESET.

5. Verify it works by firing up new IE and run up the reports.

6. Ask for your managers for a pay rise.

IMPORTANT points to remember when installing CRM Data Connector:

  1. Data Connector must be installed on the same server as the SQL Server Reporting Services instance that your CRM Server is using!
  2. If CRM is using a SQL Server 2008 backend, we must download an installer update file (.msp) from this KB article [How to obtain the setup updates for Microsoft Dynamics CRM 4.0] and install it via command line and a XML configuration file. (Refer to page 97 of the Install Guide for details.)
  3. If there are more than more SQL Server Reporting Services instances on the same server, the Reporting Server Uri and the instance name must be specified in the configuration file. (Like the one shown below.)
  4. Always remember to restart SSRS and IISRESET the CRM Web application before verify this has worked.

<crmsetup>
<srsdataconnector>
<configdbserver></configdbserver>
<autoupdateconfigdb>1</autoupdateconfigdb>
<reportserverurl>http://servername/reportserver_SSRS2008</reportserverurl>
<autogroupmanagementoff>0</autogroupmanagementoff>
<instancename>SSRS2008</instancename>
<configsku>OnPremise</configsku>
<!-- Set enabled = true for DB webstore integration.  Set configdb="true" for config db webstore integration-->
<webstore enabled="false" configdb="false" />
<monitoring>
<!-- Monitoring service account name and password. It can not be local system or network service account -->
<serviceaccountname></serviceaccountname>
<serviceaccountpassword></serviceaccountpassword>
</monitoring>
</srsdataconnector>
</crmsetup>

There you go, happy CRM’in :)

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

Diagnosis:

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.

Resolution:

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. http://rc.crm.dynamics.com/rc/regcont/en_us/op/articles/crmports.aspx  (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.

clip_image001

Note:

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.

clip_image001

Note:

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.

Enjoy!!!

“The request failed with HTTP status 401: Unauthorized.”

The story:

I needed to do a few demos on Microsoft Dynamics CRM 4.0 for Outlook (On-Premise deployment).

I have this MSCRM VPC VM running locally on my Windows 7 64 bit RC build host machine. This functions as my CRM Server, and I use everything locally to connect to it to do my demos, like; Browse to CRM Web via IE8 on my host, and connect CRM Outlook client to this local VM CRM Server. The reason we are doing it this way, is to hide the VM from the audience all together, so we can show off some of the Windows 7 eye candy features as well. I installed Microsoft Dynamics CRM 4.0 for Outlook and went about configuring it…

The problem:

In the 3rd dialog of the configuration wizard where it asks me for the Intranet address for my crm deployment.

image

I punched in http://moss:5555/ then click on Next…

(I shared loopback adaptor with my VM and statically assigned IP addresses for both the VM as well as my host on the adaptor, so that they belong the same subnet, I then mapped the IP address to ‘moss’ in the hosts file on my host machine)

This big, fat, ugly error popped out “The request failed with HTTP status 401: Unauthorized.

image

Wait!!! there is MORE… “Mandatory updates for Microsoft Dynamics CRM could not be applied successfully, Try running the application again.

image

Ok it and exit out of the configuration wizard…

 

The Resolution:

So there I was, bing’ing / Google’ing the Interweb in desperate needs for an answer. Thanks to Girish Raja who pointed me to the right directly and here it is:

Microsoft Dynamics CRM 4.0 for Outlook (On-Premise)” doesn’t tell you, doesn’t prompt you, and it secretly, deceitfully uses  ‘Stored Credentials’ on the host machine to connect to the server. If it doesn’t find the login details in the ‘Stored Credentials’ on your Windows OS, it will spit out with the above error messages.

Pretty sneaky I reckon!

So there are a couple of ways you can resolve this,

First approach is to use IE;

1. Hit http://moss:5555/ (Or whatever your crm server address is)

image

2. You’ll be greeted with a Windows Auth prompt, punch your credential and REMEMBER to tick the "Remember my credentials” checkbox, because this will put your credential in the Windows Vault (a new name in Windows 7 for an old feature Saved Credentials).

image

3. To see this in Windows Vault (If you are on Windows 7), Start | User Accounts and Family Safety | Credential Manager

image

alternatively you can directly get to it when in enter “Manage Windows Credentials” or “Windows Vault” and “Stored Credentials” works too…

image

Second approach is to directly add the credential from Credential Manager, which I won’t elaborate, and I’ll reference to an article on how to achieve this later in this post…

Now, when you go back to the MS CRM Outlook Configuration Wizard; we will be able to step through it…

image

That was easy ;)

Note: You will not be required to deal with “Stored Credentials” if you satisfy the following conditions;
a. Your machine is joined to the same domain as MSCRM
b. You’ve logged on as a domain account and your domain account is a CRM User.
d. You’ve added MSCRM URL to your Intranet sites.
e. Your IE settings is set to “Automatic logon only in Intranet zone” in IE 8 | Tools | Internet Options | Security | Local intranet | Custom Level | User Authentication | Logon

 

A side note on Windows Vault in Windows 7:

It seems to me that, Windows Vault is essentially the “Stored Credentials” or “Stored User Names and Passwords” feature in previous Windows OS (client and server) but given a prettier name in Windows 7 and with more features.

My colleague Chaks has written a great article explaining the Windows Vault  feature in details.

I’m taking BATT to China

image

If you don’t know what BATT is, read this earlier post. Over the past week and a bit I’ve been busy localizing some of the training material for our Chinese audience and I’ll be taking it to China for my follow countrymen and women later this month (June 2009)

This training tour is a two full day training course that focuses on building Line of Business applications with Microsoft Dynamics CRM 4.0. There are 6 modules;

1. Using Microsoft Dynamics CRM 4.0 with Windows Presentation Foundation
2. Using Microsoft Dynamics CRM 4.0 with Silverlight
3. Microsoft Office Client Integration with Microsoft Dynamics CRM 4.0
4. Using Microsoft Dynamics CRM 4.0 with Unified Communication
5. Introduction to Azure Services Platform with Microsoft Dynamics CRM 4.0
6. Microsoft Dynamics CRM 4.0 with Windows Azure

Each module consist of one hour of ppt and demos, followed by another hour of 300 level deep code dive hands on labs.

Details:

Date & Time: 24th & 25th June 2009, Start from 9:00am each day
日期和时间:2009年6月24,25号。 每天早上9点开始。

Location:  7th Floor, Tianjun International, No.365 Tianhe Road, Guangzhou, China
地址: 广州市天河区天河路365号天俊国际大厦七楼

Cost: FREE!!!  免费!!!

Registration:

There are VERY limited spaces available as this will be the ONLY BATT course for the ENTIRE China, a country with 1.6 billion population (yeah, go figure.)

So, to register email Liping on v-lipz@microsoft.com with your details!

See you all there!!! (Oh, it will be delivered in Mandarin Chinese BTW ;)

So I’ll be hitting the road again 22nd – 28th June WLG – AKL – HKG – CAN – TAO – HKG – CHC – WLG (looking forwards to seeing my folks again @TAO) :)

More Business Actions

image 

This is way more exciting than Business Time by Flight of the Conchords (okay, maybe that’s debatable). If you missed out on the Business Action World Tour that happened in in March all around the world in person. Never fear!!! Here is another chance. The same sessions will be delivered via Livemeeting across three different time zones from Monday 27th April to Friday the first of May.

For content details and registrations visit Ben Riga’s post or Catherine Eibner’s post.

 

image

This is the next wave of Worldwide Business Action on Microsoft Dynamics CRM by Microsoft Metro program. It’s a two-day Instructor Led Training (ILT) course and my colleague Chris Auld is instructing this course in Singapore on 10th-11th May and Sydney on 14th-15th.

Back in February, a team of us at Intergen worked very hard and built the content for this training course – six modules; a mix of presentation decks, demonstrations and hands-on labs for this training course. The labs are step by step instructions on how to build Line of Business applications by leveraging the greatness of Microsoft Dynamics CRM as an application platform and integrate with WPF, Silverlight, OBAs, OCS, .NET Service and Windows Azure.

For registrations refer to blog posts from Chris or Catherine.

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! :)

Follow

Get every new post delivered to your Inbox.