Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Produto:

TOTVS Automação Fiscal

Versões:

12.1.17 e superiores

Índice

1 - Objetivos do Documento


Este Documento tem como objetivo descrever o comportamento e particularidades dos processos de automáticos do produto TAF e-Social, sendo eles: Processamento (Job2), Transmissão (Job4) e Consulta(Job5). Estes processos possuem diferentes formas de configuração e é imprescindível conhecer as caracteristicas de cada uma para que o ambiente seja configurado conforme seu tamanho e volumetria.

2 - Rotinas que utilizam a funcionalidade "SchedDef'


2.1 - O que é Scheddef ?

Scheddef é uma função static que permite a utilização das funcionalidades do "novo schedule" protheus, para tal é necessário que o programa que está sendo agendado esteja preparado para a sua utilização. (veja a lista de programas na seção 2.5)

2.2 - Vantagens do SchedDef

  • Permite que a rotina seja cadastrada somente 1x e que seja executada nas Empresas e/ou filiais selecionadas no campo "Empresa/Filial"
  • Permite a utilização de parâmetros (grupo de perguntas), deixando mais interativo a configuração da rotina.
  • A nível de progração não é necessário "Preparar o Ambiente", a Thread em uso já estará com a empresa e filial posicionadas (preparadas).

2.3 - Desvantagens do SchedDef

  • Para cada processo agendado é criado 1 thread que percorre por todas as empresas/filiais selecionadas, se o cliente tem um número elevado de empresas/filiais e as mesmas foram incluidas no schedule o processo pode demorar a ser executado em todos elas, exemplos:

Cenário 1: Grupo com 01 empresa, 10 filiais e 1 thread, se o processo agendado demorar 10 minutos em cada filial (considerando que a rotina TEM dados a processar) o mesmo será executado de 90 e 90 minutos para cada filial mesmo com o processo configurado com recorrência "Sempre ativo". Se no Agent estiver configurado para trabalhar com mais de 1 thread o problema pode ser minimizado.

Cenário 2: Grupo com 200 empresas, 01 filial cada e 1 thread, se o processo agendado demorar 10 segundos para que o processo acesse a filial (considerando que a rotina NÃO tem dados a processar), execute a rotina e passe para a próxima filial, o mesmo será executado de 20 em 20 minutos para cada filial mesmo com o processo configurado com recorrência "Sempre ativo", se houver dados a processar na filial o tempo irá aumentar de acordo com a quantidade de registros de cada filial.

2.4 - Recomendações

Recomendamos o uso de rotinas com scheddef em ambientes com POUCAS empresas/filiais, também é possível criar vários cadastros do mesmo processo e agrupar as empresas/filiais de acordo com a demanda, Exemplo: Criar um cadastro de um determinado processo e selecionar somente as empresas com baixo volume de dados e criar outros cadastros individuais para as empresas com maior volume de dados, neste caso o número de threads do Agent também deverá ser aumentado, caso contrario os processos serão enfileirados em uma única thread e o resultado será o mesmo de ter somente 1 cadastro.

2.5 - Rotinas de processamento do módulo TAF e-Social que utilizam o SchedDef

Nesta seção serão descritas as rotinas de processamento (integração, transmisão e consulta), que podem ser utilizadas utilizando o Novo Schedule (schedDef):

  • TAFPROC2S - Integração de registros da tabela auxiliar (transitória) TAFST2 para as tabelas de negócio TAF.
  • TAFPROC4 - Transmissão de eventos e-Social para o TSS.

Particularidades:

Este Job utiliza os parâmetros para a seleção da filial para a transmissão do evento S-1000 e permite a seleção de um grupo de eventos para a transmissão https://tdn.totvs.com/x/Rh5BE

Por padrão o processo só considera os registros "novos" status " " (branco), para que a rotina considere outros status é necessário a configuração do parâmetro MV_TAFSTRS https://tdn.totvs.com/x/zYNSDg

  • TAFPROC5 - Consulta de eventos e-Social no TSS

Particularidades: É possível utilizar este processo combinando o multithread padrão desta rotina, para tal é necessário combinar corretamente os parâmetros do agente com os parâmetros nativos de multithread da rotina https://tdn.totvs.com/x/SONDHQ


3 - Rotinas que utilizam a funcionalidade "Processo Especial"


3.1 - O que é Schedule "Processo Especial" ?

O processo especial é uma forma "manual" de programação e configuração do Schedule Protheus, a nível de programação todo o processo de configuração de ambiente fica a cargo do programador.

3.2 - Vantagens do Processo Especial

  • O Ambiente não é preparado pela camada de framework, desta forma o programador pode direcionar qual filial/empresa o processo deve ser executado.
  • Dependendo da configuração de threads do agente  permite a execução de uma rotina simultaneamente sem a necessidade de criar um novo agendamento para a mesma.
  • No caso do produto TAF utilizando este processo não há consumo de licenças Totvs I.

3.3 - Desvantagens do Processo Especial

  • Dependendo da rotina a nível de programação é muito custoso gerenciar a preparação do ambiente e realizar o controle das filiais para o processamento.
  • Por não possuir o schedDef não é possível utilizar o botão parâmetros no cadastro do Schedule, a passagem de parâmetros tem que ser realizada na chamada de função. Exemplo: funcaoEnviaDocumentos('01','00001',.F.)
  • Permite a selecão de empresas, porém o programador tem que realizar a preparação do ambiente e o mesmo geralmente o faz através dos parâmetros passados na rotina, ou seja em muitos casos a funcionalidade de selecção de empresas não é aplicada na utilização do processo especial.

3.4 - Recomendações

Recomendamos o uso de rotinas com scheddef em ambientes com MUITAS empresas/filiais, alguns processos utilizando esta funcionalidade foram programados para trabalhar de forma dinâmica (veja a lista de rotinas na seção 3.5), diferente do comportamento do schedDef que passa filial por filial executando o processo somente de acordo com o agendamento, existem rotinas no TAF sem schedDef com um gerenciador que verifica quais filiais existem registros aptos para processo antes da execução do mesmo, desta forma em um ambiente centenas de empresas os processos serão mais dinâmicos e rápidos, exemplo:

Cenário : Grupo com 200 empresas, 01 filial cada e 1 thread, se o Grupo tiver demanda de processamento somente para 2 empresas o sistema não passará pelas 200 executando o processo, ele vai verificar qual empresa/filial tem demanda e vai executar os processos somente nelas, otimizando o tempo de execução dos processos. https://tdn.totvs.com/x/XtfUGg

3.5 - Rotinas de processamento do módulo TAF e-Social que utilizam o Processo Especial

Nesta seção serão descritas as rotinas de processamento (integração, transmisão e consulta), que podem ser utilizadas utilizando o Processo Especial:

  • TAFSCHED2 - Integração de registros da tabela auxiliar (transitória) TAFST2 para as tabelas de negócio TAF.
  • TAFSCHED4 - Transmissão de eventos e-Social para o TSS.

Particularidades:

Por padrão o processo só considera os registros "novos" status " " (branco), para que a rotina considere outros status é necessário a configuração do parâmetro MV_TAFSTRS https://tdn.totvs.com/x/zYNSDg

O Id do Grupo de Eventos deve ser passado por parâmetro na rotina https://tdn.totvs.com/x/pkD7I. Cadastro de Grupo de eventos: https://tdn.totvs.com/x/Rh5BE

  • TAFSCHED5 - Consulta de eventos e-Social no TSS.

Particularidades: É possível utilizar este processo combinando o multithread padrão desta rotina, para tal é necessário combinar corretamente os parâmetros do agente com os parâmetros nativos de multithread da rotina https://tdn.totvs.com/x/SONDHQ

  • TAFAINTEG - Executa os processos Taf e-Social de acordo com os parâmetros utilizados no função, recomendamos o uso das rotinas TAFSCHED2,TAFSCHED4 e TAFSCHED5 em detrimento desta.


4 - Demais Informações

Como realizar o agendamento de Rotinas: https://tdn.totvs.com/x/2bEpE

Configuração do processo dinâmico TAF: https://tdn.totvs.com/x/Idy1HQ



HTML
<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>