Adressstamm — Systembeschreibung

Datenmodell von Adressstamm und Partner-Adress-Verknüpfung, Normalisierung und Dublettenprüfung, Adresszerlegung, verweisgeschütztes Löschen und Berechtigungsschlüssel.

Überblick

Adressstamm (PLZ, Ort, Straße, Hausnummer usw.), den die Partner über eine Verknüpfungstabelle nutzen. Es gibt keine Inhaltsberechtigung (Firma): ein globaler Stamm.

Datenmodell

Die Tabellennamen tragen in der Datenbank das eigene Präfix der Installation.

TabelleZweckBeziehung
addressdie Adresse (Eigentümer: Modell masterdata/address)PLZ, Ort, Straßenname und -art, Hausnummer, Treppenhaus, Gebäude, Stockwerk, Tür, Flurstücknummer, Land, Status
company_addressPartner-Adress-VerknüpfungQuelle des Löschschutzes und der Partnerliste im Formular (zusammen mit der Tabelle company gelesen)

Ablauf

  1. Liste: Freitext- und Statusfilter, Sortierung nach PLZ oder Ort; je Zeile einzeilige Adresse (Straße + Art + Hausnummer), Land, Status. Ohne Recht ersetzt ein Warnhinweis die Liste.
  2. Speichern: Normalisierung (Trimmen, Zusammenfassen von Punkten und Leerzeichen), PLZ und Ort Pflicht, Dublettenprüfung über die vollständige Adresszeile, dann Einfügen oder Ändern; Protokolleintrag; die Antwort liefert die Adresskennung, keine Weiterleitung.
  3. Zerlegen: teilt eine Freitext-Adresszeile in Bestandteile.
  4. Ein/Aus: das Statusfeld.
  5. Löschen: prüft die markierten Adressen einzeln; hat eine einen Partnerverweis, bricht es ab und nennt bis zu fünf verweisende Partner; sonst physisches Löschen; protokolliert.

Berechtigungen

  • Ebene 2: list; edit (Formular, Zerlegen, Ein/Aus, Schaltfläche Hinzufügen im Kopfbereich); das Speichern eines neuen Datensatzes verlangt add, wenn der Schlüssel im Katalog steht — da er fehlt, entscheidet praktisch edit; delete; debug (letztes SQL der Liste).
  • Ebene 3: keine — globaler Stamm.

Bekannte Einschränkungen

  • Das Öffnen der Seite selbst prüft kein Recht; geprüft wird in der Liste und bei den Vorgängen.
  • Den Katalogschlüssel statusdelete (Papierkorb) setzt der Controller nicht um; die Liste filtert auch nicht nach Papierkorb.