Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2177 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Olá,

estou com alguns problemas/dúvidas quanto ao componente ACBr, e se for possível queria compartilhar com vocês meu problema para que possa chegar a uma solução da melhor forma possível, vou detalhar-lhes meu caso:

 

No momento levo uma estrutura separada de emissão de notas, por exemplo:
Geramos um script de Nota Fiscal XML, a mesma é interpretada e depois exportada... Neste meio caminho precisaria que a mesma fosse assinada para a importação no sistema da Prefeitura de meu cliente.

1. É possível utilizar a plataforma ACBr apenas para assinatura ?
2. Alguém teria um exemplo simples de assinatura de Nota, que seja somente assinatura, sem encargos de outros campos XMLs ?

 

Estou estudando o componente e verifiquei que existem vários casos onde o mesmo especifica XML e Certificado, Assina, Valida, e após isso Exporta. Fiz alguns procedimentos como:

 

- Passar o arquivo XML;

- Setar o Certificado/Senha;

- Exportar(exporta um arquivo XML sem nenhum campo, apenas com o "Header").

 

Talvez falte um pouco de conhecimento quanto ao componente, até porque pelo que verifiquei será necessário especificar a cidade e  o provedor para que possa ser validado...

 

Não será necessário utilização de WebService para o procedimento, pois no final das contas preciso apenas desse XML assinado.

 

Obrigado!

 

Eduardo Barbiero.

  • Consultores
Postado

Bom dia Eduardo,

 

Pelo que entendi a sua aplicação já gera o XML do RPS, correto?

 

Pois bem, sem entrar no mérito do porque de tudo isso, em vez de utilizar o componente para fazer tudo, vamos ao que possa ser uma solução:

 

1. Configurar o componente para a cidade desejada;

2. Executar o LoadFromFile para ler o XML gerado pela sua aplicação;

3. Executar o Assinar;

4. Executar o SaveToFile para gravar o XML assinado;

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado (editado)

Olá Italo, obrigado pela resposta,

 

utilizamos dessa forma pela pouca demanda e manutenção que temos quanto as Notas Fiscais de Serviço, mas enfim...

 

A cidade de Gramado "Cod IBGE. 4309100" não está sendo aceita pelo componente, preciso fazer alguma alteração quanto a isso ? testei com uma cidade de uma pessoa aqui do fórum do mesmo provedor(Betha) e o mesmo funciona corretamente.

 

Mais uma vez obrigado, vai ser mais simples do que eu imaginava, ACBr foi muito bem estruturado!

Editado por eduardoyoungarts
  • Consultores
Postado

Boa tarde Eduardo,

 

É preciso saber qual é o provedor que atende a cidade de Gramado, alem disso se o mesmo for um provedor ainda não implementado no componente, precisamos saber se o mesmo segue ou não o padrão ABRASF.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Boa tarde Eduardo,

 

É preciso saber qual é o provedor que atende a cidade de Gramado, alem disso se o mesmo for um provedor ainda não implementado no componente, precisamos saber se o mesmo segue ou não o padrão ABRASF.

De Gramado-RS é da Betha Sistemas(Fly e-Nota).

Postado

Bom dia Eduardo,

 

Pelo que entendi a sua aplicação já gera o XML do RPS, correto?

 

Pois bem, sem entrar no mérito do porque de tudo isso, em vez de utilizar o componente para fazer tudo, vamos ao que possa ser uma solução:

 

1. Configurar o componente para a cidade desejada;

2. Executar o LoadFromFile para ler o XML gerado pela sua aplicação;

3. Executar o Assinar;

4. Executar o SaveToFile para gravar o XML assinado;

Italo, fiz os procedimentos que foram listados por você, e o que aconteceu foi o seguinte.

Fiz uma configuração de uma cidade qualquer que também seja provedor da Betha(encontrei em um dos tópicos já criado aqui), pelo fato de Gramado não estar disponível no componente. Até então tudo certo.

 

Porém, quando se é passado do XML via LoadFromFile, e após isso assinado, ele remove todos os valores do meu XML, retornando um XMLvazio.

  ACBrNFSe1.NotasFiscais.LoadFromFile(sArquivo);
  MemoProgresso.Lines.Add('Assinando Arquivo...');
  ACBrNFSe1.NotasFiscais.Assinar;
  ACBrNFSe1.NotasFiscais.Valida; 
  ACBrNFse1.NotasFiscais.SaveToFile;

Ele gera assinatura toda correta, validando no site da receita e tudo porém, quando é feita a validação o mesmo estoura em vários pontos, pelo fato do XML estar com os campos vazios.

 

Você já passou por algo parecido ? ou falta alguma etapa que estou esquecendo de efetuar ?

 

Obrigado pela atenção!

Postado

Isso geramos o XML o RPS.

 

Eu faço o seguinte, eu emito XML do RPS pelo nosso sistema, com base nisso, criei uma outra aplicação só para receber esse XML e assinar com o componente, isso é possível correto ?

Porém acontece isso que lhe detalhei acima... o mesmo não somente assina, ele gera um XML novo só que com os campos novos...

 

Será que pode ser configuração de Cidade ?

 

Antes de Assinar eu faço o seguinte.

  ACBrNFSe1.Configuracoes.Certificados.SelecionarCertificado;
  ACBrNFSe1.Configuracoes.Geral.PathSchemas := IncludeTrailingBackslash(ExtractFilePath(Application.ExeName)) + 'Schemas\Betha';
  ACBrNFSe1.Configuracoes.WebServices.SetConfigMunicipio(ACBrNFSe1.Configuracoes.Geral.PathSchemas); //estou utilizando para testes a cidade de Laguna - 4209409

Obrigado!

Postado

Conforme específicado neste tópico,  a cidade de Laguna já foi inserida... a que estou precisando é para Gramado, mais até que não seja feita a inserção, estou testando com essa cidade...

Eu estava verificando que quando a cidade não existia ele dava um alerta que a mesma não estava cadastrada... porém agora com Laguna não acontece, então não deve ser isso...

 

Esse problema na cidade que falei pra você, pode ser alguma configuração do componente que eu esteja colocando errado... alguma especifica para RPS...

Postado

Italo, efetuei vários testes e até mesmo fiz algumas modificações(apenas chamadas, nada que afetasse no funcionamento) no componente, adequando a minha necessidade, porém estou com alguns problemas. Podem não ser problemas, apenas falta de conhecimento no componente/procedimentos.

 

Utilizava a função Assinar de Notas Fiscais porém o mesmo gerava um novo RPS seguindo do modelo disponível, fazendo com que as informações passadas pelo meu XML não fossem mais encontradas, e há um detalhe, essa assinatura gerada no novo RPS criado, é aceita pelo site da receita, enfim. 

 

Criei uma função que passa os valores diretamente para dentro da Alimentadora da Assinatura(AssinarMSXML), com os parâmetros necessários para essa assinatura, e por fim, retornando o mesmo assinado. Porém o mesmo não é validado no site da receita, e não é validado pela Betha, tras as informações de Certificado Inválido.

 

Tenho alguns pontos que podem ajudar talvez na resolução do problema:

 

- Pesquisei quanto ao campo "DigestValue" e o mesmo muda conforme o XML gerado;

- Campo "SignatureValue", não consegui identificar, porém ele também altera conforme assino meu XML;

- Campo "X509Certificate" não altera entre os mesmos.

 

Ou seja, utilizando conforme proposto, a função Assinar, gera o um novo RPS. Utilizando a função AssinarMSXL diretamente, ela assina meu XML porém não é validado.

 

Tens algo em mente do que pode ser ?

 

Obrigado!

  • Consultores
Postado

Boa tarde Eduardo,

 

No caso da NFS-e não podemos montar uma rotina semelhante a da NF-e.

 

Você deve alimentar o componente com os dados do RPS e em seguida executar o Enviar.

 

Deixe que o componente se encarregue de fazer o resto.

 

Só para você ter uma ideia, no caso da NF-e efetuamos a validação de cada nota que vai fazer parte do lote, por outro lado na NFS-e, realizamos a validação do lote de RPS e não de cada RPS.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Italo o que procede no momento, quando efetuo uma Assinatura de Lote, o mesmo em certo ponto remove o valor do meu XML deixando apenas a assinatura.

 

Vou te detalhar em qual momento ocorre isso.

 AXML := copy(AXML, 1, pos('</'+ APrefixo3 + EnviarLoteRps + '>', AXML) - 1); //Neste momento o copy retorna '' -> vazio

Após isso o passo de assinatura e feito, porém o XML é perdido neste ponto... vou tentar resolver e caso consiga, volto a falar aqui... ou se for possível, poderias testar para mim ?

 

Posso lhe passar o XML da Betha para testar...

  • 2 semanas depois ...
  • 3 anos depois...
Postado
Em 29/10/2014 at 14:42, eduardoyoungarts disse:

Meu problema quanto a Betha foi resolvido.

 

Obrigado pessoal pela força e boa sorte!

Resolveu como meu caro?

 

  • 6 meses depois ...
  • Administradores
Postado

Boa tarde.

Este tópico está inativo a algum tempo e por isso será fechado, caso necessário favor criar um novo tópico.

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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á 2177 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.

The popup will be closed in 10 segundos...