Mandanten auf getrennten Laufwerken einrichten

Verfasst von

in

Sollen mehrere Mandanten ihre Daten aus Gründen der Mandantentrennung auf verschiedenen Laufwerken ablegen, lässt sich das im EinkaufsMonitor (ab Version 2.0.0) pro Mandant konfigurieren. Beispiel dieser Anleitung: KWP liegt auf M:, Mandant 02 soll auf N:.

M: · KWP-Laufwerk
BNWIN, mandanten.json, Installer-Ordner und die Daten von Mandant 01. Auf allen Arbeitsplätzen verbunden.
N: · Zusatzlaufwerk
Ausschließlich die Daten von Mandant 02.

1. Grundprinzip

Ohne besondere Konfiguration liegen alle Mandanten unter {KWP-Laufwerk}\EinkaufsMonitor\{MandantenId}. In der mandanten.json kann pro Mandant ein eigenes Datenverzeichnis angegeben werden, das diesen Standard überschreibt.

Zwei Dinge bleiben unabhängig davon immer auf dem KWP-Laufwerk, weil alle Anwender sie erreichen müssen:

  • M:\EinkaufsMonitor\Mandanten\mandanten.json – die Mandantenliste
  • M:\EinkaufsMonitor\Installer\ – Ordner für das automatische Update

Ebenso bleiben die KWP-Verzeichnisse für Archiv-PDFs, UGL und e-Rechnungskontrolle auf dem KWP-Laufwerk – sie gehören zu BNWIN, nicht zum Mandanten.

2. Verzeichnisse anlegen

M:\EinkaufsMonitor\Mandanten\   <- von Hand anlegen, enthält mandanten.json
M:\EinkaufsMonitor\Installer\   <- legt die Anwendung selbst an
M:\EinkaufsMonitor\01\          <- legt die Anwendung selbst an
N:\EinkaufsMonitor\02\          <- legt die Anwendung selbst an
Von Hand anzulegen ist nur „Mandanten“Ohne dieses Verzeichnis findet die Anwendung die Mandantenliste nicht und startet im Modus ohne Mandanten – dann landen die Daten im Standardverzeichnis.

Alles andere erzeugt die Anwendung selbst, sofern sie Schreibrecht auf M:\EinkaufsMonitor bzw. N:\EinkaufsMonitor hat. Der Installer legt auf den Datenlaufwerken nichts an – er kennt nur C:\ProgramData\HTtools\EinkaufsMonitor für die Settings.ini.

3. mandanten.json

Liegt unter M:\EinkaufsMonitor\Mandanten\mandanten.json:

{
  "Mandanten": [
    {
      "MandantenId": "01",
      "MandantenName": "Firma A",
      "EmDbName": "EinkaufsMonitor01",
      "KwpDbName": "BNWINS_01"
    },
    {
      "MandantenId": "02",
      "MandantenName": "Firma B",
      "DatenVerzeichnis": "N:\\EinkaufsMonitor\\02",
      "EmDbName": "EinkaufsMonitor02",
      "KwpDbName": "BNWINS_02"
    }
  ]
}

Nur der abweichende Mandant braucht das Feld DatenVerzeichnis. Mandant 01 liegt auf dem KWP-Laufwerk und verhält sich wie bisher.

Worauf achten? • Backslashes im JSON doppelt schreiben: N:\\EinkaufsMonitor\\02
• Den Mandanten-Unterordner mit angeben (\02), nicht nur N:\EinkaufsMonitor
• Die Datei muss von allen Arbeitsplätzen lesbar sein

4. Laufwerke und Berechtigungen

N: muss auf allen Arbeitsplätzen verbunden sein, an denen Mandant 02 geöffnet werden soll. Ob das nur ein Teil der Anwender ist oder alle – etwa damit jeder zwischen den Mandanten wechseln kann – entscheidet der Kunde. Die Trennung ergibt sich aus den Berechtigungen, nicht aus der Laufwerksverbindung.

PfadMandant 01Mandant 02
M:\EinkaufsMonitorlesen + schreibenlesen + schreiben
M:\EinkaufsMonitor\Mandantenlesenlesen
M:\EinkaufsMonitor\Installerlesen + schreibenlesen + schreiben
M:\EinkaufsMonitor\01Vollzugriffkein Zugriff
N:\EinkaufsMonitor\02kein ZugriffVollzugriff
M:\bnwin\… (KWP)VollzugriffVollzugriff

Schreibrecht brauchen beide Mandanten sowohl auf M:\EinkaufsMonitor – damit die Anwendung den Installer-Ordner überhaupt anlegen kann – als auch im Ordner selbst, weil sie dort ihre eigene Installationsdatei ablegt, wenn sie fehlt.

5. Installation

Reihenfolge beachtenDas KWP-Laufwerk muss verbunden sein, bevor der EinkaufsMonitor-Installer läuft. Der Installer liest den Laufwerksbuchstaben aus AppPath in der Bnwinlocal.ini und trägt ihn als KwpDrive in die Settings.ini ein.
  1. KWP-Laufwerk M: verbinden – KWP muss lauffähig sein.
  2. N: verbinden – auf allen Arbeitsplätzen, an denen Mandant 02 genutzt wird.
  3. EinkaufsMonitor installieren.
  4. Prüfen, dass C:\ProgramData\HTtools\EinkaufsMonitor\Settings.ini den Eintrag KwpDrive = M: enthält.

6. Kontrolle nach dem ersten Start

Die Anwendung je Mandant einmal starten und unter Einstellungen prüfen:

EinstellungMandant 01Mandant 02
Daten VerzeichnisM:\EinkaufsMonitor\01N:\EinkaufsMonitor\02
Export-Verzeichnis RechnungenM:\EinkaufsMonitor\01\RechnungenN:\EinkaufsMonitor\02\Rechnungen
KWP Archiv PDFM:\bnwin\ScansM:\bnwin\Scans
KWP UGL OutM:\bnwin\OnlineM:\bnwin\Online
KWP e-RechnungskontrolleM:\bnwin\ZuGFerdM:\bnwin\ZuGFerd

Zusätzlich kontrollieren, dass kein Ordner M:\EinkaufsMonitor\02 entstanden ist. Wäre er vorhanden, hätte Mandant 02 auf dem falschen Laufwerk gearbeitet.

7. Fallstrick bei bereits eingerichteten Mandanten

Export-Verzeichnis von Hand prüfenDas Export-Verzeichnis Rechnungen wird nur beim allerersten Start mit einer neu angelegten Mandanten-Datenbank automatisch gesetzt. Wurde der Mandant vor der Umstellung schon einmal gestartet, zeigt es weiterhin auf das alte Laufwerk und muss in den Einstellungen von Hand korrigiert werden.

Das Daten Verzeichnis korrigiert sich dagegen bei jedem Start selbst.

8. Fehlerbild: Laufwerk nicht erreichbar

Ist das Datenverzeichnis eines Mandanten nicht erreichbar – etwa weil N: beim Anwender nicht verbunden ist –, meldet die Anwendung beim Start:

Das Datenverzeichnis 'N:\EinkaufsMonitor\02' für den Mandanten
02: Firma B ist nicht erreichbar.
Bitte prüfen Sie die Verbindung zum Netzlaufwerk.
Die Anwendung wird beendet.

In diesem Fall die Laufwerksverbindung beim Anwender prüfen. Die Anwendung arbeitet bewusst nicht auf einem Ersatzverzeichnis weiter.

9. Nur falls der Windows-Dienst eingesetzt wird

Der Dienst läuft in Session 0 und hat keine Laufwerke des angemeldeten Benutzers. Er verbindet sie selbst über die Settings.ini – für jedes benötigte Laufwerk ein eigener Abschnitt, fortlaufend nummeriert:

[NetworkAccess]
Enabled = 1
UncPath = \\SERVER\KWP
DriveLetter = M:
User = dienstbenutzer
Password = ********

[NetworkAccess2]
UncPath = \\SERVER\Mandant02
DriveLetter = N:
User = dienstbenutzer
Password = ********
Lückenlos nummerierenEnabled im ersten Abschnitt schaltet alle Verbindungen gemeinsam ein. Die Nummerierung wird fortlaufend gelesen, bis kein Abschnitt mehr folgt – fehlt NetworkAccess2, wird ein vorhandener NetworkAccess3 nicht mehr berücksichtigt.

Der Dienst setzt das Datenverzeichnis je Mandant selbst. Ist es nicht erreichbar, überspringt er den Mandanten und schreibt einen Fehler ins SystemLog.

Gilt für EinkaufsMonitor ab Version 2.0.0. Fragen zur Einrichtung? Kontakt aufnehmen.