• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Отображение задачи в календаре

  • Автор темы oleg7
  • Дата начала
N

nvyush

Добавлено: nvy
cfd разве что с @thisvalue покатит - оно ж при уи-сохранении пересчитывается...
наверно, можно при открытии запихнуть прежних в глобальную переменную на форме, если документ не переоткрывается кодом?
Именно с @thisvalue (или со своим именем) в формуле значения и имелось ввиду. Можно также добавлять поля в бэкэнде с SaveToDisk = False.
 
O

oleg7

решил, что пока хватит того, что у предыдущего исполнителя, при смене исполнителя, задача будет иметь статус выполнена
у меня есть поле на форме oldown
@If( @IsDocBeingLoaded; Owner; @ThisValue )
мне надо теперь у пользователя, который указан в данном поле закрыть задачу. Правильно ли я понимаю ход решения и мне это тоже проверять в агенте или в самой форме при сохранении?
Добавлено: пробовал добавить еще один агент по типу сделанного
Код:
Set doc = db.GetDocumentByID(NoteId)	
Forall adr In doc.GetItemValue("oldOwner") 
mailfile = Evaluate({@NameLookup([Exhaustive]; "} + adr + {";"MailFile")}) 	
If mailfile(0) <> "" Then
Set mailDB = s.GetDatabase(db.Server, mailfile(0),True)
Set maildocs = mailDB.Search({(DocUNID="} & doc.UniversalId & {")}, Nothing, 0)
Set maildoc = maildocs.GetFirstDocument
Do Until maildoc Is Nothing
Call maildoc.ReplaceItemValue("DisplayStatus", "Завершенная")
Call maildoc.ReplaceItemValue("DueState", 9) 				
Call maildoc.ReplaceItemValue("CompletedDateTime", doc.DateClosed)
Call maildoc.save(True,True)
Set maildoc = maildocs.GetNextDocument(maildoc)
Loop			
End If
а агент запускать из пост сайве
Код:
If( note.Owner(0) <> "" ) Then 
If( note.oldOwner(0) <> "" ) Then 
Dim agentold As NotesAgent
Set agentold = db.GetAgent("Test2")
agentold.RunOnServer(Source.Document.NoteId)
End If
End If
но ничего не происходит для пользователей указанных в поле oldowner
 
N

nvyush

решил, что пока хватит того, что у предыдущего исполнителя, при смене исполнителя, задача будет иметь статус выполнена
у меня есть поле на форме oldown
@If( @IsDocBeingLoaded; Owner; @ThisValue )
мне надо теперь у пользователя, который указан в данном поле закрыть задачу. Правильно ли я понимаю ход решения и мне это тоже проверять в агенте или в самой форме при сохранении?
Когда советовал про cfd-поле упустил из виду, что обработка ведётся серверным агентом. Придётся хранить старое значение поля исполнителей в документе, вся обработка — в агенте.

Добавлено
Отвечал, когда текста агента в предыдущем посте ещё не было. Проблема, видимо, в том, что поле OldOwner cfd и в документе отсутствует. Его тоже придётся сохранять.
 
H

hosm

в документе, чтоб передавать агенту. потом (после отработки агента) его можно удалить из документа.
 
O

oleg7

не могу понять где мне именно его в документе сохранять :welcome:
 
O

oleg7

установите на второй вкладке свойств агента run on behalf of... имя сервера и подпишите сервером. Возможно, придётся поднять security level (там же).
если я запускаю от сервера, на security level ставлю Allow restricted operayions (проверил уже все три варианта -эффеки одинаковый) , тогда агент не срабатывает. Что я делаю не так?
 
H

hosm

а есть ли права на сервере (в документе сервера на вкладке Безопасность) запускать лотусскриптовые агенты вообще и от имени кого-либо?

Добавлено: в общем, это:
Run unrestricted methods and operations:
Sign agents to run on behalf of someone else: (!!!)
Sign agents to run on behalf of the invoker of the agent:
Run restricted LotusScript/Java agents: (если повышаем уровень)
 
O

oleg7

да я понял где смотреть, там указан сервер и админ, от которого я запускал агент. От админа агент работает, а если сервер указан - нет

а если на вкладке Безопасность указан Админ, что он имеет право запускать агенты, тогда я ведь могу оставить админа, а не сервер, для запуска агента?
 
H

hosm

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

oleg7

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

nvyush

oleg7
Проблема только в правах, это уже не программирование, а администрирование. Нужно внимательно посмотреть настройки, OKEN перечисляла какие: link removed
 
H

hosm

Как агент настроен (runtime на 1-й странице свойств) ?
Что говорит действие Test в дизайнере, что-то есть в логе сервера?
Есть права запуска агентов на сервере?
nvy, как такой вариант:
Можно сделать шедульный агент на сервере с расписанием Never, запускать на сервере и передавать ему документ, т.е. код запуска агента не меняется, меняются настройки агента (если надо 1-я - runtime и 2-я закладка - убрать, от имени кого запускать).
хотя опять могут вылезти вопросы прав... :)
 
O

oleg7

OKEN
агент:
Option - Shared
Trigger - On event
Run on behalf of - <сервер>
Set runtime security level- 2.Allow restricted operation

права запуска агентов на сервере:
Run unrestricted methods and operations: - указан сервер
Sign agents to run on behalf of someone else: - указан сервер
Sign agents to run on behalf of the invoker of the agent: - указан сервер
Run restricted LotusScript/Java agents: - указан сервер
Run Simple and Formula agents: - указан сервер

в логах ничего не нашел

Что говорит действие Test в дизайнере
- это что имеется ввиду? т.е. если запустить из дизайнера агент? если правильно понял, то указав явно NoteId, запускаю агент и получаю:
Started running agent 'Test' on 21.01.2010 11:56:30
Running on new mail messages: 0 total
Found 0 document(s) that match search criteria
Ran LotusScript code
Done running agent 'Test' on 21.01.2010 11:56:30

если запускать из дизайнера, тогда агент срабатывает
 
O

oleg7

после того, как указал название сервера в настройках сервера Sign script libraries to run on behalf of someone else: - агент заработал
 
H

hosm

да, есть такой момент, видела эту настройку, но не указала...
мы ж не телепаты, о наличии подключения библиотек в агенте речи не было. :angry2:
кстати, Test - это пункт контекстного меню списка агентов в дизайнере (сразу под Run, сейчас под рукой дизайнер версии 7).

<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">пункт Test:</div></div><div class="sp-body"><div class="sp-content">
агент реально ничего не делает с документами, проверяет права запуска и цель (Target) агента, т.е. фактически агент не выполняется
выдает сообщение - нечто подобное такому и может указать на ошибки прав:

1й агент - (Agent list selection, target - none):
The following will occur when this agent is run:
Started running agent 'Test' on 21.01.2010 17:08:26
Testing: Ran LotusScript code
Done running agent 'Test' on 21.01.2010 17:08:26

2й агент - по расписанию:
The following will occur when this agent is run:
'...' has unrestricted rights to run LotusScript/Java agents on '...'.
Allow restricted operations flag is selected. Restriction operations will be allowed.
Full administrator rights will be granted on server '...'.
Agent scheduled to never run.

Started running agent '...' on 21.01.2010 17:13:26
Running on all documents in database: 177 total
Found 177 document(s) that match search criteria
Testing: Ran LotusScript code
Done running agent '...' on 21.01.2010 17:13:26
 
O

oleg7

у меня еще возникла проблема :angry2:
Есть два сервера, на одном лежала база и ее же и настраивал. Там все заработало
Но если пользователь указывается со второго сервера, то пишет, что сервер не имеет право выполнять операцию. Хотя добавил в почтовый ящик сервер1 (он не основной) и в настройках второго сервера на запуск агентов указал сервер1.
Может подскажете, что еще надо добавить?
 
H

hosm

Но если пользователь указывается со второго сервера, то пишет, что сервер не имеет право выполнять операцию.
а какую - открытие почтовой БД, изменение документа-задачи?
может, решается через настройку Trusted Servers?
либо достаточный доступ (минимум едитор) к документам на 2м сервере 1му серверу...
+ настройки безопасности в документе сервера2, сделанные ранее для 1-го сервера.
 
Мы в соцсетях:

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