Pesquisar na Comunidade
Showing results for tags 'acbrday'.
Encontrado 7 registros
-
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
-
Olá pessoal, A seguir colocamos os tópicos deste workshop do Dia do ACBr 2023 e um resumo do que foi abordado. 1. Documentação, Manuais e NTs Sempre indicamos a leitura dos Manuais e NTs, pois são as fontes de onde o ACBr extrai informações para o desenvolvimento dos componentes 1.1. Todos os documentos relacionados ao Reinf https://svn.code.sf.net/p/acbr/code/tools/DFe/Reinf/ 1.2. Manual de Orientação ao Desenvolvedor: Leitura essencial para entender como funciona o Reinf e seus métodos https://svn.code.sf.net/p/acbr/code/tools/DFe/Reinf/ManDesenvolvedor/ManualOrientacaoDesenvolvedor-REINF-v2.3.pdf 2. Sequência lógica: Consta no Manual de Orientação ao Desenvolvedor (item 1.2) 3. TLS 1.2 A partir de janeiro de 2024 a comunicação será exclusiva com TLS 1.2 Isso seria implementado em outubro de 2023, mas foi postergado Existem relatos de certificados A3 que não estão funcionando com o TLS 1.2 e isso é um problema recorrente com alguns DFes e alguns certificados 4. Qual a diferença entre as versões? A versão 1.5 é Síncrona e SOAP, a 2.1 é Assíncrona e REST Ambas trabalham com envio e retorno via XML A versão 1.5 seguirá ativa por 6 meses após o início da versão 2.1, que foi em 09/2023 A versão 1.5, por ser síncrona, recebe o retorno do processamento automaticamente ao enviar os eventos e a versão 2.1, por ser assíncrona, devolve o número do protocolo para ser consultado posteriormente e obter o resultado do processamento A consulta de protocolo já existia na versão 1.5 para o registro R2099, que era o único assíncrono nesta versão 5. Registros 4000 São exclusivos da versão 2.1, não sendo possível o envio na versão 1.5 6. Consulta de Recibo O número do recibo, além de um comprovante do processamento, será necessário para a retificação ou exclusão de um evento Ao consultar o protocolo, o número do recibo e devolvido e se for armazenado neste momento, não será necessária a utilização da Consulta de Recibo para este fim O método possui diversos parâmetros, pois para cada tipo de registro são necessários dados específicos. No Manual de Orientação ao Desenvolvedor (item 1.2) é possível iedntificar os parâmetros para cada tipo de registro 7. Processo padrão Na versão o processo é dividido em: Preenchimento do Componente, Envio e Consulta do Protocolo 7.1. Preenchimento do componente Pode ser feito via código alimentando as propriedades do componente, através de leitura de arquivo INI seguindo o padrão ACBr ou de XML seguindo o leiaute do Reinf O preenchimento através de arquivo INI, suporta o limite de 50 eventos por lote e o preenchimento lendo XML no leiaute do Reinf exige que seja lote de apenas 1 evento 7.2. Envio Quando o componente estiver preenchido com uma das opções do item 7.1 o lote deverá ser enviado Ao enviar o lote, será recebido o número do protocolo para que seja feita a consulta, que retornará o resultado do processamento 7.3. Consulta do Protocolo Ao consultar o protocolo recebido no item 7.2 será recebido o retorno do processamento Caso ocorram erros, será retornada uma lista contendo 1 ou mais erros identificados pelo serviço Caso o lote tenha sido processado com sucesso, será retornado o número do recibo e demais informações relacionadas a cada tipo de evento 8. Método de Limpeza da base de Produção Restrita (Homologação) Lembrando que este método só é possível ser utilizado na base de testes, conforme destacado no item Enviar o Registro R1000 Como evento de Alteração IdeEvento.VerProc = 'RemoverContribuinte' ClassTrib = ct00 // ct00 é um enumerado utilizado somente para este fim 9. Informações adicionais Existe um limite estipulado pelo serviço de 50 eventos por lote A RFB recomenda que os Registros R2099 e R4099, de fechamento, sejam enviados em lotes isolados, após a consulta e confirmação de processamento de todos os demais registros
-
4º Dia do ACBr - Workshop Distribuição DFe - Dúvidas Mapeadas no Evento
um tópico no fórum postou Renato Rubinho NF-e/NFC-e
Olá pessoal, Seguem tópicos que foram abordados no workshop, algumas informações adicionais e algumas dúvidas que foram tratadas nesta edição do Dia do ACBr 2022. 1. Leiam a NT 2014 002 É uma leitura rápida, 18 páginas onde metade são índices, imagens, XML ou tabelas. Resumindo, em menos de 10 páginas de leitura você saberá tudo que precisa sobre a Distribuição DFe. http://svn.code.sf.net/p/acbr/code/tools/DFe/NFeNFCe/NT/2014/NFe_NT2014_002 v1.13 a 1.15 - WsNFeDistribuicaoDFe.pdf 2. Enfim, o que é o NSU? Número Sequencial Único, que pode ser considerado como uma chave primária por cnpj, fazendo uma analogia a uma simples tabela, e é gerado pela Sefaz ao disponibilizar os registros para a distribuição. Ele não é gerado quando você consome o serviço, tanto que ao efetuar uma consulta, a Sefaz retorna a informação de qual é o maxNSU disponível, mesmo que o lote atual não retorne todos os registros restantes. 3. Fluxo simplificado para o download do xml da NFe Quando a NFe é emitida, a Sefaz gera um NSU e disponibiliza um XML de resumo contendo os dados básicos para a manifestação do destinatário. Ao receber esse resumo através da Distribuição DFe, o usuário possui os dados necessários para fazer a manifestação. Após a manifestação, que seja diferente de Desconhecimento da Operação, a Sefaz irá disponibilizar um novo registro contendo o XML completo da NFe. Obs: O CTe não requer manifestação, sendo que o XML já é disponibilizado completo no primeiro NSU gerado pela Sefaz, não existindo o resumo para este DFe . 4. Distribuição por ultNSU São retornados 50 registros por lote. O retorno destaca o ultNSU recebido e o maxNSU disponível, sendo que enquanto o primeiro for menor que o segundo deverão ser feitas novas consultas para receber os próximos lotes. Assim que o ultNSU recebido for igual ao maxNSU, deve-se interromper as consultas e aguardar uma hora até a próxima. 5. Rejeição 656-Consumo Indevido Ocorrerá quando for efetuada uma consulta por ultNSU e for informado o ultNSU diferente do último recebido. Também quando não for aguardada 1h da última rejeição ou do último retorno 137-Nenhum Documento Localizado. Essa rejeição, indica qual foi o ultNSU válido consultado e que deverá ser utilizado na próxima consulta para retomar a sequência. 6. Porque uma NFe emitida aparece no site da Sefaz mas não está disponível imediatamente no DistribuicaoDFe? A NFe é emitida na UF autorizadora que depois envia as informações para o ambiente nacional, o responsável pela distribuição. Esse processo não tem tempo determinado pela Sefaz e deve ser aguardado para que o registro esteja disponível no webservice de distribuição. É importante saber que apenas após a primeira consulta do serviço de distribuição por ultNSU que a Sefaz passa a gerar os NSUs e distribuir os registros para aquele CNPJ. Obs: Apenas os documentos emitidos após a primeira consulta serão distribuídos, os retroativos não. Se o CNPJ permanecer 60 dias sem fazer consultas, a geração de NSUs será interrompida e, assim como na primeira consulta, o retroativo não será distribuído após uma nova consulta. 7. É possível uma NFe ser gerada e não aparecer no DistribuicaoDFe? Houveram casos no passado de NFes emitidas sem data e hora de saída que não eram distribuídas por algum bug da Sefaz, mas não houveram mais relatos semelhantes recentes. Conforme mencionado acima, não existe tempo certo para o NSU ser gerado, então é muito provável que aguardando um tempo maior, esse registro esteja disponível. 8. Consulta pela chave gera NSU? Não e não depende mais da manifestação gerar um NSU para ser utilizada, mas o indicado é utilizá-la apenas em casos pontuais, sendo que o processo natural da distribuição por ultNSU trará todos os registros em seu tempo. 9. É possível fazer testes em homologação? Sim, mas assim como em produção, será necessário fazer a primeira consulta, aguardar 1h para receber os NSUs das novas NFes geradas após a primeira consulta. 10. Como sei que alguém está usando em paralelo? Tenha um log dos NSUs baixados, consultados e, caso ocorra o consumo indevido, compare o ultNSU válido retornado pela Sefaz com o último NSU recebido. Não é possível saber quem está usando em paralelo, mas é possível mostrar que está sendo usado pelo diferença constatada entre os NSUs. 11. Ocorreu um erro na rotina e não processou um lote, consigo consultar novamente o mesmo ultNSU? Não nesta sequência natural do processo que já considerou seu ultNSU recebido como o número a ser consultado na próxima chamada. Uma opção usando o webservice é reiniciar as consultas com ultNSU = 0 e receber novamente todos os registros do período de 90 dias disponíveis. 12. Dica para resolver conflitos entre aplicações com necessidade de uso paralelo do serviço. Implemente a importação dos xmls de distribuição através do componente e deixe de usar o webservice, bastando que a outra aplicação disponibilize os xmls recebidos por ela para importação pelo seu sistema. Veja no programa de exemplo o método do botão de Distribuição DF-e por Último NSU. -
Visulizar Arquivo Palestra de Abertura Explicação Geral Sobre o Evento. Visão Geral sobre o ACBr. Conheça funcionamento um Projeto de Código Aberto. Conheça a Equipe e o dia a dia de trabalho Saiba dos planos futuros do ACBr Veja o vídeo da Palestra Autor Daniel Simoes Enviado 24-09-2019 Categoria Dia do ACBr 2a edição
-
- 4
-
Dia do ACBr será transmitido OnLine ?
um tópico no fórum postou Sergio Tucano Clemente Da Silva Filho Dúvidas Gerais sobre o ACBr
OW! Possibilidade de rolar algum tipo de live stream ? -
É com prazer que anunciamos que o Dia do ACBr já tem data para acontecer. Em virtude das eleições que deverão ocorrer em outubro, sendo o primeiro turno no dia 07/10 e o segundo no dia 28/10, foi decidido que nosso encontro passará a ocorrer no dia 10/11/2018, desta forma todos poderão realizar seu voto e participar de nosso evento. O Dia do ACBr será realizado nas dependências do Parque Tecnológico de Sorocaba (PTS) situado na cidade de Sorocaba-SP, o qual conta com um amplo e moderno espaço. Vocês não podem perder, reserve esta data na sua agenda. O Evento Contaremos com palestras e workshops com diversos assuntos relacionados aos componentes ACBr, Object Pascal(Delphi/Lazarus), além do ACBrMonitorPlus e nossa novidade, a ACBrLib, entre outros temas relacionados ao nosso universo. Abaixo estão relacionados os palestrantes já confirmados: Daniel S. de Almeida (Fundador do Projeto ACBr) Italo Jurisato Jr (Responsável pelos componentes ACBrNFSe, ACBrBPe, ACBrCTe e ACBrMDFe) Rafael Teno Dias (Responsável pelo ACBrFramework e ACBr libs) José M. S. Junior (Responsável pelo ACBrBoleto e atual mantenedor do ACBrMonitorPlus) Juliomar Marchetti (MVP Embarcadero) Régys Borges da Silveira (MVP Embarcadero) Marcos Douglas B. Santos, responsável pelo blog Object Pascal Programming. Um momento que deverá ser bastante interessante é o Pergunte ao Desenvolvedor, no qual os participantes terão a oportunidade de realizar perguntas diretamente a vários moderadores do projeto ACBr. Além da oportunidade de um dia focado no universo ACBr, será uma grande oportunidade para conhecer os principais mantenedores do projeto, além de ampliar ainda mais seu Networking e conhecer casos de sucesso com o projeto ACBr. Sugestões de Palestras e Palestrantes Os usuários do fórum podem se candidatar para realizar palestras ou sugerir temas que gostariam que fossem abordados durante o evento, assim como indicação de palestrantes. Para se candidatar a palestras você deverá: Enviar resumo do assunto da palestra Descrever a relevância do tema proposto para a comunidade Opcionalmente enviar vídeo e outros materiais sobre o tema proposto Breve Currículo pessoal Para sugerir um tema/palestrante você deverá: Descrever a relevância do tema para a comunidade. Indicar o palestrante que gostaria que realizasse a palestra* (opcional). *Nota: As sugestões de palestrantes não garantem que os mesmos estarão palestrando no evento, somente sinaliza a equipe de organização o interesse da comunidade em ouvir o mesmo. Fique atento, em breve lançaremos nossa página para inscrições e noticias do Dia do ACBr.