Представления с отображением количества оставшихся дней

I

imendan

Well-known member
22.09.2010
129
1
Приветствую всех! На работе поставили задачу. Огромное число документов (более 50 тысяч) отсортировать по количеству оставшихся дней до срока исполнения.
Было выполнено в двух вариантах:
1 - Каждый день (03:00) агент пробегает все документы и обновляет поле (количество дней от текущего дня до срока исполнения). И уже в представлении показывает это значение (используются не сами числа, а иконки. Например, красный значит просроченный документ).
2 - Расчет количества дней от текущего дня до срока исполнения заложен в столбце представления.

В обеих случаях пользователи жалуются на то, что представление крайне долго открывается.

Что посоветуете, друзья?
 
lmike

lmike

нет, пердело совершенство
Lotus team
27.08.2008
7 259
439
разбить задачу на осмысленные комбинации
сколько документов (вернее за какой срок) надо видеть единовременно? Уверен - не все овер50тыс
сделать сортировку по дню исполнения, брать коллекцию за дней 30 (от текущей даты), отображать на форме в виде ссылок
т.е. - создать навигатор по вьюшке и делать отбор по диапазону дат, отображение по вкусу (да хоть в эхель выгрузить)
можно еще в фолдеры отбирать... (но я бы так не делал)
 
Последнее редактирование:
  • Нравится
Реакции: imendan
S

swyatogor

Lotus team
24.02.2014
620
29
@imendan и первый вариант будет всегда на порядок быстрее работать.. так как логика расчета будет исполняться в другом месте..
где то в хелпах видел рекомендацию не делать расчеты с датами при построении видов..
 
  • Нравится
Реакции: imendan
S

swyatogor

Lotus team
24.02.2014
620
29
У мну есть подобные виды.. сделаны вот по такому принципу:
Представления с отображением количества оставшихся дней

А эти все 50к доков нужно видеть кому то постоянно? или можно просто вывести что то типа статистики - столько доков с таким сроком, столько с таким?
 
  • Нравится
Реакции: imendan
savl

savl

Lotus team
28.10.2011
2 249
136
у меня было такое, делал через колонку: дата из документа < Текущей даты.
Каждую ночь работал агент, который в эту колонку проставлял @Today, потом вызов через консоль команды обновления вьюх.
Вполне нормально работало: 20К основных доков + 40К ответных в одном представлении + Readers поля + категоризация.
 
  • Нравится
Реакции: imendan
lmike

lmike

нет, пердело совершенство
Lotus team
27.08.2008
7 259
439
Каждую ночь работал агент, который в эту колонку проставлял @Today
не уверен что в контексте топика это будет рациональным...
ведь нужна небольшая выборка (наверняка) а тут придется перестроить весь индекс
как по мне, срок до окончания - не более недели (остальное можно посчитать "старше" - флаг и с этого момента более не пересчитывать), просроченные - не важно знать насколько (и подойдет флаг в доке - вовсе убрать, по нему, из вьюшки, в др.)
можно добавить рассылку по отсечке (дней до окончания)
т.е. - если не отказываться от схем в топике - 1) с изменениями
 
  • Нравится
Реакции: imendan
I

imendan

Well-known member
22.09.2010
129
1
...срок до окончания - не более недели (остальное можно посчитать "старше" - флаг и с этого момента более не пересчитывать), просроченные - не важно знать насколько (и подойдет флаг в доке - вовсе убрать, по нему, из вьюшки, в др.)...
Cпасибо, Imike! Как же я сам не догадался ) Каждый раз обновляю разницу дат. Жуть просто.

@imendan и первый вариант будет всегда на порядок быстрее работать.. так как логика расчета будет исполняться в другом месте..
где то в хелпах видел рекомендацию не делать расчеты с датами при построении видов..
Спасибо! Остановился на этом варианте.

...
А эти все 50к доков нужно видеть кому то постоянно? или можно просто вывести что то типа статистики - столько доков с таким сроком, столько с таким?
Надо видеть отдельным пользователям постоянно.

______________

Спасибо за выбор первого варианта. Как добавление к решению, я уже не буду сохранять разницу дней и в столбце по количествам дней показывать соответствующую иконку. Лучше сразу сохранить поле с номером иконки, что должно дать еще небольшой выигрыш в производительности.

Завтра отпишусь по скорости.

Благодарю всех.
 
D

Darkhan

Lotus team
14.12.2012
99
2
Последний вариант самый рациональный, однако не следует забывать про возможные конфликты.
По мне, вместо присваивания флага просроченности непосредственно в док лучше кидать в папку "просроченные". Логику обработки коллекции оставить без изменения
 
ToxaRat

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 236
28
1 - удалить такой вид вообще
2 - каждому исполнителю показывать только документы которые он видит
3 - до того момента пока исполнитель все задачи не порешал в другие части системы его не пускать

проверено - работает лучше всего ;)
 
A

abdurtim

Active member
06.03.2017
26
0
Прошу прощения. Не стал создавать новую тему, апнул эту. Как в многозначном поле выбрать первое значение при помощи @-формул?
 
lmike

lmike

нет, пердело совершенство
Lotus team
27.08.2008
7 259
439
вариант @SubSet(MyMultifield,1)
 
Мыш

Мыш

Lotus team
12.02.2008
1 128
16

Вот тут приведен аццкий вариант с несколькими @Adjust'ами. Не понял, как это работает, но вдруг...(это касательно вопроса по видам с датами).
 
Последнее редактирование:
Мы в соцсетях: