dynamics crm 常用js
描述 | 方法 | 备注 |
获取当前记录的guid | Xrm.Page.data.entity.getId(); | |
获取当前用户 | Xrm.Page.context.getUserId(); | |
获取当前界面某个字段的值 | Xrm.Page.getAttribute("字段").getValue(); | |
设置某个字段的值 | Xrm.Page.getAttribute("字段").setValue(value); | |
设置某个字段必填 | Xrm.Page.getAttribute("字段").setRequiredLevel("required"); | |
界面上取消某个字段必填属性 | Xrm.Page.getAttribute("字段").setRequiredLevel("none"); | |
datetime类型字段读取值 |
var myContactBirthday; myContactBirthday = Xrm.Page.getAttribute("birthdate").getValue(); alert("Contact birthday is: " + myContactBirthday); var year = myContactBirthday.getFullYear(); var month = myContactBirthday.getMonth(); // from 0 to 11 var day = myContactBirthday.getDate(); // from 1 to 31 month = month + 1; alert("Year: " + year + ", Month: " + month + ", Day: " + day); |
|
时间类型字段赋值 | Xrm.Page.data.entity.attributes.get("new_status_category_date_detail").setValue(new Date()) | |
设置某个tab隐藏 | Xrm.Page.ui.tabs.get("TAB名称").setVisible(false); | |
设置某个字段显示与隐藏 | Xrm.Page.getControl("字段").setDisabled(true); | |
界面上js控制阻止保存 | ExecutionObj.getEventArgs().preventDefault();//阻止保存操作 | |
货币(currency)类型字段保存 | Xrm.Page.getAttribute("字段").setValue(parseFloat(具体值)); | |
接口查询方式 |
var clientURL = Xrm.Page.context.getClientUrl(); var req = new XMLHttpRequest(); req.open("GET", encodeURI(clientURL + "/api/data/v9.1/cr15f_allowancelists?$select=_cr15f_allowancenamelookup_value,cr15f_allowance&$filter=_cr15f_allowanceno_value eq '" + guid + "'"), false); } |
|
日期类型字段求day差 |
var new_tender_estimated_date_detail = Date.parse(Xrm.Page.data.entity.attributes.get("new_tender_estimated_date_detail").getValue()); //预计投标日期 var createdon = Date.parse(Xrm.Page.data.entity.attributes.get("createdon").getValue()); //商机创建日期 var days = (new_tender_estimated_date_detail - createdon) / (1 * 24 * 60 * 60 * 1000); |
|
界面上所有字段只读设置(循环遍历方式) |
var controls = Xrm.Page.ui.controls.get(); for (var i in controls) { var control = controls[i]; control.setDisabled(true); } |
|
查询当前记录的方法 |
var req = new XMLHttpRequest(); req.open("PATCH", Xrm.Page.context.getClientUrl() + "/api/data/v9.0/opportunities(" + entityId.toString().replace('{', '').replace('}', '') + ")", false); //new_orders 要修改的表名 req.setRequestHeader("Accept", "application/json"); req.setRequestHeader("Content-Type", "application/json; charset=utf-8"); req.setRequestHeader("OData-MaxVersion", "4.0"); req.setRequestHeader("OData-Version", "4.0"); req.onreadystatechange = function () { if (this.readyState == 4 /* complete */) { req.onreadystatechange = null; if ((this.status == 204) || (this.status == 200)) { Xrm.Utility.alertDialog("执行成功!"); console.log(this.responseText); } else { Xrm.Utility.alertDialog(this.responseText); } Xrm.Utility.openEntityForm(Xrm.Page.data.entity.getEntityName(), Xrm.Page.data.entity.getId()); //刷新当前界面 } }; req.send(JSON.stringify(entity)); |
|
js调用workflow的方法 |
function executeWorkflow(entityId, workflowId, clientUrl) { var clientURL = Xrm.Page.context.getClientUrl(); //获取当前客户端的url var req = new XMLHttpRequest() req.open("POST", encodeURI(clientURL + "/api/data/v9.0/workflows(" + workflowId + ")/Microsoft.Dynamics.CRM.ExecuteWorkflow"), true); req.setRequestHeader("Accept", "application/json"); req.setRequestHeader("Content-Type", "application/json; charset=utf-8"); req.setRequestHeader("OData-MaxVersion", "4.0"); req.setRequestHeader("OData-Version", "4.0"); req.onreadystatechange = function () { if (this.readyState == 4 /* complete */) { req.onreadystatechange = null; //Xrm.Utility.alertDialog(this.status); if ((this.status == 204) || (this.status == 200)) { Xrm.Utility.alertDialog("执行成功!"); console.log(this.responseText); } else { Xrm.Utility.alertDialog("执行出错。"); console.log(this.responseText); } Xrm.Utility.openEntityForm(Xrm.Page.data.entity.getEntityName(), Xrm.Page.data.entity.getId()); //刷新当前界面 } }; var requestMsg = {}; var entityids = entityId.toString(); requestMsg.EntityId = entityids; req.send(JSON.stringify(requestMsg)); |
|
js调用自定义api接口的方法 |
var req4 = new XMLHttpRequest() req4.open("post", "http://139.217.100.219:9001/api/Opportunity/GetOpportunity", false); //req4.open("post", configvalue, false); req4.setRequestHeader("Accept", "application/json"); req4.setRequestHeader("Content-Type", "application/json; charset=utf-8"); req4.setRequestHeader("OData-MaxVersion", "4.0"); req4.setRequestHeader("OData-Version", "4.0"); req4.onreadystatechange = function () { if (this.readyState == 4) { if (this.status == 200 || this.status == 204) { var result = JSON.parse(this.responseText); } else { Xrm.Utility.alertDialog(this.responseText); } } }; req4.send(JSON.stringify(entitys)); } |
|
刷新当前打开的form窗体 | Xrm.Utility.openEntityForm(Xrm.Page.data.entity.getEntityName(), Xrm.Page.data.entity.getId()); //刷新当前界面 | |
获取lookup类型字段 |
function SetValue() { var state = new Array(); state = Xrm.Page.getAttribute("parentaccountid").getValue(); if (state != null) { var stateText = state[0].name; var stateId = state[0].id; var stateType = state[0].entityType; alert(stateType); } } |
|
lookup清空值 |
var state = Xrm.Page.getAttribute("new_state"); if (state != null) { Xrm.Page.getAttribute("new_state").setValue(null); } |
|
lookup赋值 |
var state = new Array(); state[0] = new Object(); state[0].id = "{BA0762E4-64D2-E111-909E-00155D6C871A}"; state[0].name = "New York"; state[0].entityType = "new_state"; Xrm.Page.getAttribute("new_state").setValue(state); |
|
optionset类型字段读取值 |
var sval = Xrm.Page.getAttribute("new_optionset").getSelectedOption().text; var sval = Xrm.Page.getAttribute("new_optionset").getSelectedOption().value; 分别读取显示文本和值 另外,我们还可以用下面的方法来获取text和value: var sval = Xrm.Page.getAttribute("new_optionset").getText(); var sval = Xrm.Page.getAttribute("new_optionset").getValue(); |
|
optionset类型字段赋值 |
function SetOSValue(osName, osLabel) { var options = Xrm.Page.getAttribute(osName).getOptions(); for(i = 0; i < options.length; i++) { if (options[i].text == osLabel) Xrm.Page.getAttribute(osName).setValue(options[i].value); } } |
|
节隐藏 | Xrm.Page.ui.tabs.get("tab_5").sections.get("tab_5_section_1").setVisible(false); |
tab_5:选项卡 tab_5_section_1:节 |
标签隐藏 | Xrm.Page.ui.tabs.get("tab_5").setVisible(false); | tab_5:选项卡 |
//判断用户是否具有某个角色
function RoleControlFields_lead()
{
//获取用户的角色ID
var roleIdArray = Xrm.Utility.getGlobalContext().userSettings.securityRoles;
var roleIdFilter = "";
roleIdArray.forEach(function (element) {
roleIdFilter = roleIdFilter + "roleid eq " + element + " or ";
});
var roleOwner;
//通过Web API返回用户拥有的角色名称
var queryRoleName = "?$select=name&$filter=" + roleIdFilter.substring(0, roleIdFilter.length - 3);
Xrm.WebApi.retrieveMultipleRecords("role", queryRoleName).then(
function success(result) {
//判断是否有HW 商务专员、HW 商务经理、HW 商机负责人的角色
for (var i = 0; i < result.entities.length; i++) {
if (result.entities[i]["name"] == "窗体部分字段显示(非华为)") { //|| result.entities[i]["name"] == "HW 商务经理"
roleOwner = "X";
}
}
SetFieldVisible_leadform(roleOwner);
},
function (error) {
// handle error conditions
}
);
}
//注册执行业务线的查找列表事件(绑定在窗体onload事件上)
function setBusinessLineFilter() {
Xrm.Page.getControl("new_businessline").addPreSearch(function () {
businessFilter("new_businessline", "new_businessgroup");
});
}
//根据业务部门,角色名查询用户 -----webApi的其他使用方式
function setExecutivedeliverymanager(rolename, businessunitid, targetfieldname) {
//用户 systemuser:systemuserid
//角色 role:roleid
//角色权限 systemuserroles: systemuserid,roleid
var fetchxml = "<fetch mapping='logical' version='1.0'>" +
"<entity name='role' >" +
"<filter>" +
"<condition attribute='name' operator='eq' value='" + rolename + "' />" +
"<condition attribute='businessunitid' operator='eq' value='" + businessunitid + "' />" +
"</filter>" +
"<link-entity name='systemuserroles' from='roleid' to='roleid' alias='b' link-type='inner'>" +
"<attribute name='systemuserid' />" +
"</link-entity>" +
"</entity >" +
"</fetch > ";
var req = new XMLHttpRequest();
req.open("GET", encodeURI(Xrm.Page.context.getClientUrl() + "/api/data/v9.0/roles?fetchXml=" + encodeURI(fetchxml), false));
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.onreadystatechange = function () {
if (this.readyState == 4) {
req.onreadystatechange = null;
if ((this.status == 204) || (this.status == 200)) {
if (JSON.parse(this.response).value.length > 0) {
var data = JSON.parse(this.response).value;
var systemuserid = data[0]["b.systemuserid"].toString();
//var arr = new Array();
//arr[0] = new Object();
//arr[0].id = "{" + systemuserid + "}";
//arr[0].name = "textValue";
//arr[0].entityType = "systemuser";
//Xrm.Page.getAttribute(targetfieldname).setValue(arr);
Xrm.WebApi.retrieveRecord("systemuser", systemuserid, "?$select=fullname").then(
function success(result) {
console.log("Retrieved values: Name: " + result.name + ", Revenue: " + result.revenue);
var arr = new Array();
arr[0] = new Object();
arr[0].id = "{" + systemuserid + "}";
arr[0].name = result.fullname;
arr[0].entityType = "systemuser";
Xrm.Page.getAttribute(targetfieldname).setValue(arr);
},
function (error) {
console.log(error.message);
// handle error conditions
}
);
//
}
else {
Xrm.Page.getAttribute("new_executivedeliverymanager").setValue(null);
}
}
else {
var error = JSON.parse(this.response).error;
}
}
};
req.send();
}
//执行各业务部门查找列表 ----webapi新的使用方式
function businessFilter(selectedFieldName, parentFieldName) {
var businessUnitFilter;
var parentFieldValue = Xrm.Page.getAttribute(parentFieldName).getValue();
if (parentFieldValue != null) {
if (selectedFieldName == "new_businessline") {
businessUnitFilter = "<filter type='and'>"
+ "<condition attribute='parentbusinessunitid' operator='eq' value='" + parentFieldValue[0].id + "'/>"
+ "<condition attribute='name' operator='like' value='%业务线%' />"
+ "</filter>";
}
else {
businessUnitFilter = "<filter type='and'>"
+ "<condition attribute='parentbusinessunitid' operator='eq' value='" + parentFieldValue[0].id + "'/>"
+ "</filter>";
}
}
else {
businessUnitFilter = "<filter type='and'>"
+ "<condition attribute='parentbusinessunitid' operator='eq' value='00000000-0000-0000-0000-000000000000'/>"
+ "</filter>"
}
Xrm.Page.getControl(selectedFieldName).addCustomFilter(businessUnitFilter, 'businessunit');
}
dynamics crm 常用js相关推荐
- Microsoft Dynamics CRM 常用JS语法(已转成vs2017语法提示)
背景 最近接触到Microsoft Dynamics CRM的开发.前端js是必不可少的部分,奈何没有一个语法提示,点不出来后续的语句. 在vscode上面搜索插件的时候发现,有一个大神写的插件htt ...
- Dynamics CRM 365 JS 语法使用
CRM字段类型: 货币:new Money(Decimal){SQL更新Money类型字段,需要同时更新_base字段,存在汇率差的时候值不同} 查找:new EntityReference(obje ...
- Microsoft Dynamics CRM 2011 JS操作集锦
1.Xrm.Page.context 用户ID:getUserId() 用户角色:getUserRoles() 用户语言:getUserLcid() 组织名称:getOrgUniqueName() 组 ...
- Dynamics CRM中跨域调用Web API 2
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复224或者20160611可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- Dynamics CRM - 如何修复 Access Is Denied,ObjectTypeCode: 2500 的错误
最近被 Dynamics CRM 的权限配置问题恶心了一个星期,老是报"Access Is Denied",几经波折,最后终于找到一个比较合适的解决方案,写个博客 mark 下来, ...
- Dynamics CRM: 表单(Form)中的显示字段变成只读的几种情况
有的时候,当我们打开一条记录, 我们会发现这条记录或者记录中的某个字段变成了不可编辑的状态, 但让表单中的显示字段变成只读的情况有很多, 你可以使用JS代码中的setDisabled, 也可以使用系统 ...
- Microsoft Dynamics CRM(一)——解决方案(Solution)
目录 1. 解决方案 (1)非托管解决方案(Unmanaged) (2)托管解决方案(Managed) 2. 解决方案常用组件 3. 更改默认发布商的解决方案发布商前缀 修改解决方案发布商前缀 3. ...
- Dynamics CRM Xrm.Page模型
在Dynamics CRM 中编写JS时,将于Xrm.Page 命名空间的对象交互 context:执行上下文 data:数据 entity:实体 // 获取包含显示页面,记录.保存方法.窗体所有属性 ...
- 为Dynamics CRM的Office附件注释定制个无需下载即可在线查看的功能
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复164或者20151021可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 上一篇博客: 为Dynamics ...
最新文章
- centos7 选定默认启动内核,及删除无用内核
- WeX5 -- xcode7+iphone免费帐号打包详解
- PAT甲级1075 PAT Judge:[C++题解]排序、结构体
- Nginx学习笔记(七) 创建子进程
- Md5 Md5实现原理
- 大数据基础系列 5:Hadoop 实验——熟悉常用的 HDFS 目录操作和文件操作
- Debian/Ubuntu系统下,apt-get update 、apt-get upgrade 、apt-get dist-upgrade 命令之间的区别
- 【“互联网+”大赛华为云赛道】API命题攻略:厘清三步解题思路,用好开发工具
- LeetCode Assign Cookies
- opencv-api boxPoints
- java 时间格式化 星期_Java SimpleDateFormate时间格式化
- 冯诺依曼提出的三个计算机改进理论,冯诺依曼体系结构的计算机..docx
- C语言函数 bzero
- Git的author与committer的区别
- c++thread里暂停线程_C语言如何正确的终止正在运行的子线程
- 20201110提莫攻击
- 李宏毅机器学习课程自测练习题
- 柔性电子: Triboelectric Nanogenerator摩擦生电
- 【Unity3D应用案例系列】答题系统开发
- codeblocks编译出错问题的解答!(编译c++ 或者c程序)
热门文章
- Vue 点击获得父元素,子元素,兄弟元素(DOM操作)
- Mysql8.0.17压缩包安装——超详细简单教程
- bch纠错码 码长8_密码学BCH纠错编码算法
- 小说作者推荐:休屠城合集
- C++三角定位法求两圆交点坐标
- win7计算机自动关机设置在哪里设置方法,Win7小技巧:自动关机怎么设置?
- java中画幅相机推荐_比全画幅更大 平民中画幅相机推荐
- 字母序列号生成 A...Z..AA..ZZ....
- 无人机编程donekit及通讯(一)
- 关于RPC框架封装时ThreadPool的选型和设计