Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/113: Рейтинг темы: голосов - 113, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 06.12.2004
Сообщений: 389

Compact в адресной книге

23.08.2006, 15:58. Показов 20834. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Возможно ли создание агента по сжатию БД в АК? Чтобы можно было просто встать на нужную уч.запись в АК и стартовать агента.
Если кто-то подскажет код агента или хотя бы в каком направлении идти, буду безмерно благодарен.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.08.2006, 15:58
Ответы с готовыми решениями:

Доступ к адресной книге
Добрый день! Вот решил обратиться к Вам за советом. Есть необходимость обратиться к данным в адресной книге в определенной базе, вот что...

Поиск в адресной книге в поле
У меня есть поле и рядом кнопка, которая вызывается пиклист и там ищется имя в АК. Затем результат подставляется в поле. Но мне нужно еще...

Поиск пользователя рассылки в адресной книге
Была поставлена задача, определить что пользователь который есть в рассылке есть и в адресной книге. Я подобные задачи решаю через 1С,...

14
0 / 0 / 0
Регистрация: 06.12.2004
Сообщений: 389
23.08.2006, 16:46
Либо каким-то запросом/действием от пользователя можно реализовать инициализацию процедуры сжатия почтовой базы сервером?
По умолчанию у пользователей нет прав на сжатие своей БД (уровень доступа - редактор).
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
23.08.2006, 16:57
Смотри в документе в АК поля "mailserver" и "mailfile".

Запускаем агент с ID текущего документа: NotesAgent.RunOnServer(doc.NoteID)
В агенте почтовую базу получаем так:
NotesDocument.GetDatabase(doc.mailserver (0) , doc.mailfile(0))
Дальше NotesDatabase.Compact
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
23.08.2006, 17:08
А вообще это в Администраторе делается.
0
0 / 0 / 0
Регистрация: 06.12.2004
Сообщений: 389
23.08.2006, 17:17
Про Администратора в курсе, разумеется ;)
Просто стоит задача переложить функцию по сжатию БД на НЕадминистратора - установка ему приложения Domino Administrator не желательна.

За подсказку большое спасибо - будем пробовать.
0
0 / 0 / 0
Регистрация: 06.12.2004
Сообщений: 389
31.08.2006, 14:46
Да, чувствуется, что не хватает теоретической базы мне.
Попробовал создать агент и вписать в него, что указал Medvedic - не прошло.

Можно ли поподробнее расписать, как написать агент, позволяющий из АК сжимать базы?
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
31.08.2006, 14:56
Ты покажи что написал. И что не прошло.
0
0 / 0 / 0
Регистрация: 06.12.2004
Сообщений: 389
31.08.2006, 15:48
Делал по наитию:
в раздел DocumentSelection вписал


NotesDocument.GetDatabase(doc.mailserver (0) , doc.mailfile(0))
в раздел Initialize


NotesDatabase.Compact
Вот такой агент получился. Чувствую, что бред сотворил, но не знаю, с какого конца подойти.

Один плюс в этой ситуации - подбил хоть начальство для себя на курсы по программированию, но они будут еще неизвестно когда, а агент уже сечас хотелось бы наваять.
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
31.08.2006, 16:32
Агента нужно создавать в АК.
Раздел DocumentSelection оставить пустым.
Trigger: "Action menu selection", если запускать из меню или "Agent list selection", если иначе.
Target - "All selected document"

В Initialize пишем:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dim session As New notesSession
Dim curdb As NotesDatabase
Dim maildb As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim i As Long
 
Set curdb = session.CurrentDatabase
Set dc = db.UnprocessedDocuments
For i = 1 To dc.Count
Set doc = dc.GetNthDocument(i)
Set maildb = session.GetDatabase(doc.mailserver(0) , doc.mailfile(0))
Call maildb.Compact
Next
Вроде так.
Соответственно у пользователя должны быть необходимые права.
Если прав нет или нет желания давать, то надо чуть по-другому делать.
В представлении в АК сделать кнопку. Где вызывать агента методом notesAgent.RunOnServer с ID документа в параметре.
Код кнопки вот такой:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Dim ws As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim agent As notesAgent
Dim uiview AS notesUIView
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim i As long
 
Set db = session.CurrentDatabase
Set agent = db.GetAgent("наш агент")
Set uiview = ws.CurrentView
Set dc = uiview.Documents
for i = 1 to dc.Count
Set doc = dc.GetNthDocument(i)
Call agent.RunOnServer(doc.NoteID)
Next i
В агенте Trigger ставим On Schedule.
Target: "All documents"
Trigger: "Action menu selection", если запускать из меню или "Agent list selection", если иначе.
Target - "All selected document"

В Initialize пишем:

Code
1
2
3
4
5
6
7
8
9
10
11
12
Dim session As New notesSession
Dim curdb As NotesDatabase
Dim agent As NotesAgent
Dim maildb As NotesDatabase
Dim doc As NotesDocument
 
Set curdb = session.CurrentDatabase
Set agent = session.CurrentAgent
Set doc = curdb.GetDocumentByID(agent.ParameterDocID)
Set maildb = session.GetDatabase(doc.mailserver(0) , doc.mailfile(0))
Call maildb.Compact
Next
Подписываем админом и, если нигде не ошибся, то должно работать. :D

Во накатал-то.
0
0 / 0 / 0
Регистрация: 06.12.2004
Сообщений: 389
31.08.2006, 17:55
Из суеверия благодарить раньше времени не буду - чтобы заработало всё без проволочек.
Пробую. Думаю, такая вещь полезна будет не только мне.
0
0 / 0 / 0
Регистрация: 06.12.2004
Сообщений: 389
31.08.2006, 18:08
По первому коду агента для пользователя с правами админа:
Написал агента, подписан он подо мной, имеющим полные админские права.

В АК встаю на строчку уч. записи или выделяю её, пытаюсь запустить агента, выдает ошибку:


Variant does not contain an object
Вариант для обычного пользователя с кнопкой в представлении АК опробую уже в понедельник. Но уже есть вопрос. В последнем третьем куске кода строчка Next не нужна, как я понимаю? Ведь цикла там нет.
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
03.09.2006, 09:22
Для: Wanderer
Да. В первом куске здесь ошибка:
Set dc = db.UnprocessedDocuments
Должно быть
Set dc = curdb.UnprocessedDocuments

Next не нужен.
0
0 / 0 / 0
Регистрация: 06.12.2004
Сообщений: 389
03.09.2006, 14:12
Первый кусок поправил. При попытке запустить агент выдается следующее сообщение:


Only local databases can be compacted (CN=.../OU=.../O=...!!!mail\....nsf)
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
03.09.2006, 16:14
Тогда облом.
Метод работает только на локальных базах.
0
0 / 0 / 0
Регистрация: 06.12.2004
Сообщений: 389
07.09.2006, 11:28
Такая хорошая идея и так завершилась бесславно. :(
Неужели нельзя никак обойти проблемы с работой агента только на локальных базах??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.09.2006, 11:28
Помогаю со студенческими работами здесь

Не найдено в адресной книге
Севрер Domino 8.5. Поставил Нотес клиент 5 версии, запускаю, после всех настроек выдает ошибку "Имя Не найдено в адресной...

Пропал поиск в адресной книге
В общем когда выбираешь юзера из адресной книги... то обычно это делается через поиск. Поиск пашет на англ.язе и на русском (русский...

Ограниченный поиск на русском языке в адресной книге
Добрый день. Подскажите может кто сталкивался. После установки Lotus Domino 8.5.2 на windows server 2016 некорректно работает...

Планшет в качестве органайзера, замена адресной/телефонной книге
Собственно, нужно толстую адресно-телефонную книгу с различными заметками перенести на планшет. Также делать заметки стилусом или...

В адресной книге постоянно создаётся контакт "Я", как удалить навсегда?
Доброго дня. Имеется телефон Samsung Galaxy Star Advance (Android 4.4.2). После каждой перезагрузки в адресной книге создаётся контакт...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru