Excelimport per Agent

  • Hallo,


    ich habe eine Idee, aber ich befürchte dass das nicht geht.
    Zumindest läuft es momentan auf einen Fehler.


    Ich habe einen Zeitgesteuerten Agenten der einmal wöchentlich auf dem Server laufen soll.
    Er soll auf eine Excelliste auf einem anderen Server (Fileserver) per Pfadangabe zugreifen und den Inhalt auslesen und quasi jede Zeile in eine neues Dokument in Notes schreiben.


    Hat einer eine Idee, wie ich das bewerkställigen kann.
    Folgender Befehl läuft natürlich auf Fehler auf, da er ja auf dem Server kein Excel öffnen kann.
    ....
    Set Excel =createObject("Excel.Application")
    Excel.Visible=False
    Set book1=Excel.Workbooks.open(filenames)
    ....
    Wäre super wenn mir jemand helfen könnte

  • Was spricht gegen ein CSV?


    [size=xx-small][color=ff0000]Bitte Themenpräfix beachten![/color][/size]

    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

    XML ist auch noch eine Möglichkeit.
    Wie das Format dann allerdings in späteren Excel-Versionen aussieht ... ?


    Über einen Parser (DOM oder SAX) würde ich dieses XML-Konstrukt auch nicht unbedingt laufen lassen sondern per Hand parsen.


    Einfacher ist in diesem Fall aber die CSV, auch wenn dir dabei Infos über Datentypen und Formatierungen verloren gehen.


    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,


    die Datei die ich auslesen möchte, ist sogar eine csv Datei.
    Ich hab die halt immer per Excel geöffnet und dann Zelle für Zelle ausgelesen.
    Wie kann ich auf die csv Datei per Agent im Hintergrund zufreigen, ohne Excel. Darin hab ich leider keine Erfahrung.

  • Irgendwie stellt ich mich heute total blöde an.
    Mit Stream komm ich gar nicht klar.


    Ich bin jetzt schon soweit , dass ich in einem String die erste Zeile meiner csv Datei habe.


    Open Pfad For Input As file
    Line Input #file, zeile



    Die sieht zum Beispiel so aus.


    Lieferantennummer;Land;Name;Suchtext;Strasse;PLZ;Ort


    Und ich weiss dass ich nun mit Array arbeiten muss, zumindest denk ich mir das.


    Wie lese ich jetzt den String aus.
    ?????
    Doc.Lieferantennummer = Zeile bis zum 1 ";"
    Doc.Land=Zeile von 1 ";" bis zum 2 ";"
    und so wieter.

  • Hi,


    Mit dem Split die gelesene Zeile in einen Array aufzuteilen stimme ich ueberein.


    Ich bin mir jetzt jedoch nicht so sicher, ob die eckigen Klammern zur Angabe des Array-Elementes hier zielfuehrend sind.


    Ich tendieren eher zur folgenden Schreibweise.


    Code
    Array = Split(<gelesene Zeile>; ";")
    
    
    doc.Lieferantennummer = Array(0)
    doc.Land = Array(1)


    Auch folgendes waere denkbar
    Call doc.ReplaceItemValue("Lieferantennummer", Array(0))
    Call doc.ReplaceItemValue("Land", Array(1))



    Andreas

    • Offizieller Beitrag

    Split ist eine schlechte Idee, denn das ";" kann auch im Text vorkommen. Da müssen dann noch die " gezählt werden.


    Gruß
    Dirk

  • Hi ihr lieben,


    ich hab jetzt ein anderes Problem.
    Also.


    Diese CSV wird vom SAP auf einen Fileserver (Server X) gelegt.
    Mein Agent läuft Zeitgesteurt auf dem Domino Server (Server Y).


    datei=\Server X\Org$\__SysAdmins\Lotus Notes\Lieferant.csv
    file = FreeFile()
    Open datei For input As file


    Beim letzten Befehl schreibt mir das log folgenden Fehler


    error message: Operation is disallowed in this session


    Hat einer ein Idee.

  • Leider muss ich da taurec zustimmten. Geht nicht, da ja mein Domino Server den Fileserver nicht kennt.
    Ich hab jetzt mal eine Anfrage an unsere Administratoren gestartet. Vielleicht können die mir einen Order auf dem Domino Server freigeben, damit ich dort die Datei hinterlegen kann. Dann muss nur noch mein SAP Team es hinbekommen die Date dort hinzuspeichern. Eine andere Möglichkeit sehe ich momentan aus Notes Sicht leider nicht. Wenn jemand eine Idee hat, gerne.

  • taurec,


    Ich dachte dass ich somit einmal ein kleinen Agenten zusammengebastelt hatte.


    Server hatte des betreffende Verzeichnis als LW gemapped. (z.B. LW Z)
    Security des Agenten heruntergeschraubt und schon lief es.


    Bin mir aber wirklich nicht mehr absolut sicher.



    Andreas

  • Du kannst z.B. im Hintergrund einen Batch Job ablaufen lassen, der das Kopieren der Daten übernimmt. Dieser kann ja auch unter einem netzbenutzer laufen und hat damit auch auf Netzlaufwerke/UNC Freigaben Zugriff