AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
04.07.20 - 11:24:14
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino 10
| |-+  ND10: Entwicklung (Moderatoren: eknori, fritandr, koehlerbv, Tode)
| | |-+  Trash in eigene Applikation
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Trash in eigene Applikation  (Gelesen 710 mal)
tfrenz
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 185



« am: 08.06.20 - 11:12:20 »

Hallo, es soll ein papierkorb in einer eingenen Applikation implementiert werden.
Habe einen Folder ($trash) erstellt, dann die DB Eigenschaften Softdeletion eingeschaltet.
Aber beim löschen eines Dokumentes mit DEL bleibt das Dokument in der Ansicht, wird nur das x vorne für gelöscht angezeigt.
Warum verschwindet das Dokument nicht in den Folder $trash ?
Gruß Thomas
« Letzte Änderung: 09.06.20 - 16:14:11 von tfrenz » Gespeichert
shiraz
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 559



« Antworten #1 am: 08.06.20 - 11:50:57 »

https://atnotes.de/index.php/topic,48188.0.html ....
Gespeichert

Gruß
Christian
jBubbleBoy
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1187



« Antworten #2 am: 08.06.20 - 12:13:58 »

verstehe ich nicht, das Markieren mit X ist doch ein normales Verhalten beim Löschen ...

Man benötigt aber eine Ansicht vom Typ "enthält gelöschte Dokumente", um die weich gelöschten Dokumente zu sehen.
Gespeichert

Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.9
--
Nur ein toter Bug, ist ein guter Bug!
Tode
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 6445


Geht nicht, gibt's (fast) nicht... *g*


« Antworten #3 am: 08.06.20 - 17:54:23 »

Das Standardverhalten einer Notes- Applikation ist:

1. Markieren - Entfernen - Häkchen dran.
2. F9 oder Datenbank verlassen - Dokument verschwindet aus der Ansicht
3. WENN Softdeletion aktiviert ist, dann taucht das Dokument im Ordner "($Trash)" in einer bestimmten Ansicht auf, die -wie Erik schreibt- mit dem Typ "enthält gelöschte Dokumente" erstellt wurde. Wenn Softdeletion NICHT aktiviert ist, dann ist danach das Dokument wirklich weg.

Die Maildatenbank "tweaked" diesen Prozess, indem Sie den QueryDocumentDelete- Prozess mit Continue = False abbricht, und stattdessen die Dokumente direkt mittels NotesDocument.Remove löscht. Dadurch glauben viele Entwickler, dieses Verhalten wäre "normal" bei Softdeletions. Ist es aber nicht...
« Letzte Änderung: 09.06.20 - 11:20:10 von Tode » Gespeichert

Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen...

Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
jBubbleBoy
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1187



« Antworten #4 am: 09.06.20 - 10:29:47 »

Naja nicht ganz Wink

denn es gibt keinen Ordnertyp für "gelöschte Dokumente". Diese Typ-Auswahl wird nur beim Erstellen einer Ansicht angeboten und Mail-DBs arbeiten mit der Softdeletion von Notes, wenn das mal anders war, dann muss das schon sehr lange her sein.
Wenn man die Softdeletion- Eigenschaft der Mail-DB entfernt, dann wird immer sofort gelöscht.

Die Mail-DB besitzt einen Ordner "($Trash)", aber damit wird nur das Drag & Drop der Dokumente in den Papierkorp "simuliert", dieser Ordner ist ist leer wenn man ihn direkt öffnet. Weiche Löschungen, in der Mail-DB, befinden sich in der Ansicht "($SoftDeletions)".
Gespeichert

Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.9
--
Nur ein toter Bug, ist ein guter Bug!
tfrenz
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 185



« Antworten #5 am: 09.06.20 - 10:34:43 »

Hallo und danke für sie Informationen  Smiley
Das mit den DB Eigenschaften, dem View $Softdeletion habe ich nun verstanden und auch so umgesetzt.
Aber wenn ich nun ein Dokument lösche, wird es nicht von der aktuellen Ansicht entfernt.
Erst nach F9 drücken.
Was muss ich hier noch angeben.
Gespeichert
Tode
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 6445


Geht nicht, gibt's (fast) nicht... *g*


« Antworten #6 am: 09.06.20 - 11:18:27 »

@Erik: Ich weiss nicht, woher Du diese Sicherheit nimmst... ich habe gerade im 11er Default Mailtemplate geschaut. Da steht im QueryDocumentDelete (u.a.) folgender Code:
Code:
Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
Dim preRNext, SupressDeleteDialogs As Integer, MtgOwner As Integer,  result As Integer
Dim tmpOwner As String, strFormNm As String, strToDoMessage As String
Dim iCalDocstoDel As NotesDocumentCollection,curDoc As notesdocument 'variables to support ical deletion logic
Dim profileDoc As Notesdocument
Dim e As Variant, v As Variant
Dim versionNumber As Integer


Const INVAL_DOCUMENT =  "Zum Ausführen dieser Aktionen müssen Sie ein Instanzdokument auswählen."
Const ERR_TITLE = "Fehler"

    ...

If Strcompare(strViewName, "Rules")  = 0 Then

      ...

Elseif Strcompare(strViewName, "($Sent)")  = 0 Then

...

For i=1 To source.documents.count
Set doc = source.documents.GetNthDocument(i)

If (nAction = 1) Then
If doc.isuidocopen Then
noteid = doc.noteid
Delete doc
Set doc = source.database.getdocumentbyid(noteid)
doc.remove True
Else
' Remove All
Call source.documents.RemoveAll(False)
Exit For
End If
Elseif nAction=2 Then
Call source.documents.stampall("ExcludeFromView", "S")
Exit For
End If
ws.viewrefresh
Next

ws.viewrefresh
Continue = False
BadDoc:
If Err = 4241 Then
Messagebox DocPreviewMessage, MB_ICONEXCLAMATION, DocPreviewTitle
Exit Sub
End If

' if C&S View or Note is Open in UI then....
Elseif strViewName = "" Or IsCSView(strViewName) Or IsToDoView(strViewName) Then

...

End if

If Not( profiledoc Is Nothing ) Then Delete profiledoc
continue=False
If (fRefresh = True) Then Call ws.viewrefresh
If RefreshCalendar = True Then Call ws.ViewRefreshByDBid(source.Database.ReplicaID,"($Calendar)",True)
Exit Sub 'backwards compatibility

End Sub
An jeder Stelle, an der "tatsächlich" gelöscht wird, ist ein zusätzliches "doc.Remove" oder "source.documents.RemoveAll(False)" und ein "continue = false"...

Im selben Code ist übrigens auch die Abfrage auf "@IsSoftDeleteEnabled" drin, und wenn nicht, dann reagiert der Code tatsächlich anders...

Das heisst: ohne diesen Code werden die Mails IMMER bis zum Drücken von "F9" in der Ansicht bleiben, und erst danach in den Trash wandern... Also genau das Verhalten, was tfrenz bescvhreibt...   
« Letzte Änderung: 09.06.20 - 11:22:22 von Tode » Gespeichert

Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen...

Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
jBubbleBoy
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1187



« Antworten #7 am: 09.06.20 - 15:54:49 »

@Torsten: Ein doc.Remove, in Kombination mit einem continue = false, ändert nichts an einer gesetzten Softdeletion-Datenbankeigenschaft und etwas anderes habe ich nie behauptet Wink

Wenn man das F9 drücken umgehen möchte, dann hilft genau diese Kombination von remove und continue=false. Muss in das Datenbankereignis Querydocumentdelete gesetzt werden:
Code:
Call source.Documents.Removeall(true)
continue = False
On Error Resume Next
Dim ws As New NotesUIWorkspace
ws.Viewrefresh
Gespeichert

Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.9
--
Nur ein toter Bug, ist ein guter Bug!
Tode
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 6445


Geht nicht, gibt's (fast) nicht... *g*


« Antworten #8 am: 09.06.20 - 16:08:04 »

Aber dann versteen wir uns ja... Genau das wollte ich ja sagen: Das normale Verhalten ist: Dokument bleibt da mit Häkchen, egal ob Softdeletion oder nicht... Wenn man das Häkchen nicht will, dann muss man im QueryDocumentDelete eingreifen...
Gespeichert

Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen...

Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
tfrenz
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 185



« Antworten #9 am: 09.06.20 - 16:13:46 »

Hallo,
Danke n jBubbleBoy, das mit Viewrefresh war das was mir gefehlt hat.
Jetzt funktioniert es so wie es sein soll.
Auch Danke an Tode, für die exakte Erklärung
Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: