Я делаю один вызов, который получает несколько GUID, используя WebAPI. Я проверяю каждый результат и обновляю записи соответственно. Все это делается асинхронно. Я не хочу, чтобы пользователь ждал обновления всех записей и просто хотел закрыть веб-ресурс.
Я использую window.close()
, однако это нарушает вызовы асинхронного обновления, которые были инициированы ранее. Как я могу обойти это? Вот звонки, которые я делаю:
window.opener.Xrm.WebApi.online.retrieveMultipleRecords("new_contract", "?$select=new_contractid&$filter=statecode eq 0 and statuscode eq 100000001&$top=5000")
.then(function(results) {
for (var i = 0; i < results.entities.length; i++) {
var new_contractid = results.entities[i]["new_contractid"];
var processedGuid = new_contractid.replace(/[{}]/g, "");
var entity = {};
entity.new_run = new Date(y).toISOString();
window.opener.Xrm.WebApi.online.updateRecord("new_contract", processedGuid, entity)
.then(function success(result) {
var updatedEntityId = result.id;
},
function (error) {
Xrm.Utility.alertDialog(error.message);
});
}
}, function (error) {
Xrm.Utility.alertDialog(error.message);
});
Я думаю использовать вместо этого плагин из серверной части. Я не уверен, какой подход выбрать, любой вклад будет отличным!