# Gruppenwechsel

Gruppenwechsel (englisch control break) ist ein Begriff der Datenverarbeitung und bezeichnet den Sachverhalt, dass ein zu verarbeitender Datensatz eines sortierten, sequentiell zu verarbeitenden Eingabe-Datenbestands nicht zur selben Gruppierung gehört wie der unmittelbar vorher verarbeitete. Das zugehörige Verarbeitungsprinzip wird Gruppenkontrolle, Gruppenwechsellogik oder Gruppenwechselverarbeitung genannt. Eine Gruppenwechselverarbeitung ist in der Regel Bestandteil eines Stapelprogramms, meist wird dabei eine Datei verarbeitet. Ein Gruppenwechsel liegt vor, wenn der Ordnungsbegriff eines Datensatzes von dem des vorausgehenden Satzes abweicht. Ein solcher Wechsel erfordert oft spezielle Verarbeitungsschritte wie die Ausgabe einer Summenzeile der vorausgehenden Gruppe sowie die Initialisierung von Variablen für die folgenden Gruppe. Manche höheren Programmiersprachen (wie beispielsweise RPG oder ABAP) bieten eine integrierte Unterstützung der Gruppenverarbeitung. Ebenso wird die Gruppenwechselbehandlung von den meisten Reportgeneratoren unterstützt.
Von einem mehrstufigen Gruppenwechsel spricht man, wenn mehr als ein Ordnungsbegriff anzuwenden ist. Die Ordnungsbegriffe müssen dabei eine hierarchische Abhängigkeit aufweisen, das heißt, die Datensätze sind zuerst nach dem ersten Ordnungsbegriff sortiert und innerhalb des ersten Ordnungsbegriffs nach dem zweiten usw. Die Sicherstellung der korrekten Sortierfolge der Eingabedaten und das Bestimmen der korrekten Lesereihenfolge (bei gleichzeitiger Verarbeitung mehrerer Eingabedateien) stehen bei manchen Problemstellungen mit der Gruppenwechselverarbeitung in engem Zusammenhang (siehe auch normierte Programmierung).

## Geschichte

Bei der Tabelliermaschine findet sich bereits das Prinzip der Gruppenwechselverarbeitung, wobei die Datensätze dabei in Form von Lochkarten vorliegen. Die erste Tabelliermaschine, die eine gruppenmäßige Behandlung von Lochkarten ermöglichte, wurde von Herman Hollerith im Jahre 1914 entwickelt. Diese konnte Zahlenmaterial nach konfigurierbaren Gesichtspunkten geordnet wiedergeben, was vor allem für die Buchhaltung von Nutzen war. Im Jahre 1936 brachte die Firma DEHOMAG auf dem deutschen Markt die D11 heraus, eine Tabelliermaschine, die einen dreistufigen Gruppenwechsel unterstützte. Die Lochkarten mussten dabei nach den Gruppenkriterien geordnet vorliegen. Abhängig von der Stufe des Gruppenwechsels konnte die D11 Summen bilden oder einen Seitenvorschub bei der Drucklistenausgabe veranlassen. Die Gruppenkriterien wurden dabei über Schalttafeln konfiguriert.
Gruppenwechsel finden sich ebenso beim Lochkartenmischer.
Mit Beginn des Computerzeitalters, als ab den 1950er Jahren Stapelverarbeitungsprogramme die vorherrschende Form der Datenverarbeitung darstellten, war die Gruppenwechselverarbeitung ein ständig wiederkehrendes Verarbeitungsprinzip. Deshalb wurden hierfür standardisierte Lösungsverfahren entworfen, wie beispielsweise die DIN 66260. Durch die seit den 1980er Jahren immer mehr an Bedeutung gewinnende interaktive Dialogverarbeitung spielt die Gruppenwechselverarbeitung eine weniger dominierende Rolle.

## Lösungsprinzip

Das übliche Lösungsverfahren sieht für einen einstufigen Gruppenwechsel zwei geschaltete Schleifen vor. Das Abbruchkriterium der äußeren Schleife ist, dass keine Datensätze mehr vorliegen, d. h. bei einer sequentiellen Dateiverarbeitung, dass das Ende der Datei erreicht wurde. Der erste Datensatz ist dabei noch vor der Schleife zu lesen. Innerhalb dieser Schleife wird zunächst der sogenannte Gruppenvorlauf durchgeführt, dieser beinhaltet vor allem das Festhalten des Ordnungskriteriums des aktuellen Datensatzes (zum Beispiel die Personalnummer), um einen Wechsel erkennen zu können. Außerdem sind an dieser Stelle alle Variablen zu initialisieren, die sich auf die Gruppe beziehen, beispielsweise Zähler zur Summenbildung und Informationen zwischenzuspeichern, die in späteren Stufen noch benötigt werden (z. B. Name und Adresse des Mitarbeiters).
An den Gruppenvorlauf schließt sich die innere Schleife an. Das Abbruchkriterium ist wie bei der äußeren Schleife das Dateiende, zudem auch der Wechsel des Ordnungskriteriums der Gruppe. In der inneren Schleife findet die eigentliche Verarbeitung des Satzes statt, dies kann die Ausgabe einer Datenzeile auf einem Drucker oder die Aktualisierung von Summenvariablen für die nächsthöhere Gruppenstufe sein. Am Ende der inneren Schleife ist der nächste Datensatz aus der Datei zu lesen.
Wenn das Abbruchkriterium der inneren Schleife erreicht wurde, liegt ein Wechsel der Gruppe vor, der aktuelle Datensatz bezieht sich dabei bereits auf die folgende Gruppe. Nach der inneren Schleife erfolgt der sogenannte Gruppennachlauf (gelegentlich selbst auch „Gruppenwechsel“ genannt); dieser beinhaltet beispielsweise die Ausgabe einer Summenzeile für die Gruppe.
Nach Erreichen des Abbruchkriteriums der äußeren Schleife kann noch eine Abschlussverarbeitung durchgeführt werden, beispielsweise die Ausgabe einer Gesamtsummenzeile.
Bei einem mehrstufigen Gruppenwechsel besteht der Verarbeitungsteil einer äußeren Gruppe aus der Gruppenwechselsequenz der inneren Gruppe mit Vorlauf, weiterer geschachtelter Schleife und Nachlauf. Die Abbruchbedingung der inneren Schleife beinhalten immer auch die der äußeren, also auch den Wechsel der übergeordneten Gruppenkriterien. Das Lesen des nächsten Satzes findet am Ende der innersten Schleife statt.