Jump to content

dev botao

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


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

Recommended Posts

Posted

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

 

  • Administradores
Posted

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 ACBr Pro

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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

Posted
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.

Posted (edited)
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
  • Solution
Posted

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

 

Posted
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.

Posted

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

 

Posted (edited)

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
  • Este tópico foi criado há 2010 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.

The popup will be closed in 10 seconds...