Ir para conteúdo
  • Cadastre-se

dev botao

DistribuiçãoDFe C#


Ver Solução Respondido por Diego Foliene,
  • Este tópico foi criado há 212 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

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.

  • Consultores
  • Solution
Postado

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

  • Membros Pro
Postado

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);
  • Consultores
Postado
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 !!

  • Consultores
Postado

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

  • Este tópico foi criado há 212 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.