Retrieve Record using Alternate Keys

Instead of retrieve a single record using

Entity IOrganizationService.Retrieve(string entityName, Guid id, ColumnSet columnSet);

You can easily retrieve the record using its alternate keys if you don’t have the id in advance:

var keys = new KeyAttributeCollection
{
	{ "new_parent", parentRef.Id },
	{ "new_code", "code01" }
};

var request = new RetrieveRequest
{
	ColumnSet = new ColumnSet("field_logical_name"),
	Target = new EntityReference("entity_logical_name", keys)
};

try
{
	var response = (RetrieveResponse)service.Execute(request);
	if (response.Entity != null)
	{
		service.Delete(response.Entity.LogicalName, response.Entity.Id);
	}
}
catch (Exception)
{	
}

Note that if there is no record matched the keys, an exception will be thrown, you’ll need to handle the exception in that case.

Advertisements

Set up Access Team

  1. Enable Access Team in entity configuration
  2. Create an Access Team by navigating to Settings > Security > Access Teams
  3. Add Access Team Subgrid in entity form with configs:
    • Records: All record types
    • Entity: Users
    • Default View: Associated Record Team Members
    • Team template: created team at step 2.

“Record is unavailable” error when publishing solution

Problem

When publishing unmanaged solution, this error shows up

Record Is Unavailable

The requested record was not found or you do not have sufficient permissions to view it.

Although you have system admin role. Even worse, the download error log button is disabled and you can’t find out which component causing the error.

Solution

Clearly that there is something in the solution which you can see, but the system can’t.

If you try to pulish components one by one, there will be no error. But publishing all won’t work.

It will be quicker if you can narrow down what are added recently that may cause the error. Then you can use a different tool to publish the solution, either writing your own tool or use a plugin in XrmToolbox called “Manage Solution”, to catch the exception and see what the root cause is.

In my case it was a web resource, I deleted it and publishing all worked like a charm. Note that removing it from the solution doesn’t help.

Capture.PNG

Cheers!