Erro ao gerar DANF com a DLL

14 views
Skip to first unread message

ca...@bol.com.br

unread,
Jan 12, 2026, 3:45:46 PM (2 days ago) Jan 12
to wan...@unimake.com.br, uni...@googlegroups.com, eduardo...@unimake.com.br
 
Oi Wandrey !
Tentei gera o DANF com o exempo que voce me enviou e esta dando erro.
Vou colocar o código e anexar os arquivos.

 IF EMPTY(.Text3.Value)
    MESSAGEBOX("DPS ainda não foi Gravada",0+64,"NFSe")
    .Text3.SetFocus()
    RETURN
 ENDIF  

 IF NFSe.Status == "G"
    MESSAGEBOX("NFSe Ainda não Foi Emitida",0+64,"NFSe")
    .Combo1.SetFocus()
    RETURN
 ENDIF  

 SET STEP ON 
 
 DECLARE INTEGER ShellExecute IN shell32.dll ;
      INTEGER hndWin, ;
      STRING cAção, ;
      STRING cNomeArquivo, ;
      STRING cParams, ;  
      STRING cDir, ;
      INTEGER nShowWin

     
     TRY 
     oUnidanfeConfiguration = CreateObject("Unimake.Unidanfe.Configurations.UnidanfeConfiguration")   
     oUnidanfeConfiguration.WaitProcess = .F.
     oUnidanfeConfiguration.Arquivo = ALLTRIM(Nfse.caminhoxml) &&  && \EMPORIUM\VERSAO27\NFSE\NFSE33047062244505354000163000000000006126016089091851.xml
    ** Esse xml eu guardei quando emiti a NFSe
 
 
     oUnidanfeConfiguration.Visualizar = .T.
     oUnidanfeConfiguration.Imprimir = .F.
     oUnidanfeConfiguration.EnviaEmail = .F.    

   * Disparar a impressao DANFe NFe
     oUnidanfeServices = CreateObject("Unimake.Unidanfe.UnidanfeServices")
     oUnidanfeServices.Execute(oUnidanfeConfiguration)  
     MESSAGEBOX("Aguarde!") 
     
   * Disparar a impressao DANFe NFCe
     oUnidanfeConfiguration.Arquivo = ALLTRIM(Nfse.caminhoxml) && \EMPORIUM\VERSAO27\NFSE\NFSE33047062244505354000163000000000006126016089091851.xml 
** Esse xml eu guardei quando emiti a NFSe

   MESSAGEBOX("Fina de Processo",0+64,"DANF")

  CATCH TO oErro
       
       LOCAL lErro 
       WAIT Windows "Entrou no Catch" TIMEOUT 1
       
       lErro = ALLTRIM(STR(oErro.ErrorNo,10)) + " - Message: " + oErro.Message
       MESSAGEBOX("FOXPRO - ErrorCode: " + ALLTRIM(STR(oErro.ErrorNo,10))+ " - Message: " + oErro.Message)
       STRTOFILE(lErro,"Errodanf")
*       MessageBox("CSHARP - ErrorCode: " + ALLTRIM(STR(oExceptionInterop.GetErrorCode(),20)) + " - Message: " + oExceptionInterop.GetMessage())       
    
  ENDTRY 
  RETURN 


Vou anexar o xml guardado e o erro retornado 

Muito obrigado.

 
NFSE33047062244505354000163000000000006126016089091851.xml
Errodanf

Wandrey - Unimake

unread,
Jan 13, 2026, 8:18:14 AM (yesterday) Jan 13
to ca...@bol.com.br, uni...@googlegroups.com, eduardo...@unimake.com.br
Não consigo baixar o arquivo de erro que vc enviou, cole o erro no corpo do e-mail.

ca...@bol.com.br

unread,
Jan 13, 2026, 9:19:37 AM (23 hours ago) Jan 13
to wan...@unimake.com.br, uni...@googlegroups.com
Vou colocar o codigo e o erro
 
 DECLARE INTEGER ShellExecute IN shell32.dll ;
      INTEGER hndWin, ;
      STRING cAção, ;
      STRING cNomeArquivo, ;
      STRING cParams, ;  
      STRING cDir, ;
      INTEGER nShowWin

Try 

     LOCAL caminhoNFse as String 
     caminhoNFse = "C:" + ALLTRIM(Nfse.caminhoxml)

 
     oUnidanfeConfiguration = CreateObject("Unimake.Unidanfe.Configurations.UnidanfeConfiguration")   
     oUnidanfeConfiguration.WaitProcess = .F.
     oUnidanfeConfiguration.Arquivo = caminhoNFse && = "C:\Emporium\Versao27\NFS33047062244505354000163000000000006126016089091851.xml" 

     oUnidanfeConfiguration.Visualizar = .T.
     oUnidanfeConfiguration.Imprimir = .F.
     oUnidanfeConfiguration.EnviaEmail = .F.    

   * Disparar a impressao DANFe NFe
     oUnidanfeServices = CreateObject("Unimake.Unidanfe.UnidanfeServices")
     oUnidanfeServices.Execute(oUnidanfeConfiguration)  && Aqui dá o erro e não cai no CATCH

     MESSAGEBOX("Aguarde!") 
     






   * Disparar a impressao DANFe NFCe
     oUnidanfeConfiguration.Arquivo = ALLTRIM(Nfse.caminhoxml) && "D:\testenfe\41220706117473000150650010000580151230845952-procnfe.xml"



   MESSAGEBOX("Fina de Processo",0+64,"DANF")

  CATCH TO oErro
       
       LOCAL lErro 
       WAIT Windows "Entrou no Catch" TIMEOUT 1
       
       lErro = ALLTRIM(STR(oErro.ErrorNo,10)) + " - Message: " + oErro.Message
       MESSAGEBOX("FOXPRO - ErrorCode: " + ALLTRIM(STR(oErro.ErrorNo,10))+ " - Message: " + oErro.Message)
       
errodanf.jpg

ca...@bol.com.br

unread,
Jan 13, 2026, 1:31:42 PM (19 hours ago) Jan 13
to uni...@googlegroups.com, uni...@googlegroups.com, eduardo...@unimake.com.br
 
Olha o erro
 

 

 

De: "Wandrey - Unimake" <wan...@unimake.com.br>
Enviada: 2026/01/13 10:18:14
Para: ca...@bol.com.br
Cc: uni...@googlegroups.com, eduardo...@unimake.com.br
Assunto: [uninfe] Re: Erro ao gerar DANF com a DLL
 
Não consigo baixar o arquivo de erro que vc enviou, cole o erro no corpo do e-mail.
 
Em seg., 12 de jan. de 2026 às 17:45, ca...@bol.com.br <ca...@bol.com.br> escreveu:

 

--
Acompanhe nosso canal exclusivo de notícias do mundo fiscal e não perca nenhuma nota técnica:
https://whatsapp.com/channel/0029VaCYoen3gvWRRRbKve40
 
Conheça nossos outros fóruns/grupos de apoio:
 
No DISCORD: https://discord.gg/UwFPRxJp3N
No TELEGRAM: https://t.me/joinchat/Lly8_xQkn2NNi4yHN5aPqw
---
You received this message because you are subscribed to the Google Groups "UniNFe" group.
To unsubscribe from this group and stop receiving emails from it, send an email to uninfe+un...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/uninfe/CA%2BT0RPr7ww7dddB19%3DskLGnXKzDYza_Rdsf8pL6n-7S6irJtow%40mail.gmail.com.
errodanf.jpg

Wandrey - Unimake

unread,
Jan 13, 2026, 1:36:49 PM (19 hours ago) Jan 13
to uni...@googlegroups.com, eduardo...@unimake.com.br
A mensagem é que você apontou para um XML que ele não encontrou na pasta em questão.




ca...@bol.com.br

unread,
Jan 13, 2026, 1:45:41 PM (19 hours ago) Jan 13
to Wandrey - Unimake, uni...@googlegroups.com, eduardo...@unimake.com.br
Esse é o erro.
Mensagem de erro:
'Arquivo C:\EMPORIUM\VERSAO\NFS\NFS33047062244505354000163000000000006126016089091851.xml nao existe (NOT_EXISTS)
Sistema C:\Unimake\Unimake.UniDANFe\Unimake.UniDANFe.Console.exe
Versão:3.9.14
Parametros da linha de comando:
'C:\Unimake\Unimake.UniDANFe\C:\Unimake\Unimake.UniDANFe.console.json' dfe

 
 

 

 

De: "Wandrey - Unimake" <wan...@unimake.com.br>
Enviada: 2026/01/13 10:18:11
Para: ca...@bol.com.br
Cc: uni...@googlegroups.com, eduardo...@unimake.com.br
Assunto: Re: Erro ao gerar DANF com a DLL
 
Não consigo baixar o arquivo de erro que vc enviou, cole o erro no corpo do e-mail.
 
Em seg., 12 de jan. de 2026 às 17:45, ca...@bol.com.br <ca...@bol.com.br> escreveu:

ca...@bol.com.br

unread,
Jan 13, 2026, 1:48:26 PM (19 hours ago) Jan 13
to uni...@googlegroups.com, eduardo...@unimake.com.br
Esta lá
O engraçado que não cai no  CATCH , coloquei até o caminho não mão ao invés de variável e dá o erro
 
 

 

 

De: "Wandrey - Unimake" <wan...@unimake.com.br>
Enviada: 2026/01/13 15:36:49
Para: uni...@googlegroups.com
Cc: eduardo...@unimake.com.br
Assunto: Re: [uninfe] Erro ao gerar DANF com a DLL
 
A mensagem é que você apontou para um XML que ele não encontrou na pasta em questão.
 
 
 
Em ter., 13 de jan. de 2026 às 15:31, ca...@bol.com.br <ca...@bol.com.br> escreveu:

 

--
Acompanhe nosso canal exclusivo de notícias do mundo fiscal e não perca nenhuma nota técnica:
https://whatsapp.com/channel/0029VaCYoen3gvWRRRbKve40
 
Conheça nossos outros fóruns/grupos de apoio:
 
No DISCORD: https://discord.gg/UwFPRxJp3N
No TELEGRAM: https://t.me/joinchat/Lly8_xQkn2NNi4yHN5aPqw
---
You received this message because you are subscribed to the Google Groups "UniNFe" group.
To unsubscribe from this group and stop receiving emails from it, send an email to uninfe+un...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/uninfe/CA%2BT0RPoTH4ORhm72XMH7uJoGV2P01b8iND-vk9AH%3DgGKh3dfGw%40mail.gmail.com.
 

Darci Lessinger

unread,
Jan 13, 2026, 1:52:50 PM (19 hours ago) Jan 13
to uni...@googlegroups.com
Salvo engano esta chave tem 50 posições

         1         2         3         4         5
12345678901234567890123456789012345678901234567890
33047062244505354000163000000000006126016089091851

ca...@bol.com.br

unread,
Jan 13, 2026, 2:30:34 PM (18 hours ago) Jan 13
to uni...@googlegroups.com, wan...@unimake.com.br
Olha o código em Visual Fox pro:


 DECLARE INTEGER ShellExecute IN shell32.dll ;
      INTEGER hndWin, ;
      STRING cAção, ;
      STRING cNomeArquivo, ;
      STRING cParams, ;  
      STRING cDir, ;
      INTEGER nShowWin

   TRY

      oExceptionInterop = CreateObject( "Unimake.Exceptions.ThrowHelper" )


     oUnidanfeConfiguration = CreateObject("Unimake.Unidanfe.Configurations.UnidanfeConfiguration")   
     oUnidanfeConfiguration.WaitProcess = .F.
     oUnidanfeConfiguration.Arquivo = "C:\Emporium\Versao27\NFSE\33047062244505354000163000000000006226010554943111.xml" 

     oUnidanfeConfiguration.Visualizar = .T.
     oUnidanfeConfiguration.Imprimir = .F.
     oUnidanfeConfiguration.EnviaEmail = .F.    

   * Disparar a impressao DANFe NFe
     oUnidanfeServices = CreateObject("Unimake.Unidanfe.UnidanfeServices")
     oUnidanfeServices.Execute(oUnidanfeConfiguration)   && Troquei para o nome do arquivo para 50 caracteres esta me retornando outro erro

     XML do tipo desconhecido

Conteudo do xml:

<DPS xmlns="http://www.sped.fazenda.gov.br/nfse" versao="1.01">
<infDPS Id="DPS330470624450535400016300900000000000000062">
<tpAmb>1</tpAmb>
<dhEmi>2026-01-13T14:35:44-03:00</dhEmi>
<verAplic>EmissorWeb_1.1.0.4</verAplic>
<serie>900</serie>
<nDPS>62</nDPS>
<dCompet>2026-01-13</dCompet>
<tpEmit>1</tpEmit>
<cLocEmi>3304706</cLocEmi>
<prest>
<CNPJ>44505354000163</CNPJ>
<regTrib>
<opSimpNac>2</opSimpNac>
<regEspTrib>0</regEspTrib>
</regTrib>
</prest>
<toma>
<CPF>00499349709</CPF>
<xNome>CAUBY VIEGAS OSORIO</xNome>
<end>
<endNac>
<cMun>3304706</cMun>
<CEP>28470000</CEP>
</endNac>
<xLgr>RUA MANAUS</xLgr>
<nro>123</nro>
<xBairro>ALPHAVILLE</xBairro>
</end>
</toma>
<serv>
<locPrest>
<cLocPrestacao>3304706</cLocPrestacao>
</locPrest>
<cServ>
<cTribNac>010101</cTribNac>
<xDescServ>Manutencao de Software</xDescServ>
<cNBS>115022000</cNBS>
</cServ>
</serv>
<valores>
<vServPrest>
<vServ>8.00</vServ>
</vServPrest>
<trib>
<tribMun>
<tribISSQN>1</tribISSQN>
<tpRetISSQN>1</tpRetISSQN>
</tribMun>
<totTrib>
<indTotTrib>0</indTotTrib>
</totTrib>
</trib>
</valores>
</infDPS>
</DPS>
é o que eu gera para enviar 
 
 

 

 

De: "Darci Lessinger" <aquar...@gmail.com>
Enviada: 2026/01/13 15:52:50
Para: uni...@googlegroups.com
Assunto: Re: [uninfe] Erro ao gerar DANF com a DLL
 
Salvo engano esta chave tem 50 posições
 
         1         2         3         4         5
12345678901234567890123456789012345678901234567890
33047062244505354000163000000000006126016089091851
 

 

--
Acompanhe nosso canal exclusivo de notícias do mundo fiscal e não perca nenhuma nota técnica:
https://whatsapp.com/channel/0029VaCYoen3gvWRRRbKve40
 
Conheça nossos outros fóruns/grupos de apoio:
 
No DISCORD: https://discord.gg/UwFPRxJp3N
No TELEGRAM: https://t.me/joinchat/Lly8_xQkn2NNi4yHN5aPqw
---
You received this message because you are subscribed to the Google Groups "UniNFe" group.
To unsubscribe from this group and stop receiving emails from it, send an email to uninfe+un...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/uninfe/CAOxpjY1NnNwG5ayTi_JXk-bKFgYFCd%2By91d2LQUii-_KUgqMxw%40mail.gmail.com.

ca...@bol.com.br

unread,
Jan 13, 2026, 2:56:46 PM (18 hours ago) Jan 13
to wan...@unimake.com.br, uni...@googlegroups.com
Oi Wandrey !
O problema é xml da NFse que eu gero a DLL do Unidanfe não reconhece ele.
Peguei uma nota venda renomeei para o nome da minha nota da NFSe gerou rapidinho
Obs: Programa esta em Visual Fox Pro
 
     oUnidanfeConfiguration = CreateObject("Unimake.Unidanfe.Configurations.UnidanfeConfiguration")   
     oUnidanfeConfiguration.WaitProcess = .F.
     oUnidanfeConfiguration.Arquivo = "C:\Emporium\Versao27\NFSE\33047062244505354000163000000000006226010554943111.xml" 
     oUnidanfeConfiguration.Visualizar = .T.
     oUnidanfeConfiguration.Imprimir = .F.
     oUnidanfeConfiguration.EnviaEmail = .F.    

Vou colocar o conteudo do XML da NFSe que envio e é gerada a NFSe
O que eu faço, é problema da DLL ?

 
 

Wandrey - Unimake

unread,
Jan 13, 2026, 3:02:26 PM (17 hours ago) Jan 13
to Cauby Osorio, UniNFe
Este e o XML do DPS, não é a nota.

Vc tem que enviar o DPS para Receita e pegar o retorno, no retorno tem a nota gerada pela receita, salve em um arquivo e é este que vc deve passar para o Unidanfe.

ca...@bol.com.br

unread,
Jan 13, 2026, 3:14:35 PM (17 hours ago) Jan 13
to Wandrey - Unimake, uni...@googlegroups.com
 
como pego esse retorno, poderia me informar aonde eu vejo essa rotina ?
 

 

 

De: "Wandrey - Unimake" <wan...@unimake.com.br>
Enviada: 2026/01/13 17:02:25
Para: ca...@bol.com.br
Cc: uni...@googlegroups.com
Assunto: Re: Erro ao gerar DANF com a DLL
 
Este e o XML do DPS, não é a nota.
 
Vc tem que enviar o DPS para Receita e pegar o retorno, no retorno tem a nota gerada pela receita, salve em um arquivo e é este que vc deve passar para o Unidanfe.
 
 
Em ter., 13 de jan. de 2026, 16:56, ca...@bol.com.br <ca...@bol.com.br> escreveu:

ca...@bol.com.br

unread,
Jan 13, 2026, 3:18:34 PM (17 hours ago) Jan 13
to uni...@googlegroups.com, uni...@googlegroups.com
Não sei como pego este retorno, poderia me falar aonde eu vejo essa rotina ?
Obrigado.
 


De: "Wandrey - Unimake" <wan...@unimake.com.br>
Enviada: 2026/01/13 17:02:27
Para: ca...@bol.com.br
Cc: uni...@googlegroups.com
Assunto: [uninfe] Re: Erro ao gerar DANF com a DLL
 
Este e o XML do DPS, não é a nota.
 
Vc tem que enviar o DPS para Receita e pegar o retorno, no retorno tem a nota gerada pela receita, salve em um arquivo e é este que vc deve passar para o Unidanfe.
 
 
Em ter., 13 de jan. de 2026, 16:56, ca...@bol.com.br <ca...@bol.com.br> escreveu:

 

--

Acompanhe nosso canal exclusivo de notícias do mundo fiscal e não perca nenhuma nota técnica:
https://whatsapp.com/channel/0029VaCYoen3gvWRRRbKve40
 
Conheça nossos outros fóruns/grupos de apoio:
 
No DISCORD: https://discord.gg/UwFPRxJp3N
No TELEGRAM: https://t.me/joinchat/Lly8_xQkn2NNi4yHN5aPqw
---
You received this message because you are subscribed to the Google Groups "UniNFe" group.
To unsubscribe from this group and stop receiving emails from it, send an email to uninfe+un...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/uninfe/CA%2BT0RPqHqkQT81gU_Z%3DTL5mP76T5%2B94EkUe%2BiRSQS%2BYXgHQpEA%40mail.gmail.com.
 

Wandrey - Unimake

unread,
Jan 13, 2026, 3:32:09 PM (17 hours ago) Jan 13
to uni...@googlegroups.com
Na hora que vc faz o envio da nota chamando o método GerarNfse.Executar vc tem que pegar o retorno assim, veja principalmente partes em vermelho:

* Criar objeto de configuração mínima
oConfiguracao = CreateObject( "Unimake.Business.DFe.Servicos.Configuracao" )
oConfiguracao.TipoDFe            = 5          && 5 = NFSe
oConfiguracao.CertificadoArquivo = "D:\projetos\certificados\DosClientes\nfse_nacional_d29m05sa.pfx"
oConfiguracao.CertificadoSenha   = "d29m05sa"
oConfiguracao.CodigoMunicipio    = 1001058    && Padrão Nacional
oConfiguracao.TipoAmbiente       = 2          && Homologacao
oConfiguracao.Servico            = 27         && NFSeGerarNFSe
oConfiguracao.SchemaVersao       = "1.00"

* Ler a string do XML
cArqXML = "D:\testenfe\nfse_envio_95664.xml"
cXML    = STRTRAN( ;
 STRTRAN( ;
STRTRAN(FILETOSTR(cArqXML), CHR(13), ""), ; && remove CR
 CHR(10), ""), ;                              && remove LF
CHR(9), "")                                    && remove TAB

* Criar serviço de geração de NFSe
oGerarNFSe = CreateObject( "Unimake.Business.DFe.Servicos.NFSe.GerarNfse" )

* Em xHarbour normalmente podemos passar o objeto de configuração direto
oGerarNFSe.Executar( cXML, oConfiguracao )

* Gravar o xml assinado
notaAssinada = oGerarNFSe.GetConteudoXMLAssinado()
MESSAGEBOX(notaAssinada) && Demonstrar o XML da nota assinada na tela

DELETE FILE "d:\testenfe\nfsenacional.xml"
StrToFile(notaAssinada, "d:\testenfe\nfsenacional.xml", 0)  

* Gravar retorno do ambiente nacional
DELETE FILE "d:\testenfe\nfsenacional_retorno.xml"
StrToFile(oGerarNFSe.RetornoWSString, "d:\testenfe\nfsenacional_retorno.xml", 0)   


Nele vai ter o XML da nota gerada pela receita.

Agora, outra forma é vc consultar a chave da NFSe gerada para pegar o XML da NFSe tbm, algo assim:

FUNCTION NACIONALConsultarNFSe()
   LOCAL oConfiguracao
   LOCAL oConsultarNfse
   LOCAL oExceptionInterop
   LOCAL cXML
   LOCAL oErro

 * Criar objeto para pegar exceção do lado do C#

   oExceptionInterop = CreateObject( "Unimake.Exceptions.ThrowHelper" )

   TRY
      oConfiguracao = CreateObject( "Unimake.Business.DFe.Servicos.Configuracao" )
      oConfiguracao.TipoDFe            = 5          && 5 = NFSe
      oConfiguracao.CertificadoArquivo = "D:\projetos\certificados\DosClientes\nfse_nacional_d29m05sa.pfx"
      oConfiguracao.CertificadoSenha   = "d29m05sa"
      oConfiguracao.CodigoMunicipio    = 1001058    && Padrão Nacional
      oConfiguracao.TipoAmbiente       = 2          && Homologacao
      oConfiguracao.Servico            = 32         && NFSeConsultarNfse
      oConfiguracao.SchemaVersao       = "1.00"

      cXML = '<?xml version="1.0" encoding="utf-8"?>'
      cXML = cXML + '<NFSe versao="1.00" xmlns="http://www.sped.fazenda.gov.br/nfse">'
      cXML = cXML + ' <infNFSe Id="NFS42046082222441399000189000000000000125110511831204"/>'
      cXML = cXML + '</NFSe>'
     
      oConsultarNfse = CreateObject("Unimake.Business.DFe.Servicos.NFSe.ConsultarNfse")
      oConsultarNfse.Executar(cXML, oConfiguracao)

      MESSAGEBOX("XML retornado pela prefeitura:" + oConsultarNfse.RetornoWSString)

    * Gravar retorno do ambiente nacional
      DELETE FILE "d:\testenfe\nfsenacional_retornoconsultanfse.xml"
 StrToFile(oConsultarNfse.RetornoWSString, "d:\testenfe\nfsenacional_retornoconsultanfe.xml", 0)  
   

   CATCH TO oErro
    * Excecao do FOXPRO
* Mais sobre excecao em FOXPRO
* http://www.yaldex.com/fox_pro_tutorial/html/2344b71b-14c0-4125-b001-b5fbb7bd1f05.htm

 MessageBox("FOXPRO - ErrorCode: " + ALLTRIM(STR(oErro.ErrorNo,10))+ " - Message: " + oErro.Message)
 
    * Excecao do CSHARP

      MessageBox("CSHARP - ErrorCode: " + ALLTRIM(STR(oExceptionInterop.GetErrorCode(),20)) + " - Message: " + oExceptionInterop.GetMessage())
   ENDTRY
RETURN


Reply all
Reply to author
Forward
0 new messages