【问题标题】:How to list all CRM fields which are dirty in console?如何列出控制台中所有脏的CRM字段?
【发布时间】:2017-12-21 14:18:43
【问题描述】:

我一直在寻找一种方法来获取 CRM 表单中所有脏字段的列表,以确定已更改的内容以及需要保存在浏览器控制台中的内容。这将帮助我调试 javascript 或其他与一般 CRM 相关的问题

我怎样才能做到这一点?

【问题讨论】:

    标签: javascript dynamics-crm dynamics-crm-2015 xrm


    【解决方案1】:

    打开开发者工具(F12),选择控制台并输入以下内容:

    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>
    

    【讨论】:

      【解决方案2】:

      您可以参考以下代码

      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()); 
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-01
        • 1970-01-01
        • 2016-08-21
        • 1970-01-01
        • 1970-01-01
        • 2014-03-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多