Ir para conteúdo
  • Cadastre-se

Renato Rubinho

Consultores
  • Total de ítens

    3.822
  • Registro em

  • Última visita

  • Days Won

    66

Tudo que Renato Rubinho postou

  1. Tente enviar em modo assíncrono, conforme indicação do Italo no tópico a seguir.
  2. Provavelmente alguma TAG que não está sendo preenchida e o provedor não está fazendo o devido tratamento do erro. Veja se consegue emitir uma NFSe pela plataforma do provedor e compare com as tags geradas no RPS para verificar se existe algo que esteja no XML da NFSe e não esteja sendo preenchida no RPS.
  3. Está esperando que seja preenchido indTetoRGPS em infoEstatutario No seu cenário isso teria lógica? Pode ser algo que você esteja preenchendo ou que não esteja preenchendo que esteja gerando o problema.
  4. Após executar o compila_res, precisa reinstalar os componentes e recompilar a aplicação.
  5. Tópico movido para a área do SAC, para que o SLA de respostas seja considerado
  6. Um documento específico pela chave não tem como, mas você pode utilizar os métodos por NSU. https://acbr.sourceforge.io/ACBrLib/CTE_DistribuicaoDFePorUltNSU.html https://acbr.sourceforge.io/ACBrLib/CTE_DistribuicaoDFePorNSU.html https://acbr.sourceforge.io/ACBrLib/CTE_DistribuicaoDFe.html
  7. Tópico movido para a área do SAC, para que o SLA de respostas seja considerado
  8. Veja os tópicos a seguir. Confirme se está preenchendo as informações dentro de evtAltContratual.altContratual.vinculo
  9. Você tem o cenário e os fontes para testar. Se está errado, remova pois como eu disse acima, é uma função experimental, a ideia é verificar automaticamente se precisa ou não do código PHP para setar o display. Teste com a função conforme abaixo, apenas setando o display como 99 ao invés de 1. function CarregaContents($importsPath, $dllPath) { putenv("DISPLAY=:99"); $ffi = FFI::cdef( file_get_contents($importsPath), $dllPath ); return $ffi; } 1.Tenha certeza que o servidor NÃO possui ambiente gráfico 2. Tenha certeza que o emulador xvfb está instalado 3. Confirme se está iniciando o emulador xvfb 4. Teste uma página qualquer para verificar se o servidor de internet e o PHP estão funcionando 5. Verifique no phpinfo se o FFI está habilitado
  10. Olá pessoal, Conforme prometido no workshop, seguem detalhes da apresentação, utilizando a biblioteca ACBrLibNFe da convenção de chamadas Cdecl, compilando em x64. Baixando a Lib e identificando a versão que será utilizada Configurando o ambiente C# Configurando o ambiente PHP Configurando o ambiente Java com NetBeans 1. Baixando a Lib e identificando a versão que será utilizada Para download das versões completas para os usuários do ACBr PRO, acesse este link. Para download das versões DEMO, acesse este link. 1.1. Localize a biblioteca que deseja e acesse seu link para a página de download 1.1.1. Na página seguinte, clique no botão "Download" para baixar o pacote, com a bilioteca e dependências necessárias para sua execução. 1.2. Conteúdo do pacote 1.2.1. bin Pasta onde se encontram as compilações da biblioteca 1.2.2. dep Pasta contendo as dependências, sendo Dlls da OpenSSL, LibXml2, schemas, ini de serviços ou outras eventuais que sejam necessárias 1.2.3. log Contém o log do componente, que é core da biblioteca, e também o log de alterações na biblioteca 1.3. Versões Single Thread e Multi Thread 1.3.1. As Versões Single Thread ficam localizadas na pasta raiz da bin 1.3.2. As Versões Multi Thread ficam localizadas na pasta MT 1.4. Convenção de chamada: Cdecl ou StdCall ? * Acesse este link, da documentação da Lib, para maiores detalhes. 2. Configurando o ambiente C# 2.1. Caminho dos programas de exemplo Programas de exemplo em: ..\trunk2\ACBr\Projetos\ACBrLib\Demos\C# Pasta Shared - Core compartilhado: ..\trunk2\ACBr\Projetos\ACBrLib\Demos\C#\Shared 2.2. Soluções Single Thread (sem sufixo) ou Multi Thread (com sufixo MT) As soluções Multi Thread possuem o sufixo MT e as Single Thread não possuem sufixo. Dentro da pasta do programa de exemplo, acesse a pasta Demo e selecione a solução que irá utilizar. 2.3. Plataformas da solução: x86 ou x64 Acesse o Gerenciador de Configurações Selecione Novo, em Plataforma da solução ativa, e preencha x86 ou x64, de acordo com a arquitetura que deseja compilar 2.4. Salvando a biblioteca e as dependências Acesse a pasta bin, x86 ou x64 (de acordo com o que configurou no item 2.3), Debug e crie uma nova pasta ACBrLib Dentro da pasta ACBrLib, crie uma nova pasta x86 ou x64, de acordo com o que configurou no item 2.3 2.4.1. Neste novo caminho que foi criado, salve a biblioteca que irá utilizar e suas dependências 2.4.2. Atenção para pegar a bibliteca correta da pasta bin, extraída do pacote baixadose for Single Thread, conforme citado no item 1.3 Para versão Single Thread, copie a biblioteca das pastas na raiz da bin: ..\pasta extraída do pacote\bin Para versão Multi Thread, copie a biblioteca das pastas que se encontram dentro de MT: ..\pasta extraída do pacote\bin\MT 2.4.3. Faça o mesmo para as dependências, sempre tomando o cuidado de pegar as dlls da arquitetura em que compila a aplicação, conforme o item 2.3 2.5. Compile e execute o programa de exemplo 2.6. Siga os passos indicados no item 5 para as configurações básicas para execução do programa de exemplo, elas serão as mesmas para todas as linguagens e o programa de exemplo estará pronto para funcionar 2.7. NuGet Para todas as bibliotecas do ACBr foram criados pacotes nuget para as classes de alto nível e o core. 2.7.1. Primeiro devemos remover o core e as classes de alto nível da solução 2.7.2. Acessar o Gerenciador de pacotes do nuget, no menu ferramentas 2.7.3. Pesquisar por ACBrLib Selecionar o pacote da bibliteca que vamos instalar Atenção, pois existem pacotes para Single Thread e Multi Thread, sendo o Single Thread sem sufixo e o Multi Thread com o sufixo MT Selecionamos o pacote, à direita a versão e clicamos em instalar Como os pacotes tem dependência do core, automaticamente o core também será instalado 2.7.4. Na janela seguinte, confirmamos a instalação 2.7.5. Caso existam versões mais recentes dos pacotes, serão exibidas na aba "Atualizações" Neste exemplo, a NFe tinha dependêcia a partir de uma versão anterior à atual do core Ao instalar o core, ele foi listado como tendo uma atualização Recomenda-se manter sempre a última versão para obter todos os recursos disponibilizados A opção de atualização será útil também para futuras alterações nas classes de alto nível 2.7.6. Os pacotes instalados serão listados na aba "Instalado" 2.7.7. Ao compilar a solução, já estará funcionando com os nugets. 3. Configurando o ambiente PHP 3.1. Caminho dos programas de exemplo Programas de exemplo em: ..\trunk2\ACBr\Projetos\ACBrLib\Demos\PHP ACBrComum - Funções em comum centralizadas: ..\trunk2\ACBr\Projetos\ACBrLib\Demos\PHP\ACBrComum 3.2. Soluções Single Thread (sem sufixo) ou Multi Thread (com sufixo MT) As soluções Multi Thread possuem o sufixo MT e as Single Thread não possuem sufixo. Dentro da pasta do programa de exemplo, acesse a pasta Demo e selecione a solução que irá utilizar. 3.3. Passo a passo para configurar um ambiente com Php-8 + Apache Caso esteja iniciando no PHP, neste link existe um passo a passo completo ensinando como configurar o ambiente do zero 3.4. Habilitando o FFI no php.ini Para consumo das bibliotecas do ACBr no PHP, vamos utilizar a extensão FFI Ela foi disponibilizada no PHP a partir da versão 7.4.0, caso esteja com uma versão anterior a esta, será preciso atualizar o PHP Acesse o php.ini, na pasta onde o php foi instalado Remova o comentário da extension=ffi Procure pela seção ffi, remova o comentário de ffi.enable e preencha como true Após salvar o arquivo, reinicie o servidor de internet 3.5. Verificando FFI no phpinfo() Quando o FFI estiver habilitado, ele será exibido no phpinfo 3.6. Acesse ..\trunk2\ACBr\Projetos\ACBrLib\Demos\PHP e copie as pastas do programa de exemplo que irá utilizar e da ACBrComum para a raiz do seu servidor de internet 3.7. As pastas dos programas de exemplo já foram enviadas para o SVN com a estrutura de pastas onde devem ser salvas a Lib e as dependências Acesse a pasta MT ou ST, de acordo com o programa de exemplo que irá utilizar Depois ACBrLib E por último a pasta x86 ou x64, dependendoda versão do seu ambiente PHP 3.8. Dentro da pasta da arquitetura que selecionou, haverá um arquivo Leia-me instruindo qual a biblioteca que deverá ser salva naquele local Copie a biblioteca e as dependências, conforme instruído nos itens 2.4.2 e 2.4.3 Lembrando sempre em tomar cuidado com a versão ST ou MT, conversão de chamadas e arquitetura 3.9. Os programas de exemplo possuem uma página única para ST e MT: ACBrNFeBase.php 3.9.1. Para acessar a versão que deseja, selecione o arquivo com o sufixo desejado ACBrNFeDemoST.php: Para Single Thread ACBrNFeDemoMT.php: Para Multi Thread 3.10. Exemplo acessando a versão Multi Thread Como a pasta do programa de exemplo foi salva na raiz do servidor de internet, acessaremos localhost/NFe/ACBrNFeDemoMT.php Siga os passos indicados no item 5 para as configurações básicas para execução do programa de exemplo, elas serão as mesmas para todas as linguagens e o programa de exemplo estará pronto para funcionar 3.11. Servidor linux sem ambiente gráfico Este item esta sendo analisado e traremos mais informações assim que houver uma resposta 3.11.1. As bibliotecas do ACBr possuem dependência de ambiente gráfico devido ao motor de relatórios utilizado Estamos trabalhando para utilizar somente o FPDF e, com isso, acabar com essa dependência Enquanto isso não acontece, para servidores que não possuem ambiente gráfico, é necessário que seja instalado um emulador, como o XVFB Segue um dos nossos cursos para os usuários PRO onde esse assunto foi abordado 3.11.2. Com o emulador instalado, é necessário incluir a linha a seguir nos fontes antes de carregar a Lib putenv("DISPLAY=:99"); 3.11.3. Isso já foi tratado nas funções da ACBrComum.php 4. Configurando o ambiente Java com NetBeans 4.1. Caminho dos programas de exemplo Programas de exemplo em: ..\trunk2\ACBr\Projetos\ACBrLib\Demos\Java ACBr Common - Core compartilhado: ..\trunk2\ACBr\Projetos\ACBrLib\Demos\Java\ACBr Common 4.2. Projetos Single Thread (sem sufixo) ou Multi Thread (com sufixo MT) As soluções Multi Thread possuem o sufixo MT e as Single Thread não possuem sufixo. Dentro da pasta do programa de exemplo, acesse a pasta Demo e selecione a solução que irá utilizar. 4.3. Abra os projetos ACBr Common e o da pasta Imports que contém os binds dos métodos da bblioteca 4.4. Plataformas dos projetos: x86 ou x64 Siga os passos nos 3 projetos Botão direito sobre o projeto, Propriedades Acesse Libraries Em Java Plataform, selecione a JDK da arquitetura que irá compilar e confirme 4.5. Acesse a pasta do programa de exemplo que carregou Crie a pasta ACBrLib Dentro de ACBrLib, crie a pasta x86 ou x64 de acordo com a arquitetura que irá compilar Diferente das outras linguagens mostradas anteriormente, o java não vai considerar as depedências dessa pasta, então vamos salvar somente a biblioteca 4.5.1. Para o projeto enxergar a biblioteca, vamos configurar o caminho criado para salvar a dll Acesse as propriedades do projeto do programa de exemplo Em Libraries, do lado direito, na aba Compile, clique no botão com sinal de [ + ], ao lado de Classpath Clique na opção Add JAR/Folder Selecione a pasta x86 ou x64 que foi criada no item anterior 4.6. Compile e execute o programa de exemplo Siga os passos indicados no item 5 para as configurações básicas para execução do programa de exemplo, elas serão as mesmas para todas as linguagens e o programa de exemplo estará pronto para funcionar 5. Configurações básicas para utilização do programa de exemplo 5.1. Na aba Geral, configure a "Pasta dos Logs" e a "Pasta dos Schemas" * No pacote onde a lib foi baixada, a pasta de schemas da NFe estará disponível em \dep\Schemas\NFe 5.2. Na aba Arquivos, configure: "Pasta Arquivos NFe", "Pasta Arquivos Inutilização" e "Pasta Arquivos Evento" 5.3. Na aba Webservices SSL Type: No momento da criação deste tópico, o padrão utilizado por todos os DFes é TLS1.2, selecione a opção LT_TLSv1_2 TimeOut: Configure o padrão 30k, lembrando que este é o limite de tempo de execução da sua chamada, o que quer dizer que será o tempo máximo que a aplicação irá esperar de resposta, caso o serviço responda em menos tempo, o retorno será neste tempo. Salvar envelope SOAP: Contém os envelopes soap enviados para para o serviço consumido e podem ser úteis para análise em casos de eventuais problemas. 5.4. Na aba Certificados 5.4.1. Configurando certificado A1 Recomendamos sempre a utilização da OpenSSL para certificados A1, pois ela é autossuficiente e não depende de atualizações do Sistema Operacional. Configure a CryptLib e HttpLib como OpenSSL e a XmlSignLib como LibXml2 Para utilização do certificado salvo em disco, preencha o caminho do certificado no campo "Caminho" ou para pegar o conteúdo do certificado em um banco de dados, por exemplo, preencha "Dados PFX" Para ambos, preencha a senha do certificado 5.4.2. Configurando certificado A3 Lembrando sempre que o certificado A3 é historicamente muito problemático, pois aprensenta problemas com driver, falhas devido a atualizações do Windows e outros. Requer que todas as atualizações do windows estejam em dia Configure a CryptLib como cryWinCrypt, HttpLib como httpWinHttp e a XmlSignLib como xsLibXml2 Configure a senha e o Número de Série do certificado 5.5. Com essas configurações o programa de exemplo estará pronto para funcionar
  11. Foram enviadas correções ao SVN que devem resolver o problema relatado, Rev-36070 Por favor aguarde a próxima compilação da Lib, verifique se o problema foi resolvido e, se possível, nos informe se foi o resultado esperado.
  12. Tópico movido para a área do SAC, para que o SLA de respostas seja considerado Por favor anexe o ini para análise, alterando os dados sensíveis por fictícios.
  13. Configure o log para paranóico, aguarde 2 ou 3 casos de erro e veja se tem alguma relação entre eles, se tiver dúvidas, anexe o log aqui para análise. Uma sugestão inicial é aumentar o tamanho do buffer para ver se tem relação.
  14. Tente aumentar o timeout, deu erro 10060 de conexão somente no retorno.
  15. Coloque um ponto de parada nesta linha e debugue para ver se a informação chega preenchida em NFSe.OutrasInformacoes e se está gerando mesmo essa tag.
  16. É isso mesmo. 1 Você inicializa a biblioteca e recebe o ponteiro para ser utilizado por essa instância para os demais métodos 2 Caso queira rodar em paralelo uma outra chamada, você inicializa a biblioteca e utiliza o novo ponteiro recebido. Quando eles terminarem seus respectivos processamentos, você pode fazer novas chamadas com eles. Caso precise de mais processamentos simultâneos, repita o passo 2. Não se esqueça de controlar esses ponteiros que foram inicializados para que seja chamado o método finalizar para cada um deles quando não forem mais necessários
  17. Criada TK-6209 para análise do ajuste pelo time de boleto e envio ao SVN.
  18. Foi identificado um ajuste necessário para o Santander no componente, que é o motor da Lib, para que aceite o Sacado setado como nenhum e gere o valor no arquivo como zero. Enviei uma compilação temporária da Lib por mensagem privada. Queira por favor validar se ficou ok desta forma e se possível reporte o resultado aqui. Assim que possível faremos a correção no componente em definitivo e será gerada uma nova versão da Lib contemplando a implementação.
  19. Olá, As NTs citadas no tópico foram revisadas e o componente já estava quase completamente adequado, tendo sido feito um ajuste que faltava e enviado na Rev-35988 1 NT01/2024 1.1 Campo {ideSeqProc} – alterado tamanho * Eventos: S-3500 * Alteração: Permitir o preenchimento até 3 caractere * ACBr: Corrigido tamanho mínimo do campo para 1, pois estava fixo com 3 2 NT02/2024 * Nenhuma alteração necessária no componente 3 NT05/2024 * Nenhuma alteração necessária no componente Até mais,
  20. Certamente será feito no ACBr, só estava te instruindo como fazer para seguir seus testes até que seja enviado ao SVN.
  21. Para incorporar as alterações do ini você precisa executar o Compila_RES após a alteração do ini e antes de reinstalar os componentes. Siga os passos do tópico a seguir. Quando você salva o ini na pasta do exe ele prevalece sobre as alterações feitas pelo compila_res, por isso funcionou.
  22. De acordo com a documentação 0 - Pessoa Física Por favor, teste se colocando como pessoa física ele grava como zero. https://acbr.sourceforge.io/ACBrLib/IndicedeCodigosTituloINI.html
  23. Revise seu código que escorregou em algum lugar. Nesta função que você replicou não tem nenhuma atribuição entre pointer e ansistring. Isso tem que funcionar, pois copiei da Lib e está funcional.
  24. Caso não tenha localizado, você deve declarar também a unit synautil
  25. PHP consumindo bibliotecas do ACBr em servidores sem ambiente gráfico
×
×
  • 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...