Мне нужен пользователь текущего пользователя в пользовательских рабочих процессах Microsoft Dynamics CRM 2011. Так вы можете предложить мне, как его получить?Как получить UserId текущего пользователя в пользовательских рабочих процессах Microsoft Dynamics CRM 2011?
3
A
ответ
8
Предполагая, что вы используете c#, и что вы создали свой собственный рабочий процесс следующий Create a Custom Workflow Activity статьи из MSDN, он должен наследовать CodeActivity класс, и имеет метод, как:
protected override void Execute(CodeActivityContext context)
{
// Your code here
}
Чтобы получить ток userId
, вам нужно получить IWorkflowContext
от CodeActivityContext
, как это:
IWorkflowContext workflowContext = context.GetExtension<IWorkflowContext>();
И затем:
var id = workflowContext.UserId;
@ Антония: Привет, большое вам спасибо. Работает.(); Guid currentUserID = context.UserId; Какой из них более эффективен ...? И можем ли мы получить то же самое с помощью классов WhoAmIRequest и WhoAmIResponse ..? –
И еще одно: мы также можем использовать нижеприведенный код, чтобы получить userId:
IExecutionContext context = executeContext.GetExtension
@Charan: Я не пробовал эти, но, согласно [MSDN] (http://msdn.microsoft.com/en-us/library/microsoft.xrm.sdk.iexecutioncontext_members.aspx), кажется, что IExecutionContext. UserId вызывает IWorkflowContext.UserId, поэтому используйте интерфейс, который наилучшим образом соответствует вашим потребностям. Что касается WhoAmIRequest/Response, контекст уже содержит информацию о пользователе, поэтому сделать еще один запрос на его получение кажется слишком большим для меня. – Antoine
@ Антония: Прохладный .. Еще раз спасибо .. –