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

Тема в разделе "Lotus - Программирование", создана пользователем Ruslan280, 19 ноя 2015.

  1. Ruslan280

    Ruslan280 Well-Known Member

    Регистрация:
    18 апр 2013
    Сообщения:
    49
    Симпатии:
    0
    Подскажите - такая необходимость возникла - сохранить параметр пока юзер лотус не закроет.
    Как можно реализовать? или хотя бы в течение дня чтобы хранился
     
  2. garrick

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    773
    Симпатии:
    52
    Вариантов много:
    1. в базе cache.ndk;
    2. в файле notes.ini (см. @Environment):
    3. в любой специально созданной для этого базе;
    4. в профайле текущей базы.
     
  3. Ruslan280

    Ruslan280 Well-Known Member

    Регистрация:
    18 апр 2013
    Сообщения:
    49
    Симпатии:
    0
    где то я знаю, вопрос как ограничить текущей сессией.
     
  4. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    @Ruslan280,
    Этот файл нельзя снести пока клиент загружен.
    В ОС делается задание, которое пытается снести данный файл, если не удалось, то клиент открыт.
     
  5. garrick

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    773
    Симпатии:
    52
    Может быть, если вы более конкретно опишите стоящую перед вами задачу, нам будет легче вам подсказывать.
    Что вы имеете ввиду под "сессией", запуск клиента Lotus Notes, открытие какой-то конкретной базы данных и т.п.? Какую проблему вы пытаетесь этим решить?
     
  6. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
    в очереди, когда её удалять - решить самому
    время жизни макс. ограничено временем жизни приложения
     
  7. Ruslan280

    Ruslan280 Well-Known Member

    Регистрация:
    18 апр 2013
    Сообщения:
    49
    Симпатии:
    0
    сохранить параметр пока юзер лотус не закроет.

    конкретно - я запрашиваю у юзера пароль и он должен использоваться пока юзер не закрыл лотус.
    [DOUBLEPOST=1447944156,1447944113][/DOUBLEPOST]
    что за "очередь" ? можно подробнее?
    [DOUBLEPOST=1447944293][/DOUBLEPOST]
    можно примерный пример? ) я в этой базе создаю док и туда прописываю пользователя и параметр.
    и как потом искать? search ?
     
  8. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
  9. garrick

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    773
    Симпатии:
    52
    Э-э-э-э... осмелюсь спросить "пароль от Lotus Notes или какой-то другой системы?"
     
  10. Ruslan280

    Ruslan280 Well-Known Member

    Регистрация:
    18 апр 2013
    Сообщения:
    49
    Симпатии:
    0
    спасибо, это то что надо конечно, но эти очереди это просто... капец
    поищу что-нибудь по-проще
     
  11. Ruslan280

    Ruslan280 Well-Known Member

    Регистрация:
    18 апр 2013
    Сообщения:
    49
    Симпатии:
    0
    логин-пароль от другой системы. просто надо сохранить чтобы каждый раз юзеру не пришлось вводить.
    но если он закрыл лотус- то эти данные должны удаляться.
    cache.ndk очищается при перезапуске?
     
  12. garrick

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    773
    Симпатии:
    52
    Создайте в cache.ndk документ доступный только текущему пользователю (Authors/Readers поля) и не заморачивайтесь с его удалением. Каждый раз читайте из него логин/пароль, если вдруг будет ошибка при подключении (изменился пароль), "переспросите" и сохраните новое значение. Например, ScanEz как-то так делает.
     
  13. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
    не понял - там готовый класс - "бери, пользуйся"
     
  14. Ruslan280

    Ruslan280 Well-Known Member

    Регистрация:
    18 апр 2013
    Сообщения:
    49
    Симпатии:
    0
    проверил - cache.ndk не очищается после перезапуска клиента.
    в общем нормального механизма сохранить переменную сессии в лотусе не нашел.(очереди mq не беру из за сложности)

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

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

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
    какие сложности?
    создали
    Dim queue As New NotesMessageQueue({MyQueue})
    записали значение queue.Message={fake value}
    считали значение s=queue.Message
    считывание - удаляет значение, а потому опять его туда заносим queue.Message=s
    умолчально AutoClose=True
    это означает, что при удалении объекта - очередь удалится, избежать подобного можно выставив
    queue.AutoClose=False
    но в этом случае - время жизни очереди будет = перезапуску нотусни
    Т.о. управление временем жизни может протекать через умолчальное значение (AutoClose=True) - время жизни объекта, создавшим очередь первым, определяет время жизни очереди.

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

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    567
    Симпатии:
    214
    - нет там сложности. Как @lmike написал "бери, пользуйся"(с). Вся "сложность" - положить код в библу...
    Примеры использования (элементарные) были здесь...
    1 Если
    сугубо для этого юзера - писать в профайл этого юзера без сохранения. Ващще без заморочек...
    2 Если инфа для ВСЕХ - писать в MQ.
    И первое и второе - работа с оперативкой. Соотв. нет нужды следить за геморами при крахе нотуса\внезапного выкл.компа\и т.д.

    - что будет если напр. пропадёт питание компа и юзверь снова запустит нотус? ;)
     
  17. Ruslan280

    Ruslan280 Well-Known Member

    Регистрация:
    18 апр 2013
    Сообщения:
    49
    Симпатии:
    0
    как можно сохранить переменную если записать профайл без сохранения?


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

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
    очень редкий случай
    это надо чтобы юзер сделал switchID (другой) в нотусне
    если разговор о клиенте (и AutoClose=False), на сервере - вопрос в топике не стоит
    т.е. подходы 1 и 2 эквивалентны для обычного использования
    но MQ проще использовать и контролировать
     
  19. Ruslan280

    Ruslan280 Well-Known Member

    Регистрация:
    18 апр 2013
    Сообщения:
    49
    Симпатии:
    0
    в описании либы для MQ текст:
    Отлаживались они только под win32- R5, но в R6 , думаю, должны работать, т.к. никаких противопоказаний нет.

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

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

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
    это комментарии оригинала, сохранены
    этот код (костяк) писал Дмитрий Акулов, я его модифицировал и дополнил для работы на платформах нотусни, но описание не менял
    ДА писал только для винды
    насчет - толком не документированное - это шутка?
    Ваш код ещё кто-то будет использовать? а АПИ у вас есть и оно документировано? ;)
    Давайте рассмотрим ваши варианты ;)
    [DOUBLEPOST=1448029875,1448029656][/DOUBLEPOST]оригинал http://web3.inttrust.ru/site/itforum.nsf/all/E580AE7CC3E75721C3256F5900815FB0?OpenDocument
     
Загрузка...

Поделиться этой страницей