Manuais:UniDANFE/Integrando o UniDANFE ao ERP/MetodosDLL
UniDANFE - Impressão e distribuição de Documentos Fiscais Eletrônicos
Home | Suporte | Download | Sobre
Métodos da UNIDANFE_DFE.DLL
Essa é a forma mais elegante que os sistemas ERP usarão para gerar o Documento Auxiliar.
A UNIDANFE_DFE.DLL deve ser linkada ao sistema ERP, que fará a integração utilizando o conjunto de métodos disponíveis na biblioteca.
| Método | Parâmetros | Descrição | Exemplos | Retorno |
|---|---|---|---|---|
| DFEINIT | (STRING Ação)
Ação a ser executada. |
Inicializa a ação. Válidos:
|
dfeInit("dfe")
dfeInit("configurar") dfeInit("emails") dfeInit("licencas") dfeInit("download_licenca") dfeInit("exportarconfiguracao")
|
|
| DFESETPARAMETRO | (STRING Parâmetro, STRING Valor)
Parâmetro: nome ou abreviação do parâmetro a ser passado ao UniDANFE. Idênticos aos usados na integração via chamadas (RUN) ao UniDANFE.exe. Valor: valor do parâmetro Nota: no caso do parâmetro "arquivo", pode-se passar o conteúdo do XML ao invés do nome do arquivo. |
Passa os parâmetros de geração, impressão e distribuição do DFE.
Deve-se escrever uma chamada à esse método para cada parâmetro a ser enviado. |
dfeSetParametro("arquivo", "c:\Unimake\Uninfe\0101010101010101010101-procNFe.xml")
dfeSetParametro("arquivo", "<?xml version="1.0"?><nfeProc><NFe><infNFe><ide><cUF>31</cUF>...</nfeProc>") dfeSetParametro("imprimir", "0") dfeSetParametro("copias", "2") dfeSetParametro("email", "[email protected]") dfeSetParametro("chave", "999-123456-0") |
|
| DFEEXECUTA | Executa a ação.
Esse método deve ser chamado após a passagem de todos os parâmetros. |
dfeSetParametro('arquivo', 'meuarquivo.xml')
dfeExecuta() |
||
| DFEGETERRO | Retorna o erro ocorrido na geração, ou em branco se tudo correu bem.
Nota: se não for possível ler o retorno desse método, utilizar a forma de leitura de erros em arquivo. Para isso, enviar os parâmetros: dfeSetParametro("saidaerros", "A") -> desvia a saída de erros para arquivo dfeSetParametro("arquivoerro", arquivo) -> define o arquivo de erros que deverá ser criado caso algum erro aconteça. |
dfeExecuta()
IF dfeGetErro() = ""
MESSAGE("O documento auxiliar foi gerado com sucesso!")
ELSE
MESSAGE(dfeGetErro())
END
|
STRING
| |
| DFEKILL | Finaliza a ação, liberando a memória utilizada. | dfeKill() |
Exemplos:
- Gerar documento auxiliar:
dfeInit("dfe")
dfeSetParametro("pastaconfiguracao", "c:\uninfe\unidanfe") ##------- pasta onde a pasta "dados" do UniDANFE se encontra
dfeSetParametro("arquivo", "c:\Unimake\Uninfe\0101010101010101010101-procNFe.xml")
dfeSetParametro("logotipo", "c:\Unimake\Uninfe\minha-logo.png")
dfeSetParametro("imprimir", "1")
dfeSetParametro("impressora", "Samsung SL-M4080FX")
dfeSetParametro("visualizar", "0")
dfeSetParametro("copias", "2")
dfeSetParametro("saida_erros", "N") ##------- Nenhum erro será gerado na tela ou em arquivo. Vamos pegá-lo usando o método dfeGetErro()
dfeSetParametro("email", "[email protected]")
dfeExecuta()
IF dfeGetErro() = ""
MESSAGE("O documento auxiliar foi gerado com sucesso!")
ELSE
MESSAGE(dfeGetErro())
END
dfeKill()
- Imprimir mensagem ou aviso ao contribuinte, no DANFE-COM:
dfeInit("dfe")
dfeSetParametro("arquivo", "c:\Unimake\Uninfe\0101010101010101010101-procNFCom.xml")
dfeSetParametro("mensagemContribuinte", "PREZADO CONTRIBUINTE: HÁ PENDENCIAS FINANCEIRAS. POR FAVOR ENTRE EM CONTATO PARA REGULARIZAR SEUS DÉBITOS - 0800-123-4567")
dfeExecuta()
IF dfeGetErro() = ""
MESSAGE("O documento auxiliar foi gerado com sucesso!")
ELSE
MESSAGE(dfeGetErro())
END
dfeKill()
Veja como imprimir essa mensagem usando o XML Auxiliar
- Imprimir o Detalhamento Adicional no DANFE-COM:
dfeInit("dfe")
dfeSetParametro("arquivo", "c:\Unimake\Uninfe\0101010101010101010101-procNFCom.xml")
// Define o título do quadro
dfeSetParametro('DetAd:Titulo', 'DETALHAMENTO ADICIONAL DA FATURA DE TELECOMUNICAÇÕES')
// Define os cabeçalhos das colunas do detalhamento. Ex: 5 colunas de dados.
dfeSetParametro('DetAd:Header', 'titulo="Descrição" alinhamento="E"') // Alinhamento: válidos: E, C, D (esquerda, centralizado, direita)
dfeSetParametro('DetAd:Header', 'titulo="Unidade" alinhamento="C"')
dfeSetParametro('DetAd:Header', 'titulo="Quantidade" alinhamento="D"')
dfeSetParametro('DetAd:Header', 'titulo="V.Unitário" alinhamento="D"')
dfeSetParametro('DetAd:Header', 'titulo="Valor Total" alinhamento="D"')
// Itens do detalhamento. Para cada linha, enviar um parâmetro "DetAd:Detail:Row". Depois, enviar um "DetAd:Detail" para cada coluna do detalhamento, já formatado. O UniDANFE não fará qualquer formatação aqui.
dfeSetParametro('DetAd:Detail:Row', '1') !Inicia uma nova linha de dados
dfeSetParametro('DetAd:Detail', 'valor="Lorem ipsum dolor sit amet, consectetur adipiscing elit"')
dfeSetParametro('DetAd:Detail', 'valor="UN"')
dfeSetParametro('DetAd:Detail', 'valor="100"')
dfeSetParametro('DetAd:Detail', 'valor="12,98"')
dfeSetParametro('DetAd:Detail', 'valor="1.298,00"')
dfeSetParametro('DetAd:Detail:Row', '2') !Inicia uma nova linha de dados
dfeSetParametro('DetAd:Detail', 'valor="De Finibus Bonorum et Malorum"')
dfeSetParametro('DetAd:Detail', 'valor="PC"')
dfeSetParametro('DetAd:Detail', 'valor="10"')
dfeSetParametro('DetAd:Detail', 'valor="12,98"')
dfeSetParametro('DetAd:Detail', 'valor="129,80"')
dfeSetParametro('DetAd:Detail:Row', '3') !Inicia uma nova linha de dados
dfeSetParametro('DetAd:Detail', 'valor="Lorem ipsum dolor sit amet"')
dfeSetParametro('DetAd:Detail', 'valor="KG"')
dfeSetParametro('DetAd:Detail', 'valor="1"')
dfeSetParametro('DetAd:Detail', 'valor="12,98"')
dfeSetParametro('DetAd:Detail', 'valor="12,98"')
dfeSetParametro('DetAd:Detail:Row', '4') !Inicia uma nova linha de dados
dfeSetParametro('DetAd:Detail', 'valor="At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium"')
dfeSetParametro('DetAd:Detail', 'valor="MM"')
dfeSetParametro('DetAd:Detail', 'valor="1.000"')
dfeSetParametro('DetAd:Detail', 'valor="12,98"')
dfeSetParametro('DetAd:Detail', 'valor="12.980,00"')
!Opcional. Totalizar o detalhamento.
dfeSetParametro('DetAd:Footer', 'valor="TOTAL"')
dfeSetParametro('DetAd:Footer', 'valor=""')
dfeSetParametro('DetAd:Footer', 'valor=""')
dfeSetParametro('DetAd:Footer', 'valor=""')
dfeSetParametro('DetAd:Footer', 'valor="14.420,78"')
dfeExecuta()
IF dfeGetErro() = ""
MESSAGE("O documento auxiliar foi gerado com sucesso!")
ELSE
MESSAGE(dfeGetErro())
END
dfeKill()
Veja como gerar esse detalhamento usando o XML Auxiliar
- Exibir a interface de configuração do UniDANFE:
dfeInit("configurar")
dfeExecuta()
dfeKill()
- Exibir a interface de e-mails enviados:
dfeInit("emails")
dfeExecuta()
dfeKill()
- Enviar os e-mails da pasta "A Enviar":
dfeInit("envia_email")
dfeExecuta()
dfeKill()
- Exibir a interface de gerenciamento de licenças:
dfeInit("licencas")
dfeExecuta()
dfeKill()
- Fazer o download de uma licença pela chave:
dfeInit("download_licenca")
dfeSetParametro("chavelicenca", "000-123456-0") // passa a chave da licença para a classe
dfeSetParametro("msg", "0") // 0=Não exibir mensagens em tela 1=Exibir
dfeExecuta()
dfeKill()
- Exportar todas as configurações do UniDANFE:
dfeInit("exportarconfiguracao")
dfeExecuta()
dfeKill()
=> c:\unidanfe\tmp\UniDANFE_config.xml
- Consultar as contas de e-mail cadastradas no UniDANFE:
dfeInit("info")
totalContas = dfeGetParametro("TotalContasEmail") // Retorna o número total de contas cadastradas
contaPadrao = dfeGetParametro("ContaEmailPadrao") // Retorna um XML com as informações da conta de e-mail padrão
contasEmail = dfeGetParametro("ContasEmail") // Retorna um XML com as informações de todas as contas de e-mail cadastradas
dfeKill()
Formato do XML retornardo para "ContaEmailPadrao" e "ContasEmail":
- Sucesso:
<?xml version="1.0" encoding="iso-8859-1"?>
<info>
<contaEmail id="id_da_conta">
<email>string, email do remetente</email>
<conta>string, nome da conta</conta>
<nome>string, nome completo do remetente</nome>
<apelido>string, nome curto do remetente</apelido>
<padrao>string, 'Sim' se este for o remetente padrão</padrao>
<enderecoResposta>string, e-mail para onde as respostas devem ser enviadas</enderecoResposta>
<servidorSMTP>string, nome do servidor SMTP</servidorSMTP>
<portaSMTP>int, porta SMTP</portaSMTP>
<autenticarSMTP>bool, 1=sim 0=não</autenticarSMTP>
<servidorPOP>string, nome do servidor POP3</servidorPOP>
<portaPOP>int, porta POP</portaPOP>
</contaEmail>
<contaEmail id="id_da_conta">
...
</contaEmail>
</info>
- Erro:
<?xml version="1.0" encoding="iso-8859-1"?>
<info>
<erro>string, mensagem de erro</erro>
</info>
32/64 bits
A linguagem de programação utilizada na criação do UniDANFE ainda não dispõe de compilação para 64 bits. Por enquanto apenas a versão 32 bits da DLL está disponível.