[GELÖST] Webservices + Spracheinstellungen (once again)

6. Dezember 2012 14:53

Hallo zusammen,

ich suche seit geraumer Zeit nach einer Antwort zu folgender Frage - da ich bisher außer "webservice mehrsprachig" nichts Befriedigendes finden konnte (und das löst mein Problem auch nicht vollständig) erstelle ich mal ein neues Thema :oops:

Wenn ich einen NAV Webservice aus .NET aufrufe werden Laufzeitfehler und Response-Strings die aus NAV (Build 32012, also vor Build 32258 wo das ja offenbar ein bekanntes Problem war) kommen in der .NET-Anwendung in ENU angezeigt. Ich hätte Sie aber gerne in DEU...daher vermute ich dass das bei uns hier nur eine Sache der Konfiguration ist. Wie kann ich die Sprache in der der Webservice-Dienst arbeitet bzw. in welcher Laufzeitfehler zurückgegeben werden denn konfigurieren?

Danke für Eure Hilfe!
Zuletzt geändert von Alex Gilch am 11. Dezember 2012 18:41, insgesamt 1-mal geändert.

Re: Webservices + Spracheinstellungen (once again)

7. Dezember 2012 12:01

Was meinst Du mit Response-Strings?

Re: Webservices + Spracheinstellungen (once again)

10. Dezember 2012 16:18

Meine Erfahrungen halte ich aktuell noch für verrückt, da ich keine Technische Erklärung dafür habe:
Der Webservice arbeitet Grundsätzlich mit ENU außer der Benutzer, mit dem du dies aufrufst hat im RTC die Sprache auf etwas anderes gestellt (z.B.) DEU. Dann gibt der Webservice die Antworten in DEU zurück. Auch die Verarbeitung selbst arbeitet dann in der Sprache (hatte verrückte Datumsformat Probleme!). Ich glaube aber um nur die Sprache zu ändern ging folgendes:
Code:
IF (GLOBALLANGUAGE  <> 1033) OR (WINDOWSLANGUAGE <> 1033) THEN BEGIN
  GLOBALLANGUAGE := 1033
END; 


das musst aber ausprobieren, sicher bin ich mir da nicht.

Re: Webservices + Spracheinstellungen (once again)

11. Dezember 2012 11:16

vsnase hat geschrieben:Was meinst Du mit Response-Strings?

Hi,

sorry falls ich mich missverständlich ausgedrückt habe. Ich meine damit den Rückgabewert der im Webservice aufgerufenen Funktion. Also das was in der WSDL als "return_value" getagged ist. In meinem Fall ist das ein Rückgabeparameter vom Typ Text mit 250 Zeichen Länge. Wenn ich da eine Textkonstante zurückgebe liefert mir die der Webservice immer in "ENU" anstatt in "DEU". Und da wüsste ich gern ob man das in "DEU" haben kann...

MatthiasKönig hat geschrieben:Meine Erfahrungen halte ich aktuell noch für verrückt, da ich keine Technische Erklärung dafür habe:
Der Webservice arbeitet Grundsätzlich mit ENU außer der Benutzer, mit dem du dies aufrufst hat im RTC die Sprache auf etwas anderes gestellt (z.B.) DEU. Dann gibt der Webservice die Antworten in DEU zurück. Auch die Verarbeitung selbst arbeitet dann in der Sprache (hatte verrückte Datumsformat Probleme!).

Ah, na da muss man erstmal drauf kommen... :roll: Ich werd das mal probieren!

MatthiasKönig hat geschrieben:Ich glaube aber um nur die Sprache zu ändern ging folgendes:
Code:
IF (GLOBALLANGUAGE  <> 1033) OR (WINDOWSLANGUAGE <> 1033) THEN BEGIN
  GLOBALLANGUAGE := 1033
END; 


das musst aber ausprobieren, sicher bin ich mir da nicht.

Jepp, das hab ich probiert, hat aber nicht so richtig funktioniert. Vielleicht mach ich da auch was falsch - reicht die einmalige Angabe der "Globallanguage", d.h. wird die Globallanguage beim erstmaligen Aufruf einer Codeunit dann, wie der Name schon sagt, global beibehalten oder muss ich das in jeder weiteren Funktion die in der Folge aufgerufen wird und womöglich in ner ganz anderen Codeunit steht wieder auf's Neue festlegen? :oops:

Danke schonmal für Eure Hilfe!

Re: Webservices + Spracheinstellungen (once again)

11. Dezember 2012 12:16

Hallo,

meine Erfahrung ist, dass "GlobalLanguage(Wert)" als erster Befehl in allen Funktionen der Codeunit stehen muss.
Dann wird Sprache beibehalten bis der ganze Prozess durch ist.

Das hatte ich auch im ersten Beitrag geschireben:-)
viewtopic.php?f=40&t=15393&p=75707

Gruß
Aydin

Re: Webservices + Spracheinstellungen (once again)

11. Dezember 2012 15:15

Hi!

Hast du schon die Sprach-ID in der Benutzeranpassung auf Deutsch gestellt für den Benutzer mit dem du dich am Webservice anmeldest?

Gruß, Marc

[GELÖST]Re: Webservices + Spracheinstellungen (once again)

11. Dezember 2012 18:40

Hi zusammen,

also dank Eurer Hilfe konnte ich das Problem für mich lösen - ich habe

1.) meine Spracheinstellung im RTC angepasst (also die Sprach-ID des Benutzers mit dessen Account ich mich per Webservice anmelde)
2.) in der Codeunit welche ich tatsächlich als Webservice veröffentliche die Funktion "GLOBALLANGUAGE" mit dem Parameter "1031" (für "DEU") aufgerufen.

Und jetzt geht's! :mrgreen:

Was mir zu 2.) aufgefallen ist: es geht tatsächlich nur, wenn GLOBALLANGUAGE(1031) aufgerufen wird. Alle anderen Konstrukte die ich versucht habe (z.B. GLOBALLANGUAGE(Language.GetLanguageID('DEU'));) funktionieren nicht :roll: Aber - es reicht wenn man Globallanguage einmalig in der Codeunit die als Webservice läuft aufruft. Immerhin.

Danke für Eure Hilfe!