получение Guid на Lotus Script

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

  1. Реник

    Реник Well-Known Member

    Регистрация:
    8 авг 2009
    Сообщения:
    97
    Симпатии:
    0
    Добрый день, товарищи!

    Может быть задам глупый вопрос, но всё равно.
    В лотусином документе есть Unid/
    А можно ли как-нибудь на LS получить GUID к этому документу. ?? Если да,то пришлите пожалуйтс а кусок кода или скажите что посмотреть следует.

    Заранее спасибо)
     
  2. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Dim doc As NotesDocument
    doc.UniversalID
    Это?
     
  3. Klido

    Klido Гость

    xalet
    он имеет ввиду http://ru.wikipedia.org/wiki/GUID

    я так понимаю, в лотусе UNID и есть подвариант GUID... или как-то иначе?
     
  4. Реник

    Реник Well-Known Member

    Регистрация:
    8 авг 2009
    Сообщения:
    97
    Симпатии:
    0
    не совсем))) Так я получаю лотусиный юнид документа.

    GUID (Globally Unique Identifier) — статистически уникальный 128-битный идентификатор. Его главная особенность — уникальность, которая позволяет создавать расширяемые сервисы и приложения без опасения конфликтов, вызванных совпадением идентификаторов. Хотя уникальность каждого отдельного GUID не гарантируется, общее количество уникальных ключей настолько велико (2128 или 3,4028Ч1038), что вероятность того, что в мире будут независимо сгенерированы два совпадающих ключа, достаточно мала.

    Это мелкософтный идентификатор.
     
  5. Klido

    Klido Гость

    там же написано "Другие реализации....". Это типа абстрактной модели, мелкософт, как там тоже написано, использует GUID для контроля объектов по OLE etc. Т.е. ежели создать объект лотусины программно - можно получиить его мелкософтовый GUID. Конечно, никак не лотусиными средствами - надо курить виндовое API.
     
  6. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Что-то я нигде не встречал, чтобы Лотус присваивал GUID документам. Полагаю, что он этого не делает в принципе. Можно, конечно, создать в документе поле с GUID, а сам GUID генерить какой-либо функцией. Думаю, что в java есть штатные средства генерации GUID, а java можно использовать из LS.
     
  7. Klido

    Klido Гость

    nvy
    Винда присвоит OLE-объекту лотусины. И потом всем остальным объектам, включая документ.
    Если копнуть - может выяснится, что на уровне ОС ВСЕ объекты винды имеют GUID. Но тогда даже не виндовое API курить, а ASM :)
     
  8. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Только вопрос, зачем это нужно? В лотусях есть свой УУИД, тот о котором писал выше. Если его не хватает, то на его основе можно генерировать "более уникальный".
     
  9. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    "Если звёзды зажигают - значит это кому-то нужно" :)
    Если речь идёт о Лотусе, то UNID'а вполне достаточно. Зачем топикстартеру понадобился GUID, пусть он сам уточнит. Но я почти уверен, что внутри Лотусовой базы никаких GUID'ов нет, если только их специально не сохранять в полях документов. Для открытого документа, возможно, windows генерит GUID, но мне об этом ничего неизвестно. Что знаю точно - можно сгенерить GUID самому, для этого в разных языках имеются специальные функции, уверен, что это есть в java. Генерить GUID на основе UNID не стал бы - нет уверенности, что будет "глобально уникально".

    P.S. На затравку:
    http://wiki.pcmag.ru/index.php?title=UUID
    http://java.sun.com/javase/6/docs/api/java/util/UUID.html
    Только работать будет начиная с 8-ки - класс java.util.UUID появился только в jave 1.5
     
  10. Реник

    Реник Well-Known Member

    Регистрация:
    8 авг 2009
    Сообщения:
    97
    Симпатии:
    0
    Да,спасибо всем за ответы!! Да тут у нас ситуация с заказчиком задания немного запутанная: они говорят , что лотусиный UNID их не устраивает, потому что "якобы " он задваивается. Врут наверное. Все мои попытки их убедить в обратном ни к чему не привели. : давай GUID и всё тут.
     
  11. Klido

    Klido Гость

    запросите у IBM официальную бумагу :)
    у меня был случай, когда заказчик потребовал официальной бумаги о том, что именно IBM производит Lotus и может его продавать :)
     
  12. Реник

    Реник Well-Known Member

    Регистрация:
    8 авг 2009
    Сообщения:
    97
    Симпатии:
    0
    Ну это конечно случай показательный))) Да нет, у нас вроде народ здесь вменяемый. Понимает слова. но просто мне интересно было можно вообще такую вещь на ды реализовать.
     
  13. oshmianski

    oshmianski Гость

    у открытого окна есть document.handle - это идентификатор открытого окна.
    может от сюда плясать?
     
  14. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    если нужен именно ГУИД, то как писалось выше в джаве, начиная с 1.5 есть класс для генерации. Очень простой в использовании... Делал я и для 1.4.2. В сети полно примеров и сорсов алгоритмов.
     
  15. Реник

    Реник Well-Known Member

    Регистрация:
    8 авг 2009
    Сообщения:
    97
    Симпатии:
    0
    всё это прикольно. Но как писалось выше этот класс можно использовать начиная с 8-го клиента лотус .А у нас тут у большинства людей 7.0.1 стоит. так что не прокатит .
     
  16. ToxaRat

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

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    а они его с NoteID не путают?
    тот может задваиваться как угодно, хотя задвоить можно впринцыпе всё, особенно если делать умное копирования в другую базу и принудительно оставлять UNID какой был
     
  17. RAJ

    RAJ Well-Known Member

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

    из хелпа
    т.е. обеспечивается уникальность в пределах реплик.
    но я могу в другой базе(не реплике) создать новый документ и присвоить ему universal id документа из другой базы.

    может так:
    Lotus GUID = ReplicaID+UniversalID?
     
  18. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Ещё существует OriginatorID, которое позволяет отличить версии документа в разных репликах. Его можно увидеть на последней закладке св-в документа. Первые две строчки и составляют OriginatorID.

    The full Originator ID, on the other hand, uniquely identifies one particular version of a note. In other words, all replica copies of the same version of a note have the same OID. However, a modified version of a replica copy of a particular note will have a different OID, because Domino and Notes increment the sequence number when a note is edited and also sets the sequence time to the timedate when the sequence number was incremented. Therefore, when one replica copy of a note remains unchanged but another copy is edited and modified, the UNIDs of the two notes remain the same but the sequence number and sequence times (and therefore the OIDs) are different.
     
  19. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Зацепило :). Стало самому интересно, тем более, что LS2J ещё не пробовал. Быстренько накидал агентика:
    Код (Text):
        Uselsx "*javacon"
    Dim mySession As JavaSession
    Dim myClass As JavaClass
    Dim myObject As JavaObject
    Dim myMethod As JavaMethod
    Set mySession = New JavaSession()
    Set myClass = mySession.GetClass("java.util.UUID")
    Set myMethod = myClass.GetMethod("randomUUID", "()Ljava/util/UUID;")
    Dim UUID As Variant
    Set UUID = myMethod.Invoke()
    Msgbox UUID.toString()
    Работает :)
    P.S. Для заинтересовавшихся - стоит посмотреть класс java.util.UUID - там много способов генерации
     
  20. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    версия нотусей?
     
Загрузка...

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