Integritätsprüfung: Prüfungen, besitzende Modelle, Zeitplanung
Aufbau des Integritäts-Runners, die Prüfcodes und ihre besitzenden Modelle, das Laufprotokoll, die Einstellungen und die systemweite Zeitplanung sowie Berechtigungen und Inhaltsbereich.
Der Integritäts-Runner liest nur: Je Prüfung listet er die Abweichungen mit einem Link zur Korrekturstelle. Die SQL der Prüfungen liegt in getIntegrityFindings() der besitzenden Modelle; das Modell report/integrity wählt aus, führt zusammen und protokolliert. Der Einstellungsbildschirm hält je Prüfung Status, Reihenfolge und Zeitplan; Anlegen und Löschen gibt es nicht, denn eine Prüfung ist Code.
Prüfungen und besitzende Modelle
| Code | Besitzendes Modell |
|---|---|
orphan_settlement | finance/transaction |
orphan_item | finance/transaction |
settled_revocable | finance/transaction |
advance_payment | finance/transaction |
import_mismatch | bank/bankimport |
import_unbooked | bank/bankimport |
periodic_dates | finance/invoice |
open_cash | finance/invoice |
missing_partner | finance/invoice |
advance_final | finance/invoice |
partner_taxhu | finance/invoice |
storno_match | finance/invoice |
tech_partner | finance/invoice |
dup_number | finance/invoice |
doc_client | finance/invoice |
Datenmodell
Die Tabellennamen tragen in der Datenbank das eigene Präfix der Installation.
| Tabelle | Rolle |
|---|---|
integrity_check | Status, Reihenfolge, Cron-Einstellung je Prüfung |
integrity_run | Laufprotokoll mit Quelle (manual, geplant) |
cron_queue | systemweite integrity_check-Vorlagen |
Ablauf
report/integrity.list: die gewählte oder alle aktiven Prüfungen auf der Menge der erlaubten Firmen (eine fremde Firmen-ID ergibt ein leeres Ergebnis); mitrun=1mit Quellemanualprotokolliert, beim bloßen Ansehen nicht. Blättern (auchall); je Zeile ein Link zu Buchung, Importzeile oder Rechnung bei vorhandenemlist-Recht. Einstellungs-Link beicanSee(report/integritycheck, list).report/integritycheck.list: Prüfungen mit Zeitplanübersicht (aus den Zeitplanerzeilen, verlinkt mitcron/cronqueue+list) und letzten Läufen.report/integritycheck.save,enable,disable: Status, Reihenfolge, Cron ein/aus und gemeinsamer Zeitgeber (stündlich, täglich, wöchentlich, monatlich); die Cron-Einstellung wird als systemweite (company_id = 0)integrity_check-Vorlage in den Zeitplaner geschrieben, beim Ausschalten deaktiviert.report/integritycheck.run: eine Prüfung mit Quellemanualauf den erlaubten Firmen des Benutzers (Super: alle), protokolliert.- Hintergrund: Job
integrity_check→ Catalogmasterdata/cronqueue::runIntegrityChecks. Eine Zeile aus einer Vorlage (payload.check_code) führt eine Prüfung aus, bei Mandantenziel nur auf dessen Daten; die stündliche Systemzeile ohne Nutzlast führt die Prüfungen ohne eigenen Zeitplan aus. Ein erfolgreicher Lauf ohne Abweichung sendet keine Ergebnis-E-Mail.
Berechtigungen
report/integrity:list,debug;report/integritycheck:list,edit(und Basisrechtmodify),run,debug. Keiner in den Seeds eingestuft.- Inhaltsbereich:
getCompanyGroupFilterbeim Ausführen. - Das Schreiben der Cron-Vorlage beim Speichern verlangt
cron/cronqueue+editnicht; das Formular prüft es nur für die Anzeige.