IsRowId

Generelles

Eine Reihe von DB-Tabellen wird mithilfe der ISROWID, der Tabelle UEBERSETZUNG und den sprachabhängigen Views übersetzt. Der Aufbau der Viewnamen sieht aus wie folgt: Tabellenname + "_" + Id der Sprache.

Die eigentliche Übersetzung findet man in der Tabelle "Uebersetzung".

Die Struktur der Tabelle "Uebersetzung" sieht wie folgt aus:

Spalte

Primärschlüssel

Beschreibung

TABELLENID

images/s/-vwf8nr/8401/0f22f74a0c673511e48ab1bc7ae6af4388aa8dbf/_/images/icons/emoticons/check.svg

Id der Tabelle (aus IS_TABELLENNAME.TABELLENID )

ISROWID

images/s/-vwf8nr/8401/0f22f74a0c673511e48ab1bc7ae6af4388aa8dbf/_/images/icons/emoticons/check.svg

Fremdschlüssel auf den zu übersetzenden Eintrag für die Tabelle

LANGUAGE

images/s/-vwf8nr/8401/0f22f74a0c673511e48ab1bc7ae6af4388aa8dbf/_/images/icons/emoticons/check.svg

Sprachindex der Übersetzung

VALUE_0


Wert für ersten zu übersetzenden String-Feld

VALUE_1


Wert für den zweiten zu übersetzenden String-Feld

VALUE_TEXT_0


Wert für den zu übersetzenden Langtext

Es wird keine Übersetzungsview für die deutsche Sprache erstellt

Ein "Insert-Statement" und eine Änderung eines Primärschlüssel durch die "save" -Methode eines Repositories führen dazu, dass ein Trigger ausgelöst wird, der die IsRowId setzt. Deshalb müssen Änderungen, die einen Primärschlüssel betreffen händisch mit einem "Update-Statement" ausgeführt werden . Das heißt auch, dass der Entwickler die IsRowId nicht selbst setzen kann.

Server

Repositories

Implementierung

Die Repositories der Domänenobjekte, die auf Tabellen basieren, die mit der IsRowId arbeiten, werden nicht von der Standard-Repository-Klasse abgeleitet sondern von der MultiLangRepository-Klasse. Bei der Implementierung eines neuen Repositories, der von MultiLangRepository ableitet, muss darauf geachtet werden, dass das Domänobjekt das Interface "IMultiLangObject" implementiert hat und das die abstrakten Feldvariablen "TableId", "Value0" und "ValueText0" gesetzt werden. "TableId" wird die TabellenId aus IS_TABELLENNAME zugewiesen und "Value0" und "ValueText0" werden die Namen der Variablen zugewiesen, die in "Value_0" und in "Value_Text_0" geschrieben werden sollen.

Die Namen die den Werten zugewiesen werden, sind case sensitive.


Funktionen

Name

Eingabeparameter

Ausgabe

Beschreibung

GetTranslated

Id: Den Schlüssel zum Objekt den man übersetzt haben möchte

Fields: Hier gibt man an aus welchen Feld man eine Übersetzung haben möchte

string

Mit dieser Funktion erhält man die Bezeichnung bzw. den Langtext aus der passenden Usersprache

Delete

Obj: Die Entität die gelöscht werden soll

/

Die Funktion "Delete" aus der Basisklasse wird überschrieben. Zusätzlich zur Entiät werden auch alle dazu gehörenden Übersetzungen gelöscht

SaveTranslation

Id: Den Schlüssel zum Objekt , dessen Übersetzungen gespeichert werden sollen

Value0: Der Wert, der in Value_0 in der Tabelle "Uebersetzung" gespeichert werden soll"

ValueText0: Der Wert, der in Value_Text_0 in der Tabelle "Uebersetzung" gespeichert werden soll"

/

Mit dieser Methoden können Übersetzungen in der Tabelle "Uebersetzungen" gespeichert werden. Als Sprache wird immer die jetzige Usersprache verwendet. Da die Funktion überladen ist kann entweder nur den Wert, der in "Value_0" gespeichert werden soll angegeben werden, angeben oder beide Werte ("Value_0" und "Value_Text_0")




Controller

Bei den View Models, die zum Client geschickt werden muss darauf geachtet werden dass das View Model eine IsRowId und zusätzliche Parameter für die deutschsprachige Übersetzungen verfügt. Bei den Speichermethoden muss drauf geachtet werden, ob die Usersprache Deutsch oder eine andere Sprache ist, da die deutsche Übersetzung in der eigentlichen Tabelle gespeichert werden und die anderen in Tabelle "Uebersetzung".

Client

Entitätmodel

Das Entiätmodel braucht Variablen für die Deutschen Bezeichnungen und Langtexte und eine Variabel für die IsRowId.

EditTranslations

Implementierung

Bei der Implementierung müssen folgende Props gesetzt sein:

Name

Beschreibung

ref

Ist eine Objektreferenz auf dem Dialog

label

Der Text den der Dialog als Überschrift hat

saveGerman

Ist eine Funktion, die ein Wert von Typ string übergibt, dabei handelt es sich um die bearbeitete deutsche Übersetzung. Desweiteren gibt die Funktion den Namen des Speicherziels zurück. Hier soll angegeben werden, was mit der bearbeiteten deutschen Bezeichnung bzw Text passieren soll wenn der Dialog geschlossen wird

Aufruf

Der Dialog wird mit der Funktion "openDialog" der Referenz geöffnet. Diese Funktion erwartet folgende Parameter

Name

Typ

Beschreibung

isRowId

number(Ganzzahl)

Die IsRowId der geöffneten Entität

tabellenId

number(Ganzzahl)

Die TabellenId zu der die geöffnete Entität gehört

target

"value_0" | "value_1" | "value_text_0"

Die Spalte in der Tabelle "Uebersetzung" wo, die nicht deutschen Übersetzungen gespeichert werden sollen

germanvalue

string

Der deutsche Wert, dieser wird nicht in der Tabelle "Uebersetzung" gespeichert sondern in der Ursprungstabelle