Existing Contact records are not opening from All Contacts view in Dynamics 365 July Update.


Recently while trying out Dynamics 365 July Update, I ran into an interesting issue.

I had to update one of the existing contact records, however, while clicking on the record, it was opening new contact form instead of opening the existing record.

I observed that it was happening when I was doing it from the All Contacts view.

Clicking on Alex Simmons opens the new contact form instead of opening existing recordà

On changing the view to Active Contacts and clicking on Alex Simmons

Opens the Alex Simmons record properly.

Is anyone else also facing the same?

 

The workaround you’d find in the comments below  –>

Resolution
Go to Settings > Customization > Customize the System > Entities > Contacts >  Views > open All Contacts view.
Add Columns > select any column > click on OK.
Select this newly added column in view and click on ‘Remove’ button.
Click on Save and close & publish all customizations.
Do Ctrl + F5 and  the behaviour starts working as expected

 

Action not returning Output Parameter in Organization Response in Dynamics 365 (CRM)


Recently we faced a strange issue in one of our Actions. We were not getting output parameter’s value in the organization response.

Eventually, we realized it was because of the Stop Workflow step added. Removing it fixed the issue for us. We also tried by adding few other Steps like send email, status change, create record etc. after Assign Value step, however, in all those cases it properly returned the response.

Only in the case of Stop Workflow, we got the issue where the response was null for that output parameter.

Hope it helps..

Hide a Primary Navigation link using Web Page Access Control rule in Portals in Dynamics 365


Say for e.g. we want to hide Test Page navigation link from the Portal for anonymous users and make it visible only for authenticated users.

For this we can create a Web Page Access Control Rule,

Go to Portals à Web Page Access Control Rules and create a new rule as shown below

Select the Website and the web page to be hidden.

For Right, select Restrict Read and in Web Roles add Authenticated Users Web Role.

On refreshing the portal à

For logged in user

For anonymous user

Hope it helps..

Sample code to retrieve more than 5000 records using FetchXML in CRM


Hi,

Sharing a sample code to retrieve more than 5000 records using the Fetch XML.

Version 1 :

private List<Entity> GetTotalRecordsfromFetch(string fetchXML, IOrganizationService orgService)
{
List<Entity> lstEntity = new List<Entity>();

int fetchCount = 5000;
int pageNumber = 1;
string pagingCookie = null;

while (true)
{
// Build fetchXml string with the placeholders.
string xml = this.CreateXml(fetchXML, pagingCookie, pageNumber, fetchCount);
RetrieveMultipleRequest fetchRequest = new RetrieveMultipleRequest
{
Query = new FetchExpression(xml)
};

var returnCollections = ((RetrieveMultipleResponse)orgService.Execute(fetchRequest)).EntityCollection;

if (returnCollections.Entities.Count >= 1)
{
lstEntity.AddRange(returnCollections.Entities);
}

if (returnCollections.MoreRecords)
{
pageNumber++;

results.pagingCookie = returnCollections.PagingCookie;
}
else
{
// If no more records in the result nodes, exit the loop.
break;
}
}

return lstEntity;
}

public string CreateXml(string xml, string cookie, int page, int count)
{
StringReader stringReader = new StringReader(xml);
XmlTextReader reader = new XmlTextReader(stringReader);

XmlDocument doc = new XmlDocument();
doc.Load(reader);

XmlAttributeCollection attrs = doc.DocumentElement.Attributes;

if (cookie != null)
{
XmlAttribute pagingAttr = doc.CreateAttribute("paging-cookie");
pagingAttr.Value = cookie;
attrs.Append(pagingAttr);
}

XmlAttribute pageAttr = doc.CreateAttribute("page");
pageAttr.Value = System.Convert.ToString(page);
attrs.Append(pageAttr);

XmlAttribute countAttr = doc.CreateAttribute("count");
countAttr.Value = System.Convert.ToString(count);
attrs.Append(countAttr);

StringBuilder sb = new StringBuilder(1024);
StringWriter stringWriter = new StringWriter(sb);

XmlTextWriter writer = new XmlTextWriter(stringWriter);
doc.WriteTo(writer);
writer.Close();

return sb.ToString();
}

Version 2 –

private static List&lt;Entity&gt; GetTotalRecordsFetchXML(OrganizationServiceProxy orgProxy, string fetchXML)
{
XDocument xDocument = XDocument.Parse(fetchXML);
var fetchXmlEntity = xDocument.Root.Element("entity").ToString();

EntityCollection entityColl = new EntityCollection();
List&lt;Entity&gt; lstEntity = new List&lt;Entity&gt;();
int page = 1;
do
{

entityColl = orgProxy.RetrieveMultiple(new FetchExpression(
string.Format("&lt;fetch version='1.0' page='{1}' paging-cookie='{0}'&gt;" + fetchXmlEntity + "&lt;/fetch&gt;",
SecurityElement.Escape(entityColl.PagingCookie), page++)));

lstEntity.AddRange(entityColl.Entities);
}
while (entityColl.MoreRecords);

return lstEntity;
}




Hope it helps..

Advertisements

Missing RemoveListMembersListRequest in CRM.


In one of our recent implementations, we were working with Marketing List which could be in millions.

So we had the recent request wherein we split the marketing list into groups.

For adding members to a marketing list we have the following request

AddListMembersListRequest 

https://msdn.microsoft.com/en-us/library/microsoft.crm.sdk.messages.addlistmemberslistrequest.aspx

which is quite efficient as we can add multiple members in a single request.

However, when it comes to removing a member from marketing, we do not have a corresponding Remove request like RemoveListMembersListRequest.

https://msdn.microsoft.com/en-us/library/microsoft.crm.sdk.messages.removememberlistrequest.aspx

We only have RemoveMemberListRequest, which only removes 1 member at a time, which is highly inefficient when we are taking in consideration large number of records.

Kindly vote up for this idea !!

https://ideas.dynamics.com/ideas/dynamics-crm/ID0002529

More details

https://social.microsoft.com/Forums/en-US/5d700a43-0c57-4a47-9c8e-192c70d30a2d/removememberlistrequest-causes-sql-timeout-error?forum=crmdevelopment

App not accessible to certain users in Dynamics 365 (CRM)


Recently we created a new App for one our clients and gave permission to appropriate security roles to access those App.

But still some users were not able to access the App.

Eventually we realized the Security Roles (custom one) assigned was not having Read permission on App to access it.

This fixed the issue.

Hope it helps..