28 April 2013

Microsoft Dynamics CRM and CRM Portal website

Why do you need a CRM Portal?

The CRM system is usually an "internal" system, that is, the content in CRM can only be accessed and managed by internal CRM users. It all makes perfect sense until you want something more, here's some business cases that you might want to consider as a CRM Portal solution.

Business Case 1 - Reduce the license cost (where the portal user is the CRM user)

The ESS(Employee Self Service) CAL is 1/3 license cost of the Limited CAL; is 1/10 license cost of the Full CAL. If a company has a big amount of CRM "light users", then the ESS CAL would fit for purpose, so a CRM portal or a helpdesk application is required  in this case (access through Microsoft Dynamics CRM clients is not allowed in ESS CAL)

Obviously, in such scenario, you will have to balance the ROI(Return On Investment) of building a CRM Portal and the license cost.

The Employee Self Service (ESS) CAL provides a user with limited API access and limited read-write access to “Microsoft Dynamics CRM functionality” through any application/graphical user interface (GUI), other than the Microsoft Dynamics CRM client. The ESS CAL addresses the licensing requirements for light user scenarios of Microsoft Dynamics CRM 2011. ESS CAL isn't available in Dynamics CRM Online. 
Refer to Microsoft Dynamics CRM 2011 pricing and licensing guide for a complete list of use rights.

Business Case 2 - Interactive with business relations (where the portal user is not the CRM user, but map to another CRM entity, i.e. Account, Contact etc.)

That's it! Non-CRM users can also contribute to your CRM system, like your business partners and/or customers. They exist in your CRM system as Account or Contact (or other entities but not the User entity) records, with some development work, they can register (or be given) an unique UserId and Password to login to CRM Portal, then they can perform some by-design actions, for examples:
  • Creating/Updating their own data  in CRM, like personal profile, support case etc.
  • Booking/Amending a service appointment with available resources/facilities.
  • Making/Managing online orders, manage invoice etc.
The beauty of it is all their inputs will be synced using the agreed format into CRM without CRM user intervention. For instance: 

  1. Your customer login to the CRM portal, select a few products and make an order.
  2. Your CRM user will see a new order has been created in CRM (via Portal) by one of your customers (also in CRM). 
  3. The CRM user can fulfill the order and create an invoice in CRM; 
  4. The customer will see the order status changed to "Fulfiled" and the invoice for that order.
The external connector license (for non-employee access) is required for this scenario.


Business Case 3 - Interactive with the public (where the portal user is anonymous Internet user, who has nothing to do with the CRM system)

CRM data can be pushed or pulled to the Internet to allow public Read-Only access. 
With some development work, the CRM KB Article and Sales Literature can be published to a public website to allow Internet users to access and download. The idea is, you can now use CRM as a "CMS" system, that you can manage contents within CRM.

About the technologies used in CRM Portal

CRM Portal can be built with all major web technologies, i.e.: .Net, Java, PHP, Ruby. It doesn't matter how you design the user front end, on the back end they call CRM references to perform actions.
CRM Portal can be stand along, or integrate with your existing company website. 
Here's a demo (but real) CRM Portal website (http://www.orchardcrm.com/) I built for clients demo.


Some highlights:
  • Support CRM Online, Azure Hosted VM, On-Premise etc.
  • Multi-Devices support, like: Desktop/Laptop, Mobile Phone, iPad etc.
  • Create/Update your CRM profile (update your Contact record in CRM)
  • Create/Update/View CRM cases
  • Create/Update/View CRM orders for yourself and your sub-customer (sub-contacts in CRM)
  • Book a service appointment activity in CRM.
  • View CRM published articles.
The website is built on top of my favorite Orchard CMS project (LIKE)!

Hopefully this article gives some ideas about what CRM Portal can do!

Cheers,
Jim Wang
MVP Dynamics CRM
04. 2013

18 February 2013

New Book Review: Microsoft Dynamics CRM 2011 Application Design


This book is written by Mahender Pal, a CRM MVP.

On the first chapter, it briefly introduced Microsoft Dynamics CRM 2011; along with deployment options, client options, requirements and typical CRM modules: Sales, Marketing and Service. The book gives an example of how to design and develop a "Project Training Enrollment System" using Dynamics CRM 2011, with abundant screenshots and detailed steps. As a reader, you will learn how Dynamics CRM works as a 'xRM' application; you will go through the CRM customisation concepts and form design; You will also learn how process, plugins and web resource works in Dynamics CRM. The book also covers the application development using Dynamics CRM web services. Compares different CRM mobile client. Last but not least, it also introduces how to build an Issue Tracker tool using Dynamics CRM 2011.

This book will give you a good idea of CRM application design and development; it's suitable for technical consultant and developers.

Thanks Mahender!


19 January 2012

Get a free Dynamics CRM 2011 Project Tutorial book offer

Do you want free copies of my latest book?

Well, all you need to do is visit Microsoft Dynamics CRM 2011 New Features and tell me 
the one feature, that makes you want to own this book in the comments section below (on this post).
Make sure to enter your email address, so that I can in touch with you. Two individuals who have mentioned the best reasons will be provided with an e-copy each.




Thanks,
Jim

12 November 2011

New CRM 2011 Book Released: << Microsoft Dynamics CRM 2011 New Features - with a CRM project tutorial >>.

New CRM 2011 Book Released: << Microsoft Dynamics CRM 2011 New Features - with a CRM project tutorial >>.



This book is your one stop resource to get to grips with all the new features of Dynamics CRM 2011. To make learning fun and engaging, we will build an Airline Compensation Management (ACM) system using Dynamics CRM 2011.
The book starts by setting up the development environment for Microsoft Dynamics CRM 2011. We will then build a structural architecture for the ACM system and configure it in Dynamics CRM 2011. While doing this, we will learn about the new customization features offered by Dynamics CRM 2011.
We will then move on to Data Importing and will cover the Import Data Wizard tool, as well as the Import file/data web service which provides additional capabilities that are not available in the Import Data Wizard.
We will use client-side programming to perform data validation, automation, and process enhancement and learn powerful event driven server-side programming methods: Plug-Ins and Processes (Formerly Workflows).
The book then steers you towards SharePoint integration, Charts and Dashboards, Customizing the Ribbon and Sitemap, and extending Dynamics CRM 2011 in the cloud.
Finally we will package the ACM solution and learn how to deploy it.

What you will learn from this book :
  • Set up a development environment for Dynamics CRM 2011
  • Import your important data from various sources using the Import Data Wizard
  • Use web resources to store files virtually
  • Visualize your data using filters, charts, and dashboards
  • Customize the default Microsoft Dynamics ribbon
  • Improve document management in your CRM system by integrating it with SharePoint 2010

Approach
This book is packed with practical steps and screenshots to make learning fun and addictive. You will learn to build a complete Airline Compensation Management system using Dynamics CRM 2011.

Who this book is written for
If you want a focused book that gets you up-to-speed with the new features of Microsft Dynamics CRM 2011 then this is the perfect book for you.Microsoft Dynamics CRM 2011 New Features - with a CRM project tutorial

Chapter 1, Setting up the Development Workspace, shows how to set up and configure your Microsoft Dynamics CRM 2011 development workspace that you can use for the project.
Chapter 2, System Design and Configuration, gives you a high level overview of an Airline Compensation Management (ACM) XRM application in Microsoft Dynamics CRM 2011 that we are going to build.
Chapter 3, Data Import, populates some sample data into Microsoft Dynamics CRM 2011, using new Import Data Wizard for testing and further development.
Chapter 4, Client-side Programming, gives you an overview of the new client-side programming features in Microsoft Dynamics CRM 2011.
Chapter 5, Server-side Programming, introduces the Microsoft Dynamics CRM 2011 event driven server-side programming methods: Plug-ins and Processes.
Chapter 6, SharePoint Integration, guides you through how to enable and configure the SharePoint integration feature in Microsoft Dynamics CRM 2011.
Chapter 7, Charts and Dashboards, covers the new business intelligent features such as filters, charts, and dashboards.
Chapter 8, Extending Microsoft Dynamics CRM 2011 in the Cloud, introduces Microsoft cloud offerings and sets up a portal site on the Windows Azure platform and integrates the portal with Microsoft Dynamics CRM 2011 Online.
Chapter 9, Sitemap and Ribbon Customization, covers the Sitemap and Ribbon customization.
Chapter 10, Packaging it Up, explains solutions and how to better use solutions to help our deployments into different environments.

28 September 2011

Fetch-based report, Sandbox and TCP 808

Just a reminder, if you deploy a Dynamics CRM 2011 on different servers, you need to allow the inbound TCP port 808 on the Windows Firewall Inbound Rules on the CRM application server, or change it to something meaningful to you.

The reason for that is because, by default the Sandbox service are using the default port 808 to call back CRM server. Furthermore, because the Fetch-based report are running inside a "Sandbox" (that's why you can have fetch-based report on CRM Online, but not SQL based report). So to make sure the Fetch-based report works (all reports created by the CRM report builder are Fetch-based report), you must consider it as well.

Some error message you may see when running a Fetch-based report (if not doing so):

Report render failure. Error: An error has occurred during report processing. (rsProcessingAborted)

and

Event code: 3005
Event message: An unhandled exception has occurred.


Process information:
Process name: w3wp.exe
Account name: NT AUTHORITY\NETWORK SERVICE

Exception information:
Exception type: CrmReportingException
Exception message: An error occurred during report rendering.
at Microsoft.Crm.Web.Reporting.SrsReportViewer.SetExecutionCredentials(ServerReport reportObj)
at Microsoft.Crm.Web.Reporting.RemoteSrsReportViewer.LoadReportAndSetParameters()
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)

An error has occurred during report processing. (rsProcessingAborted)
at Microsoft.Reporting.WebForms.ServerReportSoapProxy.OnSoapException(SoapException e)
at Microsoft.Reporting.WebForms.Internal.Soap.ReportingServices2005.Execution.RSExecutionConnection.ProxyMethodInvocation.Execute[TReturn](RSExecutionConnection connection, ProxyMethod`1 initialMethod, ProxyMethod`1 retryMethod)
at Microsoft.Reporting.WebForms.ServerReport.SetDataSourceCredentials(IEnumerable`1 credentials)
at Microsoft.Crm.Web.Reporting.SrsReportViewer.SetExecutionCredentials(ServerReport reportObj)


You might also see this error when debugging it:
Could not connect to net.tcp://CRMServer/CrmSandboxSdkListener-w3wp.

21 September 2011

Microsoft Dynamics CRM - UK Group on Facebook

Microsoft Dynamics CRM - UK Group on Facebook

Description:
A place for Dynamics CRM pros and users in the UK to help us know each other:
- Sharing knowledge;
- Contract/Job information;
- CRM UK event reminder;

Privacy type:
Closed: Limited public content. Members can see all content.

26 July 2011

Dynamics Mobility and HTML5

Dynamics Mobility is to enable workforces to have access to their Dynamics CRM/ERP data through mobile device anywhere, anytime. It should also enable an enterprise to leverage mobile communications to stay connected for people.



So what mobile platforms we are talking about?
Let's take a look at two latest reports from Gartner and ABI Research:




Also we must consider Nokia's strategic alliance with Microsoft on Windows Phone 7, and the retirement of Symbian. All facts taken together, the target mobile platforms are:

• Google Android
• Apple iOS
• Microsoft Windows Phone
• BlackBerry



So what is the solution?
In general, there are two approaches to get the proper mobile solutions for Dynamics:
1. ISV solutions
2. Custom solutions

ISV Solutions
If we are talking about the CRM Mobility solution, there are two major ISV providers on the market, TENdigits and CWR Mobility. Both ISVs provide advanced level mobility solution for Microsoft Dynamics CRM.

Also Microsoft Dynamics CRM 2011 has an out-of-box Mobile Express version which works on the target devices but lack functionalities,i.e. no offline mode.



Custom Solutions
To develop a custom solution on mobile device, let's take a look at the different types of mobile application first. There are two kinds of mobile application:
• Native app
• Web app

On the bright side of native app, it provides native APIs support for the mobile device, but you have to build applications using that mobile OS specific language. In other words, you need to develop different applications for different devices, in our target mobile platform, you need to develop 4 applications for Android, iOS, Windows Phone and BlackBerry. So you can probably imagine that it requires some efforts on upgrading and maintaining the application.

Another choice is the Web app which is browser based application that running on the mobile devices. Generally speaking, mobile app provides the Cross-Platform support, so one web app can suit different mobile platforms. The blind side for web app are mainly on: performance and limited API access.

So if we want to build a unified cross-platform mobile application, prepare for the future and develop for the future, the mobile app is a good choice. But before making the choice, we also need to make sure that we have a clear goal. i.e. to build a CRM mobile application to allow salesperson access CRM data via their iPhone and iPad with offline mode... And then find out whether the web app can do the work on various aspects (local storage, security, performance etc.)

HTML5 is the choice for web app
HTML 5 web app is the perfect choice for web based applications that are designed for mobile devices. HTML5 will be the new standard for HTML, XHTML and HTML DOM. Although HTML5 is not yet an official standard, and no browsers have full HTML5 support. All major browsers (Safari, Chrome, Firefox, Opera, and Internet Explorer) continue to add new HTML5 features to their latest versions, as well as the mobile browsers.

Now, are we going to build HTML5 web app start from scratch - No, we don't have to. There are some framework you can choose to use right now:

jQuery Mobile is the most broadly compatible HTML5 library for building web sites and apps. JQuery mobile framework takes the "write less, do more" mantra to the next level: Instead of writing unique apps for each mobile device or OS, the jQuery mobile framework will allow you to design a single highly branded and customized web application that will work on all popular smartphone and tablet platforms.

PhoneGap is an HTML5 app platform that allows you to author native applications with web technologies and get access to APIs and app stores. PhoneGap leverages web technologies developers already know best... HTML and JavaScript.

The following diagram shows how PhoneGap works:


Both jQuery Mobile and PhoneGap are under the MIT license.

There are also commercial frameworks that available on the market, i.e. Sencha.
Sencha Touch is the world's first app framework built specifically to leverage HTML5, CSS3, and Javascript for the highest level of power, flexibility, and optimization. It allows you to develop mobile web apps that look and feel native on iPhone, Android, and BlackBerry touch devices.


So, are you ready for the HTML5 front-end web app of Microsoft Dynamics? :-)


Jim Wang
Microsoft MVP Dynamics CRM
July 2011

16 July 2011

CRM 2011 Plugin Development Workspace

2 years ago, I wrote an article about Build a handy Dynamics CRM development environment, which has been widely used in the community. I have also provided several CRM 4.0 and 2011 development training courses for .Net developers in the past few years, the result and feedback were very good.

Now the Microsoft Dynamics CRM 2011 has been released, I'd like to guide you through an efficient development workspace for CRM 2011. The overall develop/build/debug process should be very smooth, see the following diagram:


First of all, the CRM 2011 only support 64bits server, so if you are using Windows 7, I suggest you to use the Oracle VM VirtualBox to install CRM 2011 server. My experience is the VirtualBox does everything you need for the development purpose, quicker and smaller, and also it supports 64bits Guest OS (even with a 32bits Host OS).

The minimum RAM required to run CRM 2011 (all-in-one box) is 3GB (recommend 4GB); It's also possible to install the SharePoint foundation 2010 on the same box if you have SharePoint document integration.

About the Host PC, the minimum RAM required is 4GB, it's good to have 8GB RAM (all with 64bits Windows 7); install Visual Studio 2010 on the Host PC for better performance, then you can set up the Visual Studio 2010 Remote Debugger (x64) on the Guest OS that has CRM 2011 server installed (refer this article about how to Build a handy Dynamics CRM development environment).

Next, after you developed a CRM plugin in Visual Studio 2010, you may register it using the Plugin Registration Tool (can be found in the CRM 2011 SDK). Make sure you register the DLL in the Disk (during development/testing phase); Also change the project properties in Visual Studio 2010: change the Build | Output path to the CRM server assembly folder, i.e.:
\\CRM\c$\Program Files\Microsoft Dynamics CRM\Server\bin\assembly\

So each time you build the project, the new DLL and PDB file will be output to the assembly folder, CRM will pickup the new plugin DLL automatically without manually re-registering it.

If you get the error message when rebuild the project in Visual Studio: "Unable to copy file ... because it is being used by another process...", you may add the "Pre-build event command line" to recycle the CRMAppPool or restart the Service of the CRM server (See: Build a handy Dynamics CRM development environment).

If you use PowerShell to do so, you need to change the Host PC's Execution Policy to Unrestricted and RemoteSigned.

On a 64bits Host PC, use the below command to start PowerShell,
%SystemRoot%\sysWOW64\WindowsPowerShell\v1.0\powershell.exe

Then execute the following command:
Set-ExecutionPolicy Unrestricted
Set-ExecutionPolicy RemoteSigned

(Note, the 32bits PowerShell command line is in another folder:
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe )

To debug a plugin, make sure you attach the right process:

  • online - w3wp.exe
  • offline - Microsoft.Crm.Application.Hoster.exe
  • asynchronous registered plug-ins (or custom workflow assemblies) - CrmAsyncService.exe
  • sandbox (isolation mode) - Microsoft.Crm.Sandbox.WorkerProcess.exe

Hope it helps!
:)


22 June 2011

CRM 2011 add-on solution for Finance / Insurance sector?

I have a list of CRM 2011 add-on solutions for Finance / Insurance sector, try to beat the Oracle Financials. See below:


UK based vendors:
http://dynamics-crm.pinpoint.microsoft.com/en-gb/applications/uk-and-worldwide-microsoft-dynamics-crm-for-financial-services-12884910408
http://dynamics-crm.pinpoint.microsoft.com/en-GB/applications/consultcrm-microsoft-crm-for-financial-services-4294996711

US based vendors:
http://dynamics.pinpoint.microsoft.com/en-GB/PartnerDetails.aspx?PartnerId=4295509793&ProductId=4295028573&CurrentTab=1
http://dynamics.pinpoint.microsoft.com/en-us/applications/crm-for-financial-services-wealth-entry-edition-4294993420
http://dynamics-crm.pinpoint.microsoft.com/en-us/applications/insurance-benefits-brokers-solution-for-microsoft-dynamics-crm-4294971329


Please contact me (jim.wang^csc.com) along with your product introduction if your company base in the UK and has such solutions; or want to sell the product in the UK market.

Thanks!

04 May 2011

Customer Portal 2011 - An error has occurred while loading content required for this feature



It's just a quick post here, hopefully to save your time: if you deploy the Customer Portal for Microsoft Dynamics CRM 2011 on a Windows Server 2008 machine or VM, and get this error message when editing the page: "An error has occurred while loading content required for this feature"

Windows Event log doesn't say anything about it, but if you fiddler it, you will find a 404 error related on a Cms.svc endpoint:
Solution:
To solve this issue, firstly make sure you have installed the WCF activation features.
Also you have installed Windows Server 2008 R2 + SP1 , you need to install the Microsoft .NET Framework 4 KB2468871

Thanks MVP Shan McArthur from Adxstudio to point out on his blog: