I want to get invoice auto populate customer based on the invoice number entered in contact form and the other entity is Invoice entity.But i am getting Bad request after running it.Following is my code:
function InvoiceNumberOnChange(){
var invoiceNumber = Xrm.Page.getAttribute("new_invoicenumber").getValue();
if (invoiceNumber){
var req = new XMLHttpRequest();
req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v8.2/invoices?$select=CustomerId&$filter=invoicenumber eq '" +invoiceNumber+ "'", true);
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("Prefer", "odata.include-annotations=\"*\"");
req.onreadystatechange = function() {
if (this.readyState === 4) {
req.onreadystatechange = null;
if (this.status === 200) {
var results = JSON.parse(this.response);
for (var i = 0; i < results.value.length; i++) {
var fieldId = results.value[i]["CustomerId"];
var value = results.value[i]["CustomerId@OData.Community.Display.V1.FullName"];
var fieldType = results.value[i]["CustomerId@Microsoft.Dynamics.CRM.Invoices"];
SetLookUp("new_invoicenumber",fieldType, fieldId, value)
}
} else {
Xrm.Utility.alertDialog(this.statusText);
}
}
};
req.send();
}
}
// *** FUNCTION: SetLookUp
// *** PARAMS:
// *** fieldName = The name of the lookup field
// *** fieldType = The type of field (contact, account etc)
// *** fieldId = The ID of the value to set (GUID)
// *** value = the value(name) to set
function SetLookUp(fieldName, fieldType, fieldId, value) {
try {
var object = new Array();
object[0] = new Object();
object[0].id = fieldId;
object[0].name = value;
object[0].entityType = fieldType;
Xrm.Page.getAttribute(fieldName).setValue(object);
}
catch (e) {
alert("Error in SetLookUp: fieldName = " + fieldName + " fieldType = " + fieldType + " fieldId = " + fieldId + " value = " + value + " error = " + e);
}
}
*This post is locked for comments