Публикация
Перебор всех записей раздела, и обновление "полноты наполнения"
26 июля 2018 14:31
Вопрос
В контрагентах некорректно отображается Полнота наполнения (вместо % - тысячи). Для решения порекомендовали пересохранить каждую запись (это действительно помогает), но у нас больше 5000 контрагентов – пересохранять каждого совсем не вариант.
Ответ
Запись обновляется при открытии карточки в следствии вызова метода GetRecordCompleteness() сервиса CompletenessService.
Получить все записи для последующего перебора можно в консоли браузера, для этого выполним:
var esq = Ext.create("Terrasoft.EntitySchemaQuery", {rootSchemaName: "Account"}); esq.addColumn("Id"); esq.getEntityCollection(function(result) { var items = null; if (result.success) { items = result.collection; document.testResult = items; console.log("testResult added"); } }, this);
После чего вызовем метод сервиса для каждой записи, это займет какое-то время.
document.iter = 0; document.myLoop = function() { var item = document.testResult.collection.items[document.iter]; setTimeout(function () { // --------- console.log(item.values.Id); var config = { recordId: item.values.Id, schemaName: "Account" }; require(["ServiceHelper"], function(ServiceHelper) { ServiceHelper.callService("CompletenessService", "GetRecordCompleteness", function(response) { }, config, this); }); // --------- document.iter++; if (document.iter < document.testResult.collection.items.length) { document.myLoop(); } }, 1000) }; document.myLoop();
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать