So I have a Vendor name Lookup field and whenever I select a value for that it will fill the expense category lookup. So my problem is when I clear the Vendor Name lookup, I'm getting this error "TypeError: Cannot read property '0' of null at setExpenseCategorybasedonVendor".
Already tried this clear the value of expense category
lookup1.reset(); value.reset(); cse_expense_category_value.reset(); cse_expense_category_value.clear(); nullcse_expense_category_value.setValue(""); cse_expense_category_value.setValue(null); document.getElementById("cse_expense_category").reset(); document.getElementById("cse_expense_category").null(); document.getElementById("cse_expense_category").clear(); document.getElementById("cse_expense_category").setValue(""); document.getElementById("cse_expense_category").setValue(null); Xrm.Page.getElementById("cse_expense_category").reset(); Xrm.Page.getElementById("cse_expense_category").clear(); Xrm.Page.getElementById("cse_expense_category").null(); Xrm.Page.getElementById("cse_expense_category").setValue(""); Xrm.Page.getElementById("cse_expense_category").setValue(null);
My full code
function makeRequest(method, url) { return new Promise(function (resolve, reject) { var xhr = new XMLHttpRequest(); xhr.open(method, url); xhr.setRequestHeader("OData-MaxVersion", "4.0"); xhr.setRequestHeader("OData-Version", "4.0"); xhr.setRequestHeader("Accept", "application/json"); xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8"); xhr.onload = function () { if (this.status >= 200 && this.status < 300) { resolve(xhr.response); } else { reject({ status: this.status, statusText: xhr.statusText }); } }; xhr.onerror = function () { reject({ status: this.status, statusText: xhr.statusText }); }; xhr.send(); }); } function setExpenseCategorybasedonVendor() { var lookup1 = Xrm.Page.getAttribute("cse_vendor_name").getValue()[0].id; var clientUrl = Xrm.Page.context.getClientUrl(); var query = clientUrl + "/api/data/v8.0/cse_vendormasters(" + lookup1.slice(1, -1) + ")?$select=_cse_expense_category_value"; makeRequest('GET', query) .then(function (res) { var res2 = JSON.parse(res); var guid = res2._cse_expense_category_value; var query2 = clientUrl + "/api/data/v8.0/cse_expensemasters(" + guid + ")? $select=cse_name"; makeRequest('GET', query2) .then(function (response) { var res3 = JSON.parse(response); var value = new Array(); value[0] = new Object(); value[0].id = guid; value[0].name = res3.cse_name; value[0].entityType = "cse_expensemasters"; if (lookup1 != null){ Xrm.Page.getAttribute("cse_expense_category").setValue(value); Xrm.Page.getControl("cse_expense_category").setFocus(); Xrm.Page.getControl("cse_amount").setFocus(); } else{ Xrm.Page.getElementById("cse_expense_category").clear(); } }) .catch(function (err) { console.error('there was an error!', err.statusText); }); }) .catch(function (err) { console.error(' there was an error!', err.statusText); }); }
*This post is locked for comments