Подскажите, как можно и нужно дернуть API, чтобы выгрузить табличку из дашборда в excel по загруженному шаблону.
Добрый день!
Чтобы настроить рассылку Excel файлов по расписанию, необходимо:
- Обновить версию appserver (11.01 вышла свежая версия).
- После, выполнить:
Заполнение таблицы tm.tasks, пример ниже:
INSERT INTO tm.tasks
(id, performer_id, user_id, dataset_id, cron, delta, title, created, updated, config, is_enabled)
VALUES(3, 0, 1, NULL, '0 10 8 * * ?', NULL, 'Расписание для рассылки отчета Дэшборд с табличкой', '2022-10-31 14:00:27.140', '2022-10-31 14:00:27.140', '{"method": "sendEmail", "params": ["ds_4", "205", [12]], "service": "ReportSharingService"}'::jsonb, 1);
В поле “config” блок “params”:
“ds_4”, - датасет
“205” - id dashlet-а (можно увидеть в консоли разработчика дважды кликнув по заголовку:
[12,13,14] - массив id пользователей luxmsbi, которым отправлять почту
Кроме этого, можно настроить appserver в файле: /opt/luxmsbi/conf/appserver/application.properties
spring.mail.host=127.0.0.1
spring.mail.port=25
#spring.mail.username=
#spring.mail.password=
spring.mail.properties.mail.smtp.auth=false
spring.mail.properties.mail.smtp.ssl.enable=false
spring.mail.properties.mail.transport.protocol=smtp
spring.mail.properties.mail.smtp.ssl.trust=*
spring.mail.properties.mail.debug=false
а затем выполнить рестарт сервиса:
systemctl restart luxmsbi-appserver
А задать фильтры отчета как-то можно? И хотелось бы по событию дергать, без перезапуска appserver,
Добрый день.
Все фильтры, которые применяются к дэшам, работают в отчётах.
Для отправки по событию можно попробовать использовать подобный curl:
curl -v 'http://<host>/api/ipc/service' -H 'Content-Type: application/json;charset=UTF-8' -H 'Cookie: LuxmsBI-User-Session=<cookie>' -d '{"service":"ReportSharingService.sendEmail","args":["ds_3","3",[4]]}' <- конфиг точно такой же, как для задачи по расписанию
Для отправки через databoring, можно использовать curl через узел exec, в качестве примера:
[{"id":"800c831a3beafc8d","type":"inject","z":"028811020eeb191b","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":320,"y":180,"wires":[["f42608c81c322496"]]},{"id":"4b94435329cd6022","type":"debug","z":"028811020eeb191b","name":"debug 42","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":660,"y":180,"wires":[]},{"id":"f42608c81c322496","type":"exec","z":"028811020eeb191b","command":"curl -v 'http://localhost:8080/ipc/service' -H 'Content-Type: application/json;charset=UTF-8' -d '{\"service\":\"ReportSharingService.sendEmail\",\"args\":[\"ds_1661\",\"566\",[5318]]}'","addpay":"","append":"","useSpawn":"false","timer":"","winHide":false,"oldrc":false,"name":"test","x":490,"y":180,"wires":[["4b94435329cd6022"],[],[]]}]
В последних версиях luxmsbi изменилась сигнатура, актуальная:
{
“service”:“ReportSharingService.sendEmail”,
“args”:[
“ds_4”, - датасет
“205”, - id дешлета
[12,13,14], - массив id пользователей для рассылки, может быть null
[“All”,“Developers”], - массив наименований групп для рассылки, может быть null.
“xlsx”, - формат отчета (требует загруженный шаблон соответствующего типа)
[{“city”:[“=”,“Саратов”]}] - применяемые фильтры, может быть null
]
}