Пользовательский рабочий процесс, который переназначает владельца, внезапно перестал работать - PullRequest
0 голосов
/ 24 июня 2019

У меня есть рабочий процесс, который переназначает владельца на основе поля с именем "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);
}
}
}
}

--------------

1 Ответ

0 голосов
/ 25 июня 2019

Я бы проверил свою версию Nuget: https://www.nuget.org/packages/Microsoft.CrmSdk.Workflow/

...