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