2012-04-11 72 views

回答

15

該信息在PluginExecutionContext中可用。下面的代碼來自你的插件必須實現的Execute方法。

public void Execute(IServiceProvider serviceProvider) 
{ 
    IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext)); 
     IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); 
    Guid userId = context.InitiatingUserId; 
} 

僅供參考,上下文還有一個「UserId」屬性,它可能與InitiatingUserId相同也可能不同。如果您的插件步驟註冊「在用戶的上下文中運行」字段的值爲「呼叫用戶」,則它們將是相同的。如果您在「在用戶的上下文中運行」字段中指定了用戶,那麼UserId字段將包含您指定的用戶的用戶標識,並且InitiatingUserId將是其操作觸發該插件的實際CRM用戶。聽起來你正在尋找InitiatingUserId。

3

上述答案是正確的。另外請記住,如果您不想在用戶上下文中運行插件,還可以從InputEntity中獲取修改用戶,該用戶從任何字段正在更新中傳遞到插件中。

在沒有在用戶上下文中運行的情況下,可以執行一項服務。調用調用以獲取修改用戶的完整記錄。

相關問題