2

我正在寻找一些建议。我们有多个系统每晚从 Microsoft Dynamics 4 (CRM) 同步。但是,我经常被要求在白天手动执行 SP,因为有时需要立即进行同步。此 SP 与 CRM 位于不同的服务器上。

我想向 CRM 添加一个自定义按钮,允许用户在需要时自行将 CRM 同步到其他系统。我不希望这是每次更新记录时都会发生的工作流程,这将是用户的决定。

我已经做了一些谷歌搜索,我正处于一个十字路口,如何最好地解决这个问题.. 1)从按钮的 javascript 执行服务或 2)使用工作流执行 SSIS 并从按钮调用它。

如果我使用Option 1,创建 Web 服务的最佳方法是什么?考虑到同步过程可能需要几分钟才能运行,具体取决于站点之间的互联网速度,我必须小心超时。如果我使用 .Net 3.5 asmx Web 服务,有什么方法可以立即响应并在后台运行 SP?我知道我可以从 Javascript 调用它。我相信另一种选择是使用 WCF 工作流服务(这对我来说是全新的),这将允许后台处理 - 但这可以从 Javascript 调用吗?

如果我使用选项 2,如何从 CRM 执行本地 SSIS?我读过它是可能的,但我找不到一个例子。

对不起,文字墙。任何有关方法的指导或建议将不胜感激。非常感谢。

TL;DR:我正在寻找一些关于如何使用自定义按钮在 Dynamics 4 中的不同数据库上执行存储过程的建议。

4

1 回答 1

2

您必须创建一个 Web 服务。它可以是 WCF 服务或经典的 ASMX 服务。在 CRM 服务器上部署它会稍微复杂一些,但可以完成(在 ISV 文件夹中部署应用程序,然后修改应用程序的 web.config 文件,以便它在自己的配置中恢复 CRM 设置的所有自定义内容)。如果您有一个单独的 Web 服务器(或至少在 CRM 服务器上有一个单独的网站),它会容易得多。

该服务必须标记为OneWay - 以便在调用它时立即返回给调用者。不幸的是,这也意味着您将无法返回错误消息 - 这些消息必须写入日志。

现在在 CRM 表单中创建一个按钮并使用 JavaScript 调用该服务。您应该能够配置您的服务,以便可以通过在 URL 参数中传递任何参数来调用它。

于 2013-03-20T10:43:49.247 回答