Ponto entrada > Módulo Supervisor > Tratamento standard SERVSYS 

LANRUN : Modificar a língua de lançamento de um pedido batch

Este ponto de entrada permite modificar a língua em cada vez o lançamento de um pedido pelo servidor batch.

Hoje a tarefa batch está lançada com o código língua do servidor batch. No quadro de soluções multi-línguas (mono ou multi-dossier) isso coloca problema no momento de estudo das mensagens de erro das importações (Porque as mensagens geradas pela função mess()são dependentes do código língua de sage lançado)

Com efeito o tratamento SERVSYS pesquisa a língua utilizada pelo servidor batch guardado em GLANGUE por entre a lista das línguas definidas sobre o dossier. 

Exemplos: seja uma solução a N dossiers para os quais se declara uma língua de trabalho local e uma língua de administração (ie : ESP-FRA, ENG-FRA). Se o servidor batch está lançado com a língua FRA, todas as mensagens sobre todos os dossiers serão em francês.
O pedido é de
uma nota de crédito das mensagens em Inglês sobre um dossier ENG, as mensagens em espanhol sobre um dossier SPA. As mensagens de administração resterão em Francês sobre o dossier Inglês e o dossier Espanhol.

Atenção :

O servidor batch que se executa sobre o dossier SERVX3, utiliza o tratamento SERVSYS que se encontra no diretório TRT do dossier de referência standard X3.

Para que este ponto de entrada seja tido em conta falta que a declaração do ponto de entrada e o tratamento específico associado sejam no dossier de referência X3.
De mais, todas as variáveis globais não sendo declarados, vale melhor testar a sua presença antes de os utilizar. Por exemplo, as variáveis globais GLON* não são delcaradas.

Contexto e modo de funcionamento.

O ponto de entrada LANRUN está chamado em cada lançamento de um pedido. Esta situado no sub-programa REQUETE do tratamento 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

Para info, sob Unix, a tarefa batch será lançada em lançando (seguindo as opções) a encomenda sistema seguinte :

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