Names.nsf Не Дает Работать

Тема в разделе "Lotus - Программирование", создана пользователем beloff, 8 окт 2013.

  1. beloff

    beloff Well-Known Member

    Регистрация:
    24 июл 2012
    Сообщения:
    103
    Симпатии:
    0
    Всем хай. Проблема с обращением к корпоративной директории (names.nsf). Оттуда нужно вытянуть из учетной карточки поле InternetAddress (для корпоративной подписи единообразной), проблема в том что программно база подключается, но работать с собой ни в какую не дает. Коллекции не ищет. Дебаг показывает, что база открыта, задаю поиск - коллекция даже не думает искаться, просто проскакивает этот пункт, переменная пустая. Обычно хоть count = 0 показывает, тут бы никаких проблем,понятно что дело не в бобине. Права стоят максимальные. Вобщем, Ай Нид Хэлп.
     
  2. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    вьюху тоже не получить?

    Добавлено: Вот такой ошибки не возникает?
     
  3. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    Клиентский/серверный агент?
    Если серверный в пределах одного работает?
    Разрешения?
    db.IsOpen показывает True? или только в дебагере это ?
     
  4. beloff

    beloff Well-Known Member

    Регистрация:
    24 июл 2012
    Сообщения:
    103
    Симпатии:
    0
    вьюха получается, и ентри тоже получается но вот стремаюсь вьюху свою склепать чтобы нужное инфо получить (GetDocumentByKey) чтобы не положить всю базу, она ж одна на все сервера реплицируется

    Добавлено: db.IsOpen показывает True, пока тестирую на клиенте (т.к. нужно потом в автоматический серверный режим перевести), открываю на том же сервере - тот же результат, т.е. никакой.
     
  5. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    Ну стрёмно или не стрёмно, а Search работать будет дольше, чем GetDocumentByKey.
    Можно попробовать сделать ReBoot но думаю не вариант :)
    Попробуй получить документ или Entry, а из нее уже потом документ или даже просто значение колонок...


    Добавлено:
    Для автоматической рассылки?
    Просто я не уверен что можно при отправке письма вставлять подпись на каждого сотрудника автоматически при отправке из его ПЯ.
    Да и кажись точно не возможно.
    А если эта рассылка идет из какой-то базы, то проще сделать список отправителей с подписями в каждое письмо вставлять необходимый текст из справочника.
     
  6. beloff

    beloff Well-Known Member

    Регистрация:
    24 июл 2012
    Сообщения:
    103
    Симпатии:
    0
    GetDocumentByKey все берет, док получен, осталось в шаблон подсунуть вьюху. Интересно, почему GetDocumentByKey работает а Search нет. Загадки во тьме
     
  7. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    раз так, то формулу сёча покажь :)
     
  8. beloff

    beloff Well-Known Member

    Регистрация:
    24 июл 2012
    Сообщения:
    103
    Симпатии:
    0
    nie ma sprawy.

    Set maildb = ses.GetDatabase("msqbw2/BWD","names.nsf") 'все подключается все нормально
    strg = {Form = "Person" & @Contains(FullName;}+key+{)}
    Set mcol = maildb.Search(strg,Nothing,1) ' тут коллекция пустая, не просто count=0 , а EMPTY

    а если так
    Set mview = maildb.GetView("main")
    key = entry.ColumnValues(13)
    Set mdoc = mview.GetDocumentByKey(key)
    xlSheet.Cells(i,9).Value = mdoc.InternetAddress(0)

    здесь все окай
     
  9. Мыш

    Мыш Lotus team
    Lotus team

    Регистрация:
    12 фев 2008
    Сообщения:
    1.020
    Симпатии:
    8
    beloff, key надо в кавычки обернуть, как минимум.
     
  10. beloff

    beloff Well-Known Member

    Регистрация:
    24 июл 2012
    Сообщения:
    103
    Симпатии:
    0
    думаю это без разницы, поисковая строка формировалась нормально
     
  11. Мыш

    Мыш Lotus team
    Lotus team

    Регистрация:
    12 фев 2008
    Сообщения:
    1.020
    Симпатии:
    8
    Если key - строковая переменная, то 146% надо в кавычки...
    Вообще, проверил у себя - все работает и находится...
     
  12. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    это не причина возвращать Empty объект, вместо созданного и незаполненного из Search.
     
  13. beloff

    beloff Well-Known Member

    Регистрация:
    24 июл 2012
    Сообщения:
    103
    Симпатии:
    0
    точно, ищет. Значит сам мир. Позор на седины
     
  14. Мыш

    Мыш Lotus team
    Lotus team

    Регистрация:
    12 фев 2008
    Сообщения:
    1.020
    Симпатии:
    8
    savl, вот с этим согласен - мне лично в исходном варианте выдавало type mismatch. Баг дебаггера... :)
     
  15. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    строки рулят :).. истина всегда где-то рядом
     
  16. beloff

    beloff Well-Known Member

    Регистрация:
    24 июл 2012
    Сообщения:
    103
    Симпатии:
    0
    отчего и затупил - строка поиска не ругалась на некорректность, коллекция пустая. Подумал мот засекреченая база
     
  17. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    Мыш
    Вопрос типизации, если key был строка, то ошибки не будет, если вариант, то возможна.
    beloff
    А вот это не мудрено, ошибку Db.Search выдаст только если не сможет сделать Evaluate от этой формулы.
    Лучший способ проверки формулы для Search: вьюха (при возможности ее сделать), либо:
    Код (LotusScript):
    dim macro as variant
    macro =Evaluate(sFormula,doc)
    Где sFormula наш поисковый запрос, а doc документ попадающий под условия.
    Если macro(0) = 1 все ок, формула рабочая, как минимум для одного документа.

    Но использовать Search для поиска только одного документа, ну право не надо :)
    Вьюха лучше)
     
  18. Мыш

    Мыш Lotus team
    Lotus team

    Регистрация:
    12 фев 2008
    Сообщения:
    1.020
    Симпатии:
    8
    У меня (без кавычек и еще без явного объявления каких-то переменных, коллеции что ли) стабильно Mismatch вываливало, что с вариантом, что со строкой, чесслово. Ну фик знает...
     
  19. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    Мыш
    Забавно) значит мой клиент такой))
    а у меня вот так:
    Release 8.5.3FP2|July 03, 2012
     
  20. Мыш

    Мыш Lotus team
    Lotus team

    Регистрация:
    12 фев 2008
    Сообщения:
    1.020
    Симпатии:
    8
    savl, ну мы ж не абсолютно одинаковый код наверняка использовали. У меня, к слову, 8.5.3 FP5...
     
Загрузка...

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