Не знаю, о чем идет речь, но у меня есть на это ответ.Итак, вы хотите поместить логику в «панель инструментов», чтобы вы могли запустить ее в любой базе данных, верно?Вы должны быть в состоянии вызвать агента, который выполняет эту работу.Что ж, если вы делаете это для почтовых файлов только , вы можете вызвать команду
@Command([ToolsRunMacro];"Archive\\Archive Selected Documents");
. Вам понадобится двойной обратный слеш, поскольку после сохранения он "экранированный".
Но если вы хотите попробовать это для работы с любой базой данных, у вас возникнут некоторые проблемы.
Панели инструментов имеют довольно небрежный способ поиска агентов, которых вы хотите запустить,Потому что, если вы пытаетесь запустить агент с панели инструментов, формула на кнопке панели инструментов принимает базу данных текущего просмотра, которую вы просматриваете, а также базу данных с агентом.
Это не лучше, чем копировать агент в любую другую базу данных, на которой вы хотите запустить агент.Вот почему вышеприведенное решение для архива работает только в почтовых файлах, так как агент должен быть в каждом случае.
В противном случае вам придется копировать требуемого агента повсюду.Чтобы доказать это, простой тест.Создайте кнопку панели инструментов со следующей формулой.
@Prompt([Ok];"Hello Notes..";@Implode(@DbName;@Char(13)));
Теперь откройте любую базу данных.Обратите внимание, что подсказка фактически показывает вам детали открытой в данный момент базы данных.Вот где будет выглядеть кнопка панели инструментов при попытке запустить этот агент архивации.
Поскольку в команде формулы Notes невозможно указать местоположение базы данных в @command ([ToolsRunMacro]), мы не можем вызвать централизованного агента, который выполнил бы ту работу, которую, я думаю, выпостулирование.
Хорошая идея и стоящая проблема, которую должен решить производитель, но это одна из многих вещей, с которыми IBM никогда не сталкивалась с тех пор ... давным-давно.