Ir para conteúdo
  • Cadastre-se

dev botao

Acesso a Geração de Numero de Sessão antes de Envio


Ver Solução Respondido por André Ferreira de Moraes,
  • Este tópico foi criado há 2369 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Para a utilização do comando ConsultaSessao é necessário ter o numero da Sessão salvo, porem devido a erros no Integrador sua reinicialização muitas vezes é a unica solução, o AC que foi aberto através do Integrador e está aguardando a resposta é finalizado junto a reinicialização. 
Devido a esse problema o nosso AC não é capaz de Consultar a Sessão corretamente, então fiz uma alteração que me permite gerar paralelamente o NumerodeSessao salvando o mesmo antes do envio, em casos de emissão e não havendo resposta do integrador ou ate mesmo do Modulo MFe como já presenciei, a venda será reenviada sempre com o mesmo numero de sessão, em caso da resposta ser um erro devido ao numero de sessão, segundo o Luiz Abade é para considerar a venda como emitida e segundo o mesmo uma função que permite consultar qualquer sessão já esta sendo implementada então essa modificação se tornará ainda mais necessária.
Essa modificação consiste em uma função que deve ser chamada antes de cada comando de envio (Gerar numero sessão) e outra que só será usada caso já tenha o numero e deseje usa-lo não gerando um numero novo (inserir Sessão).

*function TACBrSAT.GerarnumeroSessaoNew : Integer ;
*function TACBrSAT.SetNumeroSessao(Valor: Integer) : Integer ;

A antiga função permanece, porém a parte de gerar foi removida.
*function TACBrSAT.GerarnumeroSessao : Integer ;

Eu  gostaria que essa modificação fosse verificada e incluída no projeto, caso vocês possuam uma solução melhor e queiram implementa-la, agradeço a tenção e aguardo retorno.

ACBrSAT.pas

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Não entendi a necessidade desses novos métodos.

Para controlar o número da sessão basta programar o método OnGetNumeroSessao.

djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.lambretinha.com.br
Link para o comentário
Compartilhar em outros sites

Opa, eu não tinha conhecimento desse evento, então com ele eu posso ter acesso a todos os números de Sessões que enviei, mas e quanto a usar um numero de sessão que eu já tenha usado no passado?
Exemplo: eu tenho uma venda e ela foi emitida mas por algum motivo do destino o Integrador ou o Modulo MFe não deu retorno, então o usuário vai tentar emitir novamente, ao emitir essa mesma venda com o mesmo numero de sessão anterior o integrador ira me devolver um erro dizendo que a sessão já foi usada, com isso sei que a venda foi emitida, porem se eu usar um novo numero de sessão gerado pelo fluxo atual, essa venda vai ser emitida novamente, só vou saber que deu problema com a duplicidade da venda quando o cliente reclamar que pulou um numero de Cupom....

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Vc vai gerar o número de sessão no evento OnGetNumeroSessao, neste caso cabe a você tratar se o número será novo ou será usado um já existente.

  • Curtir 1
djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.lambretinha.com.br
Link para o comentário
Compartilhar em outros sites

  • Moderadores
  • Solution
procedure TDFeCore.ACBrSAT1GetNumeroSessao(var NumeroSessao: Integer);
begin
   NumeroSessao := NumeroGerenciadoPelaAplicacao;
end;

 

  • Curtir 1
djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.lambretinha.com.br
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2369 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.