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

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

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

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

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

Удаление документа

  • Автор темы ivashkalotus
  • Дата начала
Статус
Закрыто для дальнейших ответов.
I

ivashkalotus

Доброе утро, Лотусисты!

Возникла такая проблема, не могу нормально удалить документ из базы.

Код такой:
Код:
Sub Click(Source As Button)

Dim doc As NotesDocument
Dim docUI As NotesUIDocument	
Dim ws As New NotesUIWorkspace

Set docUICurr=ws.CurrentDocument
Set docCurr=docUICurr.Document

Call docUICurr.Close()
Call docUICurr.DeleteDocument()
End Sub
Такая штука только помечает документ на удаление.
После F9 все удаляется, но как "нажать" F9 программно?
Что то типа DB.Refresh() есть наверное?

Если удалять бэкэнд документ (doc.Remove(false)), то если он взят из UI документа, его удалить нельзя ;) О чем честно сказано в хелпе
То есть нужно искать документ через view. Чего не хочется, так как единственный очевидный идентефикатор документа это поле Дата/Время, по которому документ не находится :)

Может что подскажите.
 
D

Domino6

<!--QuoteBegin-ivashkalotus+17:04:2006, 10:16 -->
<span class="vbquote">(ivashkalotus @ 17:04:2006, 10:16 )</span><!--QuoteEBegin-->Если удалять бэкэнд документ (doc.Remove(false)), то если он взят из UI документа, его удалить нельзя О чем честно сказано в хелпе
То есть нужно искать документ через view.
[snapback]33731" rel="nofollow" target="_blank[/snapback]​
[/quote]

именно так только искать его по UNID
 
I

ivashkalotus

Не злиться, см в подпись :)

Т.е. взять UNID из документа полученного из UI документа, и найти его в базе?

P.S. Кто нить расскажет почему такой изврат ???
 
I

ivashkalotus

Не помагает :D
Выдает такую же ошибку, что и до этого

код
Код:
Call doc.Save(True,True)
Call docUICurr.Close()
Call docCurr.Save(True,True)

' Создаем промежуточный документ для удаления текущего документа
Dim doc4Del As NotesDocument

Set doc4Del =db.GetDocumentByID(docCurr.NoteID)
Call doc4Del.Remove(True)

У doc4Del свойство IsUIdocopen все равно стоит в true :D

Скорее всего этот документ можно удалить только внешним скриптом, после закрытия UIdoc :)
 
D

Domino6

Перед поиском по УНИД набо удалить из памяти объект UIDocument
 
I

ivashkalotus

А как, если скрипт находиться именно в нем (т.е. в форме, которая для него открыта)?
 
D

Domino6

<!--QuoteBegin-ivashkalotus+18:04:2006, 08:59 -->
<span class="vbquote">(ivashkalotus @ 18:04:2006, 08:59 )</span><!--QuoteEBegin-->P.S. Кто нить расскажет почему такой изврат ???
[snapback]33862" rel="nofollow" target="_blank[/snapback]​
[/quote]

Это не изврат просто при нахождении в памяти объекта и доступ к нему нотест определяет его как расположеного в памяти и не занимает лишние участки памяти

Код:
UNID$=docCurr.NoteID
docUICurr Delete
docCurr Delete

Set docCurr =db.GetDocumentByID(UNID$)
Call docCurr.Remove(True)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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