Плагин с сообщением, которое я пытаюсь обновить при создании сообщения.

Зарегистрирован плагин на создание (после операции). Это работает, но после этого я добавил два поля в форму. При создании я обновляю значения полей формы. Это работает, но не удается при сравнении атрибута объекта результата:

QueryExpression QrySales = new QueryExpression() { EntityName = Sales.LogicalName, ColumnSet = new ColumnSet(true) };
EntityCollection SalesCollec = Service.RetrieveMultiple(QrySales);
foreach (Entity sales in SalesCollec.Entities)
{
  if (sales["new_membername"].ToString() ==  UpdateSales["new_membername"].ToString())
  {
     index = index + 1;
  }
}
UpdateSales["new_index"] = index + 1;
Service.Update(UpdateSales);

1 ответ

Вы явно приводите значение атрибута к строке, которая очень хорошо не может существовать в коллекции атрибутов. Либо проверьте, если атрибут с именем new_membername существует в возвращенной коллекции атрибутов сущности или использовать вспомогательные методы в Microsoft.Xrm.Client библиотека для безопасного извлечения значений атрибутов.

if (sales.GetAttributeValue<string>("new_membername") == 
    UpdateSales.GetAttributeValue<string>("new_membername"))
{
    index = index + 1;
}

Возможно, вы захотите пересмотреть свою логику сравнения, так как в итоге вы можете сравнить нули, что, вероятно, не то, что вы хотите, я думаю.

Другие вопросы по тегам