微软动态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. Mego(05) - Mego for Visual Studio Extension

    前言 可能对于一个新的框架而言使用入门对于陌生人而言是比较困难的,因此为了最大限度的为使用者提供便利性,我们给Mego框架开发了针对Visual Studio的集成开发工具,让大家可以像使用Entit ...

  2. ionic常见问题及解决方案

    1.Android SDK install设置代理服务器mirrors.neusoft.edu.cn80force http 2.ionic build android 2.1 gradle下载不了解 ...

  3. SSM-MyBatis-17:Mybatis中一级缓存(主要是一级缓存存在性的证明,增删改对一级缓存会造成什么影响)

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 缓存------------------------------------------> 很熟悉的一个 ...

  4. 全局唯一ID发号器的几个思路

    标识(ID / Identifier)是无处不在的,生成标识的主体是人,那么它就是一个命名过程,如果是计算机,那么它就是一个生成过程.如何保证分布式系统下,并行生成标识的唯一与标识的命名空间有着密不可 ...

  5. 关于Linux虚拟化技术KVM的科普 科普四(From humjb_1983)

    另一组关于KVM的分析文档,虚拟化相关概念.KVM基本原理和架构一-概念和术语.KVM基本原理和架构二-基本原理.KVM基本原理及架构三-CPU虚拟化.KVM基本原理及架构四-内存虚拟化.KVM基本原 ...

  6. Linux kernel的中断子系统之(七):GIC代码分析

    返回目录:<ARM-Linux中断系统>. 总结: 原文地址:<linux kernel的中断子系统之(七):GIC代码分析> 参考代码:http://elixir.free- ...

  7. 手把手教你使用 netlify 实现前端的 自动部署 + HTTPS

    随着开源工具越来越多,特别是nodejs构建微服务器之快,实现前端自动化部署越来越简单了,有可能[10行js代码+10行sh脚本+设置github的webhook]就能实现,但是如果你和我一样,就是& ...

  8. JAVA实现Base64编码的三种方式

    摘要: Javabase64编码的三种方式   有如下三种方式: 方式一:commons-codec.jar Java代码  1. String base64String="whuang12 ...

  9. CSS3 :nth-child() 选择器---挖坑

    E:nth-child(n) 语法: E:nth-child(n) { sRules } 说明: 匹配父元素的第n个子元素E,假设该子元素不是E,则选择符无效.(也就是说,会检查从body开始的每个元 ...

  10. 详解vue生命周期

    vue生命周期 @(vue)[生命周期] 前言 在使用vue一个多礼拜后,感觉现在还停留在初级阶段,虽然知道怎么和后端做数据交互,但是对于mounted这个挂载还不是很清楚的.放大之,对vue的生命周 ...