Линк дока на другую базу

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

  1. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Подскажите, пожалуйста
    Во вью нажимаю на кнопку... В кнопке запуск агента на сервере.
    В этом агенте я хочу получить базу которая лежит на другом сервере и из этой базы получить док...
    Возможно ли это?
    У меня пишет ошибку:
    Error 4063 on line 32: Database XXXXXXXXXX.nsf has not been opened yet
     
  2. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Код (Text):
    Dim directory As New NotesDbDirectory( "" )
    Dim db As NotesDatabase
    Set db = directory.GetFirstDatabase( DATABASE )
    Call db.Open( "", "" )
     
  3. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    xalet , врядли, что-то не то
     
  4. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Ошибка в 32 строке. :)
    Может прав нет?

    Добавлено: Нужен код.
     
  5. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Прав нет у кого ? у меня? у сервера?

    Когда я запускаю агент дебаггером все работает
    Когда делаю runOnServer, то базу вроде как получаю, а вот сам документ нет.... Ошибка при получении документа:

    32 строка: Set docTR = dbTR.GetDocumentByUNID( "F01F3ADF97E1A24565257661003C166F" )
     
  6. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    У того, кем подписан агент.
    Базу как получаешь? С путями нормально?
     
  7. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Medevic ,

    Пробовал разными способами:
    Код (Text):
    Dim dbTR     as New NotesDatabase("","")
    If Not dbTR.OpenByReplicaID( SERVER_TR, "8025761C003A3D8E" ) Then
    Print( db.Title & " was successfully opened" )
    End If

    Set docTR = dbTR.GetDocumentByUNID( "F01F3ADF97E1A24565257661003C166F" )
    повторю, если делаю runOnServer, то проблема.... если агент запускаю из дизайнера, то нет проблем.....

    Нашел какой-то ответ вроде как на мою проблему:
    Не могу только толком понять и найти где это все
     
  8. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Когда запускаешь из дизайнера, то запускается от твоего имени.
    Когда через RunOnServer, то от имени подписавшего.

    В администраторе.
     
  9. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Medevic , а в ACL второй базы, должен быть указан сервер первой базы?
     
  10. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    проблема с доступом однозначно.
    раньше вроде решали добавлением в ACL таргет-базы replicaID базы, из которой запущен агент.
    сейчас может какие-то настройки в документе сервера появились?
    з.ы. а коннекшн с первого сервера на второй есть?
     
  11. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Господа, ключ к проблеме в том, что БД на другом сервере
    Сервер, где крутится агент должен быть трастет для того к которому обращаешься (устанавливается в документе на сервер в PAB).
    Ну и как сказали, подписант должен иметь права на БД по ACL
     
  12. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Сигнер должен быть указан. Если это сервер, значит сервер.
     
  13. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Также проблема может быть в security level (вторая закладка свойств агента)
     
  14. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    nvy , попробовал все
     
  15. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Это в PAB - серверный names.nsf
     
  16. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Корооче, проблема в том, что доступа нет от одной базы в другую... нужно прописывать в АСЛ и еще наверно куда-то

    Подскажиет еще одну проблему:
    Как сделать из такого линка Notes:///8025761C003A3D8E/0/F01F3ADF97E1A24565257661003C166F/?EditDocument
    уменьшенный линк , квадратиком который ))))))
     
  17. Klido

    Klido Гость

    это как так??? доступ на уровне база-база????

    топиковый еррор обычно побеждается непосредственным open тарджетовой базы перед работы с нею...
     
  18. amigolinx

    amigolinx Гость

    1. заполучить док
    Код (LotusScript):
    Dim session As New NotesSession
    Dim targetdoc As NotesDocument

    Set targetdoc = session.Resolve({Notes:///8025761C003A3D8E/0/F01F3ADF97E1A24565257661003C166F/?EditDocument})
    2. втулить квадратик в NotesRichTextItem
    Код (LotusScript):
    Call rtitem.AppendDocLink(targetdoc, "it's link")
     
  19. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    amigolinx , Ошибка на получении дока:
    Error 4455 Cannot resolve URL
    Возможно опять связано, что документ в другой базе и прав нет?
     
  20. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Попробуй EditDocument заменить на OpenDocument.
     
Загрузка...

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