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

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á 2117 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...
The popup will be closed in 10 segundos...