DISKUSE
HCL Domino na NAS QNAP (1)
20.02.2024 10:34

Vložení přílohy do dokumentu MS Word (3)
14.02.2024 20:54

Problěmy s diakritikou. (4)
06.02.2024 17:34

AI pomocnici 
15.01.2024 10:16

Export do pdf souboru (1)
12.01.2024 23:11

Agent přestává fungovat (1)
18.11.2023 06:42

RTF - Computed (2)
19.10.2023 13:00

Čtení polí v neuloženém dokumentu 
08.10.2023 17:15


ŠKOLENÍ


REKLAMA


KOMENTÁŘE
Diskusní skupina: Notes/Domino R6


Milanv pohlade dokument oznaceny na zmazanie
07.04.2014
16:38:15

ID: 3554.0

Milan
V LS6, ked zatvaram pohlad, tak by som chcel otestovat ci je dokument oznaceny na zmazanie...
Premena continue by nadobudla false resp. true pokial by som vedel otestovat tu znacku (mark) na zmazanie, ale neviem :((........
Vie mi niekto priatelia poradit ako na to ????

Este jeden dotaz: ked je dokument(y) oznacene na zmazanie a dam refresh (F9) da sa "potlacit" systemova hlaska : "Chcete odstranit dokument......"

dakujem

milan
VZ Přes Database Script
07.04.2014
17:56:44

ID: 3554.1


Nelze to zachytit přes eventy v pohledu, ale jde to zachytit v eventu "Querydocumentdelete" v Database Scriptu. Hlavní problém spočívá v tom, odkud vzít seznam dokumentů označených ke smazání. Jeden hodně zkušený kolega programátor v LN mi před lety (v R6) tvrdil, že to nijak nejde, ale jedno řešení jsem později v R6 našel - je to kolekce dokumentů přístupná přes Source.Documents.
Tak snad by to mohlo fungovat i nyní po těch letech.
Ukázka reálného kódu z té doby, která by měla namísto smazání jen nastavit parametr použitý pro skrývání v pohledech:

Sub Querydocumentdelete(Source As NotesUIDatabase, Continue As Variant)
On Error GoTo Errhndl
Dim errcounter As Integer
errcounter = 0
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim coll As NotesDocumentCollection, coll2 As NotesDocumentCollection
Dim doc As NotesDocument, res As NotesDocument
Dim lze As Variant
Dim msgtxt As String
Dim count As Integer
Dim e As Variant

Set db = Source.Database
Set coll = Source.Documents
Stop
e = Evaluate( "@Contains( @UserRoles; ""[Administrator]"")")
If CStr(e(0))<> "0" Then
'Admin se může rozhodnout
msgtxt$ = "Pokud chcete vymazat " & CStr(coll.Count) & " z dokumentů, klikněte na [Yes]."
msgtxt$ = msgtxt$ & Chr(13) & "Pokud je chcete jen skrýt (jako běžný uživatel), klikněte na [No]"
If MessageBox(msgtxt$, 308, "Upozornění pro [Administrator]" ) = 7 Then e(0) = "0"
End If
If CStr(e(0))="0" Then
continue = False
msgtxt$ = "Opravdu chcete odstranit " & CStr(coll.Count) & " z kontaktů?"
Print msgtxt$
If MessageBox(msgtxt$, 308, "Varování" ) = 7 Then Exit Sub
'Uživatelé jen skrývají, mazat může jen [Administrator]
Set doc = coll.getfirstdocument
While Not doc Is Nothing
If doc.documenttype(0) = "Contact" Then
lze = True
Set coll2 = doc.responses
Set res = coll2.getfirstdocument

Do While Not res Is Nothing
If res.DocumentType(0) = "Contact" Then
lze = False
Exit Do
End If
Set res = coll2.getnextdocument(res)
Loop
If lze Then
doc.documentType = "!H" & doc.DocumentType(0)
doc.NotesFullName = ""
If Not doc.save( False, False ) Then
msgtxt$ = doc.contactFullName(0) & " " & doc.CompanyFullName(0) & " se nepodařilo odstranit!"
Print msgtxt$
MessageBox msgtxt$
Else
count = count + 1
End If
Else
msgtxt$ = doc.contactFullName(0) & " " & doc.CompanyFullName(0) & " nelze odstranit, nejdříve přesuňte nebo vymažte podřízené kontakty!"
Print msgtxt$
MessageBox msgtxt$
End If
End If
Set doc = coll.getnextdocument( doc )
Wend
msgtxt$ = CStr(count) & " of contacts removed"
Print msgtxt$
Call ws.Viewrefresh()
Else
'Administrator
msgtxt$ = "Administrator: " & CStr(coll.Count) & " documents to delete."
Print msgtxt$
End If
If errcounter > 0 Then Evaluate({@MailSend("LocalDomainAdmins";"";""; "Some error's occured"; "Check Notes Log"; "")})
Exit Sub
errhndl:
Print "QueryDocumentDelete - error #" & CStr(Err)& " on line " & CStr(Erl) & ": " & Error
errcounter = errcounter + 1
If errcounter <= 20 Then
Resume Next
Else
Print "QueryDocumentDelete - more than 20 errors occured. Terminating script"
Evaluate({@MailSend("LocalDomainAdmins";"";""; "More then 20 error's occured"; "Check Notes Log"; "")})
End If
End Sub
Milan je to OK
10.04.2014
15:51:19

ID: 3554.2


velmi pekne dakujem, je to ono...dovolil som si to trochu upravit podla mojich potrieb :)....
este raz vdaka

milan
VZ Pozor na přístupová práva
10.04.2014
16:11:45

ID: 3554.3


Pokud si dobře vzpomínám, tak tam byl v té souvislosti nějaký problém s ACL. Myslím, že uživatelé museli mít povoleno právo "Delete documents", aby to fungovalo. Anebo naopak to měli zakázáno? Už si přesně nevzpomínám => zkrátka je to třeba důkladně otestovat i s nižšími (obvyklými uživatelskými) právy než má vývojář nebo admin. ;-)
A možná na to má nějaký vliv i nastavení SoftDeletions ve vlastnostech databáze.

Přidejte názor
Autor:
Profese:
E-mail: i
URL:
Phone:
Předmět:
Obsah příspěvku (i):

Kolikátý je den v měsíci ? (číslovkou bez tečky)