Autor Thema: Frage zur Herangehensweise: CSV auslesen, daraus Dokumente in Datenbank erst.  (Gelesen 3017 mal)

Offline Worn

  • Aktives Mitglied
  • ***
  • Beiträge: 171
  • Geschlecht: Männlich
Hallo zusammen,

vorweg möchte ich sagen, dass ich selbstverständlich die Foren hier durchsucht habe. Ich denke auch, dass da ne Menge Infos bereitliegen für eine evtl. spätere Implementierung. Ich habe hier mehr eine generelle Frage zu der ich gerne Meinungen einholen würde.

Aufgabe:

Es gibt eine Notes Datenbank (ach ne :-))..., in dieser werden Anträge verwaltet. Nun kommt es vor, dass es zu Massenanträgen kommt. Da ist es sehr mühsam die Daten immer einzelnd in eine Maske einzukloppen (versteht sich...). Gewünscht ist also dies per Knopfdruck erledigen zu lassen. Das heisst genauer:

- Button klicken (in der Datenbank (Navi, Menü Aktionen etc...)
- Folder Browser geht auf
- man wählt eine CSV Datei (Beispiel, oder TXT etc.)
- In dieser CSV Datei sind die Daten für die jeweiligen Felder der zu erstellenden Dokumente drin
- Programm rennt los und erstellt für jede Zeile der CSV Datei ein Notes Dokument in der Datenbank
- am Ende wird noch ein logfile in einen Standardordner auf der Festplatte abgelegt

Das ist schon alles. Die Frage ist nun wie geht man das an. Ich würde ja Lotus Script anwenden um es zu realisieren... ABER.. nun liegen schon Methoden in JAVA vor. Quasi wurde ein Java Programm erstellt, mit welchem man von AUSSEN (also standalone) die beschriebene Operation steuern kann. Das ist aber numal nicht so schön als wenn es direkt in der Datenbank implementiert wäre ;-).

Ich habe Erfahrung mit Lotus Script und habe auch Java Programmieren mal gelernt. Java habe ich aber im Notes Kontext noch nie angewendet... So stolper ich natürlich direkt mal los:

- Kann ich im Notes Designer mit Java Anwendungen programmieren, also richtige Programme? in den Codefestern steht oft nur Javascript ausser bei einem Agent.. dort ist auch JAVA auszuwählen..
- kann ich es kompfortabler haben, da es keine codevorschläge (nach Punkt wie bei Script) gibt etc.
- Ist es überhaupt sinnvoll das gewünschte mit JAVA in Notes zu probieren oder ist das eine glatte LS Aufgabe?

Hier im JAVA Forum gibt es ja einen Einstiegs-Post, leider ist der extrem voll und extrem alt... daher frage ich euch hier sicherlich recht einfache Fragen zu dem Thema.

Ich bedanke mich schon jetzt für jegliche Hinweise, Links, Vorschläge oder vergleichbare Diskussionsbeiträge...

Grüße
Worn
« Letzte Änderung: 16.12.08 - 17:03:50 von Worn »
Wer für alles offen ist der kann ja nich ganz dicht sein!

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Da würden mich jetzt doch glatt die Java Methoden interessieren.

Wenn da außer, mach ein Fenster auf, wähle eine Datei aus und gehe das Zeile für Zeile durch, nichts weiter an Funktionen drinsteht, was in irgendeiner, wie auch immer gearteten, Form "höhere" Anwendungslogik ist, dann plädiere ich für Wegwerfen und mit Script neuschreiben. Geht warscheinlich schneller als sich das Ganze zurecht zu fummeln.

Ansonsten kannst du dein (ok nicht deins ... das) Java Gedöns in einen Agent stecken, der dann von einer Aktion mit Parametern aus (Wo liegt die Datei) aufgerufen wird.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

BigWim

  • Gast
für solche Fälle nutze ich in der Regel die Importfunktion von Notes. Mit der Beschreibungsdatei (*.col) sind auch recht umfangreiche Berechnungen per Formelsprache während des Imports möglich.

Seit ich diesen Weg mit ihren Möglichkeiten entdeckt habe, erspare ich mir ein Script. Reicht in 99% der Fälle, zumindest bei uns, locker aus. Auch weil ich schneller auf einen veränderten Datenaufbau reagieren kann.

Wenn eine Protokollierung erforderlich ist, setze ich ein Flag, sodass ich die importierten Daten in einer View darstellen kann. Je nach Anforderung kann ich auch hier recht flexibel reagieren.

Ich bin zwar nur Notes 6.5-Anwender, aber ich kann mir nicht vorstellen, dass das unter Notes 8 abgespeckt wurde ...  ::)

Markus

Offline Worn

  • Aktives Mitglied
  • ***
  • Beiträge: 171
  • Geschlecht: Männlich
Hi,

danke für eure Antworten.. Besonders das mit den COL Files finde ich ja super... Prinzipiell wäre das auch eine Lösung, wenn auch nicht vollends elegant. Da hab ich noch eine kurze Frage. Ich habe mir den Kram in der Notes Des. Help mal flott durchgelesen. Ich verstehe das so, dass ich eine Textdatei mit Seperator habe und mit dem COL File festlege wie diese Einträge der Textdatei auf die einzelnen Spalten gemappt werden. Was ist denn wenn ich zB. ein Notes Form habe mit 20 Feldern (die ich alle befüllen will) in allen Views die in der DB genutzt werden habe ich aber nur 5 Spalten... ? Klappt der Import mit der Variante dann nur für die Felder die auch in den Views gezeigt werden (irgendwie verstehe ich das so) oder für alle Felder? Ein weiteres Problem ist ja, dass die View Columns meist anders heissen als die Felder... was wohl auch nicht so praktisch ist.... Sind nach diesem "In die View importieren" denn tatsächlich alle Datensätze auch als solche Notes Dokumente einer bestimmten Form (computed sozusagen) in der Datenbank drin?

@Big Wim: Dann war mein zu LS tendieren wohl nicht so grundlegend falsch... ;-)

Grüße
Worn
Wer für alles offen ist der kann ja nich ganz dicht sein!

Offline Worn

  • Aktives Mitglied
  • ***
  • Beiträge: 171
  • Geschlecht: Männlich
Hi,

okay hat sich erledigt klappt erstmal wunderbar ohne viel Aufwand.... Ein Problem bleibt jedoch... In den Dokumenten welche importiert werden befindet sich (vielmehr in der Maske) eine Schaltfläche "Senden". Diese müsste nun noch für jedes Dokument ausgeführt werden... Gibt es da einen Trick um sagen wir mal alle markierten Dokumente per Knopfdruck senden zu lassen (also Aktion senden im Dokument ausführen)? Oder müsste man nun mühsam per frontend Methoden jedes Doc aufmachen und dann senden ausführen etc...?

Grüße
Worn
Wer für alles offen ist der kann ja nich ganz dicht sein!

BigWim

  • Gast
Hallo Worn,

Zitat
Was ist denn wenn ich zB. ein Notes Form habe mit 20 Feldern (die ich alle befüllen will) in allen Views die in der DB genutzt werden habe ich aber nur 5 Spalten... ? Klappt der Import mit der Variante dann nur für die Felder die auch in den Views gezeigt werden (irgendwie verstehe ich das so) oder für alle Felder?

Nach meinem Grundverständnis spielen die Ansichten erst einmal keine Rolle. Du kannst natürlich ein Dokument mit 20 Feldern erstellen, in der Ansicht aber nur 5 darstellen. Du musst auch nicht alle "Spalten" der CSV-Datei einem Feld zuweisen, bzw. kannst Du während es Imports weitere Felder durch Berechnung per Formelsprache erstellen. Die Kombinationen sind da ganz nahe an der Unendlichkeit ...

Zitat
Ein weiteres Problem ist ja, dass die View Columns meist anders heissen als die Felder
Der Import durch die *.col Dateien erstellt "normale" Notesdokumente. Was davon in einer Ansicht dargestellt wird, wird durch die Ansichtsformel entschieden. Wie die Ansichtsspalten heißen, spielt auch keine Rolle.

Zitat
Diese müsste nun noch für jedes Dokument ausgeführt werden... Gibt es da einen Trick um sagen wir mal alle markierten Dokumente per Knopfdruck senden zu lassen (also Aktion senden im Dokument ausführen)? Oder müsste man nun mühsam per frontend Methoden jedes Doc aufmachen und dann senden ausführen etc...?
Da der Import auf Knopfdruck gestartet wird, kannst Du den Import über die *.col definieren und ausführen lassen. Anschließend startet ein kleines LS-Script (meine 1%  ;)), dass das Mailing übernimmt.

Ins unreine geschrieben:

- *.col-Datei setzt ein Steuerfeld z. B. field bIsImport = 1
- Per db.search (oder einer View) werden die per Import erstellten Dokumente ermittelt.
- per Script auf diese DocumentCollection weitere Aktionen ausführen und bIsImport = 0 setzen oder gleich aus dem Document löschen.

Viel Erfolg
Markus


Offline Worn

  • Aktives Mitglied
  • ***
  • Beiträge: 171
  • Geschlecht: Männlich
Hi,

vielen Dank! Super Infos. Probieren wir aus. +
Schöne Weihnachten und kommt gut ins neue Jahr!

Grüße
Worn
Wer für alles offen ist der kann ja nich ganz dicht sein!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz