Nein, denn du willst sie ja in einer Ansicht anzeigen, also müssen die Werte in dem anzuzeigenden Dokument vorhanden sein
Werte für eine Ansicht aus einer anderen Datenbank auslesen?
- Elfriede
- Erledigt
-
-
Um Dokumente aus der DB auf deinem Client, die du geändert oder neu erstellt hast, in die DB, auf die du über deine CMS zugreifst, zu kopieren kannst du dir einen Agenten erstellen:
(z.B.: Bedingung->"Wenn Dokumente erstellt oder geändert wurden" ; Aktion=Einfache Aktion->"In Datenbank kopieren")
Dann mußt du aber auch eine Ansicht in der "Web-DB" haben bzw. erstellen, die dir dir Dok's anzeigt. D.h. du mußt auch eine Maske haben, die den gleichen Namen hat, wie die Maske der org. Doks.
Zwangsläufig wirst du dabei aber vermutlich bei geänderten Doks in deiner "WebDB" doppelte / veraltete Dokumente haben... -
Gut, ich werde dies mal austesten. Danke erstmal für eure Hilfe.
-
Super das hat geklappt, mal sehen wann es die ersten Konflikte gibt ;-)!
-
Ich finde die Beste Lösung wäre ein Java-Servlet, dass mittels XML die Daten aus den Ansichten holt und selber eine Ansicht darstellt.
-
Wie bekomme ich doppelt angelegten Einträge weg???
-
Zitat
Elfriede schrieb:
Wie bekomme ich doppelt angelegten Einträge weg???Ich gehe mal davon aus, dass du das nicht manuell ausführen willst...
Das beste währe wohl gleich beim anlegen zu prüfen ob denn schon ein solches Dokument existiert und falls ja dann das alte löschen und das neue kopieren / anlegen lassen.
Du kannst auch einen periodischen Agenten aufsetzen, der nach doppelten Dokumenten sucht und das ältere löscht oder ins "Archiv" verschiebt. -
Ich habe den Agenten (kopieren) mittels einer Aktion hineingebaut. Das heißt leider auch, dass ich den Code nicht sehen kann und gegebenenfalls dort noch einige Änderungen vornehmen kann.
Kann mir jemand einen kleinen Tipp geben, wie ich den Agenten in Lotus Script gestalten muss?
-
Sind in Script folgende Schritte:
- Dokumente als Collection(Suche) oder über einen View holen, die kopiert werden sollen
- Dokumente mit Methode CopyToDatabase kopierenMehr ist es eigentlich nicht.
Vor dem Schritt des eigentlichen Kopierens kannst du dann ja abprüfen ob das Dok schon vorhanden ist
-
Ich habe jetzt einen Agenten der mittels Script ausgeführt wird. aber irgendwo steckt noch ein Fehler. Es kommt die Meldung "Zieldatenbank" has not opened yet. Naja und dadurch wird dann das Script auch irgendwie nicht ausgeführt. Kann mir jemand nochmal einen Tipp geben?
-
Poste doch mal den Code des Agenten.
Klingt danach als ob du die Datenbank in die du deine Dokumente kopieren willst noch nicht zugewiesen hast.
-
hier der Quellcode
Dim Session As NotesSession
Dim quelldb As New NotesDatabase( "server/org", "quelldb.nsf" )
Dim zieldb As New NotesDatabase ("server/org", zieldb.nsf)If Not zieldb.IsOpen Then
Call zieldb.Open( "", "" )
End IfDim quellview As NotesView
Dim zielview As NotesViewDim quelldoc As NotesDocument
Dim zieldoc As NotesDocument
Dim zieldoctmp As NotesDocumentSet quellview = quelldb.GetView("quellansicht")
Set zielview = zieldb.GetView("zielansicht")Set zieldoc = zielview.GetFirstDocument
While Not(zieldoc Is Nothing)
Set zieldoctmp = zielview.GetNextDocument(zieldoc)
Call zieldoc.Remove(True)
Set zieldoc = zieldoctmp
WendSet quelldoc = quellview.GetFirstDocument
While Not(quelldoc Is Nothing)
Call quelldoc.CopyToDatabase(zieldb)
Set quelldoc = quellView.GetNextDocument(quelldoc)
WendEnd Sub
-
Du hast die Anführungszeichen bei dem Dateinamen/-pfad der Ziel db vergessen.
Deswegen legt er zwar eine Instanz des Objektes an aber kann die Datenbank nicht finden. -
nein, daran liegt es nicht, ich habs schon korrigiert
-
Zitat
Elfriede schrieb:
nein, daran liegt es nicht, ich habs schon korrigiertHast du den Pfad der Zieldb korrekt eingetragen?
Wenn du die Zieldb nicht im "Data" Verzeichnis des Servers liegen hast, dann mußt du die DB mit Pfad (ausgehend vom Data-Verz.) übergeben:"Pfad\\Zieldb.nsf"
Du kannst auch den Debugger einschalten und schauen, ob den die Zieldb im Programmlauf angesprochen wird.
-
Finde doch mal mit dem Script Debugger heraus an welcher Stelle genau dieser Fehler auftritt.
-
Das Script bleibt an dieser Stelle hängen
Set quellview = quelldb.GetView("quellansicht") -
Dann kann das Script die Quell Datenbank nicht finden. Deswegen ist auch das GetView nicht möglich.
Überprüf doch mal den Pfad und den Servernamen -
So, jetzt läuft das Script allerdings werden keine neuen Einträge bzw. Änderungen in die Zieldatenbank übertragen!
-
1. Wann läßt du denn den Agent laufen? Nach Erstellung neuer Doks/ Änderung alter Doks oder mit Zeitsteuerung?
2. Kopiert der Agent nur nicht, oder löscht er auch nichts in der ZielDB?