Настройка утилиты
Параметры задаются в файле calc_field.json:
| Параметр | Обязательный | Описание |
|---|---|---|
WebUrl | Да | Адрес портала. |
Login | Да | Учётная запись, от имени которой выполняется пересчёт (изменение элементов). |
Password | Да | Пароль этой учётной записи. |
Formula | Нет | Формула отбора элементов; должна вернуть список GUID элементов. Вычисляется в контексте системного пользователя. Если параметр не указан, используется файл itemIdList.txt. При наличии обоих приоритет у формулы. |
ThreadNumber | Нет | Количество параллельных потоков пересчёта (по умолчанию 1). |
Файл calc_field.json размещается в каталоге конфигурации:
- Linux —
/etc/Vitro/Server/Conf/ - Windows —
C:\Program Files\Vitro Software\Vitro\Server\Conf\
Файл может содержать один объект настроек или массив объектов — в этом случае наборы настроек выполняются по очереди.
[
{
"WebUrl": "http://vitro",
"Login": "calc_service",
"Password": "********",
"Formula": "Select(GetList('716e8d52-90dc-4c85-bddf-582c94ab505e'), \"Id()\")",
"ThreadNumber": 2
}
]
Безопасность
Пароль хранится в файле в открытом виде. Используйте отдельную служебную учётную запись с необходимыми правами, ограничьте доступ к файлу и удаляйте пароль после выполнения работ.
Список элементов в файле
Если формула не задана, утилита читает файл itemIdList.txt из рабочего каталога: по одному GUID на строку, пустые и некорректные строки пропускаются. Перед обработкой копия файла сохраняется в data/itemIdList-ГГГГММДД-ЧЧмм.txt.bak.
Запуск
- Linux —
./Vitro.Server.CalcField - Windows —
.\Vitro.Server.CalcField.exe
Алгоритм работы
- Утилита авторизуется на портале (при истечении сессии авторизация повторяется автоматически).
- Получает список GUID: по формуле (запрос
api/calc/getв контексте системного пользователя) или из файла. - Для каждого элемента вызывает
POST api/calc/compute/{GUID элемента}— элемент пересохраняется, при этом выполняются его вычисляемые поля. - Прогресс записывается в лог каждые 100 элементов.
Что происходит при пересчёте
Пересчёт — это сохранение элемента. При сохранении срабатывают валидаторы и правила автоматизации на изменившиеся атрибуты. Пересчитываются только поля, которые вычисляются при изменении элемента: атрибуты только для чтения и «Название» (см. Вычисляемые поля); счётчики не увеличиваются. Перед массовым пересчётом проверьте его на небольшом наборе элементов.
Журналы и ошибки
- Логи — в папке
logs/рабочего каталога, файлыCalc-ГГГГММДД-ЧЧмм.log. - GUID элементов, которые не удалось пересчитать, записываются в
error/itemIdError-ГГГГММДД-ЧЧмм.txt. После устранения причины этот файл можно использовать какitemIdList.txtдля повторного запуска.