Domino 9 und frühere Versionen > ND8: Entwicklung

Prüfung auf "Dokument verwaist" und dessen Umwandlung in Hauptdokument

(1/5) > >>

Stefanie:
Hallo zusammen,

zuerst einmal muss ich betonen, dass ich der absolute Newbie in der Notes-Entwicklung bin.
Es geht um folgendes:
In unserer Firma ist in einer Datenbank ein Ansichtsfehler aufgefallen.
Die Ansicht "Alle Dokumente" ist mit Antwortdokumente hierarchisch anzeigen eingestellt.
Somit werden uns jedoch in dieser Ansicht die verwaisten Dokumente (Dokumente ohne Hauptdokument) nicht angezeigt.

Ich möchte einen Vergleich programmieren, der prüft, ob die Antwortdokumente (unterschiedliche Formen - Memos, Replys, Response..) auch ein Hauptdokument mit dem selben UNID besitzt.
Wenn NEIN, dann soll dieses Antwort-Dokument in ein Hauptdokument gewandelt werden.
Das alles müsste dann wieder in der Ansicht "Alle Dokumente" mit Hierarchierung auftauchen.
Oder?

Ich habe schon verschiedene Artikel hier durchgelesen, aber leider keinen passenden gefunden.

Wie gesagt bin ich ein absoluter Frischling in der Notes-Entwicklung und habe mich erst minimalst eingelesen. Am besten kann ich mit Formelsprache arbeiten, aber das ist glaube ich so nicht lösbar.

Ich hoffe sehr, dass ihr mir weiterhelfen könnt!!
 :)

Habt DANK!!

pram:
Hallo Stefanie,

willkommen hier im Forum.

Der Grund, warum du diese Dokumente nicht siehst, ist weil die Ansicht auf "hierarchisch" steht.
Damit du also an alle Dokumente ran kommst, brauchst du eine Ansicht die nicht auf hierarchisch steht.

Um die unsichtbaren Dokumente zu identifizieren
kannst du evlt. 2 Ansichten bauen, welche alle und welche nur die sichtbaren Dokumente anzeigt.
Dann machst du eine Spalte, die die UNID des Doks anzeigt, wenn du nun diese 2 Spalten "subtrahierst", dann hättest du alle UNIDs die betroffen sind.
=> Mit subtrahieren meine ich die UNIDs aus der Liste entfernen, das kannst du entweder mit Formelsprache der Art:
unsichtbareUNIDs := @unique(@Replace(AlleUNIDs;SichtbareUNIDs;"")) machen oder mit Texteditor/Excel/was weiß ich.

Diese Dokumente verschiebst du in einen Folder (oder gibst die Liste als Select-Formel an) und entfernst dann von all diesen Dokumenten das "$REF" Feld.

Dann sollten das wieder Hauptdokumente sein.
Alles natürlich vorher in einer Kopie testen ;)

Gruß
Roland

Peter Klett:
Formelsprache ist hier wirklich nicht das geeignete Mittel.

Du solltest Dich soweit in Script einlesen (die Hilfe mit den Beispielen ist dafür sehr gut geeignet), dass Du eine NotesDocumentCollection durchlaufen kannst.

Dein Script könnte sinngemäß so aussehen:

Zuerst holst Du Dir mittels eines NotesDatabase.Search alle Dokumente, die ein Item "$REF" haben. Selektionsformel im Search = @IsAvailable ($REF).

Diese Collection durchläufst Du Dokument für Dokument und prüfst anhand der Propertie ParentDocumentUNID (das ist die UniversalID des Elterndokuments), ob es das Elterndokument überhaupt gibt. Ein dafür brauchbarer Befehl wäre NotesDatabase.GetDocumentByUnid. Das Blöde an dem Befehl ist, dass der bei Nichtvorhandensein des Dokuments aussteigt, da müsstest Du mit On Error darum herumbasteln.

Findest Du ein Dokument ohne Elterndokument, löschst Du das $REF mit NotesDocument.RemoveItem, danach nicht vergessen, das Dokument zu speichern.

Fang einfach an, Dich mit Script vertraut zu machen. Wenn Du dann irgendwo hängst, frag gerne noch mal konkret nach. Fertige Scripte schreiben wir hier allerdings nur selten bzw. ungern.

EDIT: Dass Formelsprache kein geeignetes Mittel ist, bezieht sich nicht auf den Beitrag von Roland. Ich dachte eher an einen dauerhaften Reparaturagenten und nicht an eine einmalige Aufräumaktion.

ascabg:
@pram
Klingt zwar irgendwie einleuchtend, aber eine kleine Frage/Anmerkung hierzu.

Wie kommen die Werte in die beiden Variablen "AlleUNIDs" und "SichtbareUNIDs"?


Andreas

Peter Klett:

--- Zitat von: ascabg am 23.07.13 - 16:52:06 ---@pram
Klingt zwar irgendwie einleuchtend, aber eine kleine Frage/Anmerkung hierzu.

Wie kommen die Werte in die beiden Variablen "AlleUNIDs" und "SichtbareUNIDs"?


Andreas

--- Ende Zitat ---

@DBColumn

Könnte aber schnell ein 32 oder 64 kB-Problem geben.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln