Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: USmash am 31.08.18 - 09:06:50

Titel: doc items nicht vorhanden
Beitrag 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
Titel: Re: doc items nicht vorhanden
Beitrag von: Tode am 31.08.18 - 11:50:07
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)
Titel: Re: doc items nicht vorhanden
Beitrag von: USmash am 03.09.18 - 08:33:55
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.  :-:
Titel: Re: doc items nicht vorhanden
Beitrag von: ronka am 03.09.18 - 08:56:14
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.
Titel: Re: doc items nicht vorhanden
Beitrag von: jBubbleBoy am 03.09.18 - 09:13:33
probiere es mal mit der CopyAllItems Funktion:
https://www.ibm.com/support/knowledgecenter/en/SSVRGU_9.0.1/basic/H_COPYALLITEMS_METHOD.html
Titel: Re: doc items nicht vorhanden
Beitrag von: USmash am 03.09.18 - 15:44:02
Kopieren geht ja, bringt aber auch kein heiles Dokument zum Vorschein.
Löschen funktioniert nicht
Titel: Re: doc items nicht vorhanden
Beitrag von: jBubbleBoy am 03.09.18 - 15:55:32
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?
Titel: Re: doc items nicht vorhanden
Beitrag von: USmash am 03.09.18 - 16:26:17
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.

Titel: Re: doc items nicht vorhanden
Beitrag von: jBubbleBoy am 03.09.18 - 16:34:19
Welche Löschversuche hast Du denn schon probiert?
Titel: Re: doc items nicht vorhanden
Beitrag von: eknori am 03.09.18 - 17:36:06
Probiere mal ein load compact -c -i <databaseName> an der Domino console.
Titel: Re: doc items nicht vorhanden
Beitrag von: ronka am 03.09.18 - 17:43:20
Und wie sind die beide zusätzliche documente entstanden ? Mit CopyAllItems ?
Titel: Re: doc items nicht vorhanden
Beitrag von: USmash am 04.09.18 - 08:17:49
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.
Titel: Re: doc items nicht vorhanden
Beitrag von: eknori am 04.09.18 - 08:21:58
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!!"
Titel: Re: doc items nicht vorhanden
Beitrag von: eknori am 04.09.18 - 08:44:10
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.

Titel: Re: doc items nicht vorhanden
Beitrag von: USmash am 04.09.18 - 09:00:19
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.

Titel: Re: doc items nicht vorhanden
Beitrag von: eknori am 04.09.18 - 09:06:14
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.
Titel: Re: doc items nicht vorhanden
Beitrag von: jBubbleBoy am 04.09.18 - 09:27:50
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
Titel: Re: doc items nicht vorhanden
Beitrag von: USmash am 04.09.18 - 10:30:31
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
Titel: Re: doc items nicht vorhanden
Beitrag von: Peter Klett am 04.09.18 - 11:32:07
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.
Titel: Re: doc items nicht vorhanden
Beitrag von: USmash am 04.09.18 - 12:02:46
über die Eigenschaftenbox kann ich die einzelnen Felder sehen und auch alle anderen Eigenschaften des Dokuments sind verfügbar.