cancel
Showing results for 
Search instead for 
Did you mean: 

Consulta Status SEFAZ Virtual RS (várias consultas de status da SEFAZ?)

Former Member
0 Kudos

Boa tarde a todos.

Emitimos NF-e para vários estados da SEFAZ Virtual RS (DF, MS, PB, RJ, RO, RR, SC, SE).

Para cada um destes estados existe um registro /XNFE/TSRV. Para cada registro nesta tabela é feita uma consulta pelo programa /XNFE/CHECK_SRV_STATUS (que esta rodando no JOB).

O problema é que estou fazendo consultas redundantes para mesma SEFAZ.

Veja o caso que ocorreu hoje: A SEFAZ Virtual RS caiu e a consulta de status que normalmente leva poucos segundos para executar estava demorando mais de 580 segundos. Prejudicando assim a consulta de status das outras SEFAZ.

Existe uma forma de fazer 1 consulta apenas para a SEFAZ ao invés de uma consulta por estado?

At.,

Bernardo Braga

Accepted Solutions (1)

Accepted Solutions (1)

former_member182114
Active Contributor
0 Kudos

Bom dia Bernardo,

O GRC não tem esta opção pois ele não tem este controle internamente e nem considera a virtualização de secretarias, então como ele usa o CUF para se direcionar é necessária configuração e consultas individualizadas.

Externamente ao ABAP core, lá no Communication Channel você pode colocar as URL's iguais (Sefaz Virtual).

Em termos de desenvolvimento poderia ser ter dois JOB's um para as secretarias individuais e outro com parametros para apenas as virtuais (ou um dos CUF's atendidos para cada virtual). Neste job de virtual teria um segundo step do job um programa Z que copiasse esta informação para as outras CUF's conforme DE - PARA em tabelas também Z.

Acho que é um caso a se pensar no custo e benefício.

Independente disso, uma coisa que é interessante é colocar timeout nas conexões do SRVCS para 30 ou 60 segundos, 580 tá um exagero. Se não respondeu em x segundos é como se estivesse fora mesmo.

Atenciosamente, Fernando Da Rós

P.S.: O pior problema que a Sefaz pode nos dar em termos de processamento é "agarrar" a conexão (qualquer uma delas) em um eterno HTTP response waiting....

Former Member
0 Kudos

Bom dia.

Ótimas dicas. Vou fazer uns testes alterando os tempos. Criar um outro JOB apenas para as SEFAZ Virtual tambem pode ser uma.

Obrigado.

At.,

Bernardo Tavares Braga

Answers (1)

Answers (1)

henrique_pinto
Active Contributor
0 Kudos

Bernardo,

de fato o desenho nao eh otimizado para SEFAZs virtuais (mesmo pq a utilizacao de SV eh temporaria; a tendencia eh q num prazo de poucos anos, todas as SEFAZ tenham sistema proprio).

Uma maneira de minimizar o problema seria vc colocar periodos maiores para verificacao desses estados e tentar sincronizar a consulta para otimizar a utilizacao.

Por exemplo, suponha que vc tem SEFAZ SP de 4 em 4 minutos. Vc tem entao configurado 240 segundos lah na view de customizing de SEFAZs para a UF 35.

Supondo que vc tem 5 UFs que utilizam a SEFAZ Virtual RS, vc poderia, em teoria, checar cada uma de 20 em 20 minutos (1200 em 1200 segundos) e, se tivesse a consulta de cada UF espaçada de 4 minutos da proxima, entao teria ainda uma consulta de 4 em 4 minutos na pratica, para a SEFAZ Virtual RS, mas com uma menor carga ao sistema.

Para sincronizar, o ideal seria vc fazer algo do tipo (depois deconfigurar os 20 minutos na view pra todas as UFs da SV):

1. delete o job do report de check service status;

2. execute esse report, na mao, via SE38, para a 1a UF da SEFAZ Virtual;

3. espera 5 minutos, executa pra 2a UF;

4. repete pra todas as outras 3 UFs (apos a ultima, 16 minutos desde o inicio terao passado).

5. schedule o job para esse report, com periodo de 2 minutos (ele nao vai chamar todas as SEFAZ de 2 em 2 minutos, apenas vai verificar se precisa chamar).

Nada garante que esse distanciamento entre as consultas permaneca constante, pois se o Job demorar diversos segundos pra finalizar, jah vai deixar pra executar soh na proxima rodada. Se quiser, schedule o job de 1 em 1 minuto.

Abs,

Henrique.

PS: uma outra dica: em vez de configurar "numeros fechados" para o tempo de delay entre as consultas das SEFAZs (view de customizing), configure um tempo do tipo "fechado - 5 segundos". Ou seja, no caso acima, vc teria 235 segundos para a SEFAZ SP e 1195 segundos para as UF da SEFAZ Virtual. Isso minimiza problemas de sincronizacao (se o job demorar até 5 segundos pra executar, que vai ser 99.9% dos casos, ele ainda mantem a sincronia).