Решено Как сохранить параметр до выхода из notes client

Ruslan280

Well-Known Member
18.04.2013
50
0
#1
Подскажите - такая необходимость возникла - сохранить параметр пока юзер лотус не закроет.
Как можно реализовать? или хотя бы в течение дня чтобы хранился
 

Ruslan280

Well-Known Member
18.04.2013
50
0
#3
Вариантов много:
  1. в базе cache.ndk;
  2. в файле notes.ini (см.
    Чтобы видеть этот контент необходимо: Войти или зарегистрироваться
    ):
  3. в любой специально созданной для этого базе;
  4. в профайле текущей базы.
где то я знаю, вопрос как ограничить текущей сессией.
 

garrick

Well-Known Member
Lotus team
26.10.2009
869
69
Москва
#5
где то я знаю, вопрос как ограничить текущей сессией.
Может быть, если вы более конкретно опишите стоящую перед вами задачу, нам будет легче вам подсказывать.
Что вы имеете ввиду под "сессией", запуск клиента Lotus Notes, открытие какой-то конкретной базы данных и т.п.? Какую проблему вы пытаетесь этим решить?
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 442
352
homepage.mac.com
#6
в очереди, когда её удалять - решить самому
время жизни макс. ограничено временем жизни приложения
 

Ruslan280

Well-Known Member
18.04.2013
50
0
#7
Может быть, если вы более конкретно опишите стоящую перед вами задачу, нам будет легче вам подсказывать.
Что вы имеете ввиду под "сессией", запуск клиента Lotus Notes, открытие какой-то конкретной базы данных и т.п.? Какую проблему вы пытаетесь этим решить?
сохранить параметр пока юзер лотус не закроет.

конкретно - я запрашиваю у юзера пароль и он должен использоваться пока юзер не закрыл лотус.
 
в очереди, когда её удалять - решить самому
время жизни макс. ограничено временем жизни приложения
что за "очередь" ? можно подробнее?
 
@Ruslan280,


Этот файл нельзя снести пока клиент загружен.
В ОС делается задание, которое пытается снести данный файл, если не удалось, то клиент открыт.
можно примерный пример? ) я в этой базе создаю док и туда прописываю пользователя и параметр.
и как потом искать? search ?
 

Ruslan280

Well-Known Member
18.04.2013
50
0
#11
Э-э-э-э... осмелюсь спросить "пароль от Lotus Notes или какой-то другой системы?"
логин-пароль от другой системы. просто надо сохранить чтобы каждый раз юзеру не пришлось вводить.
но если он закрыл лотус- то эти данные должны удаляться.
cache.ndk очищается при перезапуске?
 

garrick

Well-Known Member
Lotus team
26.10.2009
869
69
Москва
#12
Создайте в cache.ndk документ доступный только текущему пользователю (Authors/Readers поля) и не заморачивайтесь с его удалением. Каждый раз читайте из него логин/пароль, если вдруг будет ошибка при подключении (изменился пароль), "переспросите" и сохраните новое значение. Например, ScanEz как-то так делает.
 

Ruslan280

Well-Known Member
18.04.2013
50
0
#14
проверил - cache.ndk не очищается после перезапуска клиента.
в общем нормального механизма сохранить переменную сессии в лотусе не нашел.(очереди mq не беру из за сложности)

сделал так-создаю в своей базе документ-там пишу текущую дату, имя юзера и переменную.
потом при запросе - ищу документ db.search({form="cache" & username=}+session.username
если дата совпадает то беру значение

получается сессия в рамках дня
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 442
352
homepage.mac.com
#15
очереди mq не беру из за сложности
какие сложности?
создали
Dim queue As New NotesMessageQueue({MyQueue})
записали значение queue.Message={fake value}
считали значение s=queue.Message
считывание - удаляет значение, а потому опять его туда заносим queue.Message=s
умолчально AutoClose=True
это означает, что при удалении объекта - очередь удалится, избежать подобного можно выставив
queue.AutoClose=False
но в этом случае - время жизни очереди будет = перезапуску нотусни
Т.о. управление временем жизни может протекать через умолчальное значение (AutoClose=True) - время жизни объекта, создавшим очередь первым, определяет время жизни очереди.

и эта простая логика вызывает у вас вброс термина "из за сложности"!?
я стесняюсь спросить - а вы программировать не боитесь (из-за сложности) ;)
 

alexas1

Well-Known Member
Lotus team
10.04.2014
689
239
#16
очереди mq не беру из за сложности
- нет там сложности. Как @lmike написал "бери, пользуйся"(с). Вся "сложность" - положить код в библу...
Примеры использования (элементарные) были здесь...
1 Если
сохранить параметр пока юзер лотус не закроет.
сугубо для этого юзера - писать в профайл этого юзера без сохранения. Ващще без заморочек...
2 Если инфа для ВСЕХ - писать в MQ.
И первое и второе - работа с оперативкой. Соотв. нет нужды следить за геморами при крахе нотуса\внезапного выкл.компа\и т.д.

сделал так-создаю в своей базе документ-там пишу текущую дату, имя юзера и переменную.
потом при запросе - ищу документ db.search({form="cache" & username=}+session.username
если дата совпадает то беру значение
- что будет если напр. пропадёт питание компа и юзверь снова запустит нотус? ;)
 

Ruslan280

Well-Known Member
18.04.2013
50
0
#17
- нет там сложности. Как @lmike написал
1 Если сугубо для этого юзера - писать в профайл этого юзера без сохранения. Ващще без заморочек...
как можно сохранить переменную если записать профайл без сохранения?


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

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 442
352
homepage.mac.com
#18
2 Если инфа для ВСЕХ - писать в MQ.
очень редкий случай
это надо чтобы юзер сделал switchID (другой) в нотусне
если разговор о клиенте (и AutoClose=False), на сервере - вопрос в топике не стоит
т.е. подходы 1 и 2 эквивалентны для обычного использования
но MQ проще использовать и контролировать
 

Ruslan280

Well-Known Member
18.04.2013
50
0
#19
но MQ проще использовать и контролировать
в описании либы для MQ текст:
Отлаживались они только под win32- R5, но в R6 , думаю, должны работать, т.к. никаких противопоказаний нет.

"должны работать" -то есть даже автор не уверен , а я буду использовать нигде толком не документированные api??

а в своем коде я уверен. он простой, понятный и делает то что мне надо.
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 442
352
homepage.mac.com
#20
"должны работать" -то есть даже автор не уверен , а я буду использовать нигде толком не документированные api??

а в своем коде я уверен. он простой, понятный и делает то что мне надо.
это комментарии оригинала, сохранены
этот код (костяк) писал Дмитрий Акулов, я его модифицировал и дополнил для работы на платформах нотусни, но описание не менял
ДА писал только для винды
насчет - толком не документированное - это шутка?
Ваш код ещё кто-то будет использовать? а АПИ у вас есть и оно документировано? ;)
Давайте рассмотрим ваши варианты ;)
 
оригинал
Чтобы видеть этот контент необходимо: Войти или зарегистрироваться