Entry Points > Modulo Supervisore > Script standard SERVSYS 

LANRUN: Modificare la lingua di lancio di una richiesta batch

Questo entry point permette di modificare la lingua ad ogni lancio di una richiesta dal server batch.

Ad oggi il job batch è lanciato con il codice lingua del server batch. Nell'ambito di soluzione multi-lingua (mono o multi-dossier) ciò pone problemi in fase di analisi dei messaggi di errore degli import (poiché i messaggi generati dalla funzione mess() sono dipendenti dal codice lingua dell'adonix lanciato)

Il programma SERVSYS ricerca la lingua utilizzata dal server batch memorizzata in GLANGUE fra l'elenco delle lingue definite sul dossier. 

Esempio: si abbia una soluzione con N dossier per i quali si dichiara una lingua di lavoro locale ed una lingua di amministrazione (es: ESP-FRA, ENG-FRA). Se il server del batch viene lanciato con la lingua FRA, tutti i messaggi su tutti i dossier saranno in francese.
La richiesta è di
avere dei messaggi in Inglese su un dossier ENG, i messaggi in spagnolo su un dossier SPA. I messaggi di amministrazione resteranno in Francese sul dossier Inglese ed il dossier Spagnolo.

Attenzione:

Il server batch che si esegue sul dossier SERVX3, utilizza il programma SERVSYS che si trova nella directory TRT del dossier di riferimento standard X3.

Affinché questo entry point sia preso in carico, occorre che la dichiarazione dell'entry point ed il programma specifico associato siano nel dossier di riferimento X3.
Inoltre, non essendo dichiarate tutte le variabili globali, bisognerà testarne la presenza prima di utilizzarle. Ad esempio, le variabili globali GLON* non sono dichiarate.

Contesto e modalità di funzionamento

L'entry point LANRUN è chiamato ad ogni lancio di un richiesta. E' sitSi trova nel sotto-programma REQUETE del programma 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 find(GLANGUE,[F:ADS]LAN(0..[F:ADS]NBRLAN-1))
   LANGUE = GLANGUE
  Else
    LANGUE = [F:ADS]LAN(0)
  Endif
Endif

Per informazione, sotto Unix il job batch sarà lanciato lanciando (a seconda delle opzioni) il seguente comando di sistema:

EXEC_ENTREP="BATCH" RQT_ENTREP=N°Richiesta adonix -a -l LANGUE </tmp/serveur.ent >>/tmp/NoRequête.log 2>&1