Публикация

Перебор всех записей раздела, и обновление "полноты наполнения"

Вопрос

В контрагентах некорректно отображается Полнота наполнения (вместо % - тысячи). Для решения порекомендовали пересохранить каждую запись (это действительно помогает), но у нас больше 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();

 

Нравится

Поделиться

0 комментариев
Показать все комментарии