Datenstruktur aus Win in Notes DB übernehmen

  • Hallo,


    ich habe einen ziemlich großen Verzeichnissbaum mit unterschiedlichen Ebenen und Datein. Da wir vor Domino mit SharePoint / Outlook gearbeitet haben, würde ich diese Struktur jetzt gerne übernehmen.


    Gibt es eine Möglichkeit diese automatisch übernehmen zu lassen? Die Ordner können dann ja in Kategorien umbenannt werden.


    Noch besser wäre es, wenn neu hinzukommende Daten sogar regelmäßig übernommen werden.


    Wisst Ihr vielleicht ein tool das soetwas erledigt, oder kann man dafür ein Script schreiben?


    Liebe Grüße


    Chris

  • Hallo Taurec,


    nee ich meine ganz normale Verzeichnisse auf einer Windows Platte:


    Also zum Beispiel:


    C:\windows
    C:\windows\system


    natürlich will nicht nicht Windows übernehmen ... ist nur ein Beispiel.


    Für jede Date sollte dann ein neues Document in der DB angelegt werden.


    Liebe Grüße


    Chris

  • Benutz doch bitte die Suchfunktion, das hatten wir hier schon mehrfach

    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

  • Such doch einmal nach DNFS und Nachfolgesystemen. Vielleicht ist es genau das, was du suchst. Das ist genial für Notebookler, die sich ein Abteilungsverzeichnis lokal aktuell halten wollen/sololen/müssen.

  • Ein Abteilungsverzeichnis gehört IMO nicht in eine Notes-DB! Da bringt Windows eigene Mechanismen mit (Stichwort: "Aktenkoffer" oder "Offlinedateien")

    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

  • Wenn du Laufwerkmappings je nach Anbindung eines Notebooks (lokal, Netz) unterschiedlich zuweist, wirst du mit Aktenkoffern schnell an einem Punkt landen, der die Qualität deiner Sicherungsmechanismen zu Tage fördert - das ist Müll.


    Lotus hat in Version 5 DNFS eingeführt, aber in Version 6 nicht fortgesetzt. Man hatte angekündigt, DNFS durch WEBDAV abzulösen. Damit hätte man einen genialen "Fileserverersatz" mit Web-Fähigkeiten. Leider ist das WEBDAV damals aus dem Katalog der "Mitbringsel" von R6 gestrichen worden.


    Ich wäre heute vorsichtig, auf einen 5er Server noch DNFS aufzusetzen, denn damit schließe ich ihn von einem Upgrade auf R6 aus. WEBDAV wird kommen, aber ich weiß nicht, ob es in R7 drin ist.


    Wenn ja, dann kann das das Ziel für unseren Freund - und viele andere - sein.

  • Hallo Ihr zwei! :)


    Hier ist ja schon eine rege Diskusion entbrannt. :) DNFS wäre genau das, was ich brauche, nur leider habe ich Domino 6.5.3 und DNFS ist da wie du ja gesagt hast nicht integriert.


    Ich habe die Suchfunktion benutz, auch schon vor meinem Beitrag, aber nichts gefunden. Ich erinnere mich, dass wir das Thema schon mal hatten, zumal ich das vor einiger Zeit auch schon mal gepostet hatte, allerdings bringen mich die Antworten nicht so ganz weiter.


    Es muss doch irgend eine Möglichkeit geben diese Daten so zu übernehmen. Immerhin sind das fast 12.000 Datein, die kann ich doch nicht alle einzeln in meine Domino Doc. Lib. rüber schieben, oder?


    Liebe Grüße


    Chris

  • Also andersherum habe ich das schon programmiert....


    Angehängte Dateien einer kategorisierten Datenbank exportiert in einzelne Verzeichnisse...


    Der Import sollte eigentlich auch nicht all zu schwer zu programmieren sein....


    Vielleicht postest Du das Problem mal im Domino-Designer Forum....


    Gruß


    Norbert

  • Ich würde das mit Offline Dateien von Windows machen, funktioniert eigentlich absolut problemlos, solange nur ein Benutzer auf dem Verzeichnis arbeitet...

  • Hallo Norbert, hallo Katuma,


    Also wenn es so eine möglichkeit gibt wäre das natürlich toll!! Das könnte ich sehr gut gebrauchen.
    Katuma, was meinst du mit offlinedatein? Ich weiß nicht ob du mich richtig verstanden hast.
    Ich habe eine Ordernstruktur wie zum Beispiel /Meine_Firma
    und darunter dann /Meine_Firma/Rechungen und /Meine Firma/Vorlagen und so weiter.
    Da das ganze sehr viele Datein sind, würde ich halt gerne die gesammte Struktur in eine Domino DB übernehmen.


    Liebe Grüße


    Chris

  • Die Diskussionen um das Für und Wider von Offline-Foldern helfen unserem Freund nicht weiter.


    Ich habe aus meinen ersten LS-Programmierertagen eine Einleseroutine gefunden (es ist abscheulicher Spaghetticode - ich weiß es), die genau das tut, was unser Freund will. Hier ist das Programm:


    (Declarations)
    'Dim Begriff1 As String, Begriff2 As String, Begriff3 As String, Begriff4 As String, Begriff5 As String, Begriff6 As String
    Dim Begriff (6) As String, Begriff1 (6) As String, Trenner (2) As String
    Dim zaehlerBegriff As Integer, zaehlerBegriff1 As Integer, zaehlerTrenner As Integer, MaxzaehlerTrenner As Integer, LaengeAktTrenner As Integer
    Dim dsn As String
    Dim Verwerfen As Integer, txt1 As String, txt2 As String, txt3 As String
    Dim Aufhoeren As Variant
    Dim igesamt As Integer


    Sub Initialize
    On Error Goto ProcessError
    ' Dieses Programm dient dazu, Dokumentationen aus bestehenden Dateisystemen aufzubauen, indem man die bestehende Verzeichnisstruktur
    ' sowie den Dateinamen als kategorisierende Elemente heranzieht. Die zu importierenden Dateinamen müssen zeilenweise aufgeführt sein. Es dürfen
    ' auch Zeilen vorkommen, die keinen Dateinamen enthalten. Zeilen, die mit einem Simokolon beginnen (;) sowie Zeilen, die das Suchkriterium
    ' (Vorhandensein von ":\") nicht enthalten, werden überlesen. Vor dem Dateinamen selbst darf ruhig noch etwas anderes stehen.
    ' Am einfachsten wird eine Dateiliste der anzuhängenden Dateien generiert, indem man folgendes tut:
    ' 1. Man stellt sich im DOS-Fenster in das Verzeichnis, dessen Dateien und Unterverzeichnisse man einlesen möchte und setzt den Befehl ab
    ' attrib *.*/s > dateiliste1.txt
    ' 2. Man startet Word und stellt unter EXTRAS - OPTIONEN - ALLGEMEIN ein, daß man Konvertierungen bestätigen möchte
    ' 3. Mon öffnet die dateiliste1.txt als Text-Datei und wählt den Konverter DOS-Text
    ' 4. Man speichert diese Datei als Textdatei unter dateiliste2.txt als Textdatei ab. Jetzt sind die Umlaute in Datei- und Verzeichnisnamen richtiggestellt
    ' 5. Man editiert diesen Agenten und setzt den Dateinamen dateiliste2.txt in die zu öffnende Datei ein
    ' 6. Man setzt den Wert von VERWERFEN richtig (Verwerfen bezeichnet die für die Schlagwortbildung nicht zu berücksichtigenden
    ' Unterverzeichnisse, z.B. lautet der Dateiname C:\v1\v2\Thema\Sprache\Jahr\Vortrag\wichtig.ppt
    ' Dann lautet mit VERWERFEN=2 die von der Unterroutine ZERLEGE zurückgegebenen Werte
    ' Begriff(0) Thema
    ' Begriff(1) Sprache
    ' Begriff(2) Jahr
    ' Begriff(3) Vortrag
    ' Begriff(4) <leer>
    ' Begriff(5) <leer>
    ' Begriff1(0) wichtig
    ' Begriff1(1) ... Begriff1(5) <leer>
    ' dsn C:\v1\v2\Thema\Sprache\Jahr\Vortrag\wichtig.ppt
    ' 7. Jetzt muß man die Felder doc.theme, doc.division1, doc.division2 ... doc.division4 sowie doc.DocNr und doc.docdescription
    ' aus den Begriffen füllen
    '
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim doc As NotesDocument
    ' Dim workspace As New NotesUIWorkspace
    ' Dim uidoc As NotesUIDocument
    ' Dim view As NotesView
    Dim i As Integer, i1 As Integer, i2 As Integer
    Dim text As String, fileNum As Integer
    Dim rtitem As NotesRichTextItem
    Dim object As NotesEmbeddedObject
    Dim handle As Variant
    ' Set uidoc = workspace.CurrentDocument
    Set db = session.CurrentDatabase
    fileNum% = Freefile()
    Open "c:\TEMP\TEST.TXT" For Input As fileNum%
    Verwerfen=2
    Trenner(0)="\"
    Trenner(1)=".xls"
    MaxZaehlerTrenner=1
    ' Open "c:\Präsentationen\attribtxtkonvtest.txt" For Input As fileNum%
    igesamt=0
    Do While Not Eof(fileNum%)
    Line Input #1, text$
    i1=Instr(1,text$,":\",1)
    If i1>0 And Not Left(Text$,1)=";" Then
    i2=Len(text$)
    dsn=Mid(text$,i1-1,i2-i1+2)
    igesamt=igesamt+1
    Print Cstr(igesamt)&". File: "&dsn
    ' Test, ob Datei im Dateisystem vorhanden ist, die Error-Routine setzt den Wert TestVorhanden auf FALSE, wenn Datei sich nicht öffnen läßt
    TestVorhanden=True
    fileNum1% = Freefile()
    Open dsn For Input As fileNum1%
    Close fileNum1%
    If TestVorhanden Then
    Erase Begriff
    Erase Begriff1
    ZaehlerTrenner=0
    LaengeAktTrenner=Len(Trenner(ZaehlerTrenner))
    Call Zerlege (dsn, Verwerfen, Begriff, Begriff1)
    Set doc = db.CreateDocument
    doc.form="Doc"
    doc.Erstellmaske="Doc"
    doc.DispIcon = 1
    doc.owner=session.effectiveUsername
    doc.DocAuthor=session.CommonUsername
    doc.PastAuthors=session.CommonUsername
    doc.PastEditDates=Now
    doc.TimesModified=1
    doc.Type="Dokument"
    doc.Theme="SV-FA-AE/A\Allgemein"
    doc.docdescription=Begriff1(0)
    doc.division1=Begriff(0)
    doc.division2=Begriff(1)
    doc.division3=Begriff(2)
    doc.division4=Begriff(3)
    Set rtitem = New NotesRichTextItem ( doc, "Body" )
    Call rtItem.EmbedObject( EMBED_ATTACHMENT, "", dsn )
    ' Call rtItem.EmbedObject( EMBED_OBJECT, "", dsn,"Test" )
    ' Set object = rtItem.EmbedObject( EMBED_OBJECT, "PowerPoint.Show.8", dsn,"Test" )
    ' Set handle = object.Activate( False )
    ' If ( handle Is Nothing ) Then
    ' doc.Subject = "This object has no OLE automation interface"
    ' End If
    Call doc.Save( True, True )
    End If
    End If
    Loop
    Messagebox Cstr(igesamt)+" Files eingelesen/read"
    Close fileNum%
    Exit Sub
    ProcessError:
    If Cstr(Err)="101" Then
    TestVorhanden=False
    Print "Datei nicht vorhanden: "&dsn
    Beep
    Resume Next
    Else
    Msgbox "Error (" & Cstr(Err) & ") -> " & Error$(Err),16,"Fehler bei DATEI EINLESEN"
    Close fileNum%
    Print "Datei geschlossen"
    Exit Sub
    End If
    End Sub


    Sub Zerlege (dsn, Verwerfen, Begriff, Begriff1)
    Aufhoeren=False
    txt1=dsn
    i1=0
    While i1<=Verwerfen And Not Aufhoeren
    Call Teilen (txt1,txt2)
    i1=i1+1
    Wend
    zaehlerBegriff=0
    zaehlerBegriff1=0
    While Not Aufhoeren
    If zaehlerTrenner =0 Then
    Begriff(zaehlerBegriff)=txt2
    zaehlerBegriff=zaehlerBegriff+1
    Else
    Begriff1(zaehlerBegriff1)=txt2
    zaehlerBegriff1=zaehlerBegriff1+1
    End If
    Call Teilen (txt1,txt2)
    Wend
    End Sub


    Sub Teilen (txt1,txt2)
    Dim L1 As Integer, Ltxt1 As Integer, txttest As String
    If txt1=txt2 Or txt1="" Then
    Aufhoeren=True
    Exit Sub
    End If
    L1=Instr(txt1,Trenner(zaehlerTrenner))
    Ltxt1=Len(txt1)
    If L1>0 Then
    txt1=Mid(txt1, L1+LaengeAktTrenner,Ltxt1-LaengeAktTrenner)
    Ltxt1=Len(txt1)
    L1=Instr(txt1,Trenner(zaehlerTrenner))
    If L1>0 Then
    txt2=Left(txt1,L1-1)
    Else
    zaehlerTrenner=zaehlerTrenner+1
    LaengeAktTrenner=Len(Trenner(ZaehlerTrenner))
    If zaehlerTrenner>MaxzaehlerTrenner Then Aufhoeren=True
    L1=Instr(txt1,Trenner(zaehlerTrenner))
    If L1>0 Then
    txt2=Left(txt1,L1-1)
    txttest=Mid(txt1, L1+LaengeAktTrenner,Ltxt1-LaengeAktTrenner)
    L1=Instr(txttest,Trenner(zaehlerTrenner))
    If L1=0 Then txt1=txt2
    End If
    End If
    Else
    ' zaehlerTrenner=zaehlerTrenner+1
    L1=Instr(txt1,Trenner(zaehlerTrenner))
    If L1>0 Then
    txt2=Left(txt1,L1-1)
    txt1=Mid(txt1, L1+LaengeAktTrenner,Ltxt1-LaengeAktTrenner)
    L1=Instr(txt1,Trenner(zaehlerTrenner))
    If L1=0 Then txt1=txt2
    End If
    End If
    End Sub


    Probier es aus, ob es das bringt, was du möchtest.

  • Wenn ich mich recht erinnere, macht das Programm Fehler, wenn im Dateinamen mehr als ein Punkt vorkommt. Ich würde ohnehin die ZERLEGE und TEILE-Prozeduren heute völlig neu programmieren, damit man sie verstehen kann, aber im Debugger kann man sich das Ding ja einmal anschauen, was er aus einer Dateiliste macht.


    Ich weiß noch, daß wir damals auf diese Weise gut 2000 Grafiken, die noch unter DOS Harvard Graphics erstellt gewesen waren, von einem Studenten in Powerpoint neu haben aufbauen lassen und so als statischen Fundus in einer Notes-DB aufbereitet haben.


    Natürlich kann man auch mit Ordnern arbeiten, aber Ordner sind Dokumente - und wenn zwei Bearbeiter evtl. später in deiner DB die gleichen Ordnerstrukturen ändern, wird sich die Arbeit von mindestens einem Mitarbeiter anschließend nicht mehr in den Ordnern wiederfinden (Ordner produzieren beim Replizieren keine Replikationskonflikte - einer "gewinnt"). Deshalb habe ich damals eine pseudohierarchische Begriffs-Struktur in jedem Dokument eingeführt.


    In den Ansichten baust du eine Kategorie mit
    Begriff0 + @If(Begriff1="";"";"\\"+Begriff1 +@If(Begriff2="";"";"\\"+Begriff2 + @If(Begriff3="";"";"\\"+Begriff3 + @If(Begriff4="";"";"\\"+Begriff4))))


    Da das Berechnen dieses Ausdrucks ein wenig Zeit kostet, kannst du das natürlich auch in jedem Dokument in einem berechneten Feld hinterlegen und dieses Feld als Kategorie anzeigen lassen.

  • Hi,


    ich hatte da auch mal was gebaut, was basiernd aus einem Startverzeichnis, das komplette Filesystem durchmarschiert und pro File im Verzeichnis ein Notesdokument baut.


    Das steht in den Declarations,


    Dim dirs() As String
    Dim count As Integer


    und folgende Subs gibts:


    Sub Initialize
    &nbsp;&nbsp;
    &nbsp;&nbsp;Redim dirs(0)
    &nbsp;&nbsp;count = 0
    &nbsp;&nbsp;act = 0
    &nbsp;&nbsp;
    &nbsp;&nbsp;dirs(0) = "d:\test"
    &nbsp;&nbsp;Do
    &nbsp;&nbsp;&nbsp;&nbsp;getDirs(dirs(act))
    &nbsp;&nbsp;&nbsp;&nbsp;act = act + 1
    &nbsp;&nbsp;Loop While act <= count
    &nbsp;&nbsp;For i = 0 To count
    &nbsp;&nbsp;&nbsp;&nbsp;import(dirs(i))
    &nbsp;&nbsp;Next
    &nbsp;&nbsp;
    End Sub


    Sub getDirs(pDir As String)
    &nbsp;&nbsp;
    &nbsp;&nbsp;Dim s As New notessession
    &nbsp;&nbsp;Dim d As notesdocument
    &nbsp;&nbsp;
    &nbsp;&nbsp;Dim filedir As String
    &nbsp;&nbsp;Dim attr As Integer
    &nbsp;&nbsp;
    &nbsp;&nbsp;filedir = Dir$(pDir & "\*.*", 16)
    &nbsp;&nbsp;While filedir <> ""
    &nbsp;&nbsp;&nbsp;&nbsp;If filedir <> "." And filedir <> ".." Then
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attr = Getfileattr(pDir & "\" & filedir)
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If attr = 16 Then
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count = count + 1
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Redim Preserve dirs(count)
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirs(count) = pDir & "\" & filedir
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If
    &nbsp;&nbsp;&nbsp;&nbsp;End If
    &nbsp;&nbsp;&nbsp;&nbsp;filedir = Dir$
    &nbsp;&nbsp;Wend
    &nbsp;&nbsp;
    End Sub


    Sub import(pDir As String)
    &nbsp;&nbsp;
    &nbsp;&nbsp;Dim s As New NotesSession
    &nbsp;&nbsp;Dim d As NotesDocument
    &nbsp;&nbsp;Dim filename As String
    &nbsp;&nbsp;
    &nbsp;&nbsp;filename = Dir$(pDir & "\*.*")
    &nbsp;&nbsp;
    &nbsp;&nbsp;While filename <> ""
    &nbsp;&nbsp;&nbsp;&nbsp;If filename <> "." And filename <> ".." Then
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set d = s.CurrentDatabase.CreateDocument
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d.form = "import"
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d.path = pDir
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d.file = filename
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set rtitem = New NotesRichTextItem ( d, "Body" )
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Call rtItem.EmbedObject( EMBED_ATTACHMENT, "", pDir & "\" & filename)
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Call d.Save(True, True)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    &nbsp;&nbsp;&nbsp;&nbsp;End If
    &nbsp;&nbsp;&nbsp;&nbsp;filename = Dir
    &nbsp;&nbsp;Wend
    &nbsp;&nbsp;
    End Sub


    cu


    Jörg

  • Hallo,


    ich freue mich sehr über eure zahlreichen Antworten und postings von Code.
    Nachdem was Ihr beschreibt, scheint es ja wirklich möglich zu sein die Datenstruktur in irgend einer Form zu übernehmen.


    Da ich aber noch noch dabei bin mich in Domino einzarbeiten, weíß ich leider noch nicht was ich mit dem Code anfangen soll. Also ich denke mal, dass ich Ihn in irgendetwas mit Hilfe des Designers einfügen muss. ...


    Liebe Grüße


    Chris

  • Designer öffnen
    Erstellen Agent
    Gemeinsam ankreuzen
    Namen geben (z.B. "Einlesen Dateien")
    Manuell aus dem Menü AKTIONEN
    Einmal ausführen
    LOTUS SCRIPT auswählen
    Cut&Paste vom Code
    Dann kannst du den Code schon ordentlich lesen
    Die entsprechenden Aktionen vorbereiten
    Debugger einstellen
    testweise laufen lassen (in leerer oder Test-Datenbank !!)


    Lotus-Schulungsunterlagen raussuchen und Kurs Entwickler besuchen oder alles aus der Hilfe lernen.

  • Hallo,


    ich hatte mir nochmal mit MaxRitti ein bisschen geschrieben und bin dann auch zu meinem gewünschten Ergebniss gekommen.
    Die entscheidende Mail von MaxRitti war die folgende:



    "Du brauchst in dem Script lediglich das Startverzeichnis angeben, ab wo mit dem Import begonnen werden soll.


    Dann wird für jede Datei in irgendeinem Unterverzeichnis ein Notesdocument erstellt, welches das Verzeichnis (=Kategorie), den Dateinamen und die Datei enthält.


    Nehmen wir mal an, dass die Struktur vorliegt:


    D:\StartDirectory
    - SubDir1
    DateiInSubDir1
    - SubDir2
    DateiInSubDir2
    - SubDir2a
    DateiInSubDir2a


    Dann gibts nachher in der Notes DB 3 Dokumente und zwar sehen die so aus:


    Dokument 1:


    Feld Path: "d:\StartDirectory\SubDir1"
    Feld File: "DateiInSubDir1"


    Dokument 2:


    Feld Path: "d:\StartDirectory\SubDir2"
    Feld File: "DateiInSubDir2"


    Dokument 3:


    Feld Path: "d:\StartDirectory\SubDir2\SubDir2a"
    Feld File: "DateiInSubDir2a"


    Wenn Du nun in Deiner Ansicht in der ersten Spalte als kategorisierte Spalte das Feld "Path" und in der zweiten Spalte das Feld "File" anzeigen lässt, ist die Ansicht wunderbar kategorisiert nach der Verzeichnisstruktur.


    Schau mal hier: <img src="http://www.joewet.mynetcologne.de/images/import.jpg">
    Ich hoffe ein Bild sagt mehr als 1000 Worte. =:)


    War es das nicht, was Du willst?


    cu


    Jörg"




    Ja, es war genau das was ich wollte! :) Vielen Dank Jörg.
    Wollte das hier nur noch mal posten, damit nemand der das auch braucht, auch noch den letzten Schritt hin bekommt. :)


    Wichtig war für mich, dass man die Ansicht natürlich erstmal anpassen muss. Die Kategorien tauchen natürlich nicht gleich in einer Standart DB unter Kategorien auf, sondern müssen erstmal im Designer so bearbeitet werden, dass der Phad und der Attachment Name angezeigt werden.


    Ich habe das gleich mal bei ein paar DBs bzw. Verzeichnissen ausprobiert und es klappt wunderbar!
    Bei einer DB bekomme ich allerdings beim Start des Agents die Meldung: "File not found"


    Jörg, hast du vielleicht eine Idee woran das liegen könnte? Die Meldung kommt gleich zum Anfang und ich kann damit das genammte Verzeichniss, bzw. die Unterverzeichnisse nicht importieren.



    Liebe Grüße


    Chris

    • Offizieller Beitrag

    schalte mal den Debugger ein und schau Dir das Verz und / oder den Dateinamen an. Kommen dort Leerzeichen, ä, ö, ü, ß oder ander Sonderzeichen vor?


    Eventuell musst Du eine Ascii -> Ansi oder eine Ansi -> Ascii Konvertierung vornehmen.


    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

  • Hi,


    hier mal der neue Code inkl. Error-Handling:


    Sub Initialize

    On Error Goto error_handling

    Redim dirs(0)
    count = 0
    act = 0

    dirs(0) = "d:\StartDirectory"
    Do
    getDirs(dirs(act))
    act = act + 1
    Loop While act <= count
    For i = 0 To count
    import(dirs(i))
    Next
    ende:
    Exit Sub

    error_handling:
    Messagebox "Initialize: ERR : " & Cstr(Err) & " - ERL : " & Cstr(Erl) & " - ERROR: " & Error
    Resume ende
    End Sub


    Sub getDirs(pDir As String)

    On Error Goto error_handling

    Dim s As New notessession
    Dim d As notesdocument

    Dim filedir As String
    Dim attr As Integer

    filedir = Dir$(pDir & "\*.*", 16)
    While filedir <> ""
    If filedir <> "." And filedir <> ".." Then
    attr = Getfileattr(pDir & "\" & filedir)
    If attr = 16 Then
    count = count + 1
    Redim Preserve dirs(count)
    dirs(count) = pDir & "\" & filedir
    End If
    End If
    filedir = Dir$
    Wend
    ende:
    Exit Sub

    error_handling:
    Messagebox "getDirs: ERR : " & Cstr(Err) & " - ERL : " & Cstr(Erl) & " - ERROR: " & Error & " - pDir: " & pDir
    Resume ende
    End Sub


    Sub import(pDir As String)

    On Error Goto error_handling

    Dim s As New NotesSession
    Dim d As NotesDocument
    Dim filename As String

    filename = Dir$(pDir & "\*.*")

    While filename <> ""
    If filename <> "." And filename <> ".." Then
    Set d = s.CurrentDatabase.CreateDocument
    d.form = "import"
    d.path = pDir
    d.file = filename
    Set rtitem = New NotesRichTextItem ( d, "Body" )
    Call rtItem.EmbedObject( EMBED_ATTACHMENT, "", pDir & "\" & filename)
    Call d.Save(True, True)
    End If
    filename = Dir
    Wend
    ende:
    Exit Sub

    error_handling:
    Messagebox "import: ERR : " & Cstr(Err) & " - ERL : " & Cstr(Erl) & " - ERROR: " & Error & " - pDir: " & pDir
    Resume ende
    End Sub


    Dann sollte eigentlich recht schnell klar werden, wo das Problem liegen könnte.


    @Dali:


    Umlaute sollten kein Problem darstellen. Das habe ich getestet und es funktioniert. :)


    Poste mal den Inhalt von der Meldung und wir schauen weiter.
    cu


    Jörg

  • Hallo Ihr zwei,


    danke Jörg, das mache ich gleich mal, momentan habe ich aber noch nen Import laufen, der dauert wohl noch ein weilchen, abersobald das abgeschlossen ist, baue ich den "neuen" Code ein.


    Liebe Grüße


    Chris