Submissão de pedidos pelo intermediário de ficheiros 

O lançamento de pedidos adonix via o servidor batch pode ser pilotada depois de uma função adonix dedicada : O lançamento de pedidos. Mas é também possível de pilotar o lançamento de pedidos batch pelo servidor em depositante dos ficheiros ascii contendo a definição do pedido num directório definido nos parâmetros do servidor. Isto permite assim de desencadear pedidos batch a partir de softwares de supervisão externas. Este documento descreve em detalhe os ficheiros em lugar, assim que a cinemática de execução destes pedidos.

Pré-requisitos

Para que o lançamento de pedidos batch possa ser feito pelo intermediário de ficheiros, é necessário :

*    Que o parâmetro geral Utilisazação dos ficheiros batch seja igual a Sim nos parâmetros parâmetros do servidor batch.

*    Que o parâmetro EXTBATCH seja igual a Sim. Este parâmetro, que pertence ao grupo SUP, pode ser definido ao nível dossier e utilizador. É assim possível de interdir globalmente o lançamento de pedidos batch desta maneira para um dossier dado, em acordando se necessário uma excepção aos utilizadores designados.

Os ficheiros de pedido (extensão req)

O lançamento de um pedido batch pode ser realizado pelo depósito de um ficheiro de extenção .job no directório dedicado a estes ficheiros. Este ficheiro deve ser de tipo ascii, estruturado em linha terminados por <CR> ou <CR><LF>, cada lonha definindo o valor de um parâmetro sob a forma:

PARÂMETRO=VALOR

Certos parâmetros são obrigatórios e identifcando o contexto de execução do pedido. Outros parâmetros dependem do pedido a lançar; o seu nome corresponde ao nome dos parâmetros definidos no ecrã associado ao lançamento do pedido. Nestes casos, um quadro de parâmetros está definido no ecrã; a sintaxe é então PARÂMETRO(indice)=VALOR, indice

Afim de facilitar a criação de um tal ficheiro, é possível de lançar o pedido depois o software, em assinalando a check box modelo no ecrã de lançamento dos pedidos. Se este facto, um ficheiro contendo a lista completa dos parâmetos de lançamento e seu valor será criado no directório de lançamento. Este ficheiro está criado com o nome do pedidos e extenções .mod.

Encontrar-se-á no quadro a seguir o nome dos parâmetros obrigatórios e sua definição.

PARÂMETRO

DEFINIÇÃO

Dossier :

O código do dossier sobre o qual o pedido deve ser lançado

UTIL

O código do utilizador de conexão ao dossier

PASSE

A palavra passe encriptada do utilizador

GRP

O grupo de pedidos (se um grupo está lançado)

TAREFA

O pedido (se um pedido é lançado)

DATA

A data de lançamento (ao formato AAAAMMDD)

HORA

A hora de lançamento (ao formato HHMM)

Deve-se referir que os valores do parâmetro são dados sem separador de nenhuma classificação, e que é possível de colocar as linhas de comentários pré-fixados pelo caracter #. Assim, poderemos colocar no ficheiro de pedidos:

         # Parâmetros obrigatórios

         DOSSIER=DEMO

         DATA=20020614

        …

       # Parâmetros complementares

       PARAM(1)=TEST

       PARAM(2)=TEST

Cinemática de tratamento dos ficheiros de pedido.

O servidor batch inspecciona a intervaloes regulares o conteúdo do directório dedicado aos ficheiros de pedido. No momento da inspecção, ele lê os ficheiros presentes no directório tomandos-os na ordem de classificação ascii. Assim, é aconselhado de nomear estes ficheiros com uma raíz ficha e um número sequêncial sobre comprimento fixo. Poder-se-á por exemplo os nomear REQ000001.req, REQ0000002.req

No momento de cada ficheiros, ficheiros são criados sucessivamente nos diferentes directórios definidos pelos parâmetros do servidor batch

ETAPA DE TRATAMENTO

FICHEIROS ACTUALIZADOS

Depósito de um pedido de tratamento batch

Criação do ficheiro xxxxx.job por um processo externo, no directório dedicado.

O servidor batch toma em conta o pedido e coloca em dia a sua tabela de pedidos a lançar

O ficheiro xxxxx.job está renomeado em xxxxx.req (e deslocado se os directórios não são os mesmos)

O servidor detecta um erro no ficheiro de parâmetros (password incorrecto, código tarefa desconhecido...)

O ficheiro xxxxx.job está renomeado em xxxxx.old (e deslocado se os directórios não são os mesmos). Um ficheiro xxxxx.sta está criado no directório dedicado. Contém um código de erro permitindo saber que o ficheiros de entrada estão incorrectos (cf. formato do ficheiro a seguir).

O pedido está em curso de execução, o servidor batch o tendo lançado

O ficheiro xxxxx.req está renomeado em xxxxx.old (e deslocado se os directórios não são os mesmos). Um ficheiro xxxxx.run está criado no directório dedicado.

O pedido está terminado (correctamente ou com um erro)

O ficheiro xxxxx.run está apagado, e um ficheiro xxxxx.sta está criado no directório dedicado : este ficheiro contém um status de devolução (cf.  formato do ficheiro a seguir).

Depósito de um pedido de interrupção de pedido batch (em espera de lançamento ou já lançado)

Criação do ficheiro xxxxx.kil por um processo externo, no directório dedicado.

Tomada em conta do pedido de interrupção (se o pedido não foi ainda lançado)

O ficheiro xxxxx.req (ou o ficheiro xxxxx.job se ele não foi ainda tomado em conta) é renomeado em xxxxx.old. Um ficheiro xxxxx.sta está criado no directório dedicado. Contém um código de erro permitindo de saber que o pedido foi interrompido sem ter sido lançado O ficheiro xxxxx.kil está apagado.

Tomada em conta do pedido de interrupção (se o pedido não foi ainda lançado)

O pedido está interrompido por killadx, pelo ficheiro xxxxx.sta está criado no directório dedicado, com um código permitindo de saber que o pedido foi interrompido. Os ficheiros xxxxx.kile xxxxx.run são apagados.

Conta tida das prioridades de execução ou da paragem do servidor batch, o pedido não pode ser lançado nos atrasos previstos (pedido fora atraso).

O pedido não foi lançado, mas o ficheiro xxxxx.req (o ficheiro xxxxx.job se for caso disso) é renomeado em xxxx.old e deslocado se necessário. Um ficheiro xxxxx.sta está criado no directório dedicado. Contém um código de erro permitindo de saber que o pedido foi interrompido não pode ter sido lançado

Deve-se notar que o facto que um ficheiro xxxxx.run existe não significa necessáriamente que o pedido em questão volte. Com efeito, se o servidor batch foi parado sem que os pedidos que giram ainda não foram parados, os ficheiros xxxxx.run correspondentes existirão sempre que o pedido foi terminado no seu tratamento. Neste caso,o ficheiro xxxxx.sta não será mais criado. Por outro lado, quando o servidor será lançado de novo, o ficheiro xxxxx.run será apagado, um ficheiro xxxxx.sta contendo um status particular sendo então criado.

O número de pedidos batch em curso de tratamento não pode então forçosamente se deduzir so número de ficheiros xxxxx.run apresenta no directório dedicado.

Descrição dos ficheiros XXX.sta, XXX.run, XXX.kil

Estes ficheiros são fischeiros ascii, codificados em ascii 8 bits, presentes nos diferentes directórios, segundo a parametrização:

  • O ficheiro .kill pode estar vazio, ou conter um comentário que será retomado no ficheiro de extensão .sta
  • O ficheiro .run contém uma linha conforme a estrutura definida a seguir, as informações preenchidas sendo o número do pedido, a data e a hora de início, e o código da tarefa (as outras informações são preenchidas com zeros ou espaços).
  • O ficheiro .sta contém uma linha cujo formato está definido a seguir, todos os campos sendo preenchidos.

A estrutura da linha única contém nos ficheiros .run e .sta é a seguinte:

  • A linha é composta de 8 campos de comprimento fixo, com separadores (o caracter dois pontos ' : ' ).
  • O comprimento total é de 154 ou 155 caracteres.

O esquema exacto é o seguinte:

No status

No pedido

Data e hora de início

Data e hora de fim

Código dossier

Código utilizador

Código da tarefa

Mensagem em claro

Fim de linha

NNNNN

NNNNNNNN

AAAAMMDDHHMMSS

AAAAMMDDHHMMSS

DDDDDDDDDD

UUUUU

TTTTTTTTTT

XXXXXXXXXXXXXXXXXX

<CR>
ou <CR><LF>

5 cifras

8 cifras

14 cifras

14 cifras

(10 caracteres)

(5 caracteres)

(10 caracteres)

(80 caracteres)

(1 ou 2 bytes)

A zona mensagem permite de explicitar o código erro se necessário. Ela está armazenada em comprimento fixo 80 caracteres (a mensagem sendo completada por espaços se necessário).

O número de pedido está estocado em 8 caracteres, préfixado por zeros se necessário. Este número permite conhecer o nome do ficheiro de rasto gerado na execução do pedido. Com efeito, este ficheiro se chamaRQTNNNNNNNN.tra (NNNNNNNN sendo o número de pedido sobre 8 caracteres). Encontra-mo-lo no sub-directório TRA do dossier SERVX3. Deve-se notar que o número pode ser nulo em certos casos de erro, quando nenhum pedido pode ser lançado.

O código da tarefa corresponde à tarefa ou ao encaminhamento de tarefas lançadas, tal que é conhecido na tabela das tarefas ou dos encadeamentos.

O código status, sobre 5 caracteres numéricos, permitindo de conhecer o resultado da execução. O primeiro algorismo determina o resultado global de execução, as somas seguintes dão as informações complementares. Quando o pedido está terminado sem erro e sem advertência, temos um código de erro igual a 00000. O detalhe dos códigos está dado aqui em baixo:

Valor do código erro sobre 5 algarismos

Mensagem em claro

Primeiro algarismo

Significado

Complemento

Significado

 

0

Fim normal de tratamento

0000

Sem advertência

PEDIDO TERMINADO

NNNN

Com NNNN advertência no rasto (9999 se 9999 ou mais).

PEDIDO TERMINADO COM AVERTÊNCIAS

1

 

 

Fim de tratamento sobre erro

 

 

0000

Erro não especificado (por exemplo se GOK=-1 e sem informações suplementares)

PEDIDO TERMINADO COM ERRO DESCONHECIDO

 1NNN

Erro no NNNN do motor adonix (mensagem M)

FIM SOBRE ERRO SAGE: M

 2000

Erro de fecho (GOK=0)

ERRO DE FECHO

 3NNN

Erro lógico de tratamento com: NNN =valor variável GERRBATCH,
M = valor variável GMESSBATCH

PEDIDO TERMINADO COM ERRO M

Nota importante :

  • As variáveis GERRBATCH e GMESSBATCH permitem a um programador de qualificar de maneira precisa das condições de erro, e isto é possível à vez sobre uma tarefa específica, mas também sobre uma tarefa standard pelo atalho de pontos de entrada.

  • O valor da variável GERRBATCH influe sobre a seguida do tratamento, quando este é integrado num grupo de tarefas. Com efeito, se a variável GERRBATCH está estritamente inferior a 100, a tarefa que segue vai ser lançada apesar do erro. Se por contra GERRBATCH tem um valor superior ou igual, as tarefas seguintes no grupo não são lançadas.

2

 

 

 

 

 

Tratamento não lançado

 

 

 

 

 

1000

A tarefa foi programada a uma hora dada, mas não pode ser lançada nos atrasos previstos.

ATRASO ULTRAPASSAGEM

2000

Tarefa inexistente

TTTTAREFA INEXISTANTE

3000

Habilitação (não especificada)

TRATAMENTO NÃO LANÇADO PORQUE PROBLEMA DE HABILITAÇÃO NÃO ESPECIFICADA.

 3100

Habilitação (utilizador U desconhecido).

UTILIZADOR U DESCONHECIDO

 3200

Habilitação (password incorrescta para o utilizador U)

PASSWORD INCORRECTO PARA O UTILIZADOR U)

 3300

Habilitação (recusa por ponto de entrada)

TRATAMENTO NÃO LANÇADO PORQUE RECUSAS POR PONTO DE ENTRADA

3400

Habilitação (nível N da tarefa interdita ao utilizador Uinsuficiente)

NÍVEL DE ACESSO N NÃO AUTIRIZA O UTILIZADOR U

3500

Habilitação (função F não autorizada ao utilizador U)

F FUNÇÃO NÃO AUTORIZADA AO UTILIZADOR U

4NNN

Passagem em modo impossível (NNNutilizadores em curso)

PASSAGEM EM MODO MONO IMPOSSÍVEL PORQUE NNN UTILIZADORES CONECTADOS

5000

Tratamento T inexistente

TRATAMENTO T INEXISTENTE

3

Paragem do tratamento

0000

Paragem do tratamento, razão desconhecida (por exemplo se um processo outro que o servidor batch o pediu)

PEDIDO INTERROMPIDO (RAZÃO DESCONHECIDA)

1000

Por ficheiro de extensão .kil , contida o mensagem M

PEDIDO INTERROMPIDO POR U PARA O MOTIVO M

Nota : no caso de um kill por ficheiro, o código utilizador pode ser vazio. Com efeito, o sistema ensaia de reencontrar, a partir de identidade do utilizador tendo criado o ficheiro, se um código adonix corresponde ou não. Esta pesquisa pode não funcionar segundo os sistemas de exploração utilizados.

2000

Pela gestão das tarefas e o utilizador U: A mensagem registada é M

PEDIDO INTERROMPIDO POR U PARA O MOTIVO M

3000

Para o servidor batch porque "time-out"

TRATAMENTO INTERROMPIDO PELO SERVIDOR RAZÃO= ULTRAPASSAGEM DO TEMPO ACORDADO

Observações

Deve-se reparar que, no quadro da modelização das tarefas batch (modelo GTRAITE), o utilizador dispõe das variáveis seguintes, acessíveis nas tarefas específicas, ou nas tarefas standandard indirectamento de pontos de entrada :

  • A variável GOK está um status actualizados desde o lançamento da tarefa. Ela vale 1 se não houver problema, 0 em caso de erro de fecho, -1 sobre um erro grave outro, e 2 sobre um erro grave de coerência do servidor. Esta variável está gerada pelas tarefas standard : se ela não vale 1 em fim de tratamento batch, a tarefa aparece emn status Erreur em pesquisa das tarefas; neste caso, se a tarefa faz parte de um grupo de tarefas, as tarefas seguintes são bloqueadas e não serão jamais lançadas.
  • A variável GERREUR não está colocada a um valor nºao nulo em caso de erro na execução de uma instrução (é o número de erro correspondente a uma exceoção tratada pela instrução Onerrgo). Se esta variável é não nula em fim de tarefa, o estado da tarefa é colocado em Abortada em pesquisa das tarefas, e as tarefas que seguem, se a tarefa faz parte de um grupo, são bloqueados.
  • A variável GERRTRACE permite de contar o número de linhas de rasto de erro criados pela tarefa. Ela é igualmente gerada palas tarefas standard : O facto que seja positivo coloca a tarefa em Erro na tarefa de pesquisa, sem portanto bloquear o encadeamento das tarefas seguintes num grupo. Trata-se em facto de desconto de um número de linhas de erro supostas benignas.
  • A variável GERRBATCH é uma variável numérica suplementar, que permite de dar um código de erro dependente da tarefa se se considera que a tarefa não está bem terminada (isto independentemente do facto que linhas de rasto de erro foram ou não geradas). Se o valor de GERRBATCH está estritamente inferior a 100, considera-se que se trata de um status de erro benigno. Se por outro lado o valor de GERRBATCH é superior ou igual a 100, o status da tarefa na função de pesquisa das tarefas passa a Erro em fim de execução, e se a tarefa faz parte de um grupo, o encadeamento das tarefas seguintes se interrompe. Esta variável foi criada para permitir uma gestão de erro específico pelo através de um ponto de entrada.
  • A variável GMESSBATCH é uma variável alfanumérica permite de dar uma mensagem de erro complementar. Esta mensagem está inserida no conteúdo do ficheiro de extenção .sta se um erro se produziu.

Salvo erro de coerência ao lançamento, as tarefas standard do software consideram em todos os casos que os erros reencontrados são benignos e actualizam simplesmente em dia o rasto em incrementando GERRTRACE. Isto signifca que todo o erro grave devendo interromper o tratamento deve ser tratado de meneira específica, através de pontos de entrada, em dando a GERRBATCH um valor superior a 100.

Descrição do ficheiro servidor.tra

Este ficheiro, apresenta no sub-directório TRA do directório SERVX3, contém o rasto do servidor. A estrutura das linhas está conforme àquela de um ficheiro de rasto clássico (cabeçalho normalizado, e status numéricos sobre 5 caracteres). Cada linha está composta de um texto eventualmente prefixado por um número (este número é ele mesmo precedido pelo caracter < se se considera que se trata de um erro, por = se se trata de uma advertência).

Os números de status seguintes existem (eles são prefixados por 4 e 5 por razões de continuidade de numeração com os status precedentes). É de observar que os status começam por 4 são de status graves que não devem surgir numa exploração normal (problemas de actualização, de gestão das tarefas, de fecho do servidor batch), e podem vir seja de problemas com o sistema, seja de uma má instalação, seja ainda específicos. Os status começam por 5 são, quanto a eles, dos status normais da actividade do servidor batch :

ERROS GRAVES DE COERÊNCIA DO SERVIDOR

Status

Explicação

Texto

41000

Dessincronização tarefa

ERRO DESINCRONIZAÇÃO TAREFA

42000

Problemas de acesso à tabela das tarefas

ERRO DE ACESSO À TABELA DAS TAREFAS

43000

Número de pedido inexistente

ERRO PEDIDO INEXISTENTE

44000

Problemas de acesso à tabela dos parâmetros batch

 

 

MENSAGENS DE EXPLORAÇÃO NORMAIS DO SERVIDOR

50000

Arranque do servidor

ARRANQUE SERVIDOR BATCH

51000

Activação pedido (proceso id P)

ACTIVAÇÃO PEDIDO PID=P

52NNN

Erro adonix NNN no arranque servidor (mensagem de erro = M)

ERRO NO ARRANQUE DO SERVIDOR M

53000

Erro outro no arranque do servidor

ERRO INDETERMINADO NO ARRANQUE DO SERVIDOR

54000

Lançamento servidor que já está activo

O SERVIDOR ESTÁ JÁ ACTIVO

55000

Desactivação servidor

 

Descrição dos ficheiros RQTNNNNNNNN.tra

Este ficheiro, apresenta no sub-directório TRA do directório SERVX3, contém o rasto do servidor associado ao pedido ele mesmo. A estrutura das linhas está conforme àquela de um ficheiro de rasto clássico (cabeçalho normalizado, e status numéricos sobre 5 caracteres). Cada linha está composta de um texto eventualmente prefixado por um número (este número é ele mesmo precedido pelo caracter < se se considera que se trata de um erro, por = se se trata de uma advertência). Estes ficheiros podem ser lidos directamente depois o gestor de pedidos pelo meio de um clique direito / Leitura rasto

Passado a linha de cabeçalho, a primeira linha de tal ficheiro se apresenta sob a forma de uma linha no formato seguinte (ele entrega o status Activação pedidodefinido em cima):

=51000 NNNNNNNNJJ/MM/AA hh :mm :ss Activação pedido (51000)

(NNNNNNNNrepresentando aqui o número de tarefas)

As linhas de rasto clássico da tarefa seguinte esta primeira linha (se o tratamento em questão não foi lançada em batch, estas linhas serão registadas num ficheiro de rasto clássico FNNNNN.tra no directório TRA do dossier de lançamento). Depois, salvo o caso onde a tarefa foi parada brutalmente (por um killadx, por exemplo), encontrar-se-á uma linha final de estrutura idêntico, nas cujo número está conforme ao status de fim corrrecto (00000) ou de erro (1NNNN)descrito acima.

Tabelas colocadas em obra

As tabelas colocadas em obra pela função são as seguintes :