2011-02-07 60 views
0

我们正在设计一个系统,其中业务计算将封装在CRM插件中,这些插件从CRM中的工作流调用。从CRM插件调用Web服务

这些业务计算中的很多是使用几种不同技术的遗留系统。

问题是:我们是否必须将该代码作为C#代码插入插件中,还是可以通过插件中的Web服务调用它?

+0

请在SharePoint VS CRM澄清。标题中提到了Sharepoint,而问题没有提及它。 – Pradeep 2011-02-07 10:59:08

回答

2

自定义工作流程插件是Windows Workflow Foundation活动。无论您在工作流程活动中做什么,都可以将其作为工作流程插件 - 所以答案是肯定的。但是,您可能希望将配置参数作为工作流活动的输入(即服务的URL)或将其存储在自定义实体中。这样一切都可以从CRM配置。您甚至可以导出工作流程xaml,在设计人员中对其进行修改并将其重新导入到CRM中。在CRM 2011中,这甚至是支持的方法(所以他们说)。请注意,对于CRM联机,不支持自定义工作流程活动。

1

您可以从插件调用Web服务,然后从工作流调用这些插件。我接触CRM已经很多年了,但我曾经这么做过,应该没有任何问题。

0

你提到的插件将被“从CRM工作流称为”,这可能意味着一些不同的东西:

  1. 您已经注册了一个插件在一个特定的实体/消息,工作流程会导致该消息触发,从而调用您的插件。
  2. 您已经注册了一个自定义工作流程活动,您将在工作流程中将其作为一个步骤进行调用。

您有用于存储所述配置信息(例如,服务端点URL等)的几个不同的选项:

  1. 硬编码此数据的组件。
  2. 在CRM中创建配置实体,并使用CRM Web服务(即上下文中的IOrganizationService实例)在运行时检索相应的配置记录。
  3. 在CRM中创建一个自定义操作,返回配置信息(link)。
  4. 对于插件,将配置信息传递给插件的构造函数,方法是通过插件注册工具将信息添加到注册插件程序步骤中的“不安全配置”或“安全配置”步骤。
  5. 对于自定义工作流程活动,通过InParameter参数将配置信息传递给活动。

有优点和缺点各是依赖于各种各样的取决于你的场景因素这些方法:

  • 你是如何处理的配置信息等位部署?
    • 如果您已经使用配置实体或自定义操作,则最好在其中添加新的字段,而不是在插件的注册步骤中“隐藏”配置信息(反之亦然)。
  • 配置信息在不同的环境/组织中将如何变化?
    • 如果配置是静态的并且“永不”需要修改,那么您可以将它硬编码到程序集中。
    • 如果配置是静态的并且您正在使用插件,那么您可以将信息放入插件的注册中,并且可以将其作为解决方案的一部分进行迁移。
  • 您正在使用哪种版本的CRM?
    • 自定义操作仅在CRM 2013起可用。
  • 解决方案是否需要在脱机场景中工作?
    • 自定义操作可能无法在这种情况下工作。
  • 需要注册多少个不同的插件步骤? /有多少进程将使用自定义工作流活动?
    • 如果有很多,则可能无法在每个需要它的地方指定信息,并且配置实体/操作可能更可取。
  • 谁将有权访问(以及谁需要)修改配置信息?
    • 如果您正在使用自定义活动并且非技术业务用户有权修改使用该活动的工作流程,那么您可能不希望将该信息作为参数传递给该活动(由于可能存在引入用户错误)。
  • 什么是插件/自定义活动的性能配置文件?
    • 如果您想获得最佳性能,那么您可能不希望从自定义实体或操作中检索配置信息的开销。

等等