CRM 2013 - 检索用户名的插件

CRM 2013 - Plugin to retrieve username

我有一个自动编号插件,当用户按下保存时调用,但我收到了将创建记录的人的姓名首字母附加到工单末尾的要求。

例如:0001-0327-RBS

我已经能够获取创建记录的用户的 GUID,但我不知道如何获取 SQL 之外的文字值。我一直无法弄清楚如何获取创建记录的活动用户的用户名。这可以从插件中实现吗?

感谢任何帮助。谢谢。

您应该从 IServiceProvider 获取 IOrganizationService

var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
var serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
var service = serviceFactory.CreateOrganizationService(context.UserId);

现在您可以使用以下服务简单地检索 SystemUser:

var systemUser = service.Retrieve("systemuser", context.UserId, new Microsoft.Xrm.Sdk.Query.ColumnSet(true));

在 ColumnSet 中,您可以指定要检索的列(例如 "firstname"、"lastname"、"fullname" 等)。

现在你可以简单地做

systemUser["fullname"]

获取名称。或者,如果您使用的是早期绑定:

systemUser.ToEntity<SystemUser>().FullName