2017-03-28 3 views
0

ユーザーが保存を押したときに呼び出されるオートナンバープラグインがありますが、レコードの作成者の頭文字をチケットの末尾に追加する必要があります。例えばCRM 2013 - ユーザー名を取得するプラグイン

:0001から0327-RBS

私はレコードを作成するユーザーのGUIDを取得することができたが、私はどのようにSQLの外でリテラル値を取得するには考えています。私は、レコードを作成しているアクティブユーザのユーザ名をどのように取得できるのか把握できませんでした。これはプラグイン内から可能ですか?

ご了承ください。ありがとう。

答えて

0

あなたは今、あなたは、単にサービスを使用してSystemUserを取得することができますIServiceProvider

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

をIOrganizationServiceを取得する必要があります:ColumnSetで

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

あなたが取得したい列を指定します(そうするためにすることができます「firstname」、「lastname」、「fullname」などの例)。

今、あなたは、単に名前を取得するために

systemUser["fullname"] 

を行うことができます。または、初期バインドを使用している場合:

systemUser.ToEntity<SystemUser>().FullName 
+0

フォローアップをありがとうございます。最初の実装はうまくいきませんでしたが、一度ロケーションを変更すると(ローカルvsグローバルvar)、必要な情報が取得されました。どうもありがとうございました! – aqkon

関連する問題