Datenstrukturen
Diese Seite beschreibt die Organisation der Datenbank, die Struktur der Datensätze und die konfigurierbaren Tabelleninhalte, die das Verhalten buchungsrelevanter Vorgänge beeinflussen.
Datenorganisation
Datenbanksystem
Prosoft verwendet Microsoft SQL Server als relationales Datenbankmanagementsystem. Jede Mandanteninstanz arbeitet mit einer eigenen Datenbank. Die Systemanforderungen an den SQL Server sind in der Seite Systemanforderungen dokumentiert.
Mandantentrennung
Prosoft unterstützt den Betrieb mehrerer Mandanten (Unternehmen) innerhalb einer Installation. Jeder Mandant entspricht einem eigenständigen Client-Datensatz. Die Datentrennung erfolgt auf Anwendungsebene — jede Abfrage wird automatisch auf den aktiven Mandanten eingeschränkt.
Schema-Verwaltung
Das Datenbankschema wird automatisch aus dem Programmcode generiert (Code-First-Prinzip). Bei jedem Programmstart prüft ein integrierter Migrationsmechanismus, ob neue Tabellen oder Spalten benötigt werden, und führt die erforderlichen Schemaänderungen automatisch durch. Manuelle SQL-Skripte sind für Schemaänderungen nicht erforderlich.
Alle ausgeführten Migrationen werden in einer Versionstabelle (SchemaVersions) protokolliert. Jede Migration wird genau einmal ausgeführt.
Datensatzstruktur
Jeder Datensatz in Prosoft folgt einer einheitlichen Grundstruktur. Die folgende Tabelle zeigt die Felder, die auf jedem Datensatz vorhanden sind:
| Feld | Typ | Beschreibung |
|---|---|---|
Id |
Ganzzahl oder Zeichenkette | Eindeutiger Primärschlüssel |
CreationDate |
Zeitstempel | Zeitpunkt der Anlage |
CreationUserId |
Fremdschlüssel | Benutzer, der den Datensatz angelegt hat |
ModificationDate |
Zeitstempel | Zeitpunkt der letzten Änderung |
ModificationUserId |
Fremdschlüssel | Benutzer, der die letzte Änderung durchgeführt hat |
IsArchived |
Ja/Nein | Kennzeichen für logisch gelöschte Stammdaten |
IsCanceled |
Ja/Nein | Kennzeichen für stornierte Belege |
Keine physische Löschung
Datensätze werden in Prosoft grundsätzlich nicht physisch gelöscht. Stammdaten werden als archiviert markiert (IsArchived), Belege als storniert (IsCanceled). Beide Kennzeichen sind jederzeit nachvollziehbar. Dieses Prinzip stellt sicher, dass historische Daten für Prüfungen und Auswertungen vollständig erhalten bleiben.
Beziehungen zwischen Datensätzen
Beziehungen zwischen Tabellen werden über Fremdschlüssel abgebildet. Beispiel: Eine Rechnung verweist über PartnerId auf den zugehörigen Kunden, über TaxCodeId auf den Steuerschlüssel und über PaymentTermId auf die Zahlungsbedingung.
Veränderbare Tabelleninhalte
Die folgenden Konfigurations- und Stammdatentabellen beeinflussen unmittelbar die Verarbeitung buchungsrelevanter Vorgänge. Änderungen an diesen Daten wirken sich auf künftige Belege aus.
Steuerkonfiguration
Die Steuerermittlung basiert auf drei zusammenwirkenden Tabellen:
| Tabelle | Beschreibung |
|---|---|
| Steuersatz | Gruppiert Steuerschlüssel zu einem Steuersatz (z. B. „Normal", „Ermäßigt", „Steuerfrei") |
| Steuerschlüssel | Definiert die einzelnen Steuerschlüssel mit Rechnungstext und DATEV-Kennzeichen |
| Steuerrate | Ordnet einem Steuerschlüssel einen Prozentsatz mit Gültigkeitsdatum zu |
Jeder Artikel und jeder Partner ist einem Steuersatz zugeordnet. Bei der Belegerfassung ermittelt das System die gültige Steuerrate anhand des Belegdatums.
Kontenrahmen
| Tabelle | Beschreibung |
|---|---|
| Sachkonten | Kontenplan der Finanzbuchhaltung — jedes Sachkonto hat eine frei wählbare Kontonummer und Bezeichnung |
| Erlöskontengruppen | Gruppiert Erlöskonten nach Geschäftsbereich — steuert die automatische Kontenzuordnung bei Ausgangsrechnungen |
| Aufwandskontengruppen | Gruppiert Aufwandskonten — steuert die automatische Kontenzuordnung bei Eingangsrechnungen |
Jeder Artikel ist einer Erlös- und einer Aufwandskontengruppe zugeordnet. Bei der Rechnungsverarbeitung wird daraus automatisch das zugehörige Sachkonto ermittelt.
Nummernkreise
| Feld | Beschreibung |
|---|---|
| Präfix | Vorangestelltes Kürzel (z. B. „RE-" für Rechnungen) |
| Minimum / Maximum | Unter- und Obergrenze des Nummernbereichs |
| Letzter Zähler | Aktuelle Zählerposition — wird bei jedem neuen Beleg automatisch erhöht |
| Stellen | Anzahl der Ziffern mit führenden Nullen (z. B. 5 → „00001") |
| Gültigkeitszeitraum | Erlaubt jährliche Rotation der Nummernkreise |
Nummernkreise sind durch den Kunden frei konfigurierbar. Sie stellen die Eindeutigkeit und lückenlose Vergabe von Belegnummern sicher. Jeder Belegtyp (Rechnung, Auftrag, Lieferschein etc.) ist einem eigenen Nummernkreis zugeordnet.
Währungen und Wechselkurse
| Tabelle | Beschreibung |
|---|---|
| Währungen | Währungsstamm nach ISO 4217 (z. B. EUR, USD, CHF) |
| Wechselkurse | Tages- oder periodenbezogene Umrechnungskurse zwischen Quell- und Zielwährung |
Fremdwährungsbelege werden anhand des zum Belegdatum gültigen Wechselkurses in die Hauswährung umgerechnet.
Zahlungsbedingungen
Zahlungsbedingungen definieren Fälligkeiten und Skontofristen für Kunden und Lieferanten:
| Feld | Beschreibung |
|---|---|
| Skontofrist 1 / 2 | Tage bis zum Ablauf der Skontofrist |
| Skonto 1 / 2 | Skontoprozentsatz innerhalb der jeweiligen Frist |
| Nettofälligkeit | Tage bis zur Nettofälligkeit |
| Zahlungsart | Verknüpfte Zahlungsart (Überweisung, Lastschrift etc.) |
Jeder Partner hat eine Standard-Zahlungsbedingung hinterlegt, die bei der Belegerfassung automatisch in den Beleg übernommen wird. Die Zahlungsbedingung wird dabei als Kopie im Beleg gespeichert — eine nachträgliche Änderung der Zahlungsbedingung am Partner hat keine Auswirkung auf bereits erstellte Belege. Dieses Prinzip stellt die Datenkonsistenz sicher.
Kostenrechnung
| Tabelle | Beschreibung |
|---|---|
| Kostenstellen | Organisatorische Einheiten zur Kostenzuordnung (z. B. Abteilungen, Bereiche), jeweils mit Verrechnungssatz und Kostenart |
| Kostenträger | Bezugsobjekte, auf die Kosten verrechnet werden (z. B. Produkte, Projekte). Unterstützt Hierarchien über übergeordnete Kostenträger |
| Kostenarten | Klassifizierung der Kostenarten mit Bezugsgrößen (z. B. Stunden, Euro) |
| Profit-Center | Ergebnisorientierte Einheiten für die Ergebnisrechnung |
Preisfindung
Die Preisfindung folgt einer Hierarchie mit absteigender Priorität:
| Priorität | Tabelle | Beschreibung |
|---|---|---|
| 1 | Konditionen | Partner- und artikelspezifische Sonderpreise mit Mengenstaffeln und Gültigkeitszeitraum |
| 2 | Preislisten | Preislistenpositionen je Artikel |
| 3 | Standardpreise | Allgemeine Listenpreise je Artikel mit Gültigkeitszeitraum |
| — | Planpreise | Interne Zielpreise für Kalkulation und Abweichungsanalyse (nicht verkaufsrelevant) |
Geschäftsjahre und Buchungsperioden
| Tabelle | Beschreibung |
|---|---|
| Geschäftsjahre | Definition der Geschäftsjahre je Mandant mit Start- und Enddatum |
| Buchungsperioden | Monatliche oder periodische Unterteilung eines Geschäftsjahres. Jede Periode hat einen Status: offen (Buchungen möglich) oder geschlossen (keine Buchungen möglich) |
Das Schließen einer Buchungsperiode verhindert, dass nachträglich Belege in einen abgeschlossenen Zeitraum gebucht werden.
Artikelstamm
Jeder Artikel enthält neben den beschreibenden Feldern (Bezeichnung, Gewicht, GTIN) die folgenden Zuordnungen, die das Buchungsverhalten bestimmen:
| Zuordnung | Auswirkung |
|---|---|
| Steuersatz | Bestimmt die Steuerberechnung auf Belegen |
| Erlöskontengruppe | Bestimmt das Sachkonto bei Ausgangsrechnungen |
| Aufwandskontengruppe | Bestimmt das Sachkonto bei Eingangsrechnungen |
| Mengeneinheit | Basis-Mengeneinheit für Bestands- und Preisführung |
| Artikelart | Steuert, in welchen Modulen der Artikel verwendet werden kann |
Partnerstamm
Jeder Partner (Kunde oder Lieferant) enthält Standardwerte, die bei der Belegerfassung automatisch übernommen werden:
| Zuordnung | Auswirkung |
|---|---|
| Steuerschlüssel | Standard-Steuerbehandlung für diesen Partner |
| Zahlungsbedingung | Standard-Zahlungsfrist und Skonto |
| Währung | Standardwährung für Belege mit diesem Partner |
| Lieferbedingung | Standard-Lieferbedingung (Incoterms) |
| Versandart | Standard-Versandart |
| Profit-Center | Zuordnung für die Ergebnisrechnung |
Zusammenfassung der buchungsrelevanten Konfigurationstabellen
Die folgende Tabelle fasst alle Konfigurationsdaten zusammen, deren Änderung sich auf die Verarbeitung buchungsrelevanter Vorgänge auswirkt:
| Konfiguration | Auswirkung bei Änderung |
|---|---|
| Steuersätze und Steuerraten | Steuerberechnung auf neuen Belegen |
| Sachkonten und Kontengruppen | Kontierung von Ein- und Ausgangsrechnungen |
| Nummernkreise | Belegnummerierung neuer Dokumente |
| Wechselkurse | Umrechnung von Fremdwährungsbelegen |
| Zahlungsbedingungen | Fälligkeiten und Skontoberechnung |
| Kostenstellen und Kostenträger | Kostenverteilung und Ergebnisrechnung |
| Preise und Konditionen | Beträge auf Angeboten, Aufträgen und Rechnungen |
| Geschäftsjahre und Buchungsperioden | Zulässigkeit von Buchungen in einem Zeitraum |
| Artikelstamm (Steuer, Kontengruppe) | Steuer- und Kontenzuordnung je Artikel |
| Partnerstamm (Steuer, Zahlungsbedingung) | Standardwerte auf neuen Belegen |