This project is read-only.
Project Description
CRM External View enables more robust control over exposing Microsoft CRM data (in a form of views) for external parties. The solution uses web service as the integration layer to CRM. Supports paging and simple authentication.

Supports CRM Online.

Feedback are welcome. :-)

New Features in v1.2 release
  • Password protected views. No more using Web Data Access role from v1.
  • Filtering capabilities
  • Caching for performance boost
  • Updated the default no of records retrieved from 5000 to 2500
  • Quick how-to screencast http://vimeo.com/10416992

Features
  • Enable selected CRM views accessible externally
  • Allows you to configure different name for the External View, therefore you don't have to expose the internal CRM View Name
  • Transparent paging functionality (no more paging cookie stuff!)
  • Uses WCF service for reliability. Exposes 2 operations: GetViewData and GetPagedViewData
  • Support for CRM Online (On Premise and IFD coming!)
  • Simple authentication
  • Logging functionality for failed authentication, invalid views, etc (default logging to EventLog). Using log4net
  • Easy installation (really!)

Solution Overview
The solution comprises of 2 parts: the administration area for managing which views got exposed externally and the web service which is the integration layer.
The administration area is hosted within CRM Online. You can view it from Settings - External Views.

If you open that External View record, you will find there are 2 fields. View Name and Unique Name.
View Name is basically the name of the CRM view you want to expose externally, where as the Unique Name is more like an alias for that View Name.
So, when the view data is requested through the web service, you should pass in the Unique Name as the parameter, not the View Name.

You can create as much External View records as you want, but you need to make sure that the Unique Name is unique for all these records.

Then, there is the web service that retrieves the views data depending on the user roles. A user need to have a Web Data Access role in order to access these view data. There are 2 web service operations supported: GetViewData and GetPagedViewData. The latter one is used to retrieve a large number of records in a paged manner, where as the first one only retrieved the first 2500 records for that particular view.

Solution Architecture Diagram

Installation
  • Download the customization.zip, import and publish it to your CRM server
  • Download the setup.zip. Extract and run the setup.exe under the Administrator context
  • Browse to the External View installation URL in your browser. By default it is http://localhost/ExternalView
  • Since it only supports CRM Online at the moment, you will need to enter the Live ID, Password, and Organization name to connect to your CRM Online instance.
Click the validate button to verify this information are correct and save these information in configuration file
  • That's it! Now, you can try connecting to the web service.

Limitation
  • Only supports CRM Online. Future release will support On Premise and IFD.
  • Unable to restrict sensitive fields like "accountid" from the view result. This functionality will be provided in the upcoming releases.

Last edited Mar 26, 2010 at 9:50 PM by dimazp, version 6