运行FetchXML(甚至是SQL)报告时是否有可以注册插件的事件?
RetrieveMultiple和Retrieve不会被解雇!
public void Execute(IServiceProvider serviceProvider)
{
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
// The FetchXML report does not fire the plugin on RetrieveMultiple
if (context.InputParameters["Query"] is FetchExpression)
{
IOrganizationServiceFactory factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = factory.CreateOrganizationService(context.UserId);
using (Context linq = new Context(service))
{
// Do the work.
}
}
}
答案 0 :(得分:1)
我遇到了同样的问题,解决方案如下:
报告不会触发插件。 SQL报告完全绕过CRM,并且 获取报告也绕过了插件管道
答案 1 :(得分:0)
我有类似的需求,在运行报告时执行操作,并且通过触发报告通过Javascript运行,我可以找到最好的[支持]方式来实现此目的。
粗糙的过程就是:
但这并非没有缺点:
我们在2013年的安装上已经有一段时间与此相似,但实际上效果非常好。这不是理想的,但可以完成工作。