• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Отчетность В Lotus-e

  • Автор темы Mitya
  • Дата начала
M

Mitya

Гуру, утро доброе!

Необходимо сделать отчет в .xls

Проблем состоит в том, что пользователь видит не все документы, но в отчет эти документы должны попасть.

Думал запускать агент (отчет) на сервере, но правильно ли это?

Подскажите вкратце, как реализовать. Спасибо.
 

garrick

Lotus Team
26.10.2009
1 349
151
BIT
176
Проблем состоит в том, что пользователь видит не все документы, но в отчет эти документы должны попасть.
Корректно ли показывать пользователю то, что он не должен видеть? Если "да", то единственный выход
Думал запускать агент (отчет) на сервере, ...
 
M

Mitya

Корректно ли показывать пользователю то, что он не должен видеть?

"описание документа" можно и не показывать, нужно только кол-во.

и если запускать агент на сервере, то смогу ли я вернуть коллекцию документов пользователю, чтобы на PC пользователя формировался xls ?
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
177
Нет, запущенные на сервере агенты не интерактивны. Если ты откроешь Excel на экран, то он откроется на сервере.
Можно сформировать xls на сервере, сохранить и выслать пользователю письмо с файлом.
Но для этого нужен небольшой документик-запрос, в котором будут параметры поиска документов и LN имя получателя.

Но еще раз, точно ли надо показывать то, что пользователь не имеет права видеть?
Если ему нужно строить такие отчеты по служебной необходимости, то дайте ему права видеть(читать, но не править) эти документы и пусть на клиенте строит отчеты.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
210
https://codeby.net/threads/41201.html?vi...st&p=235766
и никаких ограничений на место запуска, хоть из агента (см. форму экспорт - как запускать)
может делать отчеты по "связанным" по ключу вьюшкам
основное - это документ настроек
не требует эхеля вовсе, либу ставить в каталог jvm/lib/ext (на клиенте есть агент, на сервере - руками)
 
G

gpatron

укажите в свойствах агента от какого имени выполнять (имя пользователя у которого есть права на просмотр всех нужных документов) и будет Вам счастье
 
D

Dragon108

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

А разве эта опция не только для серверных агентов?

Хелп:

When a user runs an agent from the Notes client, the agent runs with the rights of the effective user, which is the current User ID.

"Run on behalf of" only applies to web - and scheduled agents.

Т.е. также можно запустить на сервере, но права у агента будут не те, чьей учеткой он подписан, а те, кто указан "Run on behalf of"
 
D

Dragon108

Гуру, утро доброе!

Необходимо сделать отчет в .xls

Проблем состоит в том, что пользователь видит не все документы, но в отчет эти документы должны попасть.

Думал запускать агент (отчет) на сервере, но правильно ли это?

Подскажите вкратце, как реализовать. Спасибо.

Вот за такие вот требования "пользователь видит не все документы, но в отчет эти документы должны попасть" надо язык этим пользователям отрывать ИМХО.

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

Ну либо еще, как говорил susinmn, вьюху с тоталами
 

garrick

Lotus Team
26.10.2009
1 349
151
BIT
176
Ещё можно сделать отчёт, доступный по HTTP. Пользователь вводит в броузере URL, на QueryOpen на сервере формируется отчёт и выплёвывается в окно браузера. Можно ту же фичу проделать и в UI Lotus Notes - зашить этот URL в какую-нибудь кнопку и открывать по @URLOpen. Да вообще много разных вариантов, ешё на ум приходит NotesAgent.RunWithDocumentContext, но в любом случае отчёт формируется на сервере, от имени пользователя которому "видно" все документы.
 
G

gpatron

А разве эта опция не только для серверных агентов?

Хелп:

When a user runs an agent from the Notes client, the agent runs with the rights of the effective user, which is the current User ID.

"Run on behalf of" only applies to web - and scheduled agents.

Т.е. также можно запустить на сервере, но права у агента будут не те, чьей учеткой он подписан, а те, кто указан "Run on behalf of"

согласен...

если нужно только посчитать кол-во документов то этого я думаю вполне достаточно...
сначала создаем документ, потом передаем этот документ в качестве параметра агента (запускаем его на сервере от имени пользователя с нужными правами), затем вытаскиваем из БД нужные данные, заполняем документ, а после уже пользователь сможет из этого документа вытащить нужные данные для своего отчета
как-то так
 
B

Baneslaer

А в Компании есть отдел отчетности или нечто похожее?
Возможно системы типа Информатики и обслуживающий их персонал?
Можно было бы выгружать необходимые данные в реляционку и пусть бы пользователи получали отчет из соответствующих систем.
Во-первых, если есть единый интерфейс для получения отчетов из любых систем, то это удобнее для пользователей.
Во-вторых это более правильно с точки зрения реализации подобного рода вещей.
 

duchan

Green Team
20.09.2006
127
11
BIT
107
@Dragon108 - Статистические данные и доступ к информации это разные вещи.
@Mitya, вопрос в том на сколько объемный получается отчет, если это небольшая статистическая таблица, то как писал выше @gpatron, создаем временный док-т (возможно в какой-то temp-овой базе), сохраняем его, в агент передаем параметром его NoteID, на сервере в серверном агенте получаем его (док-т) и заполняем поле списком с полученными параметрами. Я писал в поле примерно так
Код:
Иванов И.И.|123|234|456|987
Петров П.П.|222|333|444|555
Сидоров С.С.|321|543|765|999
Каждый элемент списка это строка таблицы. Далее сохранял этот док-т на сервере и возвращал управление клиенту. На клиенте переполучал документ, и строил таблицу в Ворде\Экселе перебирая элементы списка поля, Split'ом дробя строку по "|" и выводя в таблицу полученный массив.
Помните только об ограничениях простых полей на объем хранимой информации ... ;)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!