DECS und Notes

  • Den eigentlichen Effekt, daß Änderungen in der externen Datenbank von DECS bemerkt und in Notes automatisch angepasst werden, vermisse ich im.
    Ich dachte, dazu gibt es diesen Connection Service.


    Ich muß bei Änderungen jedesmal DECS stoppen, die bisherigen Einträge in der Notesdatenbank löschen, in DECS die Aktion InitializeKeys ausführen und DECS wieder starten.
    Habe ich die Einträge in der Notesdatenbank nicht gelöscht, habe ich dann alles doppelt drin.
    Es wird also nicht nur der neu dazugekommene Datensatz hinzugefügt, sondern immer alles komplett.


    Ist denn das so gedacht ?
    Oder muß man da noch irgendwelche Einstellungen machen?


    Ich dachte, das ganze funktioniert so.
    Ich richte alles einmal ein, wie schon getan.
    Dann starte ich den ConnectionService automatisch oder von mir aus auch manuell.
    Ab diesem Zeitpunkt sollte DECS halt mitkriegen, wenn sich in der externen Datenbank etwas tut und die Notesdatenbank entsprechend anpassen.
    Alles andere macht doch sonst keinen richtigen Sinn, oder sehe ich das falsch?


    gruss, dave

  • Ich glaube da hast du DECS etwas falsch verstanden.
    DECS reagiert auf das Öffnen, Erstellen, Ändern und Löschen von Daten in Notes Datenbanken und gleicht dies mit externen Datenbanken ab.
    Wenn in den externen Datenbanken etwas geändert worden ist bekommt dies DECS erst beim nächsten Notes Ereignis mit.
    Das bei dir dann die Dokumente doppelt angelegt werden, deutet darauf hin, daß es keinen eindeutigen Schlüssel gibt der die Daten beider Systeme miteinander verknüpft

  • Hier scheinen einige Irrtümer zum Sinn und Zweck von DECS vorzuliegen, daher umreiße ich kurz was DECS ist und was es NICHT ist:


    DECS ist eine Domino-basierte Möglichkeit Daten von Legacy-Systemen (also Nicht-Notes-Systemen) mit Masken und beschränkten Ereignissen die innerhalb von Domino verwendet werden zu verknüpfen. Dabei ist zu beachten, daß hier Notes/Domino das führende System darstellt. Es werden also ausschließlich Events vom führenden System automatisch behandelt.



    Wann ist DECS sinnvoll?


    DECS ist dann sinnvoll wenn ich z.B. innerhalb einer Notes Applikation Daten pflegen und speichern möchte, die sich teilweise oder vollständig auf einem Legacy System befinden. Um diese fremden Daten mit Notes Daten zu verknüpfen benötigt man einen gemeinsamen Schlüssel. Diese Schlüssel müssen Notes bekannt gemacht werden. Das erfolgt entweder durch statische Hinterlegung oder durch die redundante Speicherung innerhalb von Notes. Ändern sich die Schlüssel müssen diese Änderungen auch Notes neu bekannt gemacht werden.


    Die Verknüpfung der über die Schlüssel zugeordneten Daten erfolgt mit Hilfe von Masken. D.h. es werden innerhalb der Maske Felder definiert und anschließend in der DECS Konfiguration mit den Legacy Daten verknüpft.


    Ändert man in Notes verknüpfte Daten so können diese automatisch von DECS auch im Legacy System geändert werden. Ändern sich Daten im Legacy System so müssen diese durch die Maske erneut abgerufen und durch Speicherung (z.B. für die Darstellung in Ansichten) oder Berechnung zur Anzeige (nur in der Maske) gebracht werden. Es handelt sich hierbei immer um einen Vorgang, der von Notes aus aktiviert werden muß. Das kann nur in Echtzeit durch Aufruf der Dokumente im Client oder durch Löschen oder Erstellen von neuen Dokumenten erfolgen.


    Dadurch eignet sich DECS vorzugsweise als Methode, um mit Notes/Web Clients ein Front End zur Datenpflege in Legacy Systemen bereitzustellen. Alternativ kann diese Funktion auch simpel verwendet werden um in einer Notesmaske zusätzlich zu den Feldern des Notesdokuments Virtuelle Felder mit Daten des Legacy Systems einzublenden.



    Was kann DECS nicht?


    DECS ist nicht dafür ausgelegt Daten mit Legacy Systemen abzugleichen (Replikation). DECS verfügt ausschließlich über Notes/Web Client getriggerte Real Time Aktivitäten (ab ND6 als Virtual Fields bezeichnet), Abgleich und Synchronisation sind ebensowenig vorgesehen wie extern getriggerte Aktivitäten. Ändern sich Daten im Legacy System müssen diese aktiv von der Notesapplikation selbst behandelt werden.


    Weiterhin ist zu beachten, daß Virtual Fields, die nicht redundant in Notes Dokumenten gespeichert wurden, auch nicht in Ansichten dargestellt werden können.



    Was für Möglichkeiten habe ich ausser DECS?


    Nun, zum einen gibt es für periodische Abgleiche die Möglichkeit per ODBC oder native Datenbank-Treiber eigene Agenten zu programmieren. Zugegeben relativ aufwändig und fehleranfällig.


    Um mit Legacy Systemen "echte" Replikation und Abgleiche durchzuführen (analog zur Notes Replikation) bieten IBM/Lotus das Produkt LEI Server (Lotus Enterprise Integration) an (früher auch als Notes Pump bekannt). Dieser vereinigt die RealTime Aktivitäten und periodischen bzw. ereignisgesteuerten Aktivitäten in einem kompletten Produkt. Dabei erfolgt die Konfiguration ähnlich wie bei DECS nur mit etlichen zusätzlichen Möglichkeiten. So können mit LEI 6 sogar Legacy Daten in Ansichten dargestellt werden (Virtual Documents) ohne sie innerhalb von Notes speichern zu müssen! DECS ist sozusagen nur eine kleine Teilkomponente von LEI nur ohne separat zu lizensierenden Server.


    Last but not least bleibt die Möglichkeit ein Produkt eines Drittanbieters einzusetzen, dafür bitte dann mal Google bemühen da das hier zu sehr ausufern würde ;)

  • Schön und gut, dass du das so ausführlich beschrieben hast, helfen tuts mir aber wenig.....


    Was ich habe/möchte!


    Ich habe eine Oracle-DB und eine Notes-DB, die Oracle-DB lebt und verändert sich ständig, die Notes-DB wird nur zur Anzeige verwendet.
    Durch den DECS-Admin habe ich die virtuellen Felder definiert und auch ein KeyFeld Oracle <> Notes gemappt!
    Mit Intialize Keys werden dei Dokumente erstellt!


    Wie muss ich es in diesem Fall konfigurieren, ändern, anpassen, dass es mir die Dokumente aktualisert....oder das mir die Dokumente wie Scheduling in der Notes-DB erstellt werden, damit ich dort dasHandling selbst machen ksnn???

  • Wenn die Notes-DB nur zur Anzeige verwendet wird ist sie nicht das führende System, damit ist mit DECS dein Problem so gut wie unlösbar. Die virtuellen Felder sind der Maske und nicht der Datenbank zugeordnet. Damit lassen sich per DECS auch nur über die Maske Änderungen nach Notes holen.


    Du kannst:


    a) Agenten programmieren, die per ODBC oder mit nativen DB-Treibern die Daten regelmäßig aktualisieren (ohne DECS)
    b) LEI Server einsetzen und diesen den Abgleich automatisch ausführen lassen
    c) LEI Server einsetzen und die Daten der Oracle-DB in Form virtueller Dokumente in Notes darstellen (kein Abgleich nötig da Daten gar nicht in Notes gespeichert werden).


    Entsprechend deiner Beschreibung empfehle ich hier c) da Notes nur zur Anzeige dienen soll.

  • Ich stimme hier Carsten voll und ganz zu. Wir haben ein Shop Management System in Notes umgesetzt. Dabei hatten wir die AS 400 als Datenquelle für die Produktdaten (Preise, Artikelnummer, Verfügbarkeiten u. a.) und einen Online-Shop von Macromedia (MySQL als Datenbank).


    Zuerst haben wir auch mit DECS hantiert, dabei wurde aber wirklich die Usability der Anwendung beschränkt (zu viele Fehlermeldungen und und und).


    Danach haben wir teile in periodische Agenten ausgelagert - dabei wird über LS:DO die Daten abgefragt und in Notes angepasst. Funktioniert zwar, aber der Datenabgleich erfolgt eben jede halbe Stunde und wir haben eeeeeewwwwiiiiig gebraucht, um die Agenten zu schreiben.


    Tja, auch nicht die feinste Lösung. Jetzt haben wir innerhalb von wenigen Stunden den LEI installiert, konfiguriert und läuft bereits seit 3 Monaten stabil ohne Fehler. Und ganz ehrlich: "nachts keine alpträume mehr von DECS gejagt zu werden" ,-))


    Zwar kostet das ganze glaub so zwischen 5.000 - 10.000 EUR aber die Investition ist es wirklich wert.


    So, das war mein Senf dazu.


    lg,
    ghost

  • OK ich sehe, das aktualiseren der Dokumente muss ich von Hand resp. wie Agents machen.


    Wie ist es den mit Dokumenten erstellen?
    Wenn das gienge, kann ich das aktualiseren via Agent machen.


    dave

  • Klar,


    das könntest du auch, wenn du z. B. eindeutige Schlüssel hast. Du könntest z. B. über eine SQL-Query (in meinem Fall) alle Datensätze in der fremden DB abfragen. Dann schreibst du die Schlüssel in ein Array.


    Später gehst du alle Dokumente in der Notes DB durch (z. B. mit doc = view.GetDocumentByKey(key) - wobei key ein aktueller wert aus deinem array ist). Wenn dann doc "nothing" ist, weisst du, dass das dokument nicht existiert und könntest dann ein neues doc in der notes-db anlegen. Falls das doc existiert, dann einfach nur die Werte ersetzen.


    hilft das?


    lg,
    ghostxxl

  • Das mit dem Aktualisieren krieg ich schon hin, sowas habe ich auch scho gemacht.


    Die Vebindung und erstellung der Dokumente von meiner Oracle DB schnallich nicht ganz.


    Muss ich da mit Script eine Verbindung aufbauen und das mache?


    Wenn ja, dann kann ich doch auch das Initialize Keys von der DecsAdmin verwenden, und einen Agent triggern, den diese macht genau das was ich will.


    gruss

  • Das Initialize Keys setz aber voraus daß du alle in Notes gespeicherten Keys zuerst löschst. Insofern wäre ein Abgleich per Agent eigentlich sinnvoller (aber aufwändiger zu programmieren). Wenn dich das Löschen nicht stört dann nimm halt Initialize Keys. Das läuft dann über DECS, die andere Variante mit den Agenten hat mit DECS nichts mehr zu tun.

  • Da das eigentlich als einmalige Systemaktion im DECS Admin gedacht ist wohl eher nicht ohne weiteres.


    Aber mit etwas Fummelei sicher mit einem Agenten machbar der erst alles löscht und dann im DECS Admin die Funktion antößt. Hab ich aber noch nie ausprobiert ;)

  • Hallo


    Irgendwie bring ich das nicht zustande.
    Vielleicht muss ich es direkt mit einem Agenten machen, der den Connect zur Oracle DB aufbaut, die Dokumente in Notes erstellt und den Connect wieder zu macht.


    Aber hat da jemand ned Ahnung?
    Oder weiss jemand, wie ich den Agent "Initialize Keys" per Scheduling anstossen kann?


    gruss

  • Salü


    ich habe den Connect und die Erstellung sowie Aktualisierung der Dokumente von Oracle --> Notes mit einem Agent selbst "gestrickt". War gar nicht so schwierig, jedanfalls weniger Zeitaufwendig weder das DECS zeugs;-)


    Gruss und Dnak an alle die hier was geposted haben.


    Dave