Friday, October 12, 2012

Update Rollup 11 now available!

Update Rollup 11 for Dynamics CRM 2011 is now available for download from http://www.microsoft.com/en-us/download/details.aspx?id=34969

This update includes compatibility with Windows 8 and IE10 besides other fixes. A complete list of this can be found at http://support.microsoft.com/kb/2739504


In addition to this, a few days back new bits for UR10 were made available. These included fix for issues reported from the original version of UR10. This can be found at http://www.microsoft.com/en-in/download/details.aspx?id=30711


Wednesday, October 3, 2012

How to Dynamics CRM

New to Dynamics CRM or already using Dynamics CRM? But do you do CRM the way it should be? Learn to CRM from the experts. 



Roughly around 20 CRM MVP's (I was not one of them) have got together and come out with a collaborative offering called CRMFieldGuide.

To say the least.. Its simple and powerful. CRM is simple and the book will let your CRM be effective by letting you keep it simple.

The book touches upon all offerings/tools related to Dynamics CRM. It is not restricted to explaining the functional concepts of Sales/Marketing and Service. It goes way beyond and includes the entire process right from Installing and Configuring CRM to the Best Practices for customizations and Server Maintenance. It has a total of 25 chapters to touch upon the various topics some of which we generally need to search on the web to find information on like

  • Sharepoint Integration
  • Dynamics Connector
  • Best practices for upgrade from CRM 4 to 2011
  • Understand Solutions to make it work better for you
  • Data Import

Who better than the experts to share with you their collective knowledge in one CRMFieldGuide.

Its a must have for anyone who needs to CRM the right way!

This book was released on October 1st 2012. Grab a copy right now from www.crmfieldguide.com

Thursday, September 20, 2012

How to convert silverlight 4 application to silverlight 5

When we open Silverlight 4 application in Silverlight 5 we get following errors

1) error  : Unable to read the project file 'Silverlight4App.csproj'.

2) Silverlight4App.csproj(137,3): The imported project "C:\Program Files\MSBuild\Microsoft\Silverlight\v4.0\Microsoft.Silverlight.CSharp.targets" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk.

This error occurs as the application was earlier built using Silverlight-4 Reference. So while opening this in Silverlight-5, the Visual studio looks for the Silverlight 5 reference files but it cannot find it.

To resolve this error you will have to follow following steps:

1) Open the project in Visual studio.

2) Go to solution explorer

3) Right click on the project that is not loaded and click on edit the CSPROJ file


4) And then change the Target Frame Work version to 5.0


5) Save and close this file and again right click on the project which is not loaded and click on Reload project.

6) Now the project will be reloaded successfully.

By following above steps your Silverlight 4 application will be converted to Silverlight 5 application.

If in case you again want to go back to Silverlight 4 then just repeat the above steps and set the Target Framework version to “v4.0”.

Hope this helps!!

Friday, September 14, 2012

Cross domain access from Silverlight

Silverlight control hosted at http://myserver/mypage.aspx can access only services on that same domain by default – for example http://myserver/service.svc, but not a service at http://otherserver/service.svc. This prevents a malicious Silverlight control hosted on the http://myserver domain from calling unauthorized operations on a service hosted on the http://otherserver domain.

To enable a Silverlight control to access a service in another domain, the service must explicitly opt-in to allow cross-domain access. By opting-in, a service states that the operations it exposes can safely be invoked by a Silverlight control, without potentially damaging consequences to the data that the service stores.

To allow cross domain access place clientaccesspolicy.xml and crossdomain.xml file at the root of the domain where the service is hosted. In the above example the file will be placed at the http://otherserver.
 
Create a clientaccesspolicy.xml file to allow the access from any other domain to service of the current domain.
 
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="SOAPAction">
        <domain uri="*"/>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>
 
There are three types of wildcards allowed:
 
1.      <domain uri=”*”/>:This option is used to allow access to all domains of the same scheme. An HTTP service will allow all HTTP callers. An HTTPS service will allow all HTTPS callers.
 
2.      <domain uri=”http://*”/> or <domain uri=”https://*”/>:The first option is used to allow access to HTTP service from HTTP callers and HTTPS service from HTTP callers. The second option is used to allow access to HTTP service from HTTPS callers and HTTPS service from HTTPS callers.
 
3.       <domain uri=”http://*.myserver.com”/>(subdomain):This option uses a wildcard at the first segment of the path ("http://*.contoso.com", for example) that allows all subdomains of the domain specified. So for the example.http://web.myserver.com would be allowed. Note that a uri path where the wildcard does not occur as a prefix (http://web.*.com, for example) is disallowed.
 
To prevent malicious attacks, you should never provide one client access policy file for both HTTP and HTTPS services on your domain that enable calls from both HTTP and HTTPS clients.
 
To allow access to specific domain, you need specify the particular uri e.g. <domain uri=”http://otherserver.com”/>. So http://myserver/service.svc service will be accessible from only http://otherserver.com (other domain).

You can implicitly deny access for all domains not listed in a <domain> element tag in a Silverlight policy file.

Create a crossdomain.xml file that contains the following configuration. The file must be configured to allow access to the service from any other domain, or it is not recognized by Silverlight 4.

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <allow-http-request-headers-from domain="*" headers="SOAPAction,Content-Type"/>
</cross-domain-policy>
 

Monday, September 10, 2012

Phone Formating in SSRS report


Many a times there had been requirements to format the CRM phone number in the SSRS report in following format.


We tried to achieve this by creating 12 text boxes and in each textbox we applied the below logic in the expression.

= IIF(Fields!telephone1.Value.toString().Length>=1, GetChar(Fields!telephone1.Value.toString(),1), “”)

It works successfully when the length of phone number is equal to 10. But it fails when the length of phone number is less than 10 and you will get an error while running this report.

To resolve this issue we found a work around for this.

First you need to format the data using the SQL query and PAD the spaces into the field. As given below.

LEFT(ISNULL(telephone1, '') + '          ', 10)

The above statement will format the telephone1 attribute. If the user enters errorneuos or junk data into the telephone1 field like “99”, then the above statement will return the value “99        ”, i.e. 99 + additional 8 spaces . And in the textboxes expressions you just need to write the following expressions without checking the IIF condition.

= GetChar(Fields!telephone1.Value.toString(),1)
= GetChar(Fields!telephone1.Value.toString(),2)
= GetChar(Fields!telephone1.Value.toString(),3)
= GetChar(Fields!telephone1.Value.toString(),4)


Hope this helps!