通过javascript从插件返回的Microsoft Dynamics CRM显示错误

时间:2014-06-20 13:34:59

标签: dynamics-crm-2011 dynamics-crm dynamics-crm-online dynamics-crm-2013

我正在使用Microsoft Dynamics CRM(off premise)

MicrosoftDynamics®CRMOnline Spring '14(6.1.0.575)

通过javascript SDK调用来创建一个触发插件的实体。我们在预验证中在插件中进行自定义验证。

Javascript从这里创建调用示例 - > http://msdn.microsoft.com/en-us/library/gg334427.aspx

//Create the Account
SDK.REST.createRecord(
  account,
  "Account",
  function (account) {
    writeMessage("The account named \"" + account.Name + "\" was created with the AccountId : \"" + account.AccountId + "\".");
    writeMessage("Retrieving account with the AccountId: \"" + account.AccountId + "\".");
    retrieveAccount(account.AccountId)
  },
  errorHandler
);

然后我可以使用errorHandler函数处理错误,如下所示:

function errorHandler(error) {
   writeMessage(error.message);
}

但是,我试图从InvalidPluginExecutionException中在CRM错误对话框中显示错误。它在我从表单创建实体时显示它,但是当我通过javascript进行调用时,我似乎无法将其显示在CRM错误对话框中。我想继续使用CRM主题,不要在javascript中使用alert(),并让用户能够下载我们发回的完整异常。

是否可以在CRM中调用dlg_error.aspx页面并使用我们的错误消息填充它?我现在正在抓稻草,任何事情都会有所帮助。谢谢!

2 个答案:

答案 0 :(得分:3)

如果您使用的是CRM 2013,我建议您使用Workflow而不是JavaScript来创建记录。

  1. 创建一个新的工作流程并取消选中“在背景中运行此工作流程(推荐)”复选框。
  2. enter image description here

    1. 从新创建的工作流程创建记录。
    2. 保存并发布记录。
    3. 现在转到功能区并选择“运行工作流程”。
    4. 选择新创建的工作流程,然后点击“添加”。
    5. 如果Plugin引发错误,它将显示在标准CRM错误对话框中,您可以在其中下载日志文件。
    6. enter image description here

答案 1 :(得分:0)

您可以尝试执行同步jQuery ajax方法,而不会捕获错误并查看会发生什么。从jScript创建一个正在使用CRM服务的RESTful端点的记录,我不确定是否会以相同的方式提升错误。如果您想尝试自己打开错误对话框,请尝试使用Fiddler。使用新的同步工作流功能也可以解决问题。