Membros Pro alexandre katcharowski Postado 15 Agosto Membros Pro Postado 15 Agosto Olá, boa tarde, estou tentando protocolar uma NFS-e utilizando o componente ACBRBNFSEX, fiz todos os testes com o programa exemplo, tudo funcionou perfeitamente, então copiei o componente para minha aplicação fiz a configuração, carreguei os dados e o mesmo metodo do programa exemplo "acbrnfsex.Emitir(numero_lote, meUnitario)" , porém com minha aplicação retorna o seguinte erro: webservice retorno um XML vazio Debuguei o programa exemplo e também minha aplicação, mas não consegui compreender qual a diferença. Alguém pode me ajudar ? Obrigado
Consultores Renato Rubinho Postado 15 Agosto Consultores Postado 15 Agosto Tópico movido para a área do SAC, para que o SLA de respostas seja considerado
Moderadores Juliomar Marchetti Postado 15 Agosto Moderadores Postado 15 Agosto no caso tem que comparar o que faltou escrever no seu código baseado no exemplo. nós só temos o exemplo como base para ir lhe dizendo, mas se tu está falando que fez exatamente igual pasta schemas? dll´s a parte de configurar exatamente a alimentação do componente? gerou os soaps ? se sim comparou com gerados no exemplo Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Consultores Renato Rubinho Postado 15 Agosto Consultores Postado 15 Agosto Revise suas configurações de SSL e TLS conforme o tópico a seguir, atente-se a copiar as dlls e dependências. Confirme as configurações do município.
Membros Pro alexandre katcharowski Postado 15 Agosto Autor Membros Pro Postado 15 Agosto obrigado pelas respostas, porém no provedor IPM para Guaramirim não é necessário assinar o xml, portanto creio que as configurações do certificado digital são desnecessárias, os schemas, também percebi que não é necessáro procedure TACBrNFSeXProvider.ValidarSchema(Response: TNFSeWebserviceResponse; aMetodo: TMetodo); var AErro: TNFSeEventoCollectionItem; Erros, Schema: string; begin if not ConfigSchemas.Validar Then Exit; , <--------------------------- SetNameSpaceURI(aMetodo); Erros := ''; Schema := ''; quanto as configurações do componente, conforme comentei, dei ctrl C e ctrl v no meu projeto, mantendo todas as configuraçõeses que já tinha, as demais, copiei o codigo fonte que estava no programa exemplo, agora este "gerou soaps" aí, isso não sei ...., sempre achei que o próprio componente gerasse isso. enfim, sei que tem algo diferente, por isso estou pedindo alguma ajuda.
Consultores Renato Rubinho Postado 15 Agosto Consultores Postado 15 Agosto 1 hora atrás, alexandre katcharowski disse: portanto creio que as configurações do certificado digital são desnecessárias Não precisa do certificado para assinar, mas precisa das configurações de SSL/TLS para comunicação com o serviço. Se não configurou nada com relação a isso, esse pode ser um problema. Revise também a parte referente à copia das dependências (openssl, libxml2), pois sem os arquivos corretos na pasta da aplicação também podem ser o seu problema. 1 hora atrás, alexandre katcharowski disse: quanto as configurações do componente, conforme comentei, dei ctrl C e ctrl v no meu projeto, mantendo todas as configuraçõeses que já tinha, as demais, copiei o codigo fonte que estava no programa exemplo, Cuidado com a cópia dos fontes do programa de exemplo, ele serve para você entender como trabalhar com o componente, mas você deve adequar à realidade da sua aplicação. Veja se implementou a parte de carregar as configurações no componente através do método LerConfiguracao. Ele se baseia em carregar as configurações do ini nos campos da tela e depois carregar as configurações dos campos no componente. 1
Membros Pro alexandre katcharowski Postado 16 Agosto Autor Membros Pro Postado 16 Agosto estou utilizando o programa de exemplo como orientação, mas não estou tendo sucesso, já fiz tudo o que era possível, até incorporei o FORM do programa exemplo no meu projeto, criei uma opção no menu e executei o programa exemplo juntamente com nosso aplicativo, para verificar se o problema fosse algum arquivo,dll ou pasta que estivesse faltando, executei nosso aplicativo e selecionei o programa exemplo, enviei uma nfse de teste e funcionou perfeitamente, então copiei toda estrutura do programa demo para dentro do FORM do nosso projeto onde envia a NFSE, e fiz a carga do componente com o mesmo arquivo *.ini utilizado no programa exemplo, da mesma forma, carreguei os campos na tela, e da tela alimentei o componente, como ocorre no programa exemplo, exatamente da mesma forma, carreguei no componente uma nota de teste gerada pelo nosso aplicativo, utilizei o mesmo comando do programa exemplo e não funcionou, achei que o problema estava no momento de carregar os dados da nota, então copiei toda parte do fonte do programa exemplo onde carrega os dados da nfse de teste, enviei e também não funcionou. Resumindo, mesmo fazendo tudo igual como esta no programa exemplo, não funciona
Consultores Renato Rubinho Postado 16 Agosto Consultores Postado 16 Agosto Configure o componente para salvar os arquivos soap e anexe para análise. Configuracoes.WebServices.Salvar := True 1
Membros Pro alexandre katcharowski Postado 16 Agosto Autor Membros Pro Postado 16 Agosto Bom dia, após varias tentativas, fiz um programa totalmente novo: 1) inclui o componente acbrnfsex 2) copiei o pagecontrol1 que estava no programa exemplo e inclui no form 3) copiei o arquivo ACBrNFSeX_Exemplo.ini, para utilizar os mesmos dados que estão sendo passados para o programa exemplo 4) inseri a procedures LerConfiguracao 5) inseri a procedure ConfigurarComponente 6) inseri a procedure AtualizarCidades (não se se era necessário, mas fiz) 7) inseri a procedures AtualizarSSLLibsCombo (não se se era necessário, mas fiz) executei o programa, chamei as procedures e acompanhei, tudo preenchido conforme o programa exemplo 9) carreguei o componente com a nfse, acompanhei o preenchimento dos campos, tudo correto 10) chamei a procedure Emitir(numero_lote, meUnitario) 11) acompanhei o programa, quando chega na procedure TACBrNFSeXProvider.Emite da unit ACBrNFSeXProviderbase, na linha 1948 EmiteResponse.ArquivoRetorno := AService.GerarNFSe(ConfigMsgDados.DadosCabecalho, EmiteResponse.ArquivoEnvio); volta a mensagem "webservice retornou um xml vazio"
Consultores Italo Giurizzato Junior Postado 16 Agosto Consultores Postado 16 Agosto Bom dia @alexandre katcharowski, Por favor use o programa exemplo do componente ACBrNFSeX que se encontra no SVN. Configure ele para salvar os arquivo Soap, essa configuração se encontra na aba WebService: Salvar envelope SOAP. Anexe os XMLs SOAP salvos em disco após tentar enviar o RPS. É para ele salvar dois arquivos, um referente ao envio e outro do retorno. Italo Giurizzato Junior Ajude o Projeto ACBr crescer - Assine o SAC Analista de Sistemas / Araraquara-SP Araraquara - A era dos Trólebus
Membros Pro alexandre katcharowski Postado 16 Agosto Autor Membros Pro Postado 16 Agosto Bom dia Italo, estou usando este programa, e funciona perfeitamente, mas quando utilizo o componente em outro form, não consigo faze-lo funcionar, o programa exemplo então deve ter alguma configuração a mais que não estou conseguindo saber qual é, pois já fiz 2 programas novos e nenhum deles funciona, mesmo tendo colocado todas as configurações que estão no programa exemplo. Voce pediu dos XMLS de envio e retorno, estão sendo gerados corretamente, se quiser posso lhe enviar, mas acho que é inútil, pois está tudo correto
Membros Pro alexandre katcharowski Postado 16 Agosto Autor Membros Pro Postado 16 Agosto anexo arquivos gerados 49-ger-nfse.xml 49-ger-nfse-soap.txt
Membros Pro alexandre katcharowski Postado 16 Agosto Autor Membros Pro Postado 16 Agosto as vezes está sendo questionado o uso do programa exemplo e o fato de estar copiando partes dele para gerar outro, estou fazendo apenas pois quando tentei implementar este procedimento no nosso projeto, não funcionou, até este momento, nada havia sido copiado do programa exemplo, mas sim utilizado todas as rotinas do nosso projeto, mas devido ao não funcionamento, fizemos várias tentativas utilizando-se das rotinas do programa exemplo, na esperança de que funcionasse, porém nem assim conseguimos fazer funcionar, a idéia de criar programas novos, foi para tirar a dúvida que se no nosso projeto havia algo que estivesse conflitando
Consultores Italo Giurizzato Junior Postado 16 Agosto Consultores Postado 16 Agosto @alexandre katcharowski, Entendi, me diz uma coisa na sua aplicação você esta configurando as propriedades de configuração WSUser e WSSenha? Italo Giurizzato Junior Ajude o Projeto ACBr crescer - Assine o SAC Analista de Sistemas / Araraquara-SP Araraquara - A era dos Trólebus
Membros Pro alexandre katcharowski Postado 16 Agosto Autor Membros Pro Postado 16 Agosto Sim Ítalo, todas as propriedades do componente estão sendo preenchidas, foram checadas e conferidas, são as mesmas que estão no arquivo .ini do programa exemplo que funciona, tanto no programa exemplo quanto no programa nosso de teste, as rotinas são as mesmas, e ambas preenchem corretamente todas as propriedades, debuguei o programa até o momento do envio do xml e conferi o conteúdo de quase todas as variáveis, em ambos os casos aparentemente são sempre iguais
Consultores Italo Giurizzato Junior Postado 16 Agosto Consultores Postado 16 Agosto Boa tarde @alexandre katcharowski, Chegou a copiar para dentro da pasta do EXE da sua aplicação as DLLs necessárias? Italo Giurizzato Junior Ajude o Projeto ACBr crescer - Assine o SAC Analista de Sistemas / Araraquara-SP Araraquara - A era dos Trólebus
Membros Pro alexandre katcharowski Postado 16 Agosto Autor Membros Pro Postado 16 Agosto Ola Ítalo, como já citei anteriormente, incorporei o programa exemplo dentro da nossa aplicação, criei uma opção no menu do nosso projeto que para executar o programa exemplo, agora não mais uma executável separado, mas sim um FORM do projeto então estamos executando o programa exemplo de nossa aplicação e funciona perfeitamente, então fica descartada a possibilidade de faltar alguma DLL ou pasta ou qualquer outro arquivo, o único problema é que o componente no FORM do programa de demonstração funciona, mas se usar em qualquer outro FORM, mesmo passando todas as configurações que tem no FORM do programa de demonstração, quando executado retorna o erro. Resumindo, o programa demonstração é integrante do nosso projeto (foi feito isto, para tentar encontrar uma solução apenas, não é nosso objetivo deixar este programa) , e funciona quando executado, porém se usar o componente ACBRNFSEX em outro form qualquer, não funciona, foi feito 2 programas novos sem nenhum outro componente, apenas com este ACBRNFSEX e feito tudo igual ao programa exemplo, mas não funciona, nunca vi disto.
Consultores Renato Rubinho Postado 16 Agosto Consultores Postado 16 Agosto Provavelmente ao copiar os métodos que alimentam o componente, algo ficou para traz ou faltou chamar algum método. Eu acredito que falta setar o município e com isso o provedor não foi identificado. Uma sugestão para você tentar caçar isso é colocar um ponto de parada no create e show do programa de exemplo, vai debugando com F7/F8 e anote o caminho. Faça o mesmo no form da sua aplicação e veja se tudo é feito igual. Faça o mesmo com o método Emitir().
Membros Pro alexandre katcharowski Postado 19 Agosto Autor Membros Pro Postado 19 Agosto Bom dia Renato, obrigado pela resposta, mas já fiz tudo isto, várias vezes
Moderadores Juliomar Marchetti Postado 19 Agosto Moderadores Postado 19 Agosto 51 minutos atrás, alexandre katcharowski disse: Bom dia Renato, obrigado pela resposta, mas já fiz tudo isto, várias vezes então agora é depurar, linha alinha pra tentar entender o que está fazendo de diferente. pode ser até dll diferente junto a pasta do seu exe onde ele busca primeiro e o exemplo estar buscando de outro lugar 1 Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Consultores Diego Foliene Postado 19 Agosto Consultores Postado 19 Agosto Bom dia! Complementando as respostas fornecidas. Coloque um break-point no local indicado pelo print: Debugue usando o step-into(F7) nos dois cenários e compare URL e FPEnvio. Partindo deste ponto, você vai voltando até encontrar o ponto que originou a diferença. Diego FolieniAjude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (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 Solution alexandre katcharowski Postado 19 Agosto Autor Membros Pro Solution Postado 19 Agosto Senhores, fim da novela. Mistério foi desvendado, o problema era o seguinte: quando foi inserido o componente no FORM do nosso aplicativo, como não havia necessidade de assinar o XML, não foram feitas as configurações do certificado digital, e por algum motivo, não sei qual, pelo fato de não ter sido configurado estes parametros, retornava este erro. Eu não dei nenhuma atenção a este detalhe, pois como não era necessário assinar o XML, não configurei estes parametros nem no componente e nem no arquivo *.ini, todos os demais clientes que temos usam o provedor Betha, e ainda esta utilizando o componente antigo ACBRNFSE, que optamos por manter temporariamente até que for possível fazer uma atualização, e este cliente era uma exceção (IPM) então resolvemos fazer uma rotina a parte para utilizar o novo componente somente para ele. Então fica a dica, mesmo que não seja necessário assinar o XML, tem que configurar os parametros, ou talvez eu não saiba, tenha algum parametro para definir isto. Obrigado a todos que tentaram me ajudar, e mais peço-lhes desculpas pela minha falta de conhecimento.
Consultores Diego Foliene Postado 19 Agosto Consultores Postado 19 Agosto Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico. Diego FolieniAjude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (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 !!
Recommended Posts