Create record using WEB API
Following code shows how to create an Account record using WEB API and how to set different types of fields
function CreateAccount() { var serverURL = Xrm.Page.context.getClientUrl(); var account = {}; account["name"] = "New Account"; //Set LookUp account["primarycontactid"] = { "firstname": "Sample", "lastname": "Contact" };// this will create new contact ,if you need to link an existing contact use the following //account["primarycontactid@odata.bind"]="/contacts(contactId)"; //optionset account["companytype"] = 2; //two options account["donotemail"] = true; //number account["numberofemployees"] = 30; var req = new XMLHttpRequest(); req.open("POST", serverURL + "/api/data/v8.0/accounts", true); req.setRequestHeader("Accept", "application/json"); req.setRequestHeader("Content-Type", "application/json; charset=utf-8"); req.setRequestHeader("OData-MaxVersion", "4.0"); req.setRequestHeader("OData-Version", "4.0"); req.onreadystatechange = function() { if (this.readyState == 4 /* complete */ ) { req.onreadystatechange = null; if (this.status == 204) { var NewAccount = this.getResponseHeader("OData-EntityId"); var NewAccountId = NewAccount.substr(NewAccount.length - 38).substring(1, 37); Xrm.Utility.openEntityForm("account", NewAccountId); //Open newly created account record } else { var error = JSON.parse(this.response).error; alert(error.message); } } }; req.send(JSON.stringify(account)); }
Please note following code for setting an existing lookup value
account["primarycontactid@odata.bind"]="/contacts(contactId)";
“contacts” is plural name for contact entity .
var NewAccount = this.getResponseHeader(“OData-EntityId”); will give you the newly created record…