Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: USmash am 31.08.18 - 09:06:50
-
wir haben hier 2 Dokumente, die sich nicht bearbeiten aber auch nicht löschen lassen. Beim öffen kommt die Fehlermeldung "Element nicht gefunden".
beim Versuch mit einem Agent die Felder einzeln zu löschen, habe ich bemerkt, das das Array doc.items nicht exisitert. Die Felder sind in der Eigenschaften Box mit Inhalt sichtbar.
Gibt es ein Trick die Dokumente doch noch zu löschen ?
Das Dokument kopieren funktioniert. Leider ist auch in der 2. Datenbank kein anderes Verhalten zu erkennen...
Kann ich das Items Array neu erstellen ?
Danke für die Hilfe
-
Und doc.RemovePermanently(True) funktioniert auch nicht? Dann hilft nur ein Fixup...
Was sagt denn "doc.IsValid" und "doc.IsDeleted" ?
Möglicherweise IST das Dokument schon gelöscht, und nur die Ansicht / der Volltextindex kriegt das nicht mit (Shift + F9 hilft in so einem Fall)
-
Hallo Torsten,
Doc.isvalid = True
Doc.isdeleted = False
Doc.items ist kein Array
DB Fixup hat nicht geholfen.
Man kann im Script auch jedes Feld kopieren, aber man muss halt wissen welche Felder enthalten sind.
Hab ich bisher noch nie erlebt. :-:
-
Hi, dann nehme doch mal dieses dokument UND ein weiteres.
Gehe in das "richtige" dokument durch den Items, und nehme dessen itemname für den kopieraktion des andere dokuments.
-
probiere es mal mit der CopyAllItems Funktion:
https://www.ibm.com/support/knowledgecenter/en/SSVRGU_9.0.1/basic/H_COPYALLITEMS_METHOD.html
-
Kopieren geht ja, bringt aber auch kein heiles Dokument zum Vorschein.
Löschen funktioniert nicht
-
CopyToDatabase ist ein anderer Befehl als CopyAllItems ;)
Kannst Du die Dokumente als DXL/XML exportieren?
Wie verhält es sich mit Repliken z.B. bei einer lokalen Replik, werden da die Dokumente problemlos repliziert?
-
vielen Dank für die Kreativen Ideen.
Jetzt habe ich nicht nur 2 Dokumente, die ich nicht gelöscht bekomme sondern 4. ;D
Mein Fokus liegt auf dem Löschen der Dokumente.
-
Welche Löschversuche hast Du denn schon probiert?
-
Probiere mal ein load compact -c -i <databaseName> an der Domino console.
-
Und wie sind die beide zusätzliche documente entstanden ? Mit CopyAllItems ?
-
Ich hab die Dokumente versucht zu löschen mit :
1. ENTF-Taste
2. call doc.remove(true)
3. call doc.removepermanently(true)
4. DocCollection.removeall(true)
5. fluchen
alles ohne Erfolg
@eknori - den Compact hab ich in Auftrag gegeben.
-
Für das Löschen kannst du dir auch einmal versuchsweise einen Agenten mit "einfacher" Aktion erstellen.
Die einfachen Aktionen gehen direkt auf die API Ebene, und umgeht teilweise einige Vorab Prüfungen. Die hören nor "Löschen!" - "Löschen, GEIL! Machich!!"
-
noch eine Frage zum delete. Ist auf der Datenbank "Soft Deletions" aktiviert?
Wenn ja, dann deaktiviere mal das Feature und versuche erneut zu löschen.
-
der Compact hat nichts gebracht
einfache Funktion löschen hat nur zum löschen markiert
Formel @deletedocument auch kein Erfolg.
Auch NotesPeek kann nicht auf das Dokument richtig zugreifen.
Wiederherstellbare Löschungen waren aktiv - nach deaktivierung keine Änderung des Ergebnis.
-
Dann mache eine Kopie der Datenbank ( ohne Dokumente ), kopiere die "gesunden" Dokumente rein und gut ist.
Und jetzt nochmal für den dicken, alten Mann zum besseren verständnis. Was fehlt auf dem Dokument? Items Array sagt mir nichts. Kenne nur das $Fields im Design, das findet sich aber nicht auf dem Dokument
Wenn doc.items keinen Wert zurückliefert, heisst das nicht automatisch, daß auf dem Dokument etwas "fehlt". Es ist offenbar kaputt, und dann läuft das doc.items intern auf einen Fehler und liefert ein leeres / kein Array zurück.
-
Und jetzt nochmal für den dicken, alten Mann zum besseren verständnis. Was fehlt auf dem Dokument? Items Array sagt mir nichts. Kenne nur das $Fields im Design, das findet sich aber nicht auf dem Dokument
ist eine Eigenschaft des Dokumentes, das hier nichts steht hatte ich aber noch nie:
https://www.ibm.com/support/knowledgecenter/en/SSVRGU_9.0.1/basic/H_ITEMS_PROPERTY.html
-
Doc.items liefert ja im Normalfall das Array mit den Items.
Ich wollte damit jedes einzelne Item durchgehen und es einzeln löschen, um das "defekte" Feld bzw. Inhalt zu finden.
Dadurch bin ich erst drauf gekommen, das nicht ein Feld "kaputt" ist sondern der Index selber.
Vielen Dank an alle für die Mühe
-
Ich hatte einmal einen Agenten, der auf Dokumente zugriff, auf die er keine Leserechte hatte (frag mich aber keiner, warum der dann das Dokument gefunden hatte). Bei diesem Dokument war doc.Items auch kein Array. Seither wird an der Stelle zusätzlich für jedes Dokument geprüft, ob doc.Items ein Array ist.
Vielleicht hast Du dem Dokument ja alle Items gelöscht, und Notes glaubt jetzt, dass das Dokument nicht gelesen werden darf. Dann wäre es evtl. logisch, dass man Dokumente nicht löschen kann, die man nicht lesen darf.
Das ist nur mal so ins Blaue geschossen ...
Erstelle doch mal von der Datenbank eine Replik und prüfe, ob die Dokumente in der Replik vorhanden sind.
-
über die Eigenschaftenbox kann ich die einzelnen Felder sehen und auch alle anderen Eigenschaften des Dokuments sind verfügbar.