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

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

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

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

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

Решено Uidoc удаление и закрытие

k85

Lotus Team
11.10.2011
260
1
BIT
0
Код:
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc=ws.CurrentDocument
Call uidoc.Close(True)
Call uidoc.DeleteDocument()
почему он открывает следующий документ на просмотр?
 

k85

Lotus Team
11.10.2011
260
1
BIT
0
пробую по примеру...
Examples: DeleteDocument method
Код:
Sub Click(Source As Button)
  Dim workspace As New NotesUIWorkspace
  Dim uidoc As NotesUIDocument
  Set uidoc = workspace.CurrentDocument
  If Not ( uidoc.EditMode ) Then
	Call uidoc.DeleteDocument
  End If
End Sub


@alexas1,
вызовом агента "удалителя" после закрытия дока
то есть всесто удаления вызывать агент, который будет удалять именно документ, а не uidoc?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
цель какая - если просто удалить док из БД - так напуркуя это делать через UI?
получили unid, закрыли док, получили из БД (по unid) бэкэндовый, удалили
 

k85

Lotus Team
11.10.2011
260
1
BIT
0
@lmike,
Код:
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Set uidoc=ws.CurrentDocument
Set doc=uidoc.Document
sunid = doc.UniversalID
Call uidoc.Close
Set doc = db.getDocumentByUNID(sunid)
Call doc.Remove(True)
Call ws.viewrefresh()
sunid - находит, doc находит нормально (проверяю в дебагере), закрывает, но не удаляется документ
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
подъем за волосы
Код:
Sub Click(Source As Button)
On Error Goto ErrH
Dim uidoc As NotesUIDocument, doc As NotesDocument, wks As New NotesUIWorkspace, db As NotesDatabase
Set db=wks.CurrentDatabase.Database
Set uidoc=wks.CurrentDocument
Set doc=uidoc.Document
Dim unid As String
unid=doc.UniversalID
uidoc.Close True
Delete uidoc
Set doc=db.GetDocumentByUNID(unid)
Call doc.RemovePermanently(True)
Quit:
Exit Sub
ErrH:
Error Err, RaiseError
End Sub
 
  • Нравится
Реакции: k85

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
кнопка прям на форме, её можно скрыть и вызывать через JS
document.forms[0].testdel.click();
(задать в HTML пропертях имя и ID, в примере - testdel)
 
  • Нравится
Реакции: alexas1

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
177
Соль - Delete uidoc. Респект!
еще получение db не из дока
(на всяк случай, ибо - может реф снести) и надо помнить (тем кто не вникал в детали жизни объектов ;) ) - что инстанс doc тоже снесет
 
  • Нравится
Реакции: alexas1
Мы в соцсетях:

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