C# 使用自定义按钮从CRM中执行存储过程的最佳方法

C# 使用自定义按钮从CRM中执行存储过程的最佳方法,c#,javascript,asp.net,wcf,dynamics-crm-4,C#,Javascript,Asp.net,Wcf,Dynamics Crm 4,我在寻求一些建议。我们有多个系统可以每晚从Microsoft Dynamics 4(CRM)同步。但是,我经常被要求在白天手动执行SP,因为有时需要立即进行同步。此SP与CRM位于不同的服务器上 我想在CRM中添加一个自定义按钮,允许用户在需要时立即将CRM同步到其他系统。我不希望这是一个每次更新记录时都会发生的工作流,这将是用户的决定 我做了一些谷歌搜索,我正处在一个十字路口,如何最好地实现这一点。。1) 从按钮的javascript执行服务,或2)使用工作流执行SSIS并从按钮调用 如果我使

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

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

我做了一些谷歌搜索,我正处在一个十字路口,如何最好地实现这一点。。1) 从按钮的javascript执行服务,或2)使用工作流执行SSIS并从按钮调用

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

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

对不起,这是文字墙。我们将非常感谢您对该方法的任何指导或建议。非常感谢


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

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

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


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

感谢您的回复。我会试一试的。我今天就可以完成这项工作了。谢谢你的建议。我在另一个web服务器上使用单向方法使用.ASMX服务。工作是一种享受。