Dubletten Erkennung

  • Hallo erstmal Allen,


    Ich habe folgendes Problem ich habe eine Datenbank auf welche DB Agents täglich neu angelegte oder geänderte Dokumente (Firmenadressen, Adressen von Privatpersonen usw.) von drei verschiedenen Firmendatenbanken rüberkopieren. Da die Firmen aber auch manchmal gleiche Adressen anlegen kommt es in meiner zentralen Datenbank zu doppelten Einträgen.
    Wie kann ich meine Datenbank nach dubletten durchsuchen und Sie entfernen lassen?

  • Ich will dies nicht beim importieren prüfen, Ich will dass diese Prüfung zum Beispiel einmal um 2:00 Uhr Nachts gestartet wird, nach Dubletten die Datnebank durchsucht und die Dubletten herauslöscht. Gibts für sowas Irgendwelche Formeln oder Funktionen oder gar bereits gemachte Lotus Script Lösungen, wäre sehr dankbar dafür.

    • Offizieller Beitrag

    ja es gibt Lösungen, aber die werden auf Deine DB nicht passen.


    Bau Dir eine Ansicht. Die erste Spalte ist sortiert und enthält alle Felder, die in der Summe eindeutig sein müssen als Stringverknüpfung mit einem Trenner.

    Code
    ' Beispiel'
    Trenner := "~~~~~";
    Vorname + Trenner + NachName + Trenner + @Text(GebDatum) + Trenner ....


    Ein Script-Agent kann jetzt die Ansicht durchgehen und immer den nachfolgenden Eintrag prüfen, ob dieser mit dem aktuellen übereinstimmt. Sind diese gleich wird das nachfolgende Dokument gelöscht.


    Allerdings würde ich die Dokumente gar nicht erst importieren, da Du sonst viele Del-Stubs bekommst.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Erstmal vielen Dank,


    Ich würde dich trotzdem bitten diese Variante einwenig näher und detallierter zu erklären, da ich noch ein ziemlicher Neuling im der Lotus Domino Welt bin, ich komm aus dem Web Sphere Bereich.
    Mit Domino Entwicklung habe ich noch nie was zu tun gehabt.


    Sorry für die Unannämlichkeiten

    • Offizieller Beitrag

    Ansicht bauen kannst Du?


    Oder brauchst Du da auch Hilfe?


    Gruß
    Dirk

    • Offizieller Beitrag

    OK fangen wir mit der Ansicht an.


    1. Öffne die Datenbank im Designer
    2. gehe zu Ansicht (links)
    3. erstelle eine neue Ansicht (oben - Schaltfläche)
    4. die Ansicht wird gemeinsam
    5. Setze den Ansichtsnamen in runde Klammern (damit kann die Ansicht vom normalen Anwender nicht mehr so einfach eingesehen werden)
    6. klicke die erste Spalte an
    7. öffne die Eigenschaftbox und stell die Sortierung auf aufsteigend
    8. wähle als Anzeige "Formel" (unten)
    9. trage als Formel das oben erwähnte Konstrukt ein


    Gruß
    Dirk

  • Ob du das beim Importieren oder später machst ist vom Ablauf ziemlich egal. Beim einen werden doppelte Einträge gar nicht angelegt, beim anderen eben erst später rausgelöscht


    Nein gemachte gibt es nicht, weil man dazu wie gesagt deine Strukturen kennen müsste und was für die Anwendung Dupletten sind.


    Du musst halt definieren was Dupletten sind, wie die sich definieren und dann eben einen Script Agenten schreiben, der dies periodisch macht.

  • Vielen Dank,
    bin schon fast soweit, ich bin bis zum letzten Punkt gekommen, allerdings weiss ich net wie die Formel aussehen muss, wie ich das Trennzeichen richtig setze.
    Die nötigen Felder habe ich mir schon alle gesammelt.


    Salutation_T
    FirstName_T,
    LastName_T,
    Phone_T,
    Telefax_T,
    Email_T,
    ZipCode_T,
    City_T,
    Street_T,


    Wie soll die Formel mit all diesen Atributen aussehen?

  • Leute echt vielen Dank, dass Ihr euch so viel Zeit für mich nimmt.


    Ok, also die Formel ist jetzt auch da drin,
    Sie sieht folgender massen aus:




    Code
    Trenner := "~";
    Salutation_T + Trenner + FirstName_T + Trenner + LastName_T + Trenner + @Text(Phone_T) + 
    Trenner + @Text(Telefax_T) + Trenner + @Text(Email_T) + Trenner + 
    @Text(ZipCode_T) + Trenner + City_T + Trenner + @Text(Street_T);


    Also wie geht es weiter?



    %edit
    Formel umgebrochen /diali

    • Offizieller Beitrag

    jetzt muss ein Agent geschrieben werden.


    In welchen Programmiersprachen kennst Du Dich aus (VBA, ...)?


    Gruß
    Dirk

  • C++, HTML, CSS, PHP, SQL
    ich galube aber keins von den beiden passt hier für den Agenten,
    so weit ich rausgelesen habe passt nur Java und Lotus Script.
    Wenn es möglich wäre, würde ich euch bitten es mir in Lotus Script zu erklären, ich werde es eh brauchen immer wieder.
    Bin gerade dabei mir Literatur darüber anzuschaffen.

  • Zitat


    Diali schrieb:
    In welchen Programmiersprachen kennst Du Dich aus (VBA, ...)?


    Zitat


    Iron Colt schrieb:
    ... HTML, CSS, ..., SQL


    :-o

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

    • Offizieller Beitrag

    der Grund meiner Frage war, wie tiefgreifend ich Dir dies erklären sollte.


    Ja ich hätte es versucht mit Dir per LotusScript umzusetzen.


    Wenn Du mit Klassen, Methoden oder Eigenschaft nicht weiterkommst, dann benutze die Designer-Hilfe. Dort gibt es eine Sortierung nach Index (darüber findest Du die Klassen, Methoden und Eigenschaften per Schnellsuche [einfach los schreiben]) und es gibt immer ein Beispiel (Link benutzen).


    Zuerst erstellen wir im Designer einen Agenten, der wird von Formel auf LotusScript umgestellt.


    Dann steht da schon etwas von

    Code
    Sub InitializeEnd Sub

    dort muss dann der Code rein.


    Vorher klickst Du aber auf (Options) und fügst dort "Option Declare" zusätzlich ein.



    Code wurde nicht geprüft!!


    Gruß
    Dirk

  • Zitat


    Iron Colt schrieb:
    ????


    Och nix ... war mir nur neu, dass ein Beschreibungssprache, eine Abfragesprache oder Formatierungsanweisungen Programmiersprachen wären...

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl