Mehrere Sprachen

Mehrere Sprachen

Bei den Sprachen ist es oft nicht ganz so einfach wie es aussieht. Wir sehen hier die Sprache der Oberfläche, Begrifflichkeiten der Auswahlen. Auf der anderen Seite gibt es so was wie eine Sprache des Rechts. Also Abläufe, die an bestimmte Rechtsbereiche, Organisationsstrukturen gebunden sind. Hier werden dann aber auch wieder Auswahlen in unterschiedlichen Sprachen erforderlich.

Damit es etwas klarer wird, gebe ich ein kleines Beispiel:

Wir haben eine Personalabrechnung und ermitteln hier das Brutto einer Nachtzulagen, die aus unterschiedlichen Tarifverträgen kommen:
  • in deutschem Rechtsbereich des Unternehmens 1; Sprache der Oberfläche deutsch;
  • in deutschem Rechtsbereich des Unternehmens 1; Sprache der Oberfläche englisch;
  • in österreichischen Rechtsbereich des Unternehmens 1; Sprache der Oberfläche deutsch;  // Nettoermittlung abweichend
  • in deutschem Rechtsbereich des Unternehmens 2; Sprache der Oberfläche deutsch;
So und nun kann es auch sein, dass in einem Unternehmen mehrere Tarifverträge angewendet werden und die Nachtzulage innerhalb des Unternehmens noch unterschiedlich ermittelt und berechnet wird.

Wir brauchen also so etwas wie eine Organisationssprache, da wir ja nur eine Nachtzulage und nicht 20 verschiedene Nachtzulagen bereitstellen möchten. Wenn wir so eine Organisationssprache schaffen, die auch den Rechtsbereich des Landes definiert, kann zum Beispiel unsere Nachzulage maschinell geliefert werden, ohne dass bekannt sein muss, nach welchen Regeln jemand beschäftigt ist.

Dieselbe Logik kann dann auch an anderer Stelle angewendet werden, zum Beispiel dann wenn es um Kontierungen, Rabatte, Mehrwertsteuer, Gewerbesteuerzerlegung und anderes geht.

Sprache der Oberfläche

Diese Sprache wird mit dem Code zum Beispiel für Deutsch in Deutschland mit de-de bezeichnet oder englisch mit us-en. Nun ist es so, dass wenn man ganz flexibel sein möchte es auch Firmen oder Organisationsspezifische Begrifflichkeiten gibt, damit sollten einzelne Bergrifflichkeiten oder auch ein komplettes Wörterbuch Unternehmensspezifisch gemacht werden. Hierfür ist ein eigener Organisationsschlüssel  einzuführen.

Ein solches Wörterbuch, dass eine Datenbankwert (kann auch UUID sein) in Klartext übersetzt, kann in anderer Richtung auch dafür verwendet werden Daten aus einem Altsystem einzulesen.

Dieses Wörterbuch enthält dann auch die Übersetzungen für Auswahlkategorien. Da diese dann ggf. über den Ablauf bzw. die Organisationssprache eingeschränkt werden gibt es hierfür einen eigenes Objekt (nennen wir es mal SelTab), dass dieses beschreibt.

Auswahl mit SelTab steuern

Eine Auswahlkategorie steht im internen Wörterbuch. der Zugriff in der Anwendung wird hierauf über die SelTab (ein eigenes Objekt) erfolgen. Das heißt es muss so organisiert werden, dass diese zwei Objekte im Standardbereich immer synchronisiert werden. In der SelTab muss nur dann etwas beschrieben werden, wenn die Auswahl nicht 1:1 angeboten werden soll, sondern nur ein Teil daraus.

Zum Beispiel bei einen Anschriftenart:
  • Hauptanschrift  // wird bei jedem Objekt außer Person angeboten
  • Zweitanschrift // wird bei jedem Objekt außer Person angeboten
  • Wohnsitz // wird bei der Person angeboten
  • Nebenwohnsitz // wird bei der Person angeboten
  • Urlaubsanschrift // wird beim Beschäftigten angeboten
  • Notfallanschrift // wird beim Beschäftigten angeboten
Für alle Begriffe steht die Übersetzung des Schlüssels im Wörterbuch unter der Kategorie Anschriftenart.
In der SelTab erfolgt der Filter. Dieses ist getrennt, da der Filter unabhängig von der Oberflächensprache sein sollte.

Organisationssprache

Die Organisationssprache ist eine Sprache mit ganz wenigen Eigenschaften, die irgendwelche Organisationsschlüssel enthalten.

Wenn dieses Organisationssprache gute Dienste und Vereinfachung in der Parametrisierung der Anwendungen bringen soll, müssen die Stammdatenobjekte immer eine soche Sprache besitzen, damit diese auch korrekt verarbeitet werden. Die Anwendung selbst ergibt sich dann aus der Praxis.

Wir haben verschiedene Bereiche, die auf die Verarbeitung in einer ERP Anwendung unterschieden werden sollten. Diese Bereiche fassen wir zu einem Schlüssel zusammen, der dann bei der Verarbeitung nach festen Regeln aufgelöst wird.

Dieser Schlüssel besteht aus folgenden Bereichen:
  • Staat/Land (3 stelliger ISO-Code des Landes)
  • Staatsunterteilung 1 (2 Stellen - in Deutschland die Bundesländer)
  • Staatsunterteilung 2 (2 Stellen - bei Bedarf Regionen, kann auch für Bereiche im Unternehmen verwendet werden)
  • Oberer Organisationsbereich (2 Stellen - kann hier zum Beispiel Tarifbereich oder Preiskategorie sein)
  • Allgemeiner Organisationsbereich (2 Stellen - kann hier zum Beispiel Tarifvertrag oder Rabatt- / Provisionsbereich sein)
  • Einzel Organisationsbereich (6 Stellen - hier kann nach einzelnen Dingen organisiert werden wie zum Beispiel Gruppen von Mitarbeiter, Maschinen, Ware etc.)
Wie ein solcher Schlüssel verwaltet wird sehen wir dann in der Praxis.

Nun zur Funktionsweise dieses Schlüssels. Es sind immer zwei Seiten die hier zu betrachten sind.
  1. der Organisationsschlüssel beim Objekt (Person, Vertrag, Maschine etc.)
  2. die Organisationsidentifikation bei Parametern, Teabellenwerte und sonstige übergreifende Dinge.
Im Einzelnen bedeutet dieses, dass ein mit der Organisationsidentifikation allgemein hinterlegter Wert von dem Schlüssel gefunden wird, der in den nicht allgemeinen Teilen übereinstimmt. Also ein Wert, der unter dem Land 276 (Deutschland) und mit dem Rest "*" abgelegt wird, wird von jedem Schlüssel gefunden, der am Anfang 276 hat.

Die Funktionsweise möchte ich an ein paar Beispielen aufzeigen:

Beispiel: Grundgehalt aus Tarif in der Personalabrechnung 

Wir haben uns folgende Schlüssel angelegt:
  • 276 ** ** ** ** * * * * * *  // allgemein deutsch
  • 276 ** ** aa ** * * * * * *  // allgemein das Unternehmen
  • 276 ** ** aa tx * * * * * *  // allgemein Tarifvertrag
  • 276 ** ** aa tx a n g * * *  // Angestelle
  • 276 ** ** aa tx a n x * * *  // Angestelle besonders
  • 276 ** ** aa tx a r b * * *  // Arbeiter
  • 276 ** ** aa tx a r x * * *  // Arbeiter besonders
  • 276 ** ** aa tx a z u 1 * *  // Azubi Bereich 1
  • 276 ** ** aa tx a z u 2 * *  // Azubi Bereich 2
  • 276 ** ** aa tx a z x * * *  // Praktikant
Als Basiswerte in unserer Tabelle haben wir drei Werte und zwar Monatsvergütung, Tarifzulage, Stundenvergütung

Gehalt
  • 276 ** ** ** ** * * * * * *  ||  keine Gehalt || 0
  • 276 ** ** aa tx * * * * * *  ||  Mindesttarifgehalt  ||  600
  • 276 ** ** aa tx a n g * * *  || Gehalt Angestellter  || 3000
  • 276 ** ** aa tx a r b * * *  || Gehalt Arbeiter  || 2500
  • 276 ** ** aa tx a z u * * *  || Ausbildungsvergütung  ||  800
Tarifzulage
  • 276 ** ** ** ** * * * * * *  || keine Zulage || 0
  • 276 ** ** aa tx a * * * * *  || Zulage Angestellte/Arbeiter  || 200
  • 276 ** ** aa tx a z u 1 * *  || Zulage Azubi Bereich 1  || 80
  • 276 ** ** aa tx a z u 2 * *  ||  Zulage Azubi Bereich 2  || 85
Stundenvergütung
  • 276 ** ** ** ** * * * * * *  || keine Stundenvergütung  ||  0
  • 276 ** ** aa tx a n * * * *  || Stundenvergütung Angestellte  ||  17,86
  • 276 ** ** aa tx a r * * * *  || Stundenvergütung Arbeiter  || 14,88
  • 276 ** ** aa tx a z * * * *  || Stundenvergütung Auszubildende  || 4,76
--> Person 1
  • mit Organisationsschlüssel:   276 ** ** aa tx a n g * * *  //  Angestelle
  • Gehalt: 3000
  • Zulage: 200
  • Stundenvergütung: 17,86
  • --> es wird immer der Wert genommen bei dem die meiten Bereiche übereinstimmen.
--> Person 2
  • mit Organisationsschlüssel:  276 ** ** aa tx a n x * * *  // Angestelle besonders
  • Gehalt: 600
  • Zulage: 200
  • Stundenvergütung: 17,86
--> Person 3
  • mit Organisationsschlüssel:  276 ** ** aa tx a z x * * *  // Praktikant
  • Gehalt: 600
  • Zulage: 200
  • Stundenvergütung: 4,76
Wenn Sie wollen können Sie noch mehr Beispiele machen. Organisationidentifikation gibt nur dann den Wert wahr zurück wenn der Oragnisationsschlüssel in den bei der Organisationsidentifkation in allen Bereichen übereinstimmt oder zumindest ein '*' hat. Es wird immer der Eintrag herangezogen, die die meisten echten Übereinstimmungen hat. Wenn die Anzahl identisch ist, dann sind die linken höherwertig.

Bei der Ablage dann später das ganze auch noch historisch.

Der Vorteil hier liegt darin, dass die Dinge des Standards einfach definiert werden und nur die Ausnahmen einzutragen sind. Mehrfache Tabellen, mit einer nur geringen Zahl abweichender Werte gehören der Vergangenheit an, da nur noch die abweichenden Werte zusätzlich bestimmt werden.
Share by: