Ошибка "Недопустимый универсальный код"

Тема в разделе "Lotus - Программирование", создана пользователем -, 1 фев 2007.

Статус темы:
Закрыта.
  1. Гость

    Помогите пожалуйста,
    пишу такой код:

    Set uidoc = ws.CurrentDocument
    Set doc = uidoc.Document
    Set pdoc = db.GetDocumentByUNID(doc.ParentDocumentUNID) - и вот на этой строке выдается сообщение об ошибке "Недопустимый универсальный код"
    Подскажите может кто знает почему так происходит?

    А код этот находится в событии QuerySave()
     
  2. sanch

    sanch Well-Known Member

    Регистрация:
    17 июл 2006
    Сообщения:
    216
    Симпатии:
    0
    Set uidoc = ws.CurrentDocument
    Set doc = uidoc.Document
    Set pdoc = db.GetDocumentByUNID(doc.NoteID)
    попробуй так
     
  3. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    ParentDocumentUNID это точно UNID? Поле текстовое ?
     
  4. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    значит что текущий документ не есть респонсом

     
  5. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Извиняюсь, ступил. <_<
     
  6. Гость

    Документ точно является респонсом
     
  7. Гость

    Проблема решилась переносом кода в событие QueryClose()
     
  8. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: Светлана1342
    Проверте в деббагере что есть doc.ParentDocumentUNID - что он показывает, да кстати ф-ция db.GetDocumentByUNID работает со СТРОКОЙ
     
  9. K-Fire

    K-Fire Гость

    <!--QuoteBegin-Светлана1342+1:02:2007, 13:58 -->
    <span class="vbquote">(Светлана1342 @ 1:02:2007, 13:58 )</span><!--QuoteEBegin-->Помогите пожалуйста,
    пишу такой код:

    Set uidoc = ws.CurrentDocument
    Set doc = uidoc.Document
    Set pdoc = db.GetDocumentByUNID(doc.ParentDocumentUNID) - и вот на этой строке выдается сообщение об ошибке "Недопустимый универсальный код"
    Подскажите может кто знает почему так происходит?
    [snapback]54688" rel="nofollow" target="_blank[/snapback]​
    [/quote]

    Такая ошибка вылезает когда документ по Unid-у не находится. Чтобы пользователя не смущать, можно поставить такое:

    On error resume next
    Set pdoc = db.GetDocumentByUNID(doc.ParentDocumentUNID)
    on error goto ErrorHandler
    if pdoc is nothing then .....
     
  10. AvasKvas

    AvasKvas Well-Known Member

    Регистрация:
    3 июн 2009
    Сообщения:
    78
    Симпатии:
    0
    Народ, в чем загвостка у меня?

    То же Set CopyDoc = dbCS.GetDocumentByUNID(IDstr) выдает ошибку, что недопустимый универсальный код!

    Агент выполняет следующее:
    рабочая база -db
    через getDatabase получаю вторую базу dbCS

    в обеихх базах ищу получаю колекцию документов
    потом из каждой коллекции беру нужные поля и запихиваю их в массив, получаю два массива, одно из значений массива - UNID

    тоесть у меня получился массив для db и для dbCS
    сравниваю массивы и в резульиате сравнения получаю массив со значениями UNID для dbCS.

    По значениям массива пытаюсь получить документ через Set CopyDoc = dbCS.GetDocumentByUNID(IDstr) (чтобы в дальнейшем этот документ удалить), но выдает ошибку!!
    при чем в db все нормально открывается!

    Не могу понять в чем дело!
     
  11. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
    если ЮНИД не является таковым - то и ошибка будет
    ЮНИД и НОТЕИД - суть разные вещи
    строка д.б. буквенно-цифровая (без всяких разделителей)
    ежели ЮНИД получен из вновь-соданного дока и его не сохранили - получить из базы не получится
     
  12. AvasKvas

    AvasKvas Well-Known Member

    Регистрация:
    3 июн 2009
    Сообщения:
    78
    Симпатии:
    0
    Использую UNID, из давно созданных документов, которые толькочто юзал в коллекции! Сделал обработку на ошибки,получается так, что те документы, которые я хочу удалить уже не существуют или повреждены!
     
  13. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    db.GetDocumentByUNID
    если такого унида в базе нету то будет ошибка
    унида может не быть в базе так как это новый документ
    или вообще чужой и к этой базе отношения не имеет
     
  14. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    судя по всему ошибка вылазила только на вновь созданных дочерних доках.
    ответный документ становится таковым только после сохранения, соотв., в первый раз в событии QuerySave документ не является дочерним, и не имеет свойства ParentDocumentUNID.

    если надо получить унид родительского дока до сохранения, то надо на форме ответного документа сделать поле с формулой @Text(@InheritedDocumentUniqueID), и в коде QuerySave можно использовать значение этого поля.
    кроме того, у формы должно быть отмечено свойство Formulas inherit values from selected document, иначе поле будет содержать унид текущего, а не родительского дока.
    тип формы может быть любой doc/resp.
     
Загрузка...
Похожие Темы - Ошибка Недопустимый универсальный
  1. Ruska132
    Ответов:
    1
    Просмотров:
    34
  2. Lamerman
    Ответов:
    0
    Просмотров:
    27
  3. Enima
    Ответов:
    0
    Просмотров:
    54
  4. Baindt
    Ответов:
    1
    Просмотров:
    78
  5. anna
    Ответов:
    2
    Просмотров:
    83
Статус темы:
Закрыта.

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