Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Johann am 07.12.05 - 14:00:00
-
Hallo,
ich würde gerne Dokumente miteinander vergleichen. Wobei die Dokumente in unterschiedlichen DB liegen. Dazu würde ich gerne die UniqueID verwenden. Falls er die UniqueID nur in DB 1 findet, soll das Dokument auch in der anderen DB 2 gelöscht werden.
-
Dann mach es doch !
Oder wie sollen wir den Beitrag verstehen ?
-
Frage dazu: Wie stell ich das an?
-
Das ist alles etwas dünn, was bisher rüberkommt.
Was heisst das denn: ich möchte Dokumente vergleichen ? Alle Felder oder nur eines, etc etc ?
Ansonsten gehst Du die eine DB sequentiell durch und schaust nach, ob das Doc in der anderen Db vorhanden ist. Da kommt schon die nächste Frage, woran erkennst Du denn, ob das Doc auch in der 2. DB ist ?
Fazit: ich hab heute meine Glaskugel nicht dabei, also kann ich Dir nicht viel weiterhelfen.
-
Da gibts doch irgendein Tool für, oder ???
-
Unter Umständen gibt es ein Tool (Teamstudio Delta - muss aber für Dokumentenvergleich zusätzlich programmiert werden).
Ein Vergleich über die DocumentUniqueID wird nicht möglich sein, da es sehr unwahrscheinlich ist, dass in zwei DBs die UNIDs gleich sind - es sei denn, die beiden DBs sind Repliken voneinander.
Bernhard
-
Hallo,
ich würde gerne Dokumente miteinander vergleichen. Wobei die Dokumente in unterschiedlichen DB liegen. Dazu würde ich gerne die UniqueID verwenden. Falls er die UniqueID nur in DB 1 findet, soll das Dokument auch in der anderen DB 2 gelöscht werden.
Ich versteh ehrlich gesagt nur Bahnhof ???
Die UniqueID heißt nicht umsonst so. Wenn es sich nicht um Repliken handelt, wirst Du darüber keine Treffer bei einem Vergleich bekommen.
Dazu ist der letzte Satz entweder unglücklich formuliert oder unlogisch. Wenn das Dokument nur DB1 gefunden wird, kann wohl in DB2 nicht sein, was gelöscht werden soll.
-
Mist, Bernhard war schneller ;D
-
mit DWFSYNC kannst du solche Stunts machen ( http://www.eknori.de/archives/41 ). Die Docomente in den beiden Datenbanken müssen nur eindeutig identifizierbar sein. Wie du dir den Schlüssel aufbaust, bleibt deiner Phantasie überlassen.
-
Die UniqueID wird beim erstellen berechnet. anschließend wird aus sicherheitsgründen, das Dokument auf eine andere DB kopiert, aber so, dass beide UniqueID gleich sind. Nun kann es aber sein, dass aus der untergeordneten DB das Dokument gelöscht wird, deshalb muss es aus der übergeordneten natürlich auch verschwinden.
Der Vergleich erfolgt also basierend nur auf zwei Felder. Das Dokument in der übergeorneten DB bleibt, wenn der Agent das passende Gegenstück findet. Die Frage bleibt, wie gehe ich vor.
-
Das wäre ja ein ganz simples Vorgehen:
- Du loopst durch alle in Frage kommenden Docs in DB1
- Du suchst für jedes Doc in DB1 das Gegenstück in DB2 mit NotesDatabase.GetDocumentByUNID
- hast Du keinen Treffer, wirfst Du das Doc in DB1 weg.
Bernhard
-
Wie ich es schon ganz am Anfang angedeutet hatte... ;D