Jump to content

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png click.png click.png

FelipeMitt

Membros
  • Posts

    31
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

FelipeMitt's Achievements

Explorer

Explorer (4/14)

  • Dedicated Rare
  • Collaborator Rare
  • First Post
  • Week One Done
  • One Month Later

Recent Badges

2

Reputation

  1. Bom dia Italo. Blz, irei fazer testes aqui. Mais uma vez obrigado aí pela força.
  2. Blz Italo. Vou tentar. Só uma coisa ... no caso do meu xml externo, ele deve ter apenas as tags <RPS>...</RPS>, fora os itens q tem dentro dele e, apenas 1 RPS por arquivo xml. É isso né ?
  3. Boa tarde Italo. Então, pelo menos por enquanto eu não posso mexer no código que gera o xml na aplicação da empresa onde trabalho. Por agora, realmente eu tenho que apenas assinar o xml. Sobre a sua explicação, no post anterior, eu concordo, e irei realizar essa implementação sim, mas futuramente. Prq como o código não fui eu quem desenvolveu (só fiz algumas melhorias), eu não posso simplesmente removê-lo e começar outro do zero. Realmente, não tem hoje, uma forma de eu usar o componente ACBrNFSeX apenas para assinar um xml gerado externamente à acbr ?
  4. Bom dia Italo. O xml é a aplicação que gera, fora da biblioteca acbr. "Porque você gera o XML do Rps para depois carregar o mesmo e por fim gerar o Lote?" Na verdade eu gero o arquivo completo (não assinado), esse exemplo que te passei, foi só para ver se eu ia conseguir carregar os rps pelo LoadFromLoteNfse mas, msm com o xml apenas com os RPSs tmb não funcionou. "Em vez de gerar o lote e acessar o site do provedor para importar o mesmo, porque não utiliza o método Emitir que já envia para o webservice do provedor? " Prq dessa forma eu vou ter q reescrever o meu código todo, alimentando o componente (como é feito naquela função AlimentarNFSe). Para eu usar tanto a função GerarLote ou a Emitir eu precisaria alimentar todas aquelas propriedades do componente ACBrNFSeX. E eu sei que preciso fazer isso mas, queria fazer com o arquivo xml q eu já tenho ao invés de reescrever a rotina para gerar os RPSs. Segue em anexo o arquivo xml (real) que a minha aplicação gera. Repare q não está assinado mas, está completinho, com todas as informações necessárias para ser enviado a prefeitura. P.S. Eu posso sim e vou, utilizar a função Emitir para enviar o xml para a prefeitura mas, preciso antes alimentar o componente ACBrNFSeX com os RPSs do meu arquivo xml. 4427_Original.xml
  5. Boa noite Italo. Por enquanto sem sucesso. Tanto com a função LoadFromLoteNfse, quanto com a função LoadFromFile ocorrem erros e o arquivo xml assinado não é gerado. Com a função LoadFromLoteNfse, o código ficou assim: . . . ACBrNFSeX1.NotasFiscais.Clear; ACBrNFSeX1.NotasFiscais.LoadFromLoteNfse('F:\Raiz\Arquivos\eNotasFiscais\4427.xml'); ACBrNFSeX1.GerarLote('4427'); ChecarResposta(tmGerarLote); Já com a função LoadFromFile, o código ficou assim: . . . ACBrNFSeX1.NotasFiscais.Clear; ACBrNFSeX1.NotasFiscais.LoadFromFile('F:\Raiz\Arquivos\eNotasFiscais\4427.xml'); ACBrNFSeX1.GerarLote('4427'); ChecarResposta(tmGerarLote); Lembrando que esse código está dentro do evento onclick do botão 'Gerar Lote RPS' do exemplo do componente ACBrNFSeX1. Segue em anexo os erros apresentados no uso de cada função e também, o xml que estou tentando importar. P.S. Provável que a estrutura do xml que eu estou enviando está diferente da estrutura esperada pelas funções LoadFromLoteNfse e LoadFromFile. Mas eu não sei que estrutura seria essa. Preciso do auxílio de vocês para descobrir o xml ideal a ser importado. 4427.xml
  6. Boa tarde Italo. Sobre o certificado, o problema é o q eu estou usando pois, ele está vencido ... estou providenciando um certificado atual. Sobre o xml, eu vou fazer o seguinte ... como teste ... eu vou remover tudo do meu xml e deixar apenas as tags de rps, e em seguida vou carregar o xml novamente com a função LoadFromLoteNfse. Em seguida vou preencher as tags de cabeçalho através do componente e tentar gerar o lote novamente. Assim q testar eu envio aqui os resultados.
  7. Oi Italo. Bom dia. Testei o envio do lote pelos botões 'Emitir Nota (Novo)' e 'Enviar Lote RPS (Síncrono)', os dois deram erro pois o certificado que tenho para testes, está vencido. Estou verificando aqui com o pessoal da minha empresa para conseguir um certificado atual. O que posso adiantar é que o ''Enviar Lote RPS (Síncrono)' apesar de não ter enviado o lote tmb gerou um xml assinado. Muito bom. Estou usando, na aba Web Services o ambiente de homologação e escolhi em SSLType o tipo LT_SSLv2. Os demais campos não preenchi, a princípio não vi a necessidade de preencher esses campos, uma vez que no manual da prefeitura, nada é mencionado em relação a usuários e senhas. Agora, eu volto na dúvida que me fez criar esse post, dei essa volta toda (e tive q dar para aprender a entender melhor o componente) pois estava usando o componente ACBrNFSe e o Juliomar (em resposta a esse post) me disse para utilizar o novo componente ACBrNFSeX pois, o antigo já não possuía mais suporte. Enfim ... Como eu já tenho uma rotina que gera o xml (e comparando com o xml gerado pelo ACBrNFSeX, através do botão 'Gerar Lote RPS' é exatamente o mesmo, a diferença está nos valores e o meu xml não está assinado), eu precisava apenas de assinar esse xml. Dessa forma, já com uma experiência no uso do componente ACBrNFSeX eu tentei carregar o meu xml e em seguida utilizo a função 'GerarLote' porém ocorrem erros mas não consegui descobrir o motivo do erro. Pode me auxiliar ? O código que estou tentando gerar a assinatura é esse: // ************************************************************************** // // A function GerarLote apenas gera o XML do lote, assina se necessário // e valida, salvando o arquivo com o nome: <lote>-lot-rps.xml na pasta Ger // Não ocorre o envio para nenhum webservice. // // ************************************************************************** vNumLote := ''; if not(InputQuery('Gerar e Enviar Lote', 'Numero do Lote', vNumLote)) then exit; vNumRPS := vNumLote; if not(InputQuery('Gerar e Enviar Lote', 'Numero do RPS', vNumRPS)) then exit; ACBrNFSeX1.NotasFiscais.Clear; //AlimentarNFSe(vNumRPS, vNumLote); ACBrNFSeX1.NotasFiscais.LoadFromLoteNfse('F:\Raiz\Arquivos\eNotasFiscais\4427.xml'); //ACBrNFSeX1.GerarLote(vNumLote); ACBrNFSeX1.GerarLote('4427'); ChecarResposta(tmGerarLote); Diz (no memo) que nenhum RPS foi adicionado ao componente ou ao lote ... enfim, pelo o q entendi, a função LoadFromLoteNfse não carregou corretamente os RPSs dentro do componente ACBrNFSeX. Segue em anexo o print da aba Web Serices, o print do erro de não conseguir assinar o lote e o meu arquivo xml gerado fora do exemplo da acbr. 4427.xml
  8. Boa noite Italo. Atualizei os fontes, testei e deu certo. Gerou o xml assinado. Só uma ressalva ... os valores dos atributos das tags lote e rps estão sendo gerado com um _ (underline) e no manual da NFSe da prefeitura esses ids ficam com : (dois pontos). Você acha possível substituir <Lote Id="Lote_2"> por <Lote Id="lote:2"> ou <Lote Id="lote2"> e também para os RPSs ... <RPS Id="Rps_2"> por <RPS Id="rps:1"> ou <RPS Id="rps1"> ? Não sei, sinceramente se a prefeitura de Uberlândia recusaria a assinatura digital por casa desse underline, como disse, estou seguindo o manual deles. Mas se tivesse como substituir para ficar igual ao manual, serial legal. Esqueci de anexar o xml assinado que eu gerei, pelo botão 'Gerar Lote RPS'. 2-env-lot.xml
  9. Bom dia Italo. Blz, fico no aguardo da correção. E, obrigado mais uma vez pela ajuda.
  10. Italo, Funcionou. Gerou o xml '1-env-lot.xml'. Obrigado aí pela ajuda. Porém ainda ocorreram três erros. Erro 1: É um erro visual. Ao gerar o lote, aparece aquela mensagem 'Arquivo gerado em: ' ... só que sem o caminho de onde o arquivo foi gerado. Não tem muita importância esse erro mas seria interessante corrigir posteriormente. Aqui no meu era para aparecer 'Arquivo gerado em: F:\Luiz Felipe\Componentes\Acbr\Exemplos\ACBrDFe\ACBrNFSeX\Delphi\Logs'. Erro 2: No xml gerado, na tag <Lote>, essa tag deveria ter vindo com o atributo Id="lote1", ou seja, era para ter ficado assim <Lote Id="lote1"> ... já que no inputbox eu escolhi 1 na caixa de diálogo. Erro 3: No xml gerado, na tag <RPS>, essa tag deveria ter vindo com o atributo Id="rps:1", ou seja, era para ter ficado assim <RPS Id="rps:1"> ... já que no inputbox eu escolhi 1 na caixa de diálogo. Os erros 2 e 3 são importantes pois sem esses atributos, vai dar erro quando eu enviar o lote para a prefeitura. Segue em anexo o print do erro 1, o xml gerado dos erros 2 e 3 e, o meu novo arquivo ini. 1-env-lot.xml ACBrNFSeX_Exemplo.ini
  11. Boa tarde Italo. Então, isso foi a primeira coisa q fiz. Pois estava usando o antigo componente mas não estava conseguindo usar a função de carregar o xml. Aí me falaram para parar de usar o componente e começar a usar o novo. Nisso, eu li esse pdf e comecei a estudar o exemplo. Acho que agora, o que está pegando é que não está claro onde estão os arquivos xsd da prefeitura de Uberlândia (provedor issDSF) e onde usá-los. Eu deduzi que estão em '...\Acbr\Exemplos\ACBrDFe\ACBrNFSe\Schemas' pois dentro da pasta de exemplo do componente ACBrNFSeX não tem nenhuma subpasta Schemas. Dessa forma, o que eu fiz, coloquei o caminho '...\Acbr\Exemplos\ACBrDFe\ACBrNFSe\Schemas dentro do meu .ini que é o que o manual em pdf me instrui a fazer. Eu realmente fiquei perdido pois, depois de atualizar o fonte, a situação ficou pior, pois agora ele procura o arquivo xsd em outra pasta e, antes não fazia isso. Vou anexar todo o meu .ini, por favor, se puder dar olhada e me dizer o que pode estar faltando (removi apenas o número de série do certificado e a senha por segurança). Também gostaria que me informasse, onde exatamente estão esses arquivos xsd do provedor issDSF. ACBrNFSeX_Exemplo.ini
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.