Я отлаживаю агент сценария лотоса, используя отладку сценария лотоса. Агент отлаживает нормально, но у меня внутри есть другой агент сценария лотоса, и мой отладчик не обрабатывает этот код построчно. Пожалуйста, помогите мне, как это сделать. Заранее спасибо.
Как отлаживать агент сценария лотоса внутри агента сценария лотоса
Ответы (2)
Агент, вызываемый в сценарии из другого агента, работает в фоновом режиме. Эти агенты не могут быть легко отлажены. Если вызываемый агент работает на сервере, вы можете использовать удаленный отладчик для отладки этого агента: вы должны включить его в документе сервера, запустить задачу удаленной отладки и включить удаленную отладку в свойствах вызываемого агента. Тогда вы должны быть быстрыми. Вы определяете задержку, которую каждый агент ожидает подключения отладчика, прежде чем он действительно начнет работать со своим кодом. За это время приходится запускать удаленный отладчик, открывать базу данных и выбирать агент для отладки... Довольно мучительно. И обычный отладчик должен быть выключен, а агент, который вы запускаете, должен работать в фоновом режиме клиента, иначе вы не сможете переключиться на удаленный отладчик...
Если оба агента — LotusScript и в этом нет необходимости, то они:
Запускать с разными правами или Запускать на разных серверах,
тогда обычно нет необходимости, чтобы агент вызывал другого агента. Вместо этого используйте скриптовые библиотеки и сабы/функции, тогда вам не нужны два агента...
Я рекомендую вам использовать простой журнал во втором агенте. Вы можете использовать NotesLog (см. справку разработчика Domino) или написать свой собственный класс по мере необходимости.
В своих приложениях я использую фреймворк LotusScript, написанный мной. В этой структуре у меня есть класс CS_Log, который подключается к базе данных LogAgents.nsf и записывает все в простые документы. Кроме того, у меня есть класс CS_Document с методом Dump, который, например, записывает полное содержимое документа.
В большинстве случаев отладка - лучший вариант. Но в таких случаях я предпочитаю записывать все в журнал.