Á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:

11 12.1.17,12.1.23 e 12.1.25

Modelos e Processos de Integração

Para que os dados sejam integrados do ERP para o TAF, são utilizados processos - chamados de Job's - desenvolvidos no TAF que se encarregam de consultar, transportar, gravar e validar os dados. Entenda mais sobre esse processos clicando aqui.

Parâmetros de Integração

...

A integração Automática está relacionada ao agendamento dos processos para que sejam executados automaticamente pelo sistema de acordo com recorrência pré-definida.


I. Para configurar os processos automáticos do TAF, deve-se configurar o Schedule no Configurador (SIGACFG) acessando a opção de menu Ambiente / Schedule / Schedule, ou no próprio TAF em Atualizações / Configs TAF / Schedule.


   


II. O primeiro passo é incluir um Agente e ativá-lo. As configurações pertinentes as funcionalidades do Schedule podem ser encontradas em Schedule - TAF - P12. Em seguida, é preciso criar um Agendamento para cada rotina (job) que será executada.


Para os processos o processo de Integração do ERP com o TAF

...

preencher o campo Rotina com 

...

TAFSCHED2

           


Informações

Este processo realiza a Integração dos registros contidos na tabela TAFST2 para as tabelas de negócio do TAF e em seguida executa o processo TAFSCHED4 transmitindo os registros para o TSS. Para o processo de transmissão é necessário configurar o parâmetro MV_TAFSTRS incluindo o status ' '.

Exemplo: ' ','0','1'


           

Para os

...

processo de

...

transmissão do TAF com o

...

Utilizar TAFSCHED4 para o processo de transmissão de Eventos:

Image Removed

Utilizar TAFSCHED5 para o processo de consulta de Eventos:

...

TSS preencher o campo Rotina com TAFSCHED4

Image Added


Caso a opção seja associar o TAFSCHED4  a um agendamento por grupo de eventos basta passar os parâmetros na função com os valores de grupo de empresas e o código cadastrado na rotina TAFA441(Cadastro de grupo de eventos), do grupo de eventos que deseja ser processado:

Image Added


Informações

À partir da issue https://tdn.totvs.com/x/BECOIQ, o processo de configuração do Schedule 4 mudou, mas não o seu comportamento. Agora, caso você já tenha cadastrado algum grupo de evento na rotina TAFA441, torna-se necessário primeiro excluir os grupos de eventos cadastrados na rotina TAFA441 via rotina, e na sequência limpar manualmente a tabela LE8, ou então, entrar na rotina TAFA441 e clicar para alterar cada grupo de evento cadastrado, e após isso, excluir as linhas na gride inferior, onde está cadastrado os eventos em si, e na sequência confirmar, e excluir o grupo de eventos. Após isso, checar se as tabelas LE6 e LE8 estão vazias, e estando, efetuar o compartilhamento dessas respectivas tabelas nos 3 níveis pelo Configurador (Compartilhar). Finalmente, deve-se cadastrar pela primeira vez ou novamente os grupos de eventos e atrelar os eventos aos grupos (se quiser). Caso haja por exemplo, 2 grupos de eventos cadastrados na rotina TAFA441, e nas configurações do Sched4 no configurador tenha sido passado o código de somente 1 dos grupos cadastrados na rotina, o SCHED4 considerará os 2 grupos cadastrados na rotina TAFSCHED4 para transmitir. Lembrando também que havendo somente o evento S-1010 cadastrado no Grupo de Eventos, por exemplo, o SCHED4 transmitirá somente esse evento, independente do compartilhamento da tabela do evento, neste exemplo a tabela C8R.



Aviso

Este processo só será executado se o parâmetro MV_TAFSTRS estiver configurado, caso contrario a rotina só irá considerar os registros com status '0' (válidos).

Para o processo de schedule dinâmico não existe o Job de validação, por isto a necessidade deste parâmetro.


Para os processo de consulta do TAF no TSS preencher o campo Rotina com TAFSCHED5

Image Added


Na configuração do Schedule, pode ser definida a recorrência com que o agendamento incluído deve ser realizado, como o exemplo abaixo que pode ser ajustado conforme necessidade da empresa:

Image Modified


Image Modified

Informações

Este processo executa o processamento de acordo com a demanda, diferente do processo convencional que realiza a execução filial por filial procurando registros elegíveis para o processamento, este processo utiliza a lógica reversa procurando primeiramente os registros elegíveis e disparando a execução na filial que os mesmos pertencem.

É aconselhável utilizar no mínimo 1 Thread para cada processo, o sistema permite o paralelismo de funções e filiais, ou seja o sistema executa somente 1 processo por filial porem permite o paralelismo do mesmo em filiais diferentes e permite a execução de processos diferentes na mesma filial.

As threads são configuradas no Agent:

Image Added

A API de Schedule só executa o processamento de multi threads em filiais diferentes, por isso para forçar que a API utilize todas as threads configuradas no agent  selecione no mínimo o numero de filiais igual a quantidade de threads informadas no agent.

Observação: O processo de Schedule dinâmico não respeita as filiais selecionadas no cadastro do processo, a rotina irá disparar para qualquer filial existente no Grupo de Empresas que esteja elegível através do status para a execução. Esta configuração é necessária somente por questões de compatibilidade.


Image Added



Para verificar o funcionamento do serviço habilitar a chave TafConOut:

Image Added

No Sumario é informado a quantidade de vezes que a API do schedule chamou as rotinas agendas e qual processo a thread em questão executou.

Image Added

Quando um processo encontra um registro elegível para execução a filial, tabela, status e recno são informados.


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>

...