微软动态CRM专家罗勇 ,回复326或者20190428可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!

Dynamics 365 Customer Engagement 定制中少不了为命令栏添加按钮,点击按钮常做的事情包括设置表单字段的值,然后保存记录(保存记录过程中可能触发同步插件执行),再提示成功,用户点击后需要刷新当前页面,以便表单页面应用新逻辑,比如提交后表单页面只读。

刷新当前页面,那还不简单?用 formContext.data.refresh(save).then(successCallback, errorCallback); 或者  formContext.data.entity.save(saveOption);

光是这样不行,下面我介绍一个可行的方法。

命令栏添加按钮执行的JavaScript方法增加一个参数来接收传递过来的execution context (执行上下文,一般为表单上下文或者表格上下文),这个 CrmParameter 的名称是 PrimaryControl ,Ribbon的定义示例如下,这里来自官方文档:Pass Customer Engagement data from a page as a parameter to ribbon actions

<CommandDefinition Id="SampleCommand">
<EnableRules/>
<DisplayRules/>
<Actions>
<JavaScriptFunction Library="$webresource:new_mySampleScript.js" FunctionName="CloseRequest">
<CrmParameter Value="PrimaryControl" />
</JavaScriptFunction>
</Actions>
</CommandDefinition>

然后我这里演示执行的代码如下:

function CloseRequest(primaryControl) {
var formContext = primaryControl;
formContext.getAttribute("statuscode").setValue(100000006);
formContext.data.save().then(function () {
var entityFormOptions = {};
entityFormOptions["entityName"] = formContext.data.entity.getEntityName();
entityFormOptions["entityId"] = formContext.data.entity.getId();
Xrm.Navigation.openForm(entityFormOptions).then(
function () {
var alertStrings = { text: "操作成功!" };
var alertOptions = { height: 120, width: 160 };
Xrm.Navigation.openAlertDialog(alertStrings, alertOptions).then(
function success() { },
function () { }
);
},
function (errorOjb) {
console.log(errorOjb);
});
}, function (errorOjb) {
Xrm.Navigation.openErrorDialog({ message: errorOjb.message }).then(
function () {
},
function () {
});
}
);
}

Dynamics 365 CE命令栏按钮点击后刷新表单页面方法的更多相关文章

  1. Dynamics 365 CE Update消息PostOperation阶段Image的尝试

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  2. 使用Dynamics 365 CE Web API查询数据加点料及选项集字段常用查询

    微软动态CRM专家罗勇 ,回复336或者20190516可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me. 紧接上文:配置Postman通过OAuth 2 implicit ...

  3. Use SQL to Query Data from CDS and Dynamics 365 CE

    from : https://powerobjects.com/2020/05/20/use-sql-to-query-data-from-cds-and-dynamics-365-ce/ Have ...

  4. ajax+FormData+javascript实现无刷新表单信息提交

    ajax+FormData+javascript实现无刷新表单信息提交 原理: dom收集表单信息,利用FormData快速收集表单信息  ,实例化表单数据对象 同时收集fm的表单域信息. var f ...

  5. jsp中普通按钮如何提交表单

    jsp中普通按钮如何提交表单方法1: <form action = "提交的地址">         <input type="submit" ...

  6. DWZ框架Ajax无刷新表单提交处理流程

    DWZ框架Ajax无刷新表单提交处理流程是: 1.       ajax表单提交给服务器 2.       服务器返回一个固定格式json结构 3.       js会调函数根据这个json数据做相应 ...

  7. ajax+FormData+javascript 实现无刷新表单注册

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  8. 如何不使用 submit 按钮来提交表单?

      如果我们不想用 submit 按钮来提交表单,我们也可以用超链接来提交,我们可以这样写代码: <a href=”javascript: document.myform.submit ();” ...

  9. Dynamics 365 CE将自定义工作流活动程序集注册到磁盘并引用其他类库

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

随机推荐

  1. 第六章之S5PV210正确启动u-boot

    1,根据上一章最后一步生成u-boot写入到板子上,生成如下代码 UARU 0x43110220 DDR IS OK! 0x12345678 0xEA000014 U-Boot - ::) CPU: ...

  2. Scrapy爬虫框架补充内容三(代理及其基本原理介绍)

    前言:(本文参考维基百科及百度百科所写) 当我们使用爬虫抓取数据时,有时会产生错误比如:突然跳出来了403 Forbidden 或者网页上出现以下提示:您的ip访问频率太高 或者时不时跳出一个验证码需 ...

  3. window安装mysql5.7解压版(解决乱码问题)

    ♣安装mysql两种方法 ♣下载mysql5.7解压版 ♣配置步骤 ♣解决服务无法启动 ♣解决乱码 1.安装mysql两种方法 MySQL安装文件分为两种,一种是msi格式的,一种是zip格式的.如果 ...

  4. 数据分析之---Python可视化工具

    1. 数据分析基本流程 作为非专业的数据分析人员,在平时的工作中也会遇到一些任务:需要对大量进行分析,然后得出结果,解决问题. 所以了解基本的数据分析流程,数据分析手段对于提高工作效率还是非常有帮助的 ...

  5. Linux kernel的中断子系统之(二):IRQ Domain介绍

    返回目录:<ARM-Linux中断系统>. 总结:一.二概述了软硬件不同角度的IRQ Number和HW Interrupt ID,这就需要他们之间架个桥梁. 三介绍了架设这种桥梁的几种方 ...

  6. Day3 《机器学习》第三章学习笔记

    这一章也是本书基本理论的一章,我对这章后面有些公式看的比较模糊,这一会章涉及线性代数和概率论基础知识,讲了几种经典的线性模型,回归,分类(二分类和多分类)任务. 3.1 基本形式 给定由d个属性描述的 ...

  7. Spring Cloud @HystrixCommand和@CacheResult注解使用,参数配置

    使用Spring Cloud时绕不开Hystrix,他帮助微服务实现断路器功能.该框架的目标在于通过控制那些访问远程系统.服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力.Hystrix具备 ...

  8. 问题(一) DebugAugmenter

    问题: DebugAugmenter的作用是什么?是任何一个自创建的变量都可以取代它还是它有特定含义? public class DebugAugmenter Test { @Test public ...

  9. Java Fork/Join 框架

    简介 从JDK1.7开始,Java提供Fork/Join框架用于并行执行任务,它的思想就是讲一个大任务分割成若干小任务,最终汇总每个小任务的结果得到这个大任务的结果. 这种思想和MapReduce很像 ...

  10. bzoj 1064 假面舞会 图论??+dfs

    有两种情况需要考虑 1.链:可以发现对最终的k没有影响 2.环:如果是真环(即1->2->3->4->1),可以看出所有可行解一定是该环的因数 假环呢??(1->2-&g ...