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

  • Автор темы Реник
  • Дата начала
Р

Реник

#1
Добрый день, товарищи!

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

Заранее спасибо)
 
Р

Реник

#4
не совсем))) Так я получаю лотусиный юнид документа.

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

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

Klido

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

nvyush

Lotus team
22.04.2009
2 317
0
#6
там же написано "Другие реализации....". Это типа абстрактной модели, мелкософт, как там тоже написано, использует GUID для контроля объектов по OLE etc. Т.е. ежели создать объект лотусины программно - можно получиить его мелкософтовый GUID. Конечно, никак не лотусиными средствами - надо курить виндовое API.
Что-то я нигде не встречал, чтобы Лотус присваивал GUID документам. Полагаю, что он этого не делает в принципе. Можно, конечно, создать в документе поле с GUID, а сам GUID генерить какой-либо функцией. Думаю, что в java есть штатные средства генерации GUID, а java можно использовать из LS.
 
K

Klido

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

Xalet

Well-known member
08.08.2008
410
0
#8
Что-то я нигде не встречал, чтобы Лотус присваивал GUID документам. Полагаю, что он этого не делает в принципе. Можно, конечно, создать в документе поле с GUID, а сам GUID генерить какой-либо функцией. Думаю, что в java есть штатные средства генерации GUID, а java можно использовать из LS.
Только вопрос, зачем это нужно? В лотусях есть свой УУИД, тот о котором писал выше. Если его не хватает, то на его основе можно генерировать "более уникальный".
 

nvyush

Lotus team
22.04.2009
2 317
0
#9
Только вопрос, зачем это нужно? В лотусях есть свой УУИД, тот о котором писал выше. Если его не хватает, то на его основе можно генерировать "более уникальный".
"Если звёзды зажигают - значит это кому-то нужно" :)
Если речь идёт о Лотусе, то 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
Да,спасибо всем за ответы!! Да тут у нас ситуация с заказчиком задания немного запутанная: они говорят , что лотусиный UNID их не устраивает, потому что "якобы " он задваивается. Врут наверное. Все мои попытки их убедить в обратном ни к чему не привели. : давай GUID и всё тут.
 
K

Klido

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

Реник

#12
Ну это конечно случай показательный))) Да нет, у нас вроде народ здесь вменяемый. Понимает слова. но просто мне интересно было можно вообще такую вещь на ды реализовать.
 
O

oshmianski

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

Xalet

Well-known member
08.08.2008
410
0
#14
у открытого окна есть document.handle - это идентификатор открытого окна.
может от сюда плясать?
если нужен именно ГУИД, то как писалось выше в джаве, начиная с 1.5 есть класс для генерации. Очень простой в использовании... Делал я и для 1.4.2. В сети полно примеров и сорсов алгоритмов.
 
Р

Реник

#15
всё это прикольно. Но как писалось выше этот класс можно использовать начиная с 8-го клиента лотус .А у нас тут у большинства людей 7.0.1 стоит. так что не прокатит .
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 233
18
#16
Да,спасибо всем за ответы!! Да тут у нас ситуация с заказчиком задания немного запутанная: они говорят , что лотусиный UNID их не устраивает, потому что "якобы " он задваивается. Врут наверное. Все мои попытки их убедить в обратном ни к чему не привели. : давай GUID и всё тут.
а они его с NoteID не путают?
тот может задваиваться как угодно, хотя задвоить можно впринцыпе всё, особенно если делать умное копирования в другую базу и принудительно оставлять UNID какой был
 

RAJ

Well-known member
17.01.2007
440
0
#17
Да,спасибо всем за ответы!! Да тут у нас ситуация с заказчиком задания немного запутанная: они говорят , что лотусиный UNID их не устраивает, потому что "якобы " он задваивается. Врут наверное. Все мои попытки их убедить в обратном ни к чему не привели. : давай GUID и всё тут.

из хелпа
UniversalID property
Read-write. The universal ID, which uniquely identifies a document across all replicas of a database.
т.е. обеспечивается уникальность в пределах реплик.
но я могу в другой базе(не реплике) создать новый документ и присвоить ему universal id документа из другой базы.

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

TIA

:-)
Lotus team
15.05.2009
790
3
#18
Ещё существует 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.
 

nvyush

Lotus team
22.04.2009
2 317
0
#19
Зацепило :). Стало самому интересно, тем более, что LS2J ещё не пробовал. Быстренько накидал агентика:
Код:
	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 - там много способов генерации