Агент lotusscript, вызывающий другого агента lotusscript, не работает - PullRequest
0 голосов
/ 17 мая 2019

1.) В веб-форме у меня есть кнопка «Примечания» (не ввод HTML или тег кнопки) ..... она вызывает агента Lotusscript с помощью команды @Command ([RunAgent]; "agentname") ....это нормально работает

2.) Последняя строка вызывает другого агента Lotusscript с помощью «runonserver»

3.) Этот второй агент пытается использовать «DocumentContext» для идентификацииВ текущем документе, но, похоже, он не может этого сделать, ошибка, которую я зарегистрировал, указывает на то, что это так.

Итак, у меня есть вопрос ... как я мог получить первыйзапустить агент и успешно использовать «DocumentContext», а затем вызвать второго агента, и затем этот агент идентифицирует тот же документ в качестве первого используемого?У этого второго агента есть свой собственный:

  • Dim s как новая сессия заметок
  • Dim db как база данных заметок
  • Dim thisdoc как документ заметок
  • set db =s.currentdatabase

... и затем он пытается установить этот документ с помощью: set thisdoc = s.DocumentContext

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

Может быть, есть простое решение, о котором я сейчас не думаю.Я знаю, что могу поставить две кнопки @Command ([RunAgent] ... за кнопкой, но у этого есть свои проблемы, поэтому мне интересно, если у кого-то есть какая-то хитрая / умная идея о том, что я могу сделать.

Ответы [ 2 ]

2 голосов
/ 18 мая 2019

Поскольку вы пытаетесь использовать один и тот же агент как из кнопки, так и из вызова RunOnServer, и это не может работать (согласно ответу @ Duston), лучше всего переместить большую часть кода этого агента в подпрограмма или функция в библиотеке сценариев, а затем два агента. Один агент получает контекст документа, как вы делаете сейчас, и передает его в код библиотеки скриптов. Другой использует agent.paramaterID и getDocumentById и передает его в код библиотеки сценариев.

2 голосов
/ 18 мая 2019

DocumentContext - это структура памяти, передаваемая агенту, поэтому в файле database.documentcontext такого нет.Что вам нужно сделать, это сохранить DocumentContext как документ, а затем передать NoteID (не UNID) второму агенту.Посмотрите, работает ли это для вас.

https://www.ibm.com/developerworks/lotus/library/ls-Run_and_RunOnServer/index.html

...