User-defined Error

Тема в разделе "Lotus - Программирование", создана пользователем yerke, 9 июн 2009.

  1. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    привет всем

    у меня возникает трабла
    у казанная в сабже

    оно возникает при сохранений и закрытий открытого документа в UI
    и при открытий след док-а

    то есть
    Код (Text):
        '=save cur doc
    Call cdoc.Save(True, False, False) '=текущий NotesDocument

    '=get to_doc
    Set to_doc=cdb.GetDocumentByUNID(Cstr(CHILD_UNID(index))) '=открываемый NotesDocument
    Set to_uidoc=ws.EditDocument(True, to_doc) '=открываемый NotesUIDocument

    '=
    Set to_doc=Nothing
    Set to_uidoc=Nothing
    '=

    Call uidoc.Close(False) '=текущий док NotesUIDocument
    '=
    '=
     
  2. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    В какой строке ошибка? Посмотрите в дебагере
     
  3. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    мне кажется это лишнее. ты освобождаешь объекты и пытаешь сохранить ничто
     
  4. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    NickProstoNick, где ты код сохранения увидел этих объектов?.. :unsure:
    (хотя убиение их не обязательно вроде)
     
  5. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    кажет ся объязательно
    это эксперимент доказал
    :unsure:

    здесь нету сохранения этих объектов
    а то я получилл бы "Object variable not set"
    а не "User-defined Error"
     
  6. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    между прочим, ты так и не сказал в какой строке ошибка, это раз...
    если практика доказала, то пусть будет, хотя я не верю, это два...
    а три, посмотри хорошо код, который срабатывает на Initialize/Query/PostOpen и т.п. формы документа to_doc
    ошибка может быть в нем
     
  7. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Почитайте сабж автора!
    Автор пишет о сохранении документа! Я доверяю автору!

    или ты сам себе противоречишь!

    Либо код приводи полный! либо описывай ситуацию нормально!
     
  8. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    ну дык пишет, но надо же внимательнее быть :D

    и приводит код который выполняется
     
  9. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    обработчик ошибок есть?
     
  10. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    все нашел причину
    спасибо всем кто откликнулся
     
  11. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    потрудись, пожалуйста, написать в чем она была? :D
     
  12. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    да чё было - скорее-всго класс полключил или ф-цию - кот. генерит ошибку Error
     
  13. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    это на самом деле оказалось следующий ЭРРОР:
    То что указано здесть под Reason #2
    -------------------------------------------------
    если открывать такой док с помощь
    Код (Text):
    Set to_uidoc=ws.EditDocument(True, to_doc)

    '=
    '=
    то получаем User-defined Error

    а если открыть данный док из вьюшки то получаем
    Error: 'Ignoring portion of document that uses a feature from another version of Notes'
     
  14. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    Добился этой же ошибки (User-defined error), но другим способом.
    А именно, ошибка валится на строке:
    Код (Text):
    ConsoleReturn$ = Session.SendConsoleCommand(”ServerName”, ”Show Users –xml”)
    когда процедура, содержащая эту строку, запускается рядовыми пользователями.
    Понимаю, что связано это с тем, что The user must have administrative access to the server, а посему впулил я процедуру, с этой строкой в агент, который Run on behalf of: сервер.
    И пользователь вызывает его так:
    Код (Text):
    Set Agent = Db.GetAgent("AgentName")
    Call Agent.Run()
    Однако ошибка User-defined error не уходит.
    Что я делаю не так? :what?:
     
  15. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Должно быть
    Код (LotusScript):
    Call Agent.RunOnServer()
     
  16. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    Те же яйца, только теперь сообщение об ошибке приходит не от пользователя, а от сервера.
     
  17. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    alik86
    На второй закладке свойств агента есть комба "Set runtime security level". Должно стоять 2 или 3, скорее всего 3.
     
  18. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    Стоит 3. Allow restricted operations with full administrations rights.
    Я еще не упомянул, что
    ConsoleReturn$ = Session.SendConsoleCommand(Server, ”Show Users –xml”)
    у меня вызывается в цикле:
    Код (Text):
    ForAll Server In ServersList
    ConsoleReturn$ = Session.SendConsoleCommand(Server, ”Show Users –xml”)
    End ForAll
    Где ServersList содержит помимо сервера, на котором и от чьего имени вызывается агент, еще один сервер, и ошибка, похоже, валит именно при обращении ко 2-му серверу... Но у первого сервера вроде есть все права на второй (админ так сказал).
    P.S. Где посмотреть права доступа одного сервера на другой? Подозреваю, что в Current Server Document -> Безопасность. Если да, то какой именно пункт и для какого сервера смотреть, и что там должно быть написано ? Если не в Current Server Document, то где?
     
  19. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Ну так сначала надо проверить на "родном" сервере. Исключите в коде агента второй сервер из списка и попробуйте вызвать агента под рядовым пользователем. Если ошибку выдавать не будет, значит можно копать дальше.
     
  20. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    вот когда я предлагал сделать на сервере документ програмс - заупрямился человек, ну как грится - СЗБ (пусть терь помучается :what?: )
    nvy
    да ничего копать не надо...
    серверные команды должен делать сам сервер, без кода на LS
    это "горбатое" решение "началось" отсюдова
    http://codeby.net/forum/threads/35750.html?vi...st&p=171087
     
Загрузка...

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