SOG ERP kann durch Einstellungen dazu gebracht werden, #unicode in der Datenbank zu speichern. Ist diese Einstellung vorgenommen und die Datenbank ggf. konvertiert worden, können alle Zeichen des Unicode-Zeichenvorrates in der Datenbank gespeichert werden siehe auch: https://de.wikipedia.org/wiki/Unicode
Beachten Sie, dass in diesem Fall auch alle externen Schnittstellen in der Lage sein müssen, Unicode z. B. in Form von UTF8-Dateien zu verarbeiten. Anderenfalls würde das Betriebssystem Unicode-Zeichen bei der Übergabe in Nicht-Unicode-Zeichen konvertieren. Externe Schnittstellen für die Verwendung von Unicode-Zeichen müssen ggf. eingestellt oder parametrisiert werden.
Als externe Schnittstellen gelten:
PDF-Wandlung/ Belegdruck
SSAS
Jede Fibu
DSI Shop
jeder externe Shop
SGS und andere Versandlogistiker
jeder XMLEXPJOB
jeder Export von CSV-Dateien aus der Suche (etc.)
Im Umfeld von SOGForms (PDF-Wandlung bzw. Belegdruck) ist zu prüfen, ob der verwendete Font die gewünschten Eigenschaften besitzt und alle benötigte UNICODE-Zeichen abbilden kann. Gerade im Hinblick auf asiatische Schriftzeichen (z. B. Chinesisch tranditionell bzw. vereinfacht) sind die klassischen Windows Fonts (z. B. Arial) nur bedingt nutzbar, hierfür sollten entsprechend angepasste Fonts (z. B. Arial Unicode MS) verwendet werden.
Font identifizieren der die gewünschten Eigenschaften hat (ggf. muss der Kunden diesen kaufen, wenn er nicht frei zugänglich)
Auf den Servern und Clients installieren
Integration in den SOGForms Formularen
Umstellung der Datenbank auf Unicode
Durch Angabe der Option "unicodedb" als Parameter 11 im OleDb-String der Datenbank, wird die Verarbeitung der Datenbank als Unicode-Datenbank eingeschaltet.
Beispiel:
set OleDbGlobal=sqlsrv|servername|dbname|WIN|||||||unicodedb
Nach Umstellung der OleDb-Variablen (und Registrierung der Variablen) reagiert das SOG ERP Datenbankmodell mit folgenden Änderungen:
Alle "normalen Textfelder" der Datenbank werden statt mit dem Datentyp "char" nun mit dem Datentyp "nchar", bzw. an Stelle von "varchar" nun mit "nvarchar", angelegt.
Bei Key-Felder wird versucht zu analysieren, ob diese alphanumerische Inhalte enthalten können. Ist dies der Fall, wird ebenfalls auf "nchar" bzw "nvarchar" gewechselt.
Die automatische Grenze zur Umschaltung von Datenfeldern von "char" auf "nvarchar" wechselt von 100 auf 30 Zeichen.
Vor der Konvertierung sollte eine Datensicherung durchgeführt werden.
Die Umstellung der Datenbank sollte nach folgendem Fahrplan vorgenommen werden:
Datensicherung durchführen
mkdir {SEQVERZEICHNIS}
mkdir {SEQVERZEICHNIS}_done
sogdbunload -unloadall {SEQVERZEICHNIS}
Löschen und neu Anlegen der Datenbank, oder entfernen aller Tabellen und Views, z. B. mit sogsql sql\beispiele\mss\TSQL-Bsp22-TruncateAllTables.sql
Umstellen der OleDbGlobal Variablen
regenv bzw. hhrel damit alle Clients diese Veränderung bekommen
sogerpconsole -dbcheck -norelcheck -nometa -tarfile sogsql
sogdbunload -loadall -move -noignoretab {SEQVERZEICHNIS}
SQL-Anweisungen werden zur Laufzeit automatisch dahingehend verändert, dass Textkonstante die Unicode-Zeichen enthalten, als Unicode-Textkonstanten übergeben werden. ( N'xxx' )
SQL-Parameter werden ebenfalls analysiert ob sie Unicode-Zeichen enthalten. Wenn ja, werden auch sie als nvarchar Parameter übergeben.
Ein Zeichen gilt dabei dann als Unicode-Zeichen, wenn es entweder nicht in der aktuellen Windows-Default-Codepage enthalten ist, oder wenn es nicht möglich ist, dieses Zeichen ohne Verfälschung in einem "varchar" Datenfeld der aktuellen Datenbank zu speichern.