Da hat hat man eine Funktion gebaut, die sich als überaus nützlich erweist und die von den Anwendern dankbar aufgenommen wird, und dann kommt die Frage „Kann ich nicht mehrere Dateien auswählen und die Operation auf alle Dateien anwenden?“. Das klingt erst einmal nach einer einfach umzusetzenden Aufgabe, der Teufel steckt jedoch wie immer ganz erheblich im Detail.
Wenn ich eine einzelne Funktion zur Verfügung stelle, dann kann ich die gesamte Handhabung dieser Funktion gekapselt betrachten. Der zugehörige Programmcode wird entsprechend geschrieben:
1) Ist die Anwendung der Operation zulässig
2) Erfassung der Parameter für die Anwendung der Operation
3) Durchführen der Operation
4) Erfolg oder Misserfolgt melden
Wenn man das ganze jedoch als Massenoperation durchführen möchte, dann sieht’s ganz anders aus. Der Anwender erwartet natürlich, dass er sämtliche Eingaben nur einmal vornehmen muss und das Fehlermanagement muss genauso einfach sein, wie bei einer einfachen (einzelnen) Anwendung. So einfach ist es jedoch nicht. Wenn umfangreiche Operationen auf eine Vielzahl von Daten angewendet werden sollen, dann sind mehrere dinge zu berücksichtigen, die bei einem einzelnen Datensatz schlicht keine Relevanz haben:
1) Wie ist damit umzugehebn, wenn zwar die gleiche Operation auf die Daten angewendet werden soll, jedoch jeweils unterschiedliche Rahmenbedingungen unterschiedliche Dateneingaben erfordern? Sollen alle Daten am Anfang erfasst werden, oder jeweils nur dann abgefragt werden, wenn sich Details unterscheiden?
2) Was ist mit einem Abbruchkriterium? Wenn eine umfangreiche Operation abgebrochen wird, liegen die Daten ggf. in einem Zustand vor – der halbfertig – nur mit erheblichem manuellem Aufwand nachgepflegt werden kann.
3) Ist ein Abbruchkriterium für eine Massenoperation überhaupt zulässig, oder entstehen dann unauflösbare konflikte?
4) Was ist, wenn ein Abbruch unzulässig ist, der Anwender jedoch auf Grund des langen Abarbeitungsvorganges denoch abbrechen möchte?
5) Wann sollen Fehlermeldungen ausgegeben werden (mittendrin, oder zusammengefaßt am Ende)
In diesem kleinen Szenario zeigt sich bereits, dass der Zusatzaufwand bei Massenoperationen teilweise überaus erheblich sein kann. Eine einfache Operation, die auf einen einzelnen Datensatz angewendet, vollkommen einfach zu implementieren ist, kann sich als quasi unmöglich für eine Massenoperation zu implementieren zeigen. In jedem Falle muss man sich intensive Gedanken über die Datenverwaltung machen, wenn eine einfache Funktion mehrfach angewendet werden soll.