【问题标题】:Send notifications in Dynamics CRM在 Dynamics CRM 中发送通知
【发布时间】:2015-09-11 17:48:27
【问题描述】:

当某个任务发生时,我正在尝试向客户端 (node.js) 发送通知。例如,如果创建了一个事件,它应该向客户端发送一个通知。

Dynamics CRM 中是否有开箱即用的解决方案,还是我必须编写特定插件?

感谢您的帮助

【问题讨论】:

  • 这取决于您希望如何通知用户:浏览器中的弹出窗口、发送给他的电子邮件、添加到队列中的任务......您有什么要求?跨度>
  • 通知必须是对 Web 客户端的 http post 请求,并带有 JSON 中的相关对象
  • 在 CRM 2011 中这是不可能的。另一种方法是在您的 Web 客户端中应用轮询机制。

标签: node.js dynamics-crm-2011 dynamics-crm


【解决方案1】:

WebRequest 可用于轻松地进行 HTTP POST。

您可以构建一个充当“调度程序”的插件程序集,然后在您需要的地方注册它。请注意,您可能必须将程序集放在沙箱之外(隔离模式:无)。

您还可以通过(不)安全配置为每个注册步骤轻松设置它。

WebRequest 的链接 MSDN 页面提供了以下示例:

public class WebRequestPostExample
{
    public static void Main ()
    {
        // Create a request using a URL that can receive a post. 
        WebRequest request = WebRequest.Create ("http://www.contoso.com/PostAccepter.aspx ");
        // Set the Method property of the request to POST.
        request.Method = "POST";
        // Create POST data and convert it to a byte array.
        string postData = "This is a test that posts this string to a Web server.";
        byte[] byteArray = Encoding.UTF8.GetBytes (postData);
        // Set the ContentType property of the WebRequest.
        request.ContentType = "application/x-www-form-urlencoded";
        // Set the ContentLength property of the WebRequest.
        request.ContentLength = byteArray.Length;
        // Get the request stream.
        Stream dataStream = request.GetRequestStream ();
        // Write the data to the request stream.
        dataStream.Write (byteArray, 0, byteArray.Length);
        // Close the Stream object.
        dataStream.Close ();
        // Get the response.
        WebResponse response = request.GetResponse ();
        // Display the status.
        Console.WriteLine (((HttpWebResponse)response).StatusDescription);
        // Get the stream containing content returned by the server.
        dataStream = response.GetResponseStream ();
        // Open the stream using a StreamReader for easy access.
        StreamReader reader = new StreamReader (dataStream);
        // Read the content.
        string responseFromServer = reader.ReadToEnd ();
        // Display the content.
        Console.WriteLine (responseFromServer);
        // Clean up the streams.
        reader.Close ();
        dataStream.Close ();
        response.Close ();
    }
}

【讨论】:

  • PS:我会尝试将上述插件的步骤注册为异步,以避免过多减慢 dows 操作
  • 这不是向服务器发送请求,而不是向客户端发送请求吗?
  • OP 需要 POST 到 node.js 应用程序...无论如何,对我来说,向 client 发送请求并没有什么意义,但我可能会遗漏一些东西?
  • 啊,有道理。我们确实使用 HTML 网页和信号器在 Crm 中向客户端发送消息
【解决方案2】:

很确定没有开箱即用的此类解决方案,因此您将考虑定制开发。

【讨论】:

猜你喜欢
  • 2014-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多