I am needing to update a fields on an editable grid. I want to select the records on the grid, then press a button that executes code to update the field on the form of all the selected records. Here is my code so far:
function getIds(selectedItems) { for (var item in selectedItems) { if (selectedItems.hasOwnProperty(item)) { fetchData(selectedItems[item].Id); } } } function fetchData(appointment_id) { Xrm.WebApi.retrieveRecord("appointment", appointment_id, "?$select=_regardingobjectid_value").then( function success(results) { var clientId = results["_regardingobjectid_value"]; getCarOne(clientId); }); } function getCarOne(clientId) { var req = new XMLHttpRequest(); req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v9.1/new_cars?$select=_new_carOne_value,&$filter=new_status eq 100000001 and _new_client_value eq" + clientId, 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 _new_carOne_value = results.value[i]["_new_carOne_value"]; var _new_carOne_value_formatted = results.value[i]["_new_carOne_value@OData.Community.Display.V1.FormattedValue"]; var _new_carOne_value_lookuplogicalname = results.value[i]["_new_carOne_value@Microsoft.Dynamics.CRM.lookuplogicalname"]; } else { Xrm.Utility.alertDialog(this.statusText); } } }; req.send(); }
What I am doing is:
1) selecting the records(all appointments) and getting the appointment record ID
2) using WebAPI to get clientID, then passing clientID into a new API call
3) using the HTTP request to get all car records with a certain status for each client. This is where the break happens. the req.send(); function doesn't seem to work from the grid
though it works just fine if I have the form open.
4) I have not got to this step yet, but the once I get the fields I need, I want to use that information to build a string to update a field with.