Sobre o exemplo, eu também estou implantando agora, então não tenho certeza se vai funcionar ( parei no nfse_carregarlotexml ) , mas o resto do meu codigo esta assim , basicamente no envio assincrono o que vc quer é pegar o protocolo e depois consultar
a função abaixo pega o protocolo, o retorno é no formato do ini , por isso uso uma função GetIniValueFromString, no link https://acbr.sourceforge.io/ACBrLib/NFSE_Emitir.html tem um exemplo de retorno
Public Function ACBREnviarLoteAssincronoRPS(ByVal NumLote As Integer, ByRef Erro As String) As String
'enviar o lote, se deu sucesso retornar para a funcao o protocolo gerado
Dim resposta As String
On Error GoTo ACBREnviarLoteAssincronoRPS_Error
resposta = myACBRNFSE.Emitir(NumLote, meLoteAssincrono, False)
'por enquanto mostrar na mensagem
Call Mensagem(resposta)
If resposta <> "" Then
If GetIniValueFromString(resposta, "Envio", "Sucesso", "0") = "1" Then
ACBREnviarLoteAssincronoRPS = TiraZeros(GetIniValueFromString(resposta, "Envio", "Protocolo"))
End If
End If
On Error GoTo 0
Exit Function
ACBREnviarLoteAssincronoRPS_Error:
Erro = Err.Description
Mensagem "Erro " & Err.Number & " (" & Err.Description & ") na linha " & Erl & " em ACBREnviarLoteAssincronoRPS do Módulo de classe clsTecnoSpeed", , , csVerde
End Function
E com o protocolo eu consulto as notas , isto aqui já deu certo, usei com um protocolo gerado por outro sistema :
RetornoACBR =ConsultarLoteRps(txtNotaTecnoSpeed(0), txtNotaTecnoSpeed(0))
If modArquivos.GetIniValueFromString(RetornoACBR, "ConsultaLoteRps", "Situacao") = "true" Then
XML_ = AnsiToUtf8(GetIniValueFromString(RetornoACBR, "ConsultaLoteRps", "XmlRetorno"))
com o xml, vc carrega as notas
Call myACBRNFSE.CarregarXML(XML_)
e vc faz um looping pelas notas, usando o obterini
RetornoACBR = myACBRNFSE.ObterIni(numIndice)
o ini vai te retornar os dados que vc precisa da nota
Call gTabela.Gravar("alunopag", "NFE", GetIniValueFromString(RetornoACBR, "IdentificacaoNFSe", "Numero"), dbInteger, ACAO_UPDATE, strWhere)
Call gTabela.Gravar("alunopag", "autenticacaonfe", GetIniValueFromString(RetornoACBR, "IdentificacaoNFSe", "CodigoVerificacao"), dbText, ACAO_UPDATE, strWhere)
Call gTabela.Gravar("alunopag", "dataemissaonfe", GetIniValueFromString(RetornoACBR, "IdentificacaoRps", "DataEmissao"), dbDate, ACAO_UPDATE, strWhere)
Call gTabela.Gravar("alunopag", "nfe_url", GetIniValueFromString(RetornoACBR, "IdentificacaoNFSe", "Link"), dbText, ACAO_UPDATE, strWhere)
aqui tem um problema, que reportei mas também não tive resposta, que quando vai pegar a ultima nota + 1 não da o erro -13 de indice inexistente.
espero ter ajudado,
Marcos