Sprachcode bei Mahnungen

31. Juli 2007 14:45

Hallo,

beim erstellen der Mahnungen bei Debitore bei den der Sprachcode zb ENU ist werden auf der Mahung nicht alle Text übersetzt ins Englische ( Report 117). Einen Teil der Texte konnte ich im Report selbst Multilanguage machen.

Nur der Text

"nicht fällige offenen Posten"

kommt nicht aus dem Report sondern wird beim erstellen der Mahnungen erzeugt. Dies geschieht in CodeUnit 392. In der TextConstante Text0000 steht der Text. ENU ist auch eingerichtet

Woher weis die Codeunit welchen Sprachcode sie nutzen soll ?


Danke
Jörg
Zuletzt geändert von Jörg Nissen am 31. Juli 2007 15:39, insgesamt 1-mal geändert.

31. Juli 2007 14:54

Hallo,

ok bin einen Schritt weiter. Habe hier einen Thread gefunden der das Problem beschreibt. ( Ja,ja erst suchen dann Fragen :-) )

Der Sprachcode der Unit ist der der GlobalLanguage.

Jetzt nur nocht folgende Frage:

Wie ändere dann den Text ?

Geht das nur über Änderung des Standard objectes 392 ?


mfg
Jörg

31. Juli 2007 14:58

meinereiner hat geschrieben:Habe jetzt aber nichts getestet oder näher betrachtet, also sorry falls es doch völliger Humbug ist!


OK, datt WAR Humbug ;-)

Edit: Mist, wollte mich zitieren und nicht editieren *heul*
Egal!!!!
Zuletzt geändert von Natalie am 1. August 2007 08:35, insgesamt 2-mal geändert.

31. Juli 2007 15:41

Hallo Natalie,
die Online-Hilfe habe ich gelesen. Bei Reporten ist das verständlich.
Was mich nur wundert: Muss ich eine Standard-Codeunit ändern um eine durchgängige Mehrsprachigkeit zu erreichen ?

Wie machen das Eure Kunden ?

mfg
Jörg

31. Juli 2007 16:32

Jörg Nissen hat geschrieben:ok bin einen Schritt weiter. Habe hier einen Thread gefunden der das Problem beschreibt. ( Ja,ja erst suchen dann Fragen :-) )


Hättest du den Link?

1. August 2007 07:58

Hallo Natalie,

hier der link

http://www.msdynamics.de/ftopic2243.html

Jörg

1. August 2007 09:44

Hallo Jörg,

du könntest in der Codeunit Reminder-Make (ID: 392) folgende Änderung in der Funktion SuggestLines durchführen:

Code:
// Anpassung 1 Anfang
CurrLangID:=GLOBALLANGUAGE;
GLOBALLANGUAGE(Language.GetLanguageID(ReminderHeader."Language Code"));
// Anpassung 1 Ende

ReminderLine.Description := Text0000;

// Anpassung 2 Anfang
GLOBALLANGUAGE(CurrLangID);
// Anpassung 2 Ende;


Damit die Anpassung funktioniert musst du in der Funktion noch zwei lokale Variablen anlegen:

1. CurrLangID vom Type Integer
2. Language vom Type Record und Subtype Language

Gruß, Marc

1. August 2007 10:22

Hallo Marc,
danke für die Lösung.

Bin nur sehr verwundert das Standardunits angepasst werden müssen. Das heist doch das bei einem Update die Unit Manuell wieder angepasst werden muss.

Wir hatten bisher eine Selbstgeschriebenen Fibu im Einsatz, und haben gerade NAV implementiert. Wir haben zwar eine Application Builder Lizens. wollten aber möglichst wenig im Standard ändern. Schon gar nicht bei Grundfunktionen. Das hatten wir anders Erwartet. Je mehr wir mit Nav machen, je schwierieger wird es sich daran zu halten.

mfg
Jörg

1. August 2007 10:33

Hallo Marc,

Nachtrag:

Das funktioniert zwar bei Englisch aber nicht bei weiteren Sprachen
Wir habe als Mandanten 10 verschiedenen Sprachen.

Beim erstellen der Mahnung erzählt mir Nav das wir keine Lizens für die Sprache XY haben. Stimmt ja auch, als GlobalLanguage geht nur Englisch und Deutsch -:(

mfg
Jörg

1. August 2007 10:36

Natürlich ist es ratsam wann immer es geht nicht in Standard-Objekten Anpassungen vorzunehmen. Wenn die Anpassungen aber korrekt kommentiert sind, können Sie auch bei Updates einfach übernommen werden.

Gruß, Marc