Flowheater macht die Datenübernahme einfach

Worum geht es?

Datenübernahme kann ein schwieriges Geschäft sein. Oder eine Routineaufgabe. Ich habe FlowHeater der FlowHeater GmbH gefunden und möchte meine positiven Erfahrungen hiermit teilen.

flowheater

Im Kollegenkreis hat so jeder seine spezielle Art, Daten zu übernehmen. Zu exportieren, zu synchronisieren oder zu importieren. Es werden Tools der Datenbank, eigene Skripte, oder die Funktionen der Entwicklungsumgebung verwendet. Ich bin aber natürlich der Meinung, ich mache es besser. Ich erstelle Definitionen für Datenübertragungen in einer grafischen Umgebung. Das geht nicht nur schneller, es verhindert auch Fehler. Sicher hat man mit selbst geschriebenen Skripten noch mehr und detaillierte Kontrolle, man muss es aber auch kontrollieren, sprich machen. In FlowHeater klickt man zusammen, testet und führt aus. Und wenn man es dann regelmäßig braucht, gibt es die Möglichkeit der geplanten Batchverarbeitung.

Was ist Flowheater?

  • Eine sehr intuitive Umgebung, um 2 Datenquellen zu verbinden. Ist dies geschehen, können einzelne Tabellen über sogenannte Pipes sehr einfach deren Spalten verbinden
  • Auf dem Wege von der Quelle ins Ziel, lassen sich diese Pipes mit … beeinflussen. So sind vielschichtige Änderungen der auf dem Wege befindlichen Daten möglich
  • Ob Daten nur angefügt, ersetzt und/oder aktualisiert werden sollen, ist über einen simplen Mausklick definiert
  • Diese Projekte lassen sich in einem FlowHeater-Dateiformat speichern und jederzeit wiederholen
  • Es gibt viele Konnektoren. Text, CSV, XML, ODBC, um nur einige und für mich wichtigsten zu nennen

Was macht Flowheater besser?

  • Es fängt Probleme ab Eine Verbindung und Datenübertragung funktioniert nahezu immer auf Anhieb. Zudem gibt es Hilfen wie “Testverbindung”
  • Es fängt Aufwand ab Durch die grafische Benutzeroberfläche ist es auch für den Laien recht einfach, eine Datenübertragung zu realisieren. Aber auch der Profi profitiert. In der Situation”schnell mal eben” aber auch bei komplexen Aufgaben. Vor allem durch die Testfunktionen, ohne wirkliche Übertragung, gestalten sich derartige Aufgaben wesentlich entspannter
  • Es wird protokoliert In einer Ergebnisübersicht sieht man, was passiert ist. Insbesondere auch das, was nicht passiert ist, sprich eine Erklärung, warum einzelne Daten nicht angekommen sind.
  • Es werden SQL-Skripte generiert. So ist ein Import auch ohne FlowHeater ausführbar

Beispiele

Online-Banking

Online-Banking habe ich lange Zeit mit Anwendungen wie “Mein Geld” durchgeführt. Doch immer wieder gab es irgendwelche Probleme mit den Zugängen oder Fehler genereller Art. Mir entstand immer mal wieder der Eindruck, dass ich mich mehr mit der Software, als mit den Daten beschäftigt habe. Eine Lösung musste her. Da es mir nur um Auswertung und hierfür Kategorisierungen ging, hatte ich eine realistische Chance, etwas sinnvolles selber programmieren zu können. Gesagt, getan.

Die Daten der Banken liegen online bei jeder mir bekannten Bank als CSV-Download vor. Einen kleinen manuellen Schritt, der Download dieser Daten, musste ich akzeptieren. Um danach aber keine Hampelei mehr zu haben, konnte ich nun auch für den Import dieser Daten etwas selbst programmieren. Oder Flowheater verwenden. Es ist jetzt nicht überraschend, dass ich mich für Letzteres entschieden habe, denn es hat mir eine Menge Arbeit erspart.

Folgende Aufgaben mussten erfüllt werden

  • Eine wiederverwendbare Definition des Imports
  • Reaktion auf Besonderheiten der jeweiligen CSV-Dateien
  • Manche Datenbanken haben einen aufwändigen Header. Der muss übersprungen werden
  • Direkter Import in eine SQL-Datenbank, ohne diese CSV-Daten vorher noch bearbeiten zu müssen

Umsetzung mit Flowheater

In ein definiertes Verzeichnis lade ich die CSV-Dateien herunter. Das ist der einzige Schritt, bei dem ich noch denken muss. Danach lasse ich FlowHeater die Daten in meine SQL-Datenbank (SAP SQL Anywhere 12) importieren. Und da FlowHeater alles für mich macht, sind die Daten schön aufbereitet in meiner eigenen Anwendung auswertbar.

Mit den sogenannten Heater-Funktionen, könnte ich bereits beim Import schon Regeln definieren und Daten aufbereiten. Denn diese bieten Kontrollstrukturen, Zeichenketten-, Zahlen- und Datumsfunktionen. Ich habe es nicht probiert, aber sicher könnte man an der Stelle Buchungen kategorisieren.

Alt text

Beispiel Umstellung von Artikelnummern

Die eigentliche Aufgabe, wie hier in der Überschrift beschrieben, betrifft Flowheater nun nicht wirklich. Dennoch halte ich dieses Beispiel für erwähnenswert.
Es soll in einer Datenbank mit ca. 40.000 Artikel der Artikelnummerstruktur geändert werden. Diese Daten sollten zunächst einmal schön bearbeitbar in eine Exceltabelle übernommen werden. Eigentlich kein großes Problem. Doch hatte ich das Problem, dass genau nach 16.267 Artikeln der Import abgebrochen ist. So ganz spontan habe ich auch nach der Analyse der Quelldaten keinen wirklichen Grund gefunden, woran das lag.

Hier machte sich dann guter Support bezahlt. Ich habe in meiner Ungeduld mal eben eine E-Mail an den Hersteller geschrieben. Schon nach kurzer Zeit bekam ich eine Antwort. Ich durfte Testdaten senden und bekam innerhalb einer Stunde die Lösung mitgeteilt. Und diese lautete wie folgt:

Das Problem ist, dass in der Bezeichnung teilweise ein „=“ am Anfang steht und Excel hier von einer Formel ausgeht. Siehe Zeile 16.267. Sie können das umgehen indem Sie mittels des String Append Heater ein Anführungszeichen am Anfang der Zeichenkette einfügen, siehe Beispiel.

Und das Beispiel konnte ich dann auch sofort verwenden.

Beispiel EXIF Daten

Mit FlowHeater importiere ich die EXIF-Daten völlig automatisch unter Verwendung des Batch-Moduls in unser ERP-System. Jeden Tag. Kein neues oder geändertes Bild wird übersehen. Die entsprechende CSV-Datei lassen ich über ein EXIF-Tool erzeugen. An der Stelle sein angemerkt, dass das Batch-Modul zusätzliche Kosten verursacht, aber auch im Vergleich zu Zeiterspanis und Nutzen ist dies nicht der Rede wert.

Warum lohnt sich die Investition?

  • FlowHeater spart Zeit. Aus meiner Erfahrung heraus kann ich sagen, sehr viel Zeit.
  • Die Software mag in der Optik vielleicht nicht jeden überzeugen, auch ich dachte zu Anfang, hmm, sieht etwas aus der Zeit aus. Doch darf man sich davon nicht im Negativen blenden lassen. Technisch absolut auf der Höhe der Zeit.
  • Es wird eine Batch-Modul angeboten. Definierte Vorgänge lassen sich dadurch automatisieren. Regelmäßiges Übertragen stellt kein Problem dar. Regelmäßiges Befüllen einer MySQL-Datenbank für Web-Anwendungen aus dem eigenen ERP-System oder anderen/weiteren Quellen lassen sich recht einfach realisieren.
  • Wer einmal EXCEL-Daten in sein ERP-System übernehmen wollte, kennt die Basteleien. Das geht mit FlowHeater definitiv deutlich schneller.

 

Schreibtrainer Tipp10 in neuer Version

tipp10_2016So kann man doch auf die Idee kommen, dass Schreibtrainer ein ausgelaugtes Thema ist und sich keiner mehr die Mühe macht, daran noch etwas zu ändern, oder zu verbessern. Trifft für sehr viele Programme in dem Bereich auf jeden Fall zu. Nicht jedoch bei Tipp10!

Mit vollständig überarbeitetem Layout in der Onlineversion präsentiert sich TIPP10 moderner und effektiver. Das neue Layout passt sich jetzt an die Browsergröße an und bietet so mehr Platz für Inhalte und neue Funktionen. Und vor allem ist TIPP10 jetzt auch mit Tablets besser zu nutzen. Woher wussten die Entwickler, dass das genau das ist, was ich mir gerade gewünscht habe?

Daran dürfen wir uns u.a. erfreuen:

  • Die Größe des Schreibtrainers lässt sich anpassen
  • Für den Schreibtrainer stehen zwei Farblayouts zur Verfügung (hell und dunkel)
  • Das aktive Zeichen kann jetzt auch unterstrichen dargestellt werden
  • Die Lernstatistik hat nun eine Summenzeile, einen Export und erweiterte Filter

Eine Liste aller Änderungen sind hier zu finden: https://www.tipp10.com/de/news/

An der Stelle sein erwähnt, dass Tipp10 kostenlos ist, der Anbieter sich aber über eine Spende freut.

Fazit: Meine klare Empfehlung.

Redmine auf aktuellen Stand gebracht, so ist es abgelaufen

Es braucht gar nicht weiter gelesen werden. Ich habe die Aktion abgebrochen. Ich habe eigentlich jede Hürde gemeistert. Ruby in korrekter Version, Rails und Passenger. Passenger ohne Fehlermeldungen. Mysql2 und weitere Dinge, alles hinbekommen. Keine Fehlermeldungen. Aber es funktioniert dennoch nicht. Auch /public ist korrekt.  Redmine will einfach nicht starten. Nachdem ich derart viel Zeit mit dem Thema verbracht habe, musste ich mir wieder ehrlich gestehen, dass man sowas nicht „mal eben“ macht und man sich mehr als gedacht in die Sache rein hängen muss.

Sollte ich sowas noch einmal in Angriff nehmen, denke ich daran schon mal viel Zeit zu reservieren. Und: Ruby On Rails ist nicht meine Welt.


 

Welche Umgebung liegt vor?

Welche Linux-Version?

zulu1902:~# uname -a
Linux zulu1902.*******.de 2.6.32-5-amd64 #1 SMP Tue May13 16:34:35 UTC 2014 x86_64 GNU/Linux

Welche Distribution?

zulu1902:~# lsb_release -a No 
LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 6.0.10 (squeeze)
Release: 6.0.10
Codename: squeeze

Welche Ruby-Version ist installiert?

zulu1902:~# ruby -v
ruby 1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux]

Welche Rails-Version ist installiert?

zulu1902:~# rails -v
Rails 2.3.5

 Welche Umgebung ist erforderlich?

ruby 1.9.33, 2.0.02, 2.1, 2.2.1
Rails 4.20

Demnach muss Ruby wie auch Rails zunächst aktualisiert werden. Ich habe es zunächst mit RVM probiert, aber irgendwie ursächlich fieser Fehlermeldungen im Zusammenhang mit MySQL den Faden verloren. Nichts ging mehr. extconf.rb:67:in `<main>‘: uninitialized constant Config (NameError) ist zwar relativ sprechend, auch habe ich erfahren, es es nicht mehr Config sondern RbConfig ist. Aber ist habe die Probleme nicht lösen können. Ein beherztes

rvm implode 

hat dieser Geschichte, deren Sinn ich im Nachhinein gar nicht mehr nachvollziehen kann, ein entsprechendes Ende gesetzt. 

 

1. Update Ruby On Rails

Ich habe Ruby zunächst vom System entfernt. Mit
sudo apt-get remove ruby1.8
war das schnell erledigt. Dann habe ich nach dieser Anleitung Ruby komplett neu eingerichtet. Mit
wget ftp://ftp.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.gz
heruntergeladen und mit folgenden Kommandos kompiliert und installiert:

cd ruby-1.9.3-p547
./configure --enable-pthread --prefix=/usr/local 
make && checkinstall --type=debian --install=yes --fstrans=no --pakdir='~'

Ein erneuter Versuch… 

Ich laufe noch immer auf viele Fehler, also versuche ich es erneut:

rvm install 2.2.1
rvm use 2.2.1
rvm install rails

Probleme mit Passenger

Leider gibt es erhebliche Probleme bei der Installation des Passenger Application Servers. /mod_passenger.so ist nicht zu finden. Ein beherztes

find -iname mod_passenger.so 

hat mir dann den wahren Ort den Apache-Moduls verraten und ich konnte, abweichend von der Installationsdokumentation, den korrekt Pfad eintragen. Und siehe da, Webserver Apache läuft wieder. Nun mit geladenem Passenger-Modul.

Nun kann das Update Redmine durchgeführt werden

Die Anleitung hierzu habe ich hier gefunden: http://www.redmine.org/projects/redmine/wiki/RedmineUpgrade

1. Backup

Da sowieso jeden Tag ein Backup durchgeführt wird, beschränke ich mich auf die Kontrolle, ob es denn heute auch funktioniert hat. Wobei nur die Datenbank gesichert und auf einen anderen FTP-Server übertragen wird, jedoch nicht die Dateien. Dies mache ich sicherheitshalber auch fix per WinSCP manuell. Zu finden in /usr/share/redmine/files

2. Das Update

Es gibt 2 Varianten: Download des Stable Releases oder Checkout aus einen SVN -Repository. Da Letzteres sehr einfach erscheint, es sind nun 2 Befehle an der Kommandozeile, versuche ich zunächst die 2. Option.

svn update
bundle update

Mit VeraCrypt je Volume 2 Laufwerke? Das ist die Lösung.

VeraCryptIch bin heute von TrueCrypt zu VeraCrypt gewechselt. Ich habe dazu für alle Laufwerke neue Volumes angelegt. Dennoch hatte ich nach dem Mounten jeweils 2 Laufwerksbuchstaben belegt.

Zunächst habe ich natürlich überall gesucht und jeden in Verdacht gehabt. Aber es war VeraCrypt. Und mit VeraCrypt habe ich das Problem dann auch beheben können.

Ich habe schlicht einmal auf dem zweiten, nicht gewünschten Laufwerk das Volume gemountet. Dann muss man leider neu booten, damit das Laufwerk wieder frei wird. Nachdem man dann aber das korrekte, gewünschte Laufwerk belegt hat, bleibt das vorab gemountete frei. Also alles wieder gut.

Twitter, Wave, Facebook, Xing, etc. in Thunderbird 3? So geht es.

twitter in thunderbirdFolgende Zeile einfach in der Fehlerkonsole unter Extras evaluieren, aber vorher hinten gewünschten URL eintragen! Es erscheint ein neuer Tab im Thunderbird und man kann sich so eine Nachrichtenzentrale zusammenbauen.

Zu besseren Lesbarkeit habe ich hier nach jedem Punkt einen Umbruch eingefügt, den natürlich entfernen:

Components.
classes['@mozilla.org/appshell/window-mediator;1'].
getService(Components.interfaces.nsIWindowMediator).
getMostRecentWindow("mail:3pane").
document.getElementById("tabmail").
openTab("contentTab",{contentPage: "http://twitter.com/"});

Touch ERP, Touch Apps, TouchScreen für den Desktop

smallscreen_multi-touchIn einigen Jahren sehe ich meinen Artikel von heute vielleicht einmal wie folgt kommentiert: Seht ihr, das wurde  prophezeit, doch keiner hat geglaubt, dass es sich derart massiv durchsetzen wird. Die Geschichten wiederholen sich, es passieren fundamentale Umbrüche, dies auch in Zeiten in denen man denkt, was soll da noch kommen, es ist alles entwickelt, wir haben alles was wir brauchen.
Derzeit halten sich hartnäckig Gerüchte, Apple werde bald einen sogenannten Tablet PC veröffentlichen – eine Art überdimensionales iPhone, mit dem der Konzern auf dem Computer-Markt weiter Anteile gewinnen will. Und Apple kann sehr erfolgreich sein, wenn sie wollen. Wenn dieser einschlägt wie das IPhone, Tablet-PC’s – also PC’s mit fingerbedienbarer Oberfläche – so selbstverständlich werden wie das IPhone, dann wird der Softwaremarkt eine Blüte sondergleichen erfahren. Sämtliche Anwendungen müssen Finger und nicht nur mausbedienbar umgestellt werden. Erfolgreich werden die Unternehmen sein, die besonders fingerergonomische Anwendungen zu bieten haben. Hier ist dann wieder Kreativität und Innovation gefragt. Hier wird es eine unglaubliche Updatewelle geben.
Aber nicht nur die Hardware bereitet den Weg, auch die Software, bspw. duch die Möglichkeiten in Webanwendungen. Drag&Drop wird von HTML5 nativ unterstützt, JavaScript-Frameworks liefern beeindruckende Ziehen&Fallenlassen-Funktionen bereits jetzt, Tochscreen-Anwendungen sind im Browser kein Problem mehr.
Und nun zu meinen Visionen: Was spricht dagegen, wenn Bildschirme in Schreibtischoberflächen eingelassen, Anwendungen wie auf dem Tisch liegende Dokumente bearbeitet werden. Was spricht dagegen, wenn ich in Business-Anwendungen Artikel- und Kundennummern mit meiner Handschrift eintrage, wenn ich durch Stammdaten mit einen Fingerschnipp blättere.Ich stelle mir vor, die Historie von Tätigkeiten mit dem Finger zu lättern, dann den gewünschten Vorgang auf eine Arbeitsfläche zu schieben. Oder ich tippe mit dem Finger doppelt in ein Eingabefeld für Kunden- oder Artikelnummern, dort öffnet sich dann ein virtuelle Tastatur die nur das eingeben lässt, was sinnvoll ist. Also bei Kundennummern erscheint nur ein Nummernblock. Eine ERP-Software fingerbedienbar zu machen, sehe ich als sehr reizvolle Aufgabe. Man stelle sich nur einmal die Terminals im Betrieb vor. Was ginge dann alles sogar an der Maschine, was heute umständlich an empfindlichen und für den Ungeübten lästig an der Tastatur erledigt wird.
Etwas am Thema vorbei, aber das würde die Sache dann noch ergonomischer machen: Eine virtuelle Tastatur, die das Treffen der richtigen Taste nicht so ganz genau nimmt, weil sie selbstständig und intelligent Tippfehler korrigiert und/oder sich aus einen Wörterbuch bedient.

Man braucht eigentlich keine Studien dafür, um zu belegen, dass Anwender es möglichst einfach und simpel haben möchten. Sie haben geradezu Angst vor komplexen Bedienoberflächen. So haben sich Bankingterminals erst durchgesetzt, nachdem sie immer einfacher und per Touchscreen bedienbar wurden. Aber es  gibt diese Studien und die belegen das, was ich hier gerade ausführe.

Weil eine hohe Akzeptanz von Anwendern zu erwarten sein wird, weil sich die Produktivität steigern lässt, weil die Bedienung so intuitiv werden wird, wie auf dem IPhone oder mit Andorid werden TouchScreen-Anwendungen in Zukunft viel häufiger zu sehen sein. Und weil auch die Konvergenz mit mit Fernsehen deutlich leichter zu erreichen sein wird, gibt es auch im Privaten zukünftig mehr Touchscreens und passende Anwendungen. Weil die Industrie neue Themen braucht,  wird es das Thema für das nächste Jahrzehnt werden.