Ir para conteúdo
  • Cadastre-se

dev botao

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


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

Recommended Posts

Postado

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
Postado

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

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

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

Postado (editado)
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.

Editado por João Paulo Pires
  • Solution
Postado

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.

  • Curtir 1

 

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

Postado

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

 

Postado (editado)

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.

 

Editado por João Paulo Pires
  • Curtir 4
  • Este tópico foi criado há 1842 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.

The popup will be closed in 10 segundos...