Ir para conteúdo
  • Cadastre-se

dev botao

DistribuiçãoDFe C#


Ver Solução Respondido por Diego Foliene,

Recommended Posts

  • Membros Pro

Bom dia,

Como faço para receber o retorno dos XML's quando faço a consulta pelo último NSU? Nos exemplos do ACBr e também no curso do ACBrPro é mostrado como fazer a consulta, mas não como carregar os resultados (caso sejam XML's completos ou não). Na LIB, por exemplo, tem um método para carregar um xml e ele carrega em uma classe predefinida, mas no caso da distribuição DFE não encontrei nenhum exemplo de como carregar em um objeto o retorno da consulta.

Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

Bom dia!

Não sei se entendi a sua dúvida.

Você está querendo saber se é possível carregar um XML de retorno de uma consulta de distribuição DFe na Lib para que ela leia a informação do arquivo e devolva o resultado?

Caso seja está a questão, sim, é possível, para isso você vai utilizar o comando NFe_DistribuicaoDFe.

Veja que um dos parâmetros do mesmo é um arquivo XML.

Você pode informar nele o arquivo de resposta da distribuição para que a Lib possa fazer a leitura.

Isso é demonstrado no exemplo em C#:

private void btnDFePorUltNSU_Click(object sender, EventArgs e)
{
    var codUf = 35;
    var cnpj = "";
    var eNsu = "";
    var ArquivoOuXml = Helpers.OpenFile("Arquivos Distribuição DFe (*-dist-dfe.xml)|*-dist-dfe.xml|Todos os Arquivos (*.*)|*.*",
                                        "Selecione um Arquivo de Distribuição para simular uma consulta ou feche para consultar o WebService");

    if (string.IsNullOrEmpty(ArquivoOuXml))
    {
        if (InputBox.Show("WebServices: Distribuição DFe", "Código da UF", ref codUf) != DialogResult.OK) return;
        if (InputBox.Show("WebServices: Distribuição DFe", "CNPJ do autor", ref cnpj) != DialogResult.OK) return;
        if (InputBox.Show("WebServices: Distribuição DFe", "Número do último NSU", ref eNsu) != DialogResult.OK) return;
    }

    var ret = ACBrNFe.DistribuicaoDFe(codUf, cnpj, eNsu, ArquivoOuXml);
    rtbRespostas.AppendText(ret.Resposta);
}

 

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Boa tarde Diego, obrigado pelo retorno!

Vou esclarecer melhor:

Nesse exemplo, o que acontece é que o xml é colado como texto. Mas eu queria saber se existe um objeto(classe) para armazenar esse retorno. Ainda mais que podem vir vários xmls em uma mesma conexão, sendo que uns são completos e outros são parciais. Vou colocar um exemplo:

public class NotaFiscal

{

propriedade

propriedade

propriedade

...

}

seria algo como abaixo. A consulta já carregaria uma lista de objetos, os quais poderiam ser lidos/manipulados e não como demonstra o exemplo, que lê como texto.

List<NotaFiscal> notasFiscais = ACBrNFe.DistribuicaoDFe(codUf, cnpj, eNsu, ArquivoOuXml);
Link para o comentário
Compartilhar em outros sites

  • Consultores
3 horas atrás, Gandalf disse:

Boa tarde Diego, obrigado pelo retorno!

Vou esclarecer melhor:

Nesse exemplo, o que acontece é que o xml é colado como texto. Mas eu queria saber se existe um objeto(classe) para armazenar esse retorno. Ainda mais que podem vir vários xmls em uma mesma conexão, sendo que uns são completos e outros são parciais. Vou colocar um exemplo:

public class NotaFiscal

{

propriedade

propriedade

propriedade

...

}

seria algo como abaixo. A consulta já carregaria uma lista de objetos, os quais poderiam ser lidos/manipulados e não como demonstra o exemplo, que lê como texto.

List<NotaFiscal> notasFiscais = ACBrNFe.DistribuicaoDFe(codUf, cnpj, eNsu, ArquivoOuXml);

Boa tarde!

O exemplo pega o retorno como uma string, mas se você abrir o método, vai ver que é uma classe.

image.png

  • Curtir 1
Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

  • Consultores

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

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.