04.06.2013, 17:11 | #1 |
Участник
|
axforum blogs: Мультиязычный CRM. Уведомления из рабочих процессов на языке пользователя
Источник: http://axforum.info/forums/blog.php?b=404
============== В своем прошлом посте Мультиязычный CRM. Как автоматически назначить пользователю нужный язык я рассказал об одной из проблем, с которой сталкивается разработчик CRM на интернациональных проектах. Однако, назначить пользователю нужный язык - это лишь половина проблемы. В дальнейшем нам придется считаться с этим параметром во всех доработках, которые взаимодействуют с ним в текстовом виде. Одна из таких задач - стандартные уведомления по электронной почте, которые встречаются в большинстве проектов. Увы, но в текущей версии CRM не предусмотрено способа чтобы получить язык пользователя в рабочем процессе. Технически задача решаема в XAML процессе, но этот способ для сильных духом. Я предпочитаю написать дополнительную активность процесса. Ниже приведен код активности, которая возвращает числовой код языка пользователя, ссылка на которого была передана активности в качестве параметра: X++: public sealed class GetUserLcidWorkflow : CodeActivity { [RequiredArgument] [Input("Пользователь")] [ReferenceTarget("systemuser")] public InArgument SystemUser { get; set; } [Output("Код языка пользователя")] [Default("1049")] public OutArgument<span style="color: blue"int/span> LCID { get; set; } protected override void Execute(CodeActivityContext executionContext) { // Create the tracing service ITracingService tracingService = executionContext.GetExtension(); // Create the context IWorkflowContext context = executionContext.GetExtension(); IOrganizationServiceFactory serviceFactory = executionContext.GetExtension(); IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId); Entity userSettings = service.Retrieve("usersettings", SystemUser.Get(executionContext).Id, new ColumnSet("uilanguageid")); this.LCID.Set(executionContext, userSettings.GetAttributeValue<span style="color: blue"int/span>("uilanguageid")); } } Пример использования такой активности: На картинке процесс получает язык ответственного за задачу Пользователя, чтобы в дальнейшем обратится к нему на его языке: Источник: http://axforum.info/forums/blog.php?b=404
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|
|
|