Frage zum Scriptaufbau: Daten-Import aus Excel in eine externe Anwendung

  • Hallo Welt,

    mal ein Frage zum Aufbau eines Scripts, mit dem zukünftig Personalstammdaten aus einer Exceltabelle Feld für Feld in eine Erfassungsmaske
    einer externen Anwendung (Lohnabrechnungssoftware) importiert werden sollen:

    Die Daten aus Excel zu importieren ist nicht das Problem (Spaltenreihenfolge steht fest und Control-Namen sind bekannt).
    Da die Anwendung bei verlassen des jeweiligen Feldes irgendwelche Logikprüfungen durchführt und ggf. mit Bildschirmmeldungen aufwartet,
    müsste ich nach jedem Feld auf evtl. Meldungen warten, diese bei Bedarf auswerten, bestätigen um dann mit dem nächsten Feld weitermachen zu können.

    Das stelle ich mir bisher so vor, dass ich in einer Switch...Case...EndSwitch-Bedingung
    bei jedem Case ein Feld fülle und mit 'If WinExists...' auf evtl. Meldung(en) warte.
    Das wären über 60 Case; wäre also entsprechend langsam.

    Gibt´s da nicht eine elegantere Lösung, die z.B. ständig im Hintergrund auf mögliche
    Meldungen wartet, diese erkennt und bei Bedarf deren Bearbeitung übernimmt?

    Ich hoffe, das war nicht zu theoretisch und jemand kann mir Anfänger einen Tipp geben.

    Gruß
    TinkyWinky

  • Hallo,

    falls Du Access auf dem Rechner installiert hast, versuch mal die Tabelle in Access zu importieren. Anschließend speicherst Du das Ganze als *.db ab. Möglicherweise lässt die Lohnabrechnungssoftware den Import einer Tabelle aus einer Datenbank (*.db) zu. Du würdest Dir damit eine Menge Arbeit ersparen und müsstest nur auf die Anordnung bzw. Reihenfolge der Felder achten. Falls Access nicht installiert ist, ginge auch der Umweg über (Portable) OpenOffice.org.
    Bitte vorher in der ReadMe der Lohnabrechnungssoftware sicher stellen, dass ein Datenimport auf diese Weise möglich ist.

  • Hallo,

    Zitat

    Das stelle ich mir bisher so vor, dass ich in einer Switch...Case...EndSwitch-Bedingung
    bei jedem Case ein Feld fülle und mit 'If WinExists...' auf evtl. Meldung(en) warte.
    Das wären über 60 Case; wäre also entsprechend langsam.

    Ich kann mir kaum vorstellen, daß im Erfolgsfall (richtige Eingabe im Feld) ein "Das hast du gut gemacht!"-Fenster aufpoppt...
    Somit müsstest du nur den eventuellen Fehlerfall abfragen. In diesem Fall würde ich den gesamten "fehlerhaften Datensatz" (Array mit den Exceldaten) in einer "Fehlertabelle" abspeichern. Im Lohnabrechnungsprogramm diesen Datensatz natürlich NICHT speichern sondern einen Neuen anlegen (und mit dem nächsten Excel-Datensatz ausfüllen).
    Zum Schluß die Fehlertabelle in die Lohnabrechnung eintragen lassen und dann die Fehler checken. So kann das Script (je nach Datenaufkommen) einige Stunden vor sich hin werkeln, und im Anschluß werden die fehlerhaften Daten (müssen sowieso berichtigt werden) eingepflegt.
    ciao
    Andy

    • Offizieller Beitrag

    Anderer Vorschlag:
    Lies dir mal gründlich die Doku zu der Lohnabrechnungs-SW durch (oder wenn die nichts hergibt, frage mal die SW-Firma) und schau, was für Importfunktionen das Programm selbst bereithält. Was ich bisher an SW in den Fingern hatte, hat immer irgendeine Importmöglichkeit gehabt. Dann brauchtest du deine Exeldaten nur in eine (Lohn-SW)importfähige Datei auslagern. Und das ist mit AutoIt sicher kein Problem.

  • Hallo Leute,

    vielen Dank für Eure Antworten. Wie ich sehe, habt ihr mich schon korrekt verstanden.

    BugFix und gnArfL: So ein Import wäre natürlich besser, aber leider gibts keine Importschnittstelle. Ziemlich eigensinnige Software. Zwar handelt es sich um eine Firebird-Datenbank, aber bis ich zwischen den 700 Tabellen die notwendigen Tabellen und Felder gefunden habe, hab ich einen langen grauen Bart

    SEuBo und Andy: Schon richtig, dass ich nur im Fehler-Fall den Datensatz komplett ablehnen wollte. Aber bisher war mir nicht klar wie ich am besten erkenne, ob/dass ein Fehler aufgetreten ist. Die Adlib-Funktion werde ich mir mal ansehen; das scheint das gesuchte zu sein.

    Gruß
    TinkyWinky