serving the solutions day and night


Thursday, October 1, 2015

.NET Web Configuration - Access Service by both AJAX & SOAP.

Web Configuration
<?xml version="1.0" encoding="UTF-8"?>
    <add name="" />
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />

Thursday, June 4, 2015

Unable to get property 'ClientVariables' of undefined or null reference - MS Dynamics CRM

CRM contact form loaded completely empty without error message, CRM UI server Event viewer is not giving any error. I checked FF & Chrome nothing produce any error details. Then i tried IE, IE throws 'Unable to get property 'ClientVariables' of undefined or null reference'

Finally i figure it our, If the CRM Role doesn't have read rights on the campaign entity, you will get this error. campaign empty is connected with contact entity. I never used campaign entity in my projects, CRM is internally tied with campaign entity.

Tuesday, May 26, 2015

Unsupported Dynamics CRM database delete operations

Before delete, run SQL Profiler, just delete a single delete operation in CRM and watch all queries involved. 

In this example i am deleting contact entity records, before delete all their related entity records

1.Delete related entities

for example contact related dns_mailings entity (object type code is 12345)
declare  @c table(c varchar(max))

insert into @c select  dns_mailingsid from dns_mailings where dns_name = 'Test 2015'
--select * from @c

delete from dns_mailingsExtensionBase where (dns_mailingsid in (select c from @c));
delete from dns_mailingsBase
OUTPUT DELETED.dns_mailingsid , 12345
into SubscriptionTrackingDeletedObject (ObjectId, ObjectTypeCode)
 where (dns_mailingsid in (select c from @c))

delete from [EmailSearchBase]
OUTPUT DELETED.[EmailSearchId], 4299
into SubscriptionTrackingDeletedObject (ObjectId, ObjectTypeCode)
 where ([ParentObjectId] in (select c from @c))

 update [ActivityPartyBase] set [IsPartyDeleted]=1 where ([PartyId] in (select c from @c)) and [PartyObjectTypeCode] =12345

Thursday, May 21, 2015

Dynamic CRM Hide/Show ribbon button by OnChange lookup field

1)create a javascript (HideShow.js), 2 functions

var HideShowButton = {
//refresh the ribbon when lookup field on change.
OnChangeLookup: function () {

//Show and Hide when form load
EnableCustomRule: function () {
if ("contactid") != null) {
   var contactId ="contactid").getValue()[0].id;
   var req = new XMLHttpRequest();
   var url = Xrm.Page.context.getClientUrl() + "/XRMServices/2011/OrganizationData.svc/ContactSet(guid'" + contactId + "')?$select=photoonfile";"GET", encodeURI(url), false);
   req.setRequestHeader("Accept", "application/json");
   req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
   var data = JSON.parse(req.responseText).d;
   if (data.photoonfile == null || data.photoonfile == false) {
return true;
   return false;