Tuesday, August 17, 2010

Error while running ISV pages in CRM

If you have a custom application and running as ISV for CRM and you face the below error:


Microsoft.Crm.WebServices.Crm2007.MultipleOrganizationSoapHeaderAuthenticationProvider, Microsoft.Crm.WebServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' doesn't exist


Reason:
The reason for the error is that CRM adds 2 HttpModules (MapOrg and CrmAuthentication) to web.config in the root of the CRM website. The CrmAuthentication HttpModule is in the microsoft.crm.webservices.dll assembly, which is not in the path of the custom virtual directory.

Therefore, you need to deploy the Microsoft.crm.webservices.dll to GAC

Also remove the HttpModule in your web.config

<httpmodules><remove name="CrmAuthentication"></httpmodules>

Tuesday, August 10, 2010

Hide Add Existing Record Button

HideAddExistingRecordButton('account_contacts', 'Add existing Contact to this record');

function HideAddExistingRecordButton(loadAreaId, buttonTitle)
{
var navElement = document.getElementById('nav_' + loadAreaId);
if (navElement != null)
{
navElement.onclick = function LoadAreaOverride()
{
// Call the original method to launch the navigation link
loadArea(loadAreaId);

var associatedViewIFrame = document.getElementById(loadAreaId + 'Frame');
if (associatedViewIFrame != null)
{
associatedViewIFrame.onreadystatechange = function HideTitledButton()
{
if (associatedViewIFrame.readyState == 'complete')
{
var iFrame = frames[window.event.srcElement.id];
var liElements = iFrame.document.getElementsByTagName('li');
for (var i = 0; i < liElements.length; i++)
{
if (liElements[i].getAttribute('title') == buttonTitle)
{
liElements[i].style.display = 'none';
break;
}
}
}
}
}
}
}
}

Thursday, August 5, 2010

Decrease width of field on FORM

Sometime we need to decrease the width of a field on form, say a picklist showing integer 1 to 10. In this kind of field width should be less for a better look.
use :
crmForm.all.field.style.width= '100px';

Account's 360 view in single form for MSCRM 4.0

Account's 360 view in single form for MSCRM 4.0

Normally sales person, call center team, telecallers etc. want evrything to be on single form to avoid multiple click. We may customize Account form to show all customers and their respective activities.





Minimum Dynamics CRM Permissions

Please refer to a good post regarding setting minimun permissions for MSCRM

http://www.orbitone.com/en/blog/archive/2009/10/06/minimum-dynamics-crm-permissions.aspx

This covers the following scenarios:
First login
Create an Activity
Track an Activity in CRM
Send Mail Merge Letters
Create Queck Campaign
Create Reports with Report Wizard
Use Custom Entities
Run Automatic Workflows
Deletion of Records – The Rule and The Exceptions

Even if the above post does not help you, then try the following:
1> Enable Tracing for CRM.
2> Then use Stunnware Tools for Microsoft Dynamics 4.0 to read it in grid form.
3> Check which privilege id is highligted in the error message.
4> In SQL write the query "select name from Privilege where PrivilegeId='GUID' " to get the security role name.
5> Go to security role in MSCRM that the user is having.
6> Provide the permission required.

You may download CRM tools from
http://vidmar.net/weblog/archive/2010/05/06/ultimate-dynamics-crm-tools-list.aspx

Error message received when creating Appointments in MSCRM 4.0

Error message received when creating Appointments in MSCRM 4.0

"You do not have permission to read scheduling information.The system was not able to check availability for this service activity."

However, if you click 'Ignore & save', it will allow you to save the appointment., it will close and save the appointment.

To correct this problem :

>> Open the Security role
>> Click on Business Managment TAB
>> Check that User Setting should have User level write permissions.
>> Go to Service Managment TAB
>> Check under Misc.. that the Search Availablity should have permissions given.

Tuesday, June 29, 2010

crmForm.SetFieldReqLevel throws an error when you try to change the label at runtime and make that field mandatory.

Use the following:

crmForm.all.new_fieldname_c.firstChild.innerText = "New Caption";
crmForm.SetFieldReqLevel("new_fieldname", 2)