Ein Flat ist ein abstrakter Datentyp für einfache und schnelle Verwaltung von Schlüssel-/Wertkombinationen. Als Werte werden die Meldungsobjekte verwendet. Die Schlüssel werden von Daten des Typs CAA.IDENT dargestellt.
Es bestehen zwei grundsätzliche Möglichkeiten der Flat Implementierung:
Es steht nicht für jeden möglichen Schlüssel auch Speicherplatz zur Verfügung. Alle im Flat befindlichen Datensätze sind aufsteigend sortiert. Der Zugriff erfolgt über eine effiziente Suche. Einfügen und Löschen können mit Kopieraktionen verknüpft sein.
ADR(KCB) := BinarySearch(dwMinKey, dwKey, dwMaxKey);
Bedingung: (dwMaxKey – dwMinKey + 1) <= ctNumKeys
ADR(KCB) := ADR(KCB[0]) + (dwKey-dwMinKey) * SIZEOF(KCB);
Hinweis
Je nach Interpretation der Parameter dwMinKey, dwMaxKey und ctNumKeys bei den Erstellungsaufrufen, wird der Flat sich entweder wie ein Datenfeld oder eine sortierte Liste verhalten!