Firma oder Mandant, das ist heute die Frage?

Ein Unternehmer betreibt zwei oder mehrere rechtlich von einander getrennte Firmen. Diese Firmen sollen eine gemeinsame IT-Infrastruktur verwenden. Also die Daten der Firmen sollen auf gemeinsamen Servern und Datenbanken gespeichert werden. Als IT-Berater ist es meine Aufgabe die IT-Infrastruktur nach den gesetzlichen Vorgaben zu planen. Hierbei sollen auch die Anforderungen bezüglich Datenschutz und klarer organisatorischer Trennung der Muttergesellschaft und der Tochterfirmen eingehalten werden. Praktisch ausgedrückt, meine Adventure Works Cycles und Contoso GbR sitzen unter einem Dach und sollen sich die IT-Infrastruktur teilen.

Wenn ich jetzt beim Support von JTL anrufen würde und fragen würde, ob ich die beiden Firmen in einem Mandanten hinterlegen kann, würde mir diese Frage der Support gesichert mit „Ja“ beantworten. Ich spare mir dieses, da ich die Antwort schon kenne. Wie wird es jetzt aber richtig gemacht? Wir haben zwei Firmen die rechtlich getrennt und eigenständig sind. Diese beiden Firmen sitzen unter einem Dach und teilen sich die Infrastruktur. Firma A verkauft Socken und Firma B Unterhosen. Wie sieht die Sache aus, wenn ein Kunde C bei Firma A Socken kauft, sich im Newsletter einträgt und anschließend von Firma B einen Newsletter für Unterhosen erhält? Aus Gründen des Datenschutzes, dürfte Firma B gar nicht an die Daten von Firma A zugreifen dürfen. Dies wiederum würde auch bedeuten, das Vertriebsmitarbeiter D nicht die Kundendaten von Firma B sehen dürfte und Vertriebsmitarbeiter E nicht die Kundendaten von Firma A.

Die rechtlichen Grundlagen für die Mandantenfähigkeit lassen sich unter den beiden folgenden Links nachlesen

https://www.datenschutz-bayern.de/technik/orient/oh_mandantenfaehigkeit.pdf

http://www.computerwoche.de/a/gemeinsame-strukturen-getrennte-daten,2531043

Daraus ergibt sich, das in einem Mandaten keine zwei rechtlich von einander getrennten Firmen angelegt werden dürfen. Selbst wenn die eine Firma der Mutterkonzern und die andere Firma eine Tochterfirma ist, ist es fast schon zwingend notwendig zwei Mandanten für diese beiden Firmen (und das gilt nicht nur für das Warenwirtschaftssystem von JTL!) anzulegen. Unter JTL bedeutet dies, dass in so einem Fall eigentlich immer 3 Mandaten angelegt werden sollten. Im Standardmandant werden die Grundlegenden Einstellungen, wie die Benutzer und Rechteverwaltung gepflegt und in den beiden anderen Mandanten die Firmen.

Der Support hat recht, wenn er sagt, man kann in einem Mandanten zwei unterschiedliche Firmen anlegen. Rechtlich ist so ein Konstrukt als sehr zweifelhaft zu sehen. Alleine die Möglichkeit dem Anwender zu geben, zwei rechtlich getrennte Unternehmen in einem Mandaten zu hinterlegen und zu führen, ist daher aus meiner Sicht ein eklatanter Designfehler. Unter einem Mandanten sollte es daher nur die Möglichkeit geben, Filialen oder eigenständige Marken des Unternehmens zu verwalten. Damit ist aus meiner Sicht die komplette Firmenverwaltung in JTL-Wawi im Mandanten grundlegend falsch implementiert und umgesetzt. Richtiger wäre es, sämtliche steuerrechtlichen Einstellungen und Informationen pro Mandant zu hinterlegen.

Fazit: Für die Adwenture Works Cycles und die Contoso GbR muss ich als IT-Berater bei der Implementierung einer Lösung mit JTL-Wawi mindestens zwei Mandanten berücksichtigen. Besser wäre es beide Firmen in unterschiedlichen SQL-Server-Instanzen laufen zu lassen, da die komplette Rechteverwaltung ausschließlich im Standardmandanten gepflegt wird. Bei einem Umzug einer der Firmen auf eine eigenständige IT-Infrastruktur würde ich ansonsten riskieren, das die komplette Rechteverwaltung einer der beiden Firmen für die betreffenden Mitarbeiter neu anzulegen ist, was wiederum mit Risiken verbunden ist. Ich möchte definitiv jetzt nicht in der Haut eines Servicepartners stecken, der von seinem Kunden aufgefordert wird, die Firmen in einem Mandanten wieder zu trennen, weil jemand dahinter gekommen ist, dass es die betreffenden Firmen nicht so genau beim Datenschutz genommen haben. Oder wie hat es so schön jemand ausgedrückt: „In diesem Fall steht der Geschäftsführer einer GmbH mit einem Bein im Knast.“

Ich hätte diesen Fehler fast selbst gemacht. Bei meiner Planung für zwei Firmen, die rechtlich völlig getrennt von einander sind und sich nur die Infrastruktur teilen, ging ich auch davon aus, dass ich beide Firmen in einem Mandanten abbilden kann. Da hier aber die richtige rechtliche Anforderung bestand, das Firma A an Firma B Rechnungen für die Ware schreiben muss, die Firma B von Firma A bezieht und über diverse Marktplätze vertreibt, habe ich nach einer Lösung gesucht, wie dieser Prozess automatisiert erfolgen kann – siehe Dropshipping, der Lösung auf der Spur. Meine Rettung war wohl, dass der dafür notwendige Workflow nicht funktionierte, da beide Firmen auf ein und das selbe Lager zugreifen und somit der Lagerbestand nie Null ist. Und genau das ist die Grundvoraussetzung dafür, dass der Dropshipping-Prozess völlig automatisiert funktioniert. Noch mal richtig Schwein gehabt…

5 Gedanken zu „Firma oder Mandant, das ist heute die Frage?“

  1. Hallo Michael,

    ich gebe dir da vollkommen Recht, dieses Szenario hat immer auf mehrere Mandanten aufgeteilt zu werden. Alle unsere Kunden setzen dies auch nach unseren Empfehllungen Korrekt um, auch wenn wir da immer wieder (Teils im Forum) auf Kunden stossen, welche das einfach nicht wahr haben wollen.

    Bezüglich einem Punkt muss ich dich aber leider Unterbrechen, es ist kein Design Fehler das man mehrere Firmen in einem Mandanten haben kann, vielleicht eher ein bennenungs Fehler.

    Es gibt Szenarien, wo mehrere Firmen Einträge sinnvoll sind. Aber in diesen Fällen steht hinter jedem dieser Firmen Einträge trotzdem die Rechtlich Gleiche Firma. z.B. wenn die
    Adventure Works Cycles unter dem Label Mounten Cycles ihre Mountenbikes und unter Speed Racers Cycles ihre Rennräder Verkauft. Als firma steht da aber dennoch Adventure Works Cycles. Nur haben beide ein getrenntes CI etc. Das ist das einzige Szenario, welches man in einem Mandanten abwickeln sollte/kann.
    Für alles andere Greift die Mandanten fähigkeit. Und sollte auch umgesetzt werden. Und dieser Standpunkt wird auch vom Support weiter gegeben. Es kann natürlich passieren, dass du 10 mal in einem Support anrufst, und da eine Faktisch Falsche aussage bekommst. (Nicht nur bei JTL, ich kenne da dutzende) Aber dann hast du halt einen dran, der sich mit der Marterie auskennt, und antwortet dir direkt anders.
    Der Punkt ist da einfach, solange sich die Support Mitarbeiter nicht bis ins Detail mit dem Thema beschäftigt, wird er nie zu einer 100 % genauen Antwort in der Lage sein.

    Am Rande noch, da du ja auch gerne mal von Software schreibst die so Problemlösungen im JTL Umfeld lösen. Visitmedia hat mit Ihrem ViCtor ein Tool, as eine Spezielle Update feste Schnittstelle zur JTL Db hat. Und für dieses Tool, gibt es den sogenannten Mandanten Abgleich in der aktuellen Alpha Version 0.4.x was auch bei 2 Größeren Kunden (Mandanten > 4) im Einsatz ist.
    Ich hatte das ja auch in Facebook schon mal kurz beschrieben.
    Feature 1: Austausch von Lieferantenbestellungen zu Bestellungen des anderen Mandanten
    Feature 2: Abgleich der Lieferantenbestände (Für Dropshipping nicht schlecht)
    Feature 3: Sync der Preise für den entsprechenden Kunden.

    natürlich noch ein paar mehr Features. Und einige wichtige sind noch in Entwicklung (Stammdaten Abgleich).

    1. Hallo Marc,

      dein Szenario habe ich in meinen Ausführungen berücksichtigt. Ein Label ist aber keine Firma/Unternehmen. Die Firma und damit der Mandant bleibt die Adventure Works Cycles und muss in der Rechnung auch so genannt werden. Lege ich die Labels bzw. Marken in diesem Fall als eigenständige Firmen an, ist das auch wieder im Grunde falsch. Vertragspartner des Kunden ist und bleibt die Adventure Works Cycle, nur das auf ein und dem selben Fahrrad unterschiedliche Labels/Markennamen erscheinen. Die unterschiedliche CI kann ich in der Wawi auch sehr bequem über die Plattform abbilden. Ist also in diesem Fall kein Problem.

      Ich bin da wohl schon einen Schritt weiter als Ihr. Mein kleines Tool ist zwar nur auf das wesentliche beschränkt, importiert aber sauber und zuverlässig die Dropshipping-Bestellungen des Dropshippers beim Dropshipping-Lieferanten. Der Rest, also der Ableich der Lieferantenbestände und Preise lässt sich per Workflow und ein paar simplen Skripten völlig automatisch und in Echtzeit mit Boardmitteln bewerkstelligen.

      Fazit: Ich kenne nur einen Fall in dem zwei Firmen in einem Mandanten rechtlich sauber sind. Der dürfte zum jetzigen Zeitpunkt aber völlig uninteressant sein. Solche Konstrukte, wo Tochtergesellschaften für Ihre Muttergesellschaften haften und steuerlich als eine Firma auch veranlagt werden, dürften wir im JTL Umfeld wohl noch nicht haben. Du liegst komplett daneben, wenn du ein Label als eigenständige Firma siehst und damit ist es auch schon nicht mehr sinnvoll zwei unterschiedliche Firmen in einem Mandanten anzulegen. Betrachte ich dies aus dieser Sichtweise, hat es immense Folgen für das Design einer Anwendung und wie die Datenbankstruktur aufgebaut sein sollte.

      Gruß Michael

      1. Ich sag ja, das ganze als Firma zu Bezeichnen ist dann ein bisschen Falsch. Und das ganze über Plattformen abzuwickeln bekommst du nur begrenzt hin. Den du kannst bei der Plattform nicht den Shop, den Ebay Account, oder falls es doch jemand geschafft hat die Amazon Accounts zu unterscheiden. Du kannst unterscheiden zwischen z.B. Ebay.de und Ebay.com aber gerade wenn du mehrere Shops geringfügig anders Handeln willst, wirds eng.

        Dein Tool wird sich eine Lieferantenbestellung die per DotLiquid im XML Auftrags Forumat Exportiert wird, irgendwie wieder importieren. Per Workflow wirst du Beständsänderungen und Preisänderungen nur beschränkt mit bekommen. Und gerade bei größeren Konstellationen schnell an deine Grenze stossen, bei Unseren Alpha Kunden reden wir von ca. 20-50 Bestandsänderungen alle 2 Minuten, welche Übertragen werden müssen. (Im Übrigen, auch Problemlos Bidirektional.)
        Eine Light Version, kriegt man sehr schnell mit paar Scripten und ein bisschen Knowhow zusammen. Eine Lösung wo du dann aber auch die „Fremdbelegnummer“ Automatisch zurück bekommst, und gerade im Fall Dropshipping auch die Versandinfos, wie Paket nummer etc. Und die Eingangsrechnung wird dann schon eher Problematisch, oder durchs über die Datenbank hacken.
        Nur gerade da sollte jeder der nicht über einen wirklich sehr guten Draht zu JTL verfügt, aufpassen. Sonst bekommt man wichtige DB Änderungen vielleicht zu spät mit ;)
        Daher als Fazit, sehe ich das mit den Labeln weiterhin so, weil ein Selektieren der Vorlage über die Plattform nur sehr beschränkt funktioniert. Grundsätzlich teile ich aber deine Aussage, 2 Rechtlich verschiedene Firmen gehören NIEMALS in einen Mandanten.
        Zu allem anderen, Viele Wege führen nach Rom, ob du mit deinem Tool jetzt einen Schritt weiter bist, wage ich zu bezweifeln. Das tool was wir da haben, macht seinen Job, dass was es macht, lässt sich sicher mit diversen Tricks auch anders lösen, je doch mit den Nachteilen, vielleicht einmal täglich alle Bestände abzugleichen. Sich vielleicht über tricks auf der DB die Daten zu übertragen (Rate ich jedem von ab). je nach Lösung, geht man aber einen sehr Daten lastigen, immer noch sehr arbeitsanfälligen weg. In unserem fall ging das bei den Kunden als übergangslösung. Bei kleinen mag das gehen. Bei großen wird es auf jeden fall Ecklig. Und wenn wir mal ehrlich sind, die meisten die ein solches Szenario haben, sind doch eher größere Firmen.

        Noch zum schluss, weil ich gerade nochmal da drüber gestolpert bin. Ich sehe ein label nicht als Firma, Die Daten in der Firmen Maske, würde ich in einem solchen Fall als Identisch sehen. Beide „Firmen“ Einträge würden sich nur im Punkt Rufnummer, Emailadresse, Name unterscheiden. Aber gerade sowas wie Steuernummer, Unternehmer, Adresse würde ich gleich sehen. Und die Bezeichnung Firma, würde ich dann auch anders bezeichnet sehen.

        1. Marc, erkläre mir doch bitte mal den Unterschied zwischen ein bisschen Falsch und Falsch. Irgendwie scheine ich an dieser Stelle in der Schule geschlafen zu haben. Also bei mir gibt es nur True or False. Was sagt eigentlich ein Compiler wenn er ließt If company = little bit false then irgenwas? Ob hier ein Konstrukt try … catch … finaly uns weiterhelfen würde?

          Ich denke mal wir haben uns darauf geeinigt, das es in einem Mandaten keine zwei Firmen geben kann und darf, weil der Mandant ja schon die Firma ist. Über den Rest brauche ich dann nicht mehr zu diskutieren.

          Wenn ich deine Ausführungen zu meiner Lösung lese, ist zwar nicht Bestandteil des Artikels, aber Schwamm drüber, dann unterstellst Du mir hier gerade einen Datenbank Hack. Ich bin mir da zwar nicht ganz so sicher was Du damit meinst, aber ohne genauere Kenntnis des Quellcodes und der Prozesse die damit abgebildet werden, ist das schon sehr mutig von Dir. Dirty Coding überlasse ich brav anderen und alles andere baut auf der offiziellen Dokumentation von JTL auf.

          Gruß Michael

          P.S.: Noch ein kleiner Tipp, packe nie zwei Themen die nicht zusammengehören in einen Kommentar zusammen. Das verwirrt nur den Leser, der nicht alle Informationen zur Verfügung hat.

  2. Pingback: Anonymous

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.