I need some help. This is the first QueryExpression I've used since i had to update my SDK's to 365.
I'm not even doing anything hard at this point, but if I use QueryExpression in the code (like I have done 100s of times before) I get an OrganizationServiceFault.
So here is the basic code (and it's truly basic at this point)
using System; using System.ServiceModel; using Microsoft.Xrm.Sdk; using Microsoft.Xrm.Sdk.Query; namespace TrainerAppHistory.TransferHistory { ////// PreOperationipmahr_trainerapplicationUpdate Plugin. /// Fires when the following attributes are updated: /// ipmahr_transferhistory /// public class PreOperationipmahr_trainerapplicationUpdate : PluginBase { public PreOperationipmahr_trainerapplicationUpdate(string unsecure, string secure) : base(typeof(PreOperationipmahr_trainerapplicationUpdate)) { // TODO: Implement your custom configuration handling. } private readonly string preImageAlias = "PreImage"; protected override void ExecuteCrmPlugin(LocalPluginContext localContext) { if (localContext == null) { throw new InvalidPluginExecutionException("localContext"); } IPluginExecutionContext context = localContext.PluginExecutionContext; IOrganizationService server = localContext.OrganizationService; Entity Training = (Entity)context.InputParameters["Target"]; Entity preImageEntity = (context.PreEntityImages != null && context.PreEntityImages.Contains(this.preImageAlias)) ? context.PreEntityImages[this.preImageAlias] : null; EntityReference Contact = (EntityReference)preImageEntity.Attributes["ipmahr_contactid"]; bool transfer = Training.GetAttributeValue("ipmahr_transferhistory"); Guid recordID = Training.GetAttributeValue("ipmahr_trainerapplicationid"); Guid contactid = Contact.Id; if (transfer == true) { QueryExpression TopRecord = new QueryExpression("ipmahr_trainerapplication"); TopRecord.ColumnSet = new ColumnSet("ipmahr_trainerapplicationid"); EntityCollection results1 = server.RetrieveMultiple(TopRecord); if (results1.Entities.Count > 1) { Training.Attributes["new_comments"] = "found them all"; } //End Code } } } }
When I remove the QueryExpression and just use a simple update to the Record like this
Training.Attributes["new_comments" = "This works";
Then I have no errors updating the record.
I'm at a loss on what to look at next. Nothing I've found seems to be helping. I used the Register Plugin Tool for generating this plugin.
Plugin Tracing shows the following, which I think is the key to this. But I'm not having much luck finding answers.