• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Повторное Получение Документа В Одной Сессии

  • Автор темы Serduko
  • Дата начала
S

Serduko

Есть ссылка на документ, полученная в начале исполнения (например агента на клиенте), в процессе исполнения, в другой сессии, другим пользователем изменяются данные в этом документе. Как получить ссылку на тот же документ с измененными данными, в рамках исполнения текущей сессии (агента), повторная инициализация (например Getdocumentbyunid) не помогает?
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
159
Getdocumentbyunid - как раз таки помогает, но только если данные точно уже изменены, документ сохранен и приехал на этот сервер.
Если он еще не сохранен, то никаких изменений нет.
 
S

Serduko

Getdocumentbyunid - как раз таки помогает, но только если данные точно уже изменены, документ сохранен и приехал на этот сервер.
Если он еще не сохранен, то никаких изменений нет.
Документ сохранен и приехал на тот сервер, я проверял. Getdocumentbyunid ловит старый документ.
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
159
Serduko
Getdocumentbyunid ловит старый документ
Что-то я не верю... Сейчас сам еще раз перепроверю, пока отчет строится не могу.
У меня такая штука используется для обработки конфликтов, так что странно.
Правда я в другую переменную записываю. Попробуйте пока обнулить свой первоначальный документ и записать потом туда его снова.

Domino-Designer
view.GetDocumentByKey вас спасет, но 1 раз =)
Ну да, осталось только сделать вьюху и индекс в ней построить.
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
159
Поковырял, такое дело:
Надо обнулить док и получать его снова через переменную, где содержится UNID
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Код</div></div><div class="sp-body"><div class="sp-content">
Код:
	Dim ses As New NotesSession
Dim db As NotesDatabase
Dim ag As notesagent
Dim doc As NotesDocument
Dim doc2 As NotesDocument
Dim stri As String
Dim unid As String
Set db = ses.Currentdatabase

Set ag = db.Getagent("du")
'В агенте DU пробег по всем документам, test = "1" и save.
Set doc = db.Unprocesseddocuments.Getfirstdocument()

unid = doc.Universalid

stri = "" & doc.Lastmodified & Chr(10) & Chr(13)
Call ag.Run()

Set doc = nothing
Set doc = db.Getdocumentbyunid(unid)
stri = stri & doc.Lastmodified & Chr(10) & Chr(13)

Call ag.Run()

Set db = ses.Currentdatabase
Set doc2 = db.Getdocumentbyunid(unid)
stri = stri & doc2.Lastmodified & Chr(10) & Chr(13)

MsgBox stri
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Результат</div></div><div class="sp-body"><div class="sp-content">---------------------------
---------------------------
09.07.2014 14:54:28

09.07.2014 14:56:49

09.07.2014 14:56:49
---------------------------
ОК
---------------------------
 

Andre

Green Team
29.07.2004
114
1
BIT
1
Поковырял, такое дело:
Надо обнулить док и получать его снова через переменную, где содержится UNID

Имхо, ход мысли правильный, а вот способ реализации ...
Для этого существует statement Delete . Подробности в букваре
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
а всё из-за "Оптимизации" скрипта, когда индусы подумали что не гоже каждый раз брать один и тот же обьект и задёргивать базу :(
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
159
Боюсь представить какой у LS GC, вернее его реализация.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!