Domino 9 und frühere Versionen > ND8: Entwicklung

Ideenfindung für Import

(1/3) > >>

MarkusL:
Hallo zusammen,

an mich ist die Bitte herangetragen worden, eine Excel-Tabelle durch eine Notes-DB abzulösen, da hierdurch viele Vorteile gegeben sind.
Im Moment steht der Umsetzung gedanklich nur ein unregelmäßiger Import von Daten aus einer txt-Datei entgegen.
Jetzt hoffe ich in diesem Forum auf eine Anregung.

In der Datenbank sind derzeit ca. 4.500 Datensätze.
Bei jedem ca. halbjährlichen Import kommen ca. 300 - 500 Datensätze hinzu.
Bei dem Import müsste anhand von einer eindeutigen Kundennummer und einer weiteren eindeutigen Nummer geprüft werden, ob dieser Datensatz bereits existiert.
Wenn ja, soll der bestehende mit neuen Infos ergänzt werden,
wenn nein, soll der Datensatz neu angelegt werden.

In meiner ersten Überlegung habe ich mir gedacht, ich mache das mit einer Schleife, die alle Dokumente in der DB durchgeht und diese mit einer zweiten Schleife mit allen neuen Daten vergleicht. Das bedeutet über 1,3 Mio Berechnungen - Tendenz steigend.
Zum Zeitpunkt der Überlegung kannte ich die Anzahl der Daten noch nicht.

Gibt es hierbei eventuell lange Laufzeiten oder sonstige Probleme, auf die ich stoßen könnte?
Gibt es einen besseren und vor allen Dingen schnelleren Lösungsansatz.

Bin für alle Anregungen dankbar.

Gruß Markus

klaussal:
Du kannst doch mit GetDocumentbyKey prüfen, ob die KdNr bereits vorhanden ist.
Wenn ja, update, wenn nicht, neu anlegen.

Fineas:
Hallo,
wenn Du Die Rechnerei sparen willst:
- erstmal immer alle neuen Datensätze mit Import-Zeitstempel als NEU importieren, aber nicht öffentlich anzeigen
- danach einmal über eine Ansicht laufen (ViewEntryCollection), in der alle Dokumente NEU und ALT nach ID und Zeitstempel sortiert drin sind
- jetzt beim Durchlauf gucken, ob der Vorgänger ein vorhandener Datensatz oder neu ist und entsprechend behandeln
- entweder die ALT Datensätze aktualisieren oder durch die NEU Datensätze ersetzen
- die Importdatensätze archivieren, dannst hast Du gleich was zur Revision
- fertig
- Vorteil: bei einem Abbruch kannst Du immer wieder laufen lassen und das System arbeitet weiter

Gruß, Heiko

MarkusL:
Danke an Klaus und Heiko. Werde eure Vorschläge mal testweise umsetzen.

Es lohnt sich immer wieder, dieses Forum zu nutzen.

Gruß Markus

koehlerbv:
Nach meiner bescheidenen Meinung zielt Klaus auf die einfachere und naheliegendere Lösung:

- Hole Dir die erste Excel-Zeile
- Prüfe mit einer dafür vorgesehenen oder sowieso schon verwendbaren Ansicht, ob es bereits ein Dokument mit Deinen beiden Schlüssel gibt (alternativ - wenn Du an der DB nix ändern kannst / willst: db.Search, da es sich ja auch nur 500 Zeilen handelt und das nur halbjährlich passiert)
- Wenn nicht: Neues Dokument anlegen. Easy.
- Wenn doch: Spalte für Spalte die Werte durchgehen und mit bestehendem Dokument vergleichen. Identisch - vergessen. Nicht identisch: Item im Dokument ändern, boolesche Variable bSaveDocument auf True setzen.
- Durchlauf Spalte für Spalte beendet: Steht bSaveDocument auf True? Dokument speichern und bSaveDocument wieder auf False
- Nächste Zeile des Excel-Dokuments durchgehen ...

Das geht sehr fix, und mit diesem Verfahren kannst Du den gesamten Lauf jederzeit wiederholen.

Alles klar?

Bernhard

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln