Dynamics crm 在Microsoft Dynamics CRM和第三方应用程序之间实现双向通信

Dynamics crm 在Microsoft Dynamics CRM和第三方应用程序之间实现双向通信,dynamics-crm,Dynamics Crm,我需要在Microsoft Dynamics CRM和第三方服务器之间实现双向通信。理想情况如下: 用户尝试在CRM中创建实体 在pre-createhook中,调用第三方库函数(或web服务或其他任何函数),该函数填充相关信息,试图在服务器上创建相应的实体 如果调用失败,则在CRM中创建失败 如果调用成功,则在CRM中创建实体,并用调用的返回值填充其他字段 更具体地说,当用户尝试创建一个新实体实例时,我希望执行以下操作: try { ExternalWebService.CreateT

我需要在Microsoft Dynamics CRM和第三方服务器之间实现双向通信。理想情况如下:

  • 用户尝试在CRM中创建实体
  • 在pre-createhook中,调用第三方库函数(或web服务或其他任何函数),该函数填充相关信息,试图在服务器上创建相应的实体
  • 如果调用失败,则在CRM中创建失败
  • 如果调用成功,则在CRM中创建实体,并用调用的返回值填充其他字段
  • 更具体地说,当用户尝试创建一个新实体实例时,我希望执行以下操作:

    try {
        ExternalWebService.CreateTrade(ref TradeInfo info)
        //this was initialized on the external server
        myCRM_Trade_Entity.SerialNo = info.SerialNo; 
        CreateNew(myCRM_Trade_Entity);
    
    } catch (whatever) {
        fail;
    }
    

    建议的方法是什么?我是Dynamics新手,读过关于工作流和插件的文章,但不确定我应该如何正确地做到这一点。

    实现这一点的方法显然是一个插件,除非web服务调用的进程很长并且可能超时

    避免创建实体的唯一方法是创建一个插件并将其挂接到预创建事件上,如您所说

    使用工作流时,必须在执行工作流之前保存实体


    我认为你走的很好。但是,我会避免包含库,webservice解决方案应该更好,因为它不需要在注册插件程序集之前注册其他库。

    我查看了插件,但从我看到的情况来看,除了成功/失败之外,我无法获得反馈信息。问题是实体的主键必须在第三方服务器中创建,因此我必须使用从web服务执行中收到的值更新实体。有没有办法通过插件做到这一点?注册插件时,在CRM中实际创建实体之前会触发预创建事件,您可以访问完整的实体映像。因此,您可以调用webservice并修改此图像或引发异常,以避免创建实体。谢谢!这就是我需要有人来证实的。