Jump to content

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png click.png click.png

ACBrLib Aquivo de Retorno não traz a Sessão Consulta no local correto.


João Paulo Pires
Go to solution Solved by Rafael Dias,
  • Este tópico foi criado há 756 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa noite, tenho essa função ReadINI que captura a Sessão, Entrada do arquivos de log gerado pela DLL

status = ReadINI(sessao, "CStat", "C:\Users\servidor\Desktop\Demos\VB6\NFe\Demo\Logs\ACBrLibNFE-20191107.log")

Minha observação é que quando eu faço uma consulta pela chave da NFe e a mesma não consta na base de dados do sefaz,

o arquivo de log me retorna conforme a imagem, a Sessão [Consulta] nao fica no lugar correto, então a função ReadINI

não consegui achar a sessão, imagino que a sessão deve ficar Antes do "CStat=217" 

Editei o arquivo log colocando a Sessão [Consulta] acima do CStat=217 ai sim a minha função conseguiu ler os parametros retornados.

 

Teria como ajustar isso ai na dll?

1777695872_RetornoConsulta.thumb.png.67917b076bda26aeda75ea780fb8198d.png

 

Link to comment
Share on other sites

  • Consultores

Bom dia.

Já está em nossa lista de tarefas adicionar o exemplo de retorno ao manual do ACBrLib.

https://acbr.sourceforge.io/ACBrLib/ACBrLibNFe.html

Att.

Consultora SAC ACBr

Juliana Tamizou
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link to comment
Share on other sites

  • Fundadores

Não use o arquivo de Log como retorno...o retorno vem no parâmetro da chamada do comando...

NFE_ Enviar( (ALote, Imprimir, Sincrono, Zipado, sResposta, esTamanho );

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

2 horas atrás, Daniel Simoes disse:

Não use o arquivo de Log como retorno...o retorno vem no parâmetro da chamada do comando...

NFE_ Enviar( (ALote, Imprimir, Sincrono, Zipado, sResposta, esTamanho );

entendi, vou tentar usar este exeplo. acho q eu tinha perguntado isso aqui no Forum, mas acabei usando o Log para capturar o retorno.

Link to comment
Share on other sites

2 horas atrás, Juliana Tamizou disse:

Bom dia.

Já está em nossa lista de tarefas adicionar o exemplo de retorno ao manual do ACBrLib.

https://acbr.sourceforge.io/ACBrLib/ACBrLibNFe.html

Att.

seria uma boa ter um manual de como capturar este retorno, pois eu nao imagino como será feito e tratado. vai vim o retorno com as string separadas ou tudo junto e teremos uqe tratar a string para extrair somente o que precisamos.

O retorno usado certo séria o que vem neste código:

Private Sub SetResposta(ByRef resposta As String)
    rtbRespostas.Text = ""
    If rtbRespostas.Text <> vbNullString Then
      rtbRespostas.Text = rtbRespostas.Text + vbCrLf + resposta
    Else
      rtbRespostas.Text = resposta
    End If
    
    MsgBox resposta
    
End Sub

 

Então eu terei que tratar a string e extrair as informações que me interessa e meu sistema tomar a decisão conforme.

Edited by João Paulo Pires
Link to comment
Share on other sites

  • Consultores
  • Solution

A string retornando pelo método da classe de alto nível é exatamente o retorno completo não precisa extrair nada, precisa fazer o parse do conteúdo ini apenas.

Sobre como trabalhar com o retorno ai é recurso de linguagem, você vai precisar de um parse de ini para isso, no caso a sua função la deve usar as chamados do windows que só trabalha com arquivo e não com o ini da memoria, então pegue o conteudo retornado pela função salve em um arquivo temporário e use ele na sua função.

1 hora atrás, João Paulo Pires disse:

Private Sub SetResposta(ByRef resposta As String)
    rtbRespostas.Text = ""
    If rtbRespostas.Text <> vbNullString Then
      rtbRespostas.Text = rtbRespostas.Text + vbCrLf + resposta
    Else
      rtbRespostas.Text = resposta
    End If
    
    MsgBox resposta
    
End Sub

Este método ai é apenas usando para exibir no txt o retorno da dll.

  • Like 1
Consultor SAC ACBr Rafael Dias
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Desenvolvedor ACBrLib.

 

Link to comment
Share on other sites

Agora, Rafael Dias disse:

A string retornando pelo método da classe de alto nível é exatamente o retorno completo não precisa extrair nada, precisa fazer o parse do conteúdo ini apenas.

Sobre como trabalhar com o retorno ai é recurso de linguagem, você vai precisar de um parse de ini para isso, no caso a sua função la deve usar as chamados do windows que só trabalha com arquivo e não com o ini da memoria, então pegue o conteudo retornado pela função salve em um arquivo temporário e use ele na sua função.

Este método ai é apenas usando para exibir no txt o retorno da dll.

boa ideia Rafael, eu tinha pensando exatamente nisso, em salvar a String do Retorno em um arquivo ini temporário, e depois fazer a leitura do arquivo temporário da mesma forma q eu faço para ler o log.

Link to comment
Share on other sites

  • Consultores

Sim eu andei pesquisando coisas para ini no vb6, mas é bem limitado, eu achei um aqui que le de stream e coloquei um função que le a string e coloca em um stream e faz o parse.

Esta em anexo caso queira usar, eu não tive tempo de testar.

IniDOM.rar

Consultor SAC ACBr Rafael Dias
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Desenvolvedor ACBrLib.

 

Link to comment
Share on other sites

 

39 minutos atrás, Rafael Dias disse:

Sim eu andei pesquisando coisas para ini no vb6, mas é bem limitado, eu achei um aqui que le de stream e coloquei um função que le a string e coloca em um stream e faz o parse.

Esta em anexo caso queira usar, eu não tive tempo de testar.

IniDOM.rar 12 kB · 0 downloads

Ok  Rafael vou testar aqui.

Link to comment
Share on other sites

Eu resolvi o problema fazendo assim:

1 Pego o retorno completo que vem na string SetResposta(ByRef resposta As String)

2 - Salvo em um arquivo log temporário >>>>>retorno-20191108.log

3 - uso a função q o macoratti tem no site dele em vb6 para ler o txt temporário que criei. http://www.macoratti.net/vb_ini.htm

Essa função lé as Sessões dos ini. então consigo pegar o que eu quero e gravar no banco, como a chave da nfe, xMotivo, Protocolo, a hora. etc.

 

Edited by João Paulo Pires
  • Like 4
Link to comment
Share on other sites

  • Este tópico foi criado há 756 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.