“This content cannot be displayed in a frame” error while hosting SharePoint 2013 pages in CRM


Hi,

I was getting the above error while trying to hosting the SharePoint 2013 online web part page inside an iframe within CRM’s Form.

The following post came to the rescue

http://blogs.msdn.com/b/officeapps/archive/2012/12/12/iframing-sharepoint-hosted-pages-in-apps.aspx

specifically the following tag

<WebPartPages:AllowFraming runat=”server” />

Hope it helps.

Searching SharePoint 2013 online portal from within CRM 2011 online


 

  1. Open the SharePoint Site and create a custom Web Part Page using SharePoint Designer 2013

  1. Edit the created page in Advanced Mode

  1. Add the AllowFraming tag to the web part page to allow the page to be iframed from within CRM’s Form

Select preview in browser

 

 

  1. Select Page à Edit Page

 

 

  1. Add Search Web Parts

 

  • Search Box in the Header
  • Refinement in the Left Column
  • Search Results in the Body

 

  1. Note the url of the Custom Search Page

https://xyz.sharepoint.com/sites/contoso/Search/SitePages/KBSearch.aspx

  1. Now we can use the above url in the Iframe within our CRM. Here k would be the query string parameter to which search keyword would be passed. We can dynamically set the value of the parameter k through JavaScript in the onload of a particular entity’s form to display the corresponding results in the CRM.

     

https://xyz.sharepoint.com/sites/contoso/Search/SitePages/KBSearch.aspx?k=searchTerm

  1. Search page within Case Form in CRM

Hope it helps.

 

 

 

 

Sample code to update user’s calendar programmatically (work hours) in CRM 2011


Hi,

Below is the code that we can use to update user’s work hours for a specific day. Here we are setting the work hours of the user to be starting from 2 to ending at 7 p.m. for 1st of April.

IServiceManagement orgServiceManagement =
 ServiceConfigurationFactory.CreateManagement(new Uri("https://mycrm.crm5.dynamics.com/XRMServices/2011/Organization.svc"));

AuthenticationCredentials authCredentials = new AuthenticationCredentials();
 authCredentials.ClientCredentials.UserName.UserName = "username@onmicrosoft.com";
 authCredentials.ClientCredentials.UserName.Password = "password";
 AuthenticationCredentials tokenCredentials = orgServiceManagement.Authenticate(authCredentials);

OrganizationServiceProxy organizationProxy = new OrganizationServiceProxy(orgServiceManagement, tokenCredentials.SecurityTokenResponse);
 // Get the user id
 Guid userid = ((WhoAmIResponse)organizationProxy.Execute(new WhoAmIRequest())).UserId;

// Get the calendar id of the user
 Entity systemUserEntity = organizationProxy.Retrieve("systemuser", userid, new ColumnSet(new String[] { "calendarid"}));


// Retrieve the calendar of the user
 Entity userCalendarEntity = organizationProxy.Retrieve("calendar", ((Microsoft.Xrm.Sdk.EntityReference)(systemUserEntity.Attributes["calendarid"])).Id, new ColumnSet(true));

// Retrieve the calendar rules defined in the calendar
 EntityCollection calendarRules = (EntityCollection)userCalendarEntity.Attributes["calendarrules"];

// Create a new inner calendar
 Entity newInnerCalendar = new Entity("calendar");
 newInnerCalendar.Attributes["businessunitid"] = new EntityReference("businessunit", ((Microsoft.Xrm.Sdk.EntityReference)(userCalendarEntity["businessunitid"])).Id);
 Guid innerCalendarId = organizationProxy.Create(newInnerCalendar);

// Create a new calendar rule and assign the inner calendar id to it
 Entity calendarRule = new Entity("calendarrule");
 calendarRule.Attributes["duration"] = 1440;
 calendarRule.Attributes["extentcode"] = 1;
 calendarRule.Attributes["pattern"] = "FREQ=DAILY;COUNT=1";
 calendarRule.Attributes["rank"] = 0;
 calendarRule.Attributes["timezonecode"] = 190;
 calendarRule.Attributes["innercalendarid"] = new EntityReference("calendar", innerCalendarId);

// starting at 12:00 on 1 April
 calendarRule.Attributes["starttime"] = new DateTime(2013, 4, 2,0,0,0,DateTimeKind.Utc);
 calendarRules.Entities.Add(calendarRule);

// assign all the calendar rule back to the user calendar
 userCalendarEntity.Attributes["calendarrules"] = calendarRules;
 // update the user calendar entity that has the new rule
 organizationProxy.Update(userCalendarEntity);

Entity calendarRule1 = new Entity("calendarrule");

// duration of 5 hours
 calendarRule1.Attributes["duration"] = 300;
 calendarRule1.Attributes["effort"] = 1.0;
 calendarRule1.Attributes["issimple"] = true;

// offset 120 i.e. 2 hours from start time (12:00)
 calendarRule1.Attributes["offset"] = 120;
 calendarRule1.Attributes["rank"] = 0;
 calendarRule1.Attributes["subcode"] = 1;
 calendarRule1.Attributes["timecode"] = 0;
 calendarRule1.Attributes["timezonecode"] = -1;
 calendarRule1.Attributes["calendarid"] = new EntityReference("calendar", innerCalendarId);

EntityCollection innerCalendarRules = new EntityCollection();
 innerCalendarRules.EntityName = "calendarrule";
 innerCalendarRules.Entities.Add(calendarRule1);

newInnerCalendar.Attributes["calendarrules"] = innerCalendarRules;
 newInnerCalendar.Attributes["calendarid"] = innerCalendarId;
 organizationProxy.Update(newInnerCalendar);

Hope it helps.

“InsufficientMemoryException” An error has occurred issue while trying to open Organization.svc in CRM 2011.


Hi,

Got the below error while trying to open the organization.svc in browser. Although rest of the CRM was working properly.

Checked the event log and got this interesting error message over there.

Exception information:

Exception type: InsufficientMemoryException

Exception message: Memory gates checking failed because the free memory (208502784 bytes) is less than 5% of total memory. As a result, the service will not be available for incoming requests. To resolve this, either reduce the load on the machine or adjust the value of minFreeMemoryPercentageToActivateService on the serviceHostingEnvironment config element.

at System.ServiceModel.Activation.ServiceMemoryGates.Check(Int32 minFreeMemoryPercentage, Boolean throwOnLowMemory, UInt64& availableMemoryBytes)

at System.ServiceModel.ServiceHostingEnvironment.HostingManager.CheckMemoryCloseIdleServices(EventTraceActivity eventTraceActivity)

at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)

As suggested by the error message, increasing the RAM resolved the issue.

Bye.

Fixed – You do not have sufficient privileges to view this chart. Contact your system administrator in CRM 2011


Hi,

We might receive the below error in CRM 2011 even though the user has the System Administrator Role assigned.

We need to check that the Access Mode for the system user is set to Read-Write and not Administrative.

In case if we receive the Insufficient Permission error

Go to Admin Section of your portal and select Assign User Licenses link in it

Assign License to the user

This will resolve the issue.

Bye.

Advertisements

Object doesn’t support property or method selectNodes error in JavaScript in CRM 2011


We got the below error in one of our CRM entity form’s onload JavaScript. The same was working fine in IE9.

Similarly in Chrome and Firefox also we were getting the below error.

Finally we came to know it was because XPath is not supported in IE 10 and other browsers.

Get the more details here

http://www.w3schools.com/xpath/xpath_examples.asp

Hope it helps