У меня есть рабочий процесс, который переназначает владельца на основе поля с именем "QuoteWerks Prepared by".
Кажется, я не могу опубликовать снимок экрана в StackOverflow, поэтому смотрите снимок экрана в моем сообщении на другом форуме здесь:https://community.dynamics.com/crm/f/117/p/358168/941269#941269
Шаг «KED365» является настраиваемым действием рабочего процесса и использует приведенный ниже код.
В части «Задать свойства» этого шага поле «QuoteWerks Sales Rep» устанавливается в поле.
Затем запись назначается пользователю, который был возвращен на предыдущем шаге.
Однако рабочий процесс неожиданно перестал работать.Я получаю сообщение об ошибке ниже: Владелец не был предоставлен.Трассировка подключаемого модуля:
[Microsoft.Xrm.Sdk.Workflow: Microsoft.Xrm.Sdk.Workflow.Activities.AssignEntity] [Microsoft.Xrm.Sdk.Workflow (9.0.0.0): Microsoft.Xrm.Sdk.Workflow.Activities.AssignEntity]
Сообщение об ошибке:
Необработанное исключение: Тип исключения: System.ArgumentException Сообщение: владелец не предоставлен
- трассировка конца стека -
Тип исключения: Microsoft.Crm.CrmArgumentException Сообщение: владелец не был предоставлен в Microsoft.Crm.Workflow.Services.AssignActivityService.Execute (ActivityContext executeContext, AssignEntity assignEntity) в System.Activities.CodeActivityInInException.экземпляр, ActivityExecutor executor, BookmarkManager bookmarkManager) в System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody (ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation) - завершить трассировку стека -
я вижу ошибкувладелец не был предоставлен ", но я не могу понятьпочему он вдруг перестал работать или как это исправить.Рабочий процесс работал нормально до недели назад.Любая помощь в устранении этого будет принята с благодарностью.
Спасибо!
namespace KED365.Workflows
{
using System;
using System.Activities;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Workflow;
using Microsoft.Xrm.Sdk.Query;
using System.Linq;
public sealed class GetUserByFullName : WorkFlowActivityBase
{
[Input("User Full Name")]
public InArgument<string> UserFullName { get; set; }
[Output("Prepared By")]
[ReferenceTarget("systemuser")]
public OutArgument<EntityReference> PreparedBy { get; set; }
[Output("IsSuccess")]
public OutArgument<bool> IsSuccess { get; set; }
[Output("Message")]
public OutArgument<string> Message { get; set; }
protected override void Execute(CodeActivityContext activityContext,
IWorkflowContext workflowContext, IOrganizationService CrmService,
ITracingService trace)
{
try
{
string userName = UserFullName.Get(activityContext);
if (string.IsNullOrWhiteSpace(userName))
{
IsSuccess.Set(activityContext, false);
Message.Set(activityContext, "User's Full Name is not provided");
return;
}
var QEsystemuser = new QueryExpression("systemuser");
QEsystemuser.ColumnSet.AddColumns("fullname");
QEsystemuser.Criteria.AddCondition("fullname", ConditionOperator.Equal,
userName);
var results = CrmService.RetrieveMultiple(QEsystemuser);
if (results == null || !results.Entities.Any())
{
IsSuccess.Set(activityContext, false);
Message.Set(activityContext, "User with " + userName + " not found") ;
return;
}
if (results.Entities.Count > 1)
{
IsSuccess.Set(activityContext, false);
Message.Set(activityContext, "Multiple users found with same name : " +
userName);
return;
}
(activityContext, true);
PreparedBy.Set(activityContext,
results.Entities.Single().ToEntityReference());
}
catch (Exception ex)
{
IsSuccess.Set(activityContext, false);
Message.Set(activityContext, "An error occurred trying to find user : " +
ex.Message);
}
}
}
}
--------------