Einsprungpunkte > Modul Supervisor > Standardskript SERVSYS 

LANRUN: Änderung der Startsprache eine Batchabfrage.

Mit diesem Eingabepunkt kann bei jedem Start einer Abfrage durch den Batchserver die Sprache geändert werden.

Derzeit wird die Batchaufgabe mit dem Sprachcode des Batchservers gestartet. Bei mehrsprachigen Lösungen (mit einem oder mehreren Ordnern) führt dies bei der Analyse der Importfehlermeldungen zu Problemen (die von der Funktion mess() generierten Meldungen hängen vom Sprachcode der gestarteten X3-Version ab).

Die Verarbeitung SERVSYS sucht nämlich nach der vom Webserver verwendeten Sprache. Diese ist in GLANGUE in einer für den Ordner definierten Liste von Sprachen gespeichert. 

Beispiel: Lösung mit N Ordnern, für die eine lokale Arbeitssprache und eine Verwaltungssprache definiert sind (z. B. SPA-FRA, ENG-FRA). Wird der Batchserver mit der Sprache FRA gestartet, sind alle Meldungen in allen Ordnern auf Französisch.
Die Anfrage besteht daraus, dass
im Ordner ENG englische, im OrdnerSPA spanische Meldungen ausgegeben werden. Die Verwaltungsmeldungen bleiben im englischen und im spanischen Ordner auf Französisch.

Achtung:

Der im Verzeichnis SERVX3 ausgeführte Batchserver verwendet die Verarbeitung SERVSYS, die im Verzeichnis TRT des X3-Standardreferenzordners liegt.

Der mit dieser Eingabepunkt berücksichtigt wird, müssen die Deklaration des Eingabepunkts sowie die zugehörige individuelle Verarbeitung im X3-Referenzordner liegen.
Da nicht alle globalen Variablen deklariert sind, wird empfohlen, vor der Verwendung die Existenz zu prüfen. Beispielsweise sind die globalen Variablen GLON* nicht deklariert.

Kontext und Funktionsmodus

Der Eingabepunkt LANRUN wird bei jedem Abfragestart aufgerufen. Er liegt im Unterprogramm REQUETE der Verarbeitung SERVSYS :

Subprog REQUETE(PID)
Variable Char PID
Local Char LANGUE(5)
If clalev([F:ADS])=0 : Local File ADOSSIER [ADS] : Endif
Read [ADS]DOSSIER = [F:ABR]DOSSIER
GPE = 0
GPOINT = "LANRUN" : Gosub ENTREE From EXEFNC
If !GPE
 If dim([F:ABR]LAN)>0 & [F:ABR]LAN<>""
  LANGUE = [F:ABR]LAN
 Else
  LANGUE = [F:ADS]LANDEF
 Endif
 If find(LANGUE,[F:ADS]LAN(0..[F:ADS]NBRLAN-1))=0
  LANGUE = [F:ADS]LAN(0)
 Endif
Endif

Hinweis: Unter Unix wird die Batchaufgabe (je nach Optionen) auf folgende Weise gestartet:

EXEC_ENTREP="BATCH" RQT_ENTREP=X3-Abfragenr -a -l LANGUE </tmp/serveur.ent >>/tmp/NoRequête.log 2>&1