Источник:
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