1

我们需要限制从 Outlook 到 CRM 2011 自动完成的一些删除操作,同时等待第 3 方插件中的错误修复。是否可以在本地 Dynamics CRM 2011 中有一个插件,该插件要么只为 Outlook 客户端执行(离线未使用),要么在插件从 Outlook 触发时检查执行?

在 CRM 4.0 中曾经有一个 CallerOrigin 属性,它至少提供了一些关于此的信息,但该属性现在似乎只是 CRM 2011 模型的内部属性。

4

2 回答 2

3

CallerOrigin通过反射访问(它仍然存在,但未在 SDK 库中公开)。

下面的代码是我的代码的简短版本,没有任何验证或空检查(即不是生产代码),只是为了展示它是如何在几行代码中工作的:

object callerOrigin = context.GetType().GetProperty("CallerOrigin").GetValue(context, null);

return callerorigin.GetType().Name; // will return "WebServiceApiOrigin" if called from outlook or web services
于 2013-02-11T13:22:55.773 回答
0

在编写插件以在 Outlook 中脱机运行时,您应该注意 IExecutionContext 上的两个属性:

IExecutionContext.IsExecutingOffline指示插件是否在脱机时在 Outlook 中运行,并且:

IExecutionContext.IsOfflinePlayback表示当客户端再次连接到服务器并与服务器同步更改时正在播放在 Outlook 客户端脱机时所做的更改时触发插件。

于 2013-02-08T23:24:39.643 回答