Wednesday, July 6, 2011

Activating External Users for SharePoint Online

Being very excited about Office 365 going live this week, I decided to share the experience with some of my clients by setting up SharePoint sites for mutual collaboration on our Dynamics CRM projects, much as I have done at previous employers. Setting up the site collections, including customizing the templates and the presentation schemes, was delightfully straightforward … until. When I tried to share the sites with my external clients I kept getting a message that invitations to external users were not enabled. I knew that this had to be a two step process, but figuring out how to accomplish the second step required several hours and finally a call to the SharePoint Online support team. In the interests of saving the reader a call to the support desk, here are the steps for activating external users for SharePoint Online.

Step 1 – Manage External Users

Start by logging into the SharePoint Online Administration Center. Click the “Settings” button on the ribbon bar, and select “Manage External Users”.

On the External Users dialog, select “Allow” and click “Save”.

This will enable all of your site collections to be configured to allow external users to be invited to the site. The next step is of course …

Step 2 – Activating External Users for the Site Collection

Start this step by navigating to the target site collection. Once there, select the “Site Actions” menu and click on the “Site Settings” menu item.

So far, so good, but here is the part that buried me. Click on the “Site collection features” link under “Site Collection Administration”. Sehr einfach, nicht wahr?

Maybe I’m a post (it has been posited), but I was not intuitive enough to figure this out on my own, hence the two hours of searching and the call to Microsoft.
Once here however, it is smooth sailing. Just click the “Activate” button next to “External user invitations” to activate this feature, and you are off and running.


On a related note, the response from the SharePoint Online team was timely, knowledgeable, and thorough. Thanks, Joshua Lense, for the outstanding support.

Monday, June 6, 2011

Using Web Page (HTML) Web Resources in Dynamics CRM 2011

One of the interesting new capabilities in Dynamics CRM 2011 is the ability to imbed HTML web pages in the CRM form, thus providing a means of presenting data and controls to the user that transcend the limitations of the basic CRM form, using tools and skills that are simpler and easier to deploy than Silverlight. Web Page web resources are similar to the traditional IFRAMEs used in previous releases of Dynamics CRM, but there are some notable differences, namely:
·         Code – Web Page web resources can only contain code that can be executed on the client such as HTML and Jscript. They cannot use ASP.NET pages.
·         Rendering – Web Page web resources are rendered on the client as opposed to IFRAMEs which are rendered on the server.
·         Properties and Methods – Most of the properties and methods of the Web Page web resources are the same as those of the IFRAME, with the exception of the IFRAME’s getInitialURL method.
·         Events – The Web Page web resource does not have an equivalent of the IFRAME’s OnReadyStateComplete Event.
·         Deployment – Web Page web resources are automatically deployed to the Dynamics CRM Outlook client and are able to render even if the client is offline or disconnected (assuming that the web page does not use external references).
·         Solutions – Unlike the code for IFRAME-displayed web page which resides outside of CRM, the code for Web Page web resources is stored within Dynamics CRM and can be managed as part of a solution.
When getting started with Web Page web resources, here are some things to consider:
·         Passing Parameters – Standard IFRAME parameters such as entity and contextual metadata are passed automatically to the Web Page web resource if the option is selected on the web resource property form.
·         Passing Optional Parameters – The Web Page web resource only permits the passing of a single optional parameter named ‘data’. In order to pass multiple parameters, the name-value pairs must be concatenated, encoded using the encodeURIComponent method, and appended to the web resource source using the setSrc method.
·         Modifying the Web Resource – The SDK cautions that the form OnLoad event should not be used to modify a Web Page web resource as variances in processing could cause these changes to be overwritten by the web resource’s default values. There are two recommended approaches to get around this issue, and which you choose will be based upon the application behaviors you are trying to enforce:
1.     OnChange – use the onChange event for a form control to set the source property for the web resource when the data in the control changes.
2.     TabStateChange – use the TabStateChange event for a tab to set the source property when the display state changes.
Note that it is extremely helpful to encode much of the web resource supporting functions into JScript libraries (also web resources) that can then be referenced from the Web Page web resource and managed as part of the solution.

Thursday, May 26, 2011

Zen and the Art of CRM Implementation - Part I


The Holistic CRM Implementation

“It’s the economy, stupid”
- James Carville
Substitute the word ‘business’ for the word ‘economy’ in the quote above and you will get an idea of how important it is to understand that CRM is the solution to a business problem, not a technical problem. As such, every CRM project should have, as its core, the following objectives:
·         Solving one or more specific business problems;
·         Generating a positive return on investment;
·         Encouraging user adoption of the resulting solution.
CRM projects are often the product of profound changes being made to the way that an enterprise intends to conduct some aspect of its business. A successful CRM implementation must focus not on the technology, but on the business problem that is being addressed, and on how technology can be used to efficiently enable the business changes that will successfully solve that problem. In order to accomplish this, the business implementation and the technical implementation need to be integrated and managed as a whole solution, as opposed to independent and unrelated efforts.


As the figure above illustrates, the holistic CRM implementation must address program management, change management, system customization, data migration and systems integration, QA and testing, infrastructure, training, and deployment and support. Each of these pieces of the solution represents at least one critical workstream that, depending upon the size of the enterprise and the scope of the project, requires individual planning and execution. Addressing each of these workstreams and integrating them into a whole is a key factor in delivering a successful project that accomplishes the three objectives of: solving the problem; generating a positive return on investment; and encouraging user adoption.
Note that the implementation workstreams in the figure above are high-level, broad categories of effort, and each slice of the implementation pie will, in all likelihood, be further deconstructed into smaller workstreams; again depending upon the scope of the effort. In future posts I will drill down on the individual workstreams and discuss each in more depth.