如何列出控制台中所有脏的 CRM 字段?
How to list all CRM fields which are dirty in console?
我一直在寻找一种方法来获取 CRM 表单中所有脏字段的列表,以确定更改的内容以及需要在浏览器控制台中保存的内容。这将帮助我调试 javascript 或其他一般的 CRM 相关问题
我怎样才能做到这一点?
您可以使用以下代码供您参考
var attribs = Xrm.Page.data.entity.attributes.get();
获取 from 中所有字段的列表,然后为其调用函数 getIsDirty()
作为
var filterDirty = attribs.filter(function(elem,index,attribs){
var name = elem.getName();
return (Xrm.Page.getAttribute(name).getIsDirty() === true);
});
现在 filterDirty
将包含所有脏字段的数组,您可以将其与地图一起打印为
filterDirty.map(function(e){ console.log(e.getName()); });
注意: 只要确保 Xrm 可用,您就会明白为什么在我上面描述的 here
之前还有一些额外的代码
整个代码看起来像这样
// get the correct frame
for(var i=0;i<5;i++) //loop through 0 to 4
if(frames[i].Xrm.Page.ui != undefined) //check if undefined
{
Xrm = frames[i].Xrm; //assign Xrm
console.info("~: Xrm updated with frame " + i + " :~"); //show info
break; //breakout the loop
}
//Query
var attribs = Xrm.Page.data.entity.attributes.get();
//Filter
var filterDirty = attribs.filter(function(elem,index,attribs){
var name = elem.getName();
return (Xrm.Page.getAttribute(name).getIsDirty() === true);
});
//print
filterDirty.map(function(e){
console.log(e.getName());
});
打开开发人员工具 (F12),select 控制台并输入以下内容:
Xrm.Page.data = Xrm.Page.data || frames[0].Xrm.Page.data || frames[1].Xrm.Page.data; Xrm.Page.data.entity.getDataXml()
返回的 Xml 会将脏字段及其值列为 XML。例如
<contact><firstname>changed on form but not saved in db</firstname></contact>
我一直在寻找一种方法来获取 CRM 表单中所有脏字段的列表,以确定更改的内容以及需要在浏览器控制台中保存的内容。这将帮助我调试 javascript 或其他一般的 CRM 相关问题
我怎样才能做到这一点?
您可以使用以下代码供您参考
var attribs = Xrm.Page.data.entity.attributes.get();
获取 from 中所有字段的列表,然后为其调用函数 getIsDirty()
作为
var filterDirty = attribs.filter(function(elem,index,attribs){
var name = elem.getName();
return (Xrm.Page.getAttribute(name).getIsDirty() === true);
});
现在 filterDirty
将包含所有脏字段的数组,您可以将其与地图一起打印为
filterDirty.map(function(e){ console.log(e.getName()); });
注意: 只要确保 Xrm 可用,您就会明白为什么在我上面描述的 here
之前还有一些额外的代码整个代码看起来像这样
// get the correct frame
for(var i=0;i<5;i++) //loop through 0 to 4
if(frames[i].Xrm.Page.ui != undefined) //check if undefined
{
Xrm = frames[i].Xrm; //assign Xrm
console.info("~: Xrm updated with frame " + i + " :~"); //show info
break; //breakout the loop
}
//Query
var attribs = Xrm.Page.data.entity.attributes.get();
//Filter
var filterDirty = attribs.filter(function(elem,index,attribs){
var name = elem.getName();
return (Xrm.Page.getAttribute(name).getIsDirty() === true);
});
//print
filterDirty.map(function(e){
console.log(e.getName());
});
打开开发人员工具 (F12),select 控制台并输入以下内容:
Xrm.Page.data = Xrm.Page.data || frames[0].Xrm.Page.data || frames[1].Xrm.Page.data; Xrm.Page.data.entity.getDataXml()
返回的 Xml 会将脏字段及其值列为 XML。例如
<contact><firstname>changed on form but not saved in db</firstname></contact>