Weird error TypeError: Cannot read property 'getValue' of null

Weird error TypeError: Cannot read property 'getValue' of null

我收到这个奇怪的错误:

TypeError: Cannot read property 'getValue' of null

当我想根据单位字段的变化获取另一个字段的值时,被告知这两个字段(项目和单位)是查找字段。这是我的代码:

function OnChanegUnit() 
  {
    debugger;
    var UnitId = Xrm.Page.getAttribute("ph_phdunitId").getValue();
     if (UnitId != null) 
    {
        var oDataSetName = "ph_phdunitSet";
        var columns = "ph_projectnameid";
        var filter = "ph_phdunitId eq (guid'" + UnitId[0].id + "') ";
        var results = retrieveMultiple(oDataSetName, columns, filter);
        if (results != "")
        { 
            if (results[0].ph_projectnameid.Id != null) 
            {

                SetLookup("ph_project", results[0].ph_projectnameid.Id, results[0].ph_projectnameid.Name, results[0].ph_projectnameid.LogicalName);
            }
            else {
                Xrm.Page.getAttribute("ph_project").setValue(null);
                Xrm.Page.getAttribute("ph_project").setSubmitMode("always");
            }
             }
    }
    else{
        Xrm.Page.getAttribute("ph_project").setValue(null);
        Xrm.Page.getAttribute("ph_project").setSubmitMode("always");
       }
}

代码与这一行有关:

var UnitId = Xrm.Page.getAttribute("ph_phdunitId").getValue();

对于 Xrm 函数,字段名称必须始终为小写,因此正确的代码是

var UnitId = Xrm.Page.getAttribute("ph_phdunitid").getValue();

当然,如果该字段采用以下形式,这将有效

关于另一个错误

Cannot read property '0' of undefined

它可能与来自您的自定义函数的results有关