Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Joe Kinley am 29.01.04 - 18:15:58

Titel: Spezielle Dokumenten Abfrage
Beitrag von: Joe Kinley am 29.01.04 - 18:15:58
Hi Leute...
Ich hab absolut keine Ahnung wie ich folgenden Sachverhalt in Code schreibe... irgendwie funzt das nicht richtig:

Falls (If) Dokument 1 (aus Database 1) in Database 2 Nicht vorhanden ist, dann kopiere es in Database 2, ansonsten gehe zu Label sowieso....

Wenn ich einfachso kopiere, macht er doppelt und dreifache Daten... und ich will nicht immer sichergehen, dass das Dokument net schon existiert...
Wie krieg ich das hin?
Titel: Re:Spezielle Dokumenten Abfrage
Beitrag von: Glombi am 29.01.04 - 18:40:15
Ein Dokument kann immer nur in einer Datenbank vorhanden sein- rein physikalisch gesehen. In der anderen Datenbank kann aber eine Kopie sein. Jetzt stellt sich die Frage, wie checkt man ab, ob eine Kopie da ist. Da gehe ich so vor:
Beim Kopieren schreibe ich ein Zusatzfeld namens "SourceDocID" die Dokumenten-ID des Ursprungsdokuments.

Z.B. So
... das übliche Set und Dim Gedöns ...
set copydoc = sourcedoc.CopyToDatabase( targetdb )
copydoc.SourceDocID = sourcedoc.UniversalID
call copydoc.Save(true,true)

Das setzt natürlich voraus, dass man das kopierte Dokument ändern darf!

Damit kann man vor dem Kopieren prüfen, ob es bereits ein Dokument gibt, in dem in SourceDocID die DokumentUnqiueID steht - z.B. mit
set copydoc = view.GetDocumentByKey( sourcedoc.UniversalID, true )
if copydoc is nothing then
 'hier dann den Code für's Kopieren reinsetzen...

end if

Andreas
Titel: Re:Spezielle Dokumenten Abfrage
Beitrag von: Joe Kinley am 29.01.04 - 18:49:22
Mmmh.. okay... werd ich mal ausprobieren... aber
Was ist, wenn ich kein zusätzliches Feld hineinbringen kann?
Geht das nicht anders ?
Titel: Re:Spezielle Dokumenten Abfrage
Beitrag von: Glombi am 29.01.04 - 18:54:42
Was ist, wenn ich kein zusätzliches Feld hineinbringen kann?
Geht das nicht anders ?
Das geht auch, Du brauchst nur einen eindeutigen Schlüssel. Das kann bspw. eine Kombination von Feldern sein oder ein bestimmtes Feld, welches das Dokument eindeutig identifiziert. Dann brauchst Du in der 2. Datenbank eine Ansicht, die nach diesem Feld sortiert ist. Dort dann wie in meinem Beispielcode das Dokument holen. Falls es keines gibt, kannst Du es kopierern.

Andreas
Titel: Re:Spezielle Dokumenten Abfrage
Beitrag von: koehlerbv am 29.01.04 - 18:56:57
Ich glaube, wir sollten hier erstmal ein paar mehr Grundlagen erfragen:
Was ist für Dich ein Zustand "Dokument 1 ist in DB1 vorhanden, aber nicht in DB2" ? Dafür muss es ja Bedingungen geben.

Was "funzt" bei Dir "irgendwie" nicht ? Hast Du schon irgendwas selber als Ansatz ausprobiert ?

Danach (!) können wir Ansätze wie den von Andreas weiter diskutieren. Bisher ist das "Skispringen im Nebel" - und das Orakel ist auch gerade wieder nicht greifbar ...

Bernhard