Autor Thema: Agent via LS  (Gelesen 3510 mal)

Offline Madmission

  • Junior Mitglied
  • **
  • Beiträge: 100
  • Geschlecht: Männlich
Agent via LS
« am: 14.01.03 - 15:21:20 »
Hi an alle

Ich hab wieder mal ein Problem!!!!!

Wie kann ich via Agent eine View mit Dokument aus einer DB mit einer ander DB vergleichen und die fehlenden Doc's in der View reinschreiben oder modifizierten.

Und das ganze einfach zu verstehen eine bestimmte View von einer db zu anderen abgleichen mit den dokument.

danke euch schon im voraus.

Manu

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Agent via LS
« Antwort #1 am: 14.01.03 - 15:33:26 »
ich übersetz es mal auf deutsch, wenn ich es richtig verstanden habe:

Du hast in DB 1 eine View mit 100 Docs.
Nun möchtest Du sehen, ob Docs darüberhinaus fehlen, die
in der DB 2 gespeichert sind.

In DB 1 hat ein Doc das eindeutige Feld Personalnummer.
In DB 2 hat ein Doc das eindeutige Feld Personalnummer.

Über eine DocumentCollection
(Dim collection As NotesDocumentCollection
Set collection = db.AllDocuments...)
schnappe ich mir das erste Doc im View "XYZ" der DB2, lese die Personummer aus und suche per Set notesDocument = notesView.GetDocumentByKey( keyArray [ , exact ] ) in der DB 1 in der View "ABC" nach dem Doc. Ist das Doc vorhanden (Ergebnis Nothing), wenn nicht, wird per Set notesDocument = notesDocument.CopyToDatabase( notesDatabase ) das Doc aus DB 2 in DB 1 geschaufelt.

Nun zum "modifizieren": wenn Doc 1 sowohl in Db2 wie auch in Db1 vorhanden ist, aber "anders" ist, mußt Du Feldweise vergleichen, ob eine definierte 1:1 Übereinstimmung vorliegt oder nicht. In einem zweiten Unterschritt wird also "Doc gefunden und nun Daten-Abgleich" jedes vorgesehene Feld ausgelesen und der Inhalt mit dem korrespondierenden Feld der anderen DB gegenübergestellt.

Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Madmission

  • Junior Mitglied
  • **
  • Beiträge: 100
  • Geschlecht: Männlich
Re:Agent via LS
« Antwort #2 am: 14.01.03 - 16:18:07 »
Hi!!

Als erstes möchte ich mir bedanken für die schnelle INFO.

der einzige unterschied ist, das es nur ein doc. ist sondern alle in der View. die ich vergleichen muss.

gruss manu

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Agent via LS
« Antwort #3 am: 14.01.03 - 17:42:46 »
ähm... ???... ;D..ja,
das "eine Doc" steht ja auch exemplarisch für "alle Docs in der View". Muß man sich dazudenken...ich wiss...Deitsch ist schwer sprach für mich  :P
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Madmission

  • Junior Mitglied
  • **
  • Beiträge: 100
  • Geschlecht: Männlich
Re:Agent via LS
« Antwort #4 am: 15.01.03 - 08:36:30 »
hi

Du lachst jetzt sich über mich aber ich kann nur teil weisse was mit dem anfangen, den ich habe leider noch nicht so viel erfahrung mit LS.

Es wäre mega net von dir wenn du mir den CODE etwas genauer schreiben könntest.

Bitte

Gruss Manu

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Agent via LS
« Antwort #5 am: 15.01.03 - 08:49:11 »
... haben die Dokumente die gleiche Maske und Felder zur Grundlage?
... Sind die zu vergleichenden Ansichten identisch? Sind die ersten Spalten sortiert?

ata
Grüßle Toni :)

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Agent via LS
« Antwort #6 am: 15.01.03 - 09:37:31 »
öhm, nö @madmission, warum sollte ich über Dich lachen, weil Du LS nicht beherrsscht? Wenn man es kann, ist es hilfreich und wenn nicht, lebt man dennoch ziemlich glücklich und zufrieden  ;D Zusätzlich zu ata´s Frage, was macht die zu vergleichenden Docs in DB1 und Db2 gleich, zB die Personalnummer, eine Kundennummer, oder welches Kriterium?
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Madmission

  • Junior Mitglied
  • **
  • Beiträge: 100
  • Geschlecht: Männlich
Re:Agent via LS
« Antwort #7 am: 15.01.03 - 09:49:48 »
Also es sieht so aus.

Die Dokumente habe die gleiche maske und Felder.
Die Ansicht ist die gleiche und die erste spalte ist sortiert
und suchen muss ich nach dem feld "categories" mit dem Inhalt "Web Development - Extranet" suchen und nach dem Feld "Subject" da der text der reingeschreiben wird einmalig ist.

Wenn ihr mir helfen könnt wäre das super

Gruss Madmission

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Agent via LS
« Antwort #8 am: 15.01.03 - 11:38:41 »
poste Dir den Code heute Abend rein.
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Madmission

  • Junior Mitglied
  • **
  • Beiträge: 100
  • Geschlecht: Männlich
Re:Agent via LS
« Antwort #9 am: 15.01.03 - 12:21:13 »
Super danke dir!!!! :) :) :) :)

Offline harkpabst_meliantrop

  • Senior Mitglied
  • ****
  • Beiträge: 463
  • Geschlecht: Männlich
  • I love!
    • Heute schon gelebt?
Re:Agent via LS
« Antwort #10 am: 15.01.03 - 20:02:22 »
Nochmal ganz kurz nachgehakt:

Robs Code ist eigentlich schon fast vollständig. Du brauchst keine Ansichten abzugleichen (wie sollte das auch gehen, Ansichten sind  Abfragestatements an die Datenbank, das Ergebnis folglich dynamisch). Wenn du die Dokumente abgeglichen hast, dann sind die Ansichten damit automatisch abgeglichen, weil es ja jetzt in beiden Datenbanken dieselben Dokumente gibt.

Speziell das Vergleichen bereits vorhandener Dokumente auf Änderungen (und alleine das Erkennen einer Änderung!) ist schon ziemlich umständlich, wenn es außer dem "Subject" noch weitere Felder geben sollte. Genau für solche Anwendungsfälle haben uns die Notes-Väter nicht umsonst die Replikation mitgegeben.

Wenn das ausscheidet, dann halte ich es nicht für sinnvoll machbar, dass in beiden Datenbanken diese Dokumente geändert werden dürfen.



Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Agent via LS
« Antwort #11 am: 15.01.03 - 23:28:38 »
ja, also hier der Code, wobei @harkpabst schon das wichtigste gesagt hat, wenn man nämlich auch Änderungen in verschiedenen Feldern triggern möchte, daß dazu eigentlich die Replikation absolut ideal ist. daher berücksichtige ich diesen speziellen Fall nicht.

Ein Agent, der in der Quell DB startet, die ALLE Docs vorhält und nun nachschaut, ob in der "Slave" (ich nennen sie "DB2.nsf") DB auch diese Docs vorhanden sind.



_Quellview_In_QuellDB="ICH_HEISSE_VIEW"
_Searchview_In_Slave="ICH_HEISSE_AUCH_VIEW"
_Server="ICH_BIN_DER_SERVER"
_SlaveDB="Test\\ICH_HEISSE_SLAVE_DATENBANK.NSF"

'Quell DB referenzieren
Dim session1 As New NotesSession
Dim db1 As NotesDatabase
Set db1 = session1.CurrentDatabase
'View in Quell DB festlegen
Dim view1 as NotesView
Set view1 = db1.GetView( _Quellview_In_QuellDB )

'Slave DB referenzieren
Dim db2 As New NotesDatabase( _Server, _SlaveDB )
Dim view2 As NotesView
Dim doc2 As NotesDocument
Set view2 = db2.GetView( _Searchview_In_Slave )

'erstes Doc im View der QuellDB holen
Set doc1 = view1.GetFirstDocument
Dim _Suchkey as String

'solange Docs noch in View gehe um ein Doc weiter
While Not(doc1 Is Nothing)

'wenn fokussiertes Doc kein item Subject hat, weiter zum nächsten Doc
If doc1.HasItem("Subject") Then

'Feld_Subject auslesen
   _suchkey=doc.Subject(0)
'in Slave DB nach diesem Begriff suchen
   Set doc2 = view2.GetDocumentByKey( _suchkey)

'wenn kein Doc gefunden, dann rüberkopieren aus Quelle nach Slave DB
If ( doc2 Is Nothing ) Then
Call doc1.CopyToDatabase( Db2 )
End if

End if

'und weiter zum nächsten Doc in Quell DB
Set doc1 = view1.GetNextDocument(doc1)

Wend

Jo, das müßte passen, habs aber nicht debugged, da hier reingehauen. Checks bitte auf Schreibfehler oder prgrammatische Fehler per Debugger.
« Letzte Änderung: 15.01.03 - 23:31:47 von Rob Green »
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Madmission

  • Junior Mitglied
  • **
  • Beiträge: 100
  • Geschlecht: Männlich
Re:Agent via LS
« Antwort #12 am: 16.01.03 - 13:28:49 »
Ich danke dir viel mals, es hat mir sehr weitergeholfen und ich weis das man das mit replizieren eigenschaft einstellen kann aber meine chefin ist nicht so begeistert von dieser funktion und wegen dem muss ich das LS schreiben.

Ich habe glaub noch ein kleiner fehler drin den er copyert immer alle dokumente vielleicht sieht ihr ja was.

Ich danke dir nochmal, für die hilfe

« Letzte Änderung: 16.01.03 - 14:49:04 von Madmission »

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Agent via LS
« Antwort #13 am: 16.01.03 - 14:09:38 »
ich gehe davon aus, daß view2 so sortiert ist, daß die erste Spalte das Subject >>>>>>>>>>sortiert aufsteigend<<<<<< anzeigt!?!?!

"Set doc2 = view2.GetDocumentByKey( suchkey )"
wenn das im Debugger Modus durchläuft, ist dann doc2 immer leer?
Das kannste kontrollieren, indem Du Dir bewußt ein Doc schnappst, dessen Feldinhalte von Subject 1000% gleich sind. Das Feld heißt doch Subject, oder, zumindest in der Quell DB mit allen Docs?

Übrigens: Grüße an Deine Chefin, sie sollte etwas mehr Grips als Geld kassieren, dann würde sie nicht meinen, daß "ach, Replikation gefällt mir nicht, da ist jetzt aberrrr keine Frühjarsmode"  ;D ;D

Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Madmission

  • Junior Mitglied
  • **
  • Beiträge: 100
  • Geschlecht: Männlich
Re:Agent via LS
« Antwort #14 am: 16.01.03 - 14:16:44 »
Hi

Da gebe ich dir recht was meine chefin angeht, hatte das problem gelöst indem ich auf jeder DB ein seperate view gemacht habe und da eine spalte mit subject gemacht habe die sortiert ist und dannging es wie am schnürchen.

Ach meine chefin die spinnt, die ist glaub in einer dimension, ach was soll jetzt will sie noch das die dokument miteinander abgeglichen werden und wenn was fehlt, das fehlende feld gefühlt wir oder das neuere doc updaten wird...


ggggggggggrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr.............

danke dir nochmals für alles

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Agent via LS
« Antwort #15 am: 16.01.03 - 14:25:28 »
wie jetzt, das neuere Doc auch noch in beide Richtungen abgleichen?

Also sorry, daß ist ziemlich dämlich, nicht die Replikation zu nehmen.
Es spricht alles dafür und nix dagegen.

Na dann, viel Spaß und herzliches Beileid für so eine kompetente Chefin  8)
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Madmission

  • Junior Mitglied
  • **
  • Beiträge: 100
  • Geschlecht: Männlich
Re:Agent via LS
« Antwort #16 am: 16.01.03 - 14:27:45 »
genau danke dir bin der gleicher meinung

Offline harkpabst_meliantrop

  • Senior Mitglied
  • ****
  • Beiträge: 463
  • Geschlecht: Männlich
  • I love!
    • Heute schon gelebt?
Re:Agent via LS
« Antwort #17 am: 16.01.03 - 20:39:48 »
:o

Ich auch!! Mein Beileid.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz