【问题标题】:Show warning (NOT error) message to user from plugin从插件向用户显示警告(非错误)消息
【发布时间】:2019-03-19 19:34:07
【问题描述】:

在我正在开发的 CRM 解决方案中,有一种情况是在提交特定表单后,需要根据插件执行结果向用户显示警告消息。该操作仍应成功完成,因此从插件中抛出异常不是一个好的解决方案。

通过四处搜索,似乎没有直接的方法可以做到这一点。

是否只有将警告消息内容保存到某个实体上的自定义字段并在表单上使用 javascript 函数来确定何时将其显示给用户的唯一选项?

【问题讨论】:

    标签: javascript plugins dynamics-crm crm


    【解决方案1】:
    1. 使用您的插件当前正在执行的业务逻辑实现自定义工作流活动。

    2. 创建并激活使用该工作流活动的操作。

    3. 编写一个与表单的 OnSave 事件关联的 JS 函数,该函数通过执行 WebApi request 调用此操作。最后,处理完操作后,您可以调用开箱即用的setFormNotification Client API 在表单顶部创建自定义警告消息。

    你最终会得到一个很好的自定义消息,如下所示:

    【讨论】:

    • 感谢您的回复。我不确定为我们使用它是否实用,因为它需要修改大量已建立的逻辑来处理一个小的边缘情况。我认为我们可能只是尝试找到一种不同的方法来满足用户的要求,而不必依赖此表单返回警告消息。也许它对其他人有用。
    • 您可以根据点击的按钮使用confirm dialogstop or continue the saving of the record,而不是显示通知(setFormNotification)
    【解决方案2】:

    是的,没有直接的方法。

    您可以在同一实体记录上拥有一个虚拟字段,根据您的警告消息需要从插件设置/更新该字段值,并且该字段的onChange 将在插件成功执行时在 UI 中触发。

    您可以从该onChange 处理程序向用户显示消息。 Read more

    Documentation 说:

    字段 OnChange 事件

    当检索到服务器上的数据更改时也会发生此事件 在刷新表单时更新字段,例如在记录之后 已保存。

    这样你可以在不抛出InvalidPluginExecutionException的情况下成功执行插件,可以避免自定义实体、自定义Action等

    【讨论】:

    • 虽然这是一个更快的解决方案并且可以完成工作,但我不同意它。创建字段来解决这样的问题,很容易导致臃肿的实体包含比其域应表示的更多的字段。
    • @AndréCavaca 是的,这是最小的副作用......但比设计更改更容易......
    • 您将添加一个字段以满足业务需求。没有什么臃肿的。
    【解决方案3】:

    你可以使用 Actions。

    使用输出参数创建动作。在自定义消息(操作)中注册您的插件。在表单的 Save 事件上使用 JavaScript 调用 Action。您将收到 JavaScript 中操作的输出,同样可以显示在表单中。

    我们知道我们可以使用 JavaScript 显示通知,并且我们正在调用将执行注册到自定义消息的插件的操作,您将获得 Javascript 变量中的输出,您只能使用 Javascript 显示。

    请参阅此链接以使用操作。 https://www.magnetismsolutions.com/blog/dominicjarvis/2017/09/18/how-to-trigger-plugins-on-custom-messages-using-actions-in-dynamics-365

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-06
      • 2017-01-08
      • 2020-03-18
      • 2019-08-25
      • 2020-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多