CONTEÚDO

  1. Visão Geral
  2. Configurações Gerais
  3. Parametrização dos agendamentos do AUTONFE para processamento em sequencial (Monothread)
  4. Parametrização dos agendamentos do AUTONFE para processamento em paralelo (Multithread)
  5. Uso de licenças do AUTONFE

01. VISÃO GERAL


Permitir a configuração do agendamento (schedule) da rotina automáticas de Transmissão (AUTONFETRANS), Monitoramento (AUTONFEMON) e Cancelamento (AUTONFECANC) de Nota(s) Fiscal(is) Eletrônica(s) - AUTONFE - de forma sequencial ou paralela, onde:

Execução Sequencial (padrão): Quando todo o processo de Transmissão ou Monitoramento ou Cancelamento é executado por uma única instancia (thread) do programa. 

Execução Paralela (multithread): Quando todo o processo de Transmissão ou Monitoramento ou Cancelamento é executado por mais de uma instancia (thread) do programa. 

Ambos os casos serão detalhados em cada tópico.


Rotinas do AUTONFE:

Rotina de Transmissão: AUTONFETRANS
Rotina de Monitoramento: AUTONFEMON
Rotina de Cancelamento: AUTONFECANC


02. Configurações Gerais


Para releases inferiores à Microsiga Protheus 12.1.33 será necessário realizar a seguinte configuração do dicionário de perguntes do Protheus.


No módulo do Configurador (SIGACFG), acesse Base de Dados / Dicionário / Base de Dados:


Selecione a opção Perguntas:


Clique no lupa de pesquisa:


Informe AUTONFE no campo de busca, e clique no botão Buscar. Em seguida clique em Editar:


Inclua na segunda linha (pressionar tecla para baixo) as seguintes informações exibidas em tela. Depois pressionar o botão Confirmar.



03. Parametrização dos agendamentos do AUTONFE para processamento em sequencial (Monothread)


Quando se configura as rotinas do AUTONFE indicadas anteriormente, para cada uma delas é possível realizar o processo de forma simultânea, ou seja, ao configurar por exemplo, na rotina de transmissão de notas (AUTONFETRANS) o parâmetro Nro de Processos simultâneos? com conteúdo maior ou igual a 2, isto será interpretado pela rotina que ela deverá abrir novas threads para enviar/transmitir as notas. Desta forma a rotina irá trabalhar utilizando o processo principal, que será o gerenciador de threads a serem abertas, mais a quantidade de processos (threads) informados no parâmetro para realizar toda transmissão das notas informadas no parâmetro de Serie

Isto implica em um processamento muito mais rápido, porem que consumirá mais licenças e utilizará mais recursos de maquina (memoria/CPU).


Abaixo, como exemplo apenas,  será mostrado o processo de configuração da rotina de Transmissão de Notas AUTONFETRANS de forma paralela (multithread):


No módulo Configurador (SIGACFG), acesse Ambiente / Schedule / Schedule :


Em Schedule / Agendamentos / Cadastro, clicar no botão Incluir:


Preencher os campos conforme desejado.


Ao preencher o nome da rotina com uma das rotinas do AUTONFE informadas anteriormente, será apresentado tela de parâmetros com o novo parâmetro de Numero de Processos Simultâneos. Para que seja realizado o processo de forma paralela, deve-se informar um número igual ou maior a 2. Em seguida clicar em OK





Ao preencher o campo de Empresa/Filial o próprio agendamento se encarregará de "disparar" um processo para cada empresa/filial configurada. Este comportamento é padrão dos agendamentos Protheus e é independente da configuração do parâmetro realizado no passo anterior. 



Neste caso exemplificado acima, serão disparados dois processos (threads) de transmissão de notas, um para cada Empresas/Filiais configurada. Para cada processo de transmissão, a rotina do AUTONFE identificará o parâmetro de Numero de Processos Simultâneos e assim realizara aberturas de processo (threads) em paralelo, neste caso serão abertos mais 5 threads, totalizando 6 threads, onde:

Nro de ThreadsOperação da Thread
1Processo gerenciador de threads
5Numero de threads que serão abertas para processamento paralelo de transmissão, monitoramento ou cancelamento de documento.


Desta forma, para esse exemplo, para a filial T1-X TSS01 serão abertas e consumidas um total de 6 threads/licenças par realizar todo o processamento. Caso sejam apresentadas mais filiais no agendamento, caso exemplificado acima, o numero será proporcional ao numero de filiais, neste caso serão utilizadas 12 threads/licenças como um todo.




03. Parametrização dos agendamentos do AUTONFE para processamento em paralelo (Multithread)


Quando se configura as rotinas do AUTONFE indicadas anteriormente, para cada uma delas é possível realizar o processo de forma sequencial, ou seja, ao configurar por exemplo, na rotina de transmissão de notas (AUTONFETRANS) o parâmetro Nro de Processos simultâneos? com conteúdo igual a 0 ou 1, isto será interpretado pela rotina que ela não deverá abrir novas threads para enviar/transmitir as notas. Desta forma a rotina irá trabalhar utilizando apenas a própria thread aberta no agendamento para realizar toda transmissão das notas informadas no parâmetro de Serie

Isto implica em um processamento mais lento porem que consumirá apenas uma das licenças disponíveis.




Abaixo, como exemplo apenas,  será mostrado o processo de configuração da rotina de Transmissão de Notas AUTONFETRANS de forma sequencial (monothread):


No módulo Configurador (SIGACFG), acesse Ambiente / Schedule / Schedule :


Em Schedule / Agendamentos / Cadastro, clicar no botão Incluir:


Preencher os campos conforme desejado.


Ao preencher o nome da rotina com uma das rotinas do AUTONFE informadas acima, será apresentado tela de parâmetros com o novo parâmetro de Numero de Processos Simultâneos. Para que seja respeitado o uso de apenas 1 processo em execução para a transmissão das notas, basta informar 0 ou 1. Em seguida clicar em OK




Ao preencher o campo de Empresa/Filial o próprio agendamento se encarregará de "disparar" um processo para cada empresa/filial configurada. Este comportamento é padrão dos agendamentos Protheus e é independente da configuração do parâmetro realizado no passo anterior. 



Neste caso mostrado acima, serão disparados dois processos (threads) de transmissão de notas, pois temos duas empresas/filiais configuradas. Para cada processo de transmissão, a rotina do AUTONFE identificará o parâmetro de Numero de Processos Simultâneos e assim não realizara mais nenhum outra abertura de processo em paralelo, realizando toda a operação no mesmo processo (thread) aberto pelo agendamento.



04. Uso de licenças do AUTONFE


O uso de licenças irá depender do valor informado no parâmetro de  Numero de Processos Simultâneos presente nas rotinas de Transmissao, Monitoramente e Cancelamento do AUTONFE.


Processo Monothread

Caso seja informado o numero de processos simultâneos com valor 0 ou 1, para cada rotina/processo do AUTONFE será consumido apenas 1 licença.


Processo MultiThread

Caso seja informado no parâmetro numero de processos simultâneos um valor maior ou igual a 2, o numero de thread que será aberto ao executar a rotina, será:

Total de Threads = Nro de Processos Simultâneos + 1


Exemplo:

Caso informado no parâmetro  Nro de Processos Simultâneos o valor 2, teremos 3 threads sendo executadas, sendo 1 para gerenciamento de threads e 2 threads realizando o processo do AUTONFE (transmissão, monitoramento ou cancelamento).


Vale ressaltar que este controle de numero de threads é realizado pelas rotinas do AUTONFE, porem deve-se atentar ao numero de Empresa/filial configurada para cada JOB (processo) do AUTONFE, pois o disparado de cada filial não esta associado ao controle de numero de processos simultâneos. Os disparos do JOB por Empresa/Filial é um comportamento nativo da rotina de Agendamento (Schdule) do módulo Configurador.



No modulo SIGACFG (configurador), acessar:




Selecionar qual rotina necessita de mais processamento, e depois seleciona-la.

Clicar no botão Alterar e depois no botão Parâmetros.



Informar no campo destacado quantos processos simultâneos a rotina deverá executar.


Caso não seja informado o número de processos simultâneos ou caso seja informado o valor: 1, o processo será executado como mono thread. O número de threads usados no Agent não afeta o funcionamento multithreading da rotina autonfe. 



Depois clicar no botão OK para gravar as modificações.

Após tal configuração basta executar o agendamento ou aguardar sua execução automática na data pré-configurada.



Atenção: No caso da utilização do Fórmula é necessário que o valor retornado seja numérico, conforme exemplo abaixo:









<!-- esconder o menu --> 


<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>