【问题标题】:Microsoft Dynamics CRM display error returned from plugin through javascript通过 javascript 从插件返回的 Microsoft Dynamics CRM 显示错误
【发布时间】:2014-08-11 06:54:54
【问题描述】:

我正在使用 Microsoft Dynamics CRM(非本地)

Microsoft Dynamics® CRM Online 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 页面并使用我们的错误消息填充它?我现在正抓着稻草,任何事情都会有很大帮助。谢谢!

【问题讨论】:

  • 你不能使用自定义工作流或插件来创建实体记录,而不是使用 JavaScript!
  • javascript 触发我们的插件,同样的工作流也必须完成。因此插件是由对实体的操作触发的,例如创建、更新或删除。以下是如何触发工作流msdn.microsoft.com/en-us/library/bb955335.aspx 可能有一种方法可以启动工作流,但据我所知,它仍然需要通过 javascript,谢谢您的回复!
  • 不,您不需要 JavaScript 来触发工作流。创建“按需运行”工作流程。在功能区中,您可以选择运行工作流。我不知道您正在运行 Javascript 什么操作(加载时、保存时、更改时或功能区按钮单击)。你能否解释一下,以便我能理解击球手你想要达到的目标。问候
  • 这可能行得通,我会试一试。最终目标是让我的插件在带有跟踪文件下载按钮的 CRM 错误对话框中显示异常。我正在通过在实体上创建来关闭我的插件,并且我目前正在使用 javascript 创建该实体。但我会尝试一下工作流程的想法,让你知道它是怎么回事。谢谢!
  • Worflow 不会像插件抛出的那样显示错误。您必须进入流程以获取错误详细信息。

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


【解决方案1】:

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

  1. 创建一个新的工作流程并取消选中“在后台运行此工作流程(推荐)”复选框。

  1. 从新创建的工作流创建记录。
  2. 保存并发布记录。
  3. 现在转到功能区并选择“运行工作流”。
  4. 选择新创建的工作流并点击“添加”。
  5. 如果插件抛出错误,它将显示在标准 CRM 错误对话框中,允许您下载日志文件。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-22
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多