DeveloperATS
-
Total de ítens
74 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Posts postados por DeveloperATS
-
-
14 minutos atrás, antonio.carlos disse:
@DeveloperATS se possível atualize versão ACBrLibBoleto, eu e o @Victor H. Gonzales - Panda realizamos testes com ultima versão, vou anexar em privado para você os arquivos de remessa que geramos utilizando sua configuração .ini
Geramos remessa com a Carteira 109 e Carteira 99 (simulando preenchimento carteira errada).
Observação, utilizamos o CNAB 400.. seu arquivo de configuração esta com o CNAB240.Veja:
LayoutRemessa=0
Quanto ao LayoutRemessa, pode ser que, nas várias tentativas de obter um ini e o outro, tenha sido enviado o ini errado.
De qualquer forma, parece que o problema é a carteira; existe alguma forma de perguntar, de antemão ao ACBr se uma determinada carteira vai causar zeramento do nosso número? -
OK, olhando pelos fontes da DLL, parece que, dependendo da carteira utilizada, a biblioteca zera o valor silenciosamente, sem dar mensagem de erro, nem alerta, nem log.
Porque a DLL não avisa ao cliente se ocorrer essa situação? -
Pergunta adicional, relacionada a essa: se a carteira for inválida/desconhecida, o ACBr vai lançar uma exceção avisando que está errada, ou vai jogar zero silenciosamente?
-
9 minutos atrás, DeveloperATS disse:
Yep. Se não for modificado nada, ele não salva nada, já se modificar para salvar na unidade D, ele continua não salva:
acbrBoleto.configGravar("D:\\Temp\\configBoletoExemplo.ini");
De fato, mesmo modificando para salvar na pasta da aplicação, ele também não salva:
acbrBoleto.configGravar("configBoletoExemplo.ini");
Parece que o salvamento da configuração não está funcionando.
Mas de qualquer forma, isso é um detalhe de menor importância.
O problema principal é que, mesmo passando o nosso número para o ACBr, o sistema está jogando "0" no campo correspondente do arquivo CNAB400 do Itaú.Adendo: consegui obter a configuração usando o:
acbrBoleto.ConfigExportar()
Com o trecho de código acima, a configuração retornada é a seguinte:
[Principal] TipoResposta=0 CodificacaoResposta=0 LogNivel=4 LogPath=D:\Java\BoletoAPI\Boleto\..\logs [Versao] ACBrLib=0.0.2 ACBrLibBoleto=0.2.0.168 [Sistema] Nome= Versao= Data=30/12/1899 Descricao= [Email] Nome= Servidor= Conta= Usuario= Senha= Codificacao=27 Porta=0 SSL=0 TLS=0 Timeout=0 Confirmacao=0 ConfirmacaoEntrega=0 SegundoPlano=0 Tentativas=1 IsHTML=0 Priority=1 [PosPrinter] ArqLog= Modelo=0 Porta= PaginaDeCodigo=2 ColunasFonteNormal=48 EspacoEntreLinhas=0 LinhasEntreCupons=21 CortaPapel=1 TraduzirTags=1 IgnorarTags=0 LinhasBuffer=0 ControlePorta=0 VerificarImpressora=0 TipoCorte=0 [PosPrinter_Barras] MostrarCodigo=0 LarguraLinha=0 Altura=0 Margem=0 [PosPrinter_QRCode] Tipo=2 LarguraModulo=4 ErrorLevel=0 [PosPrinter_Logo] IgnorarLogo=0 KeyCode1=32 KeyCode2=32 FatorX=1 FatorY=1 [PosPrinter_Gaveta] SinalInvertido=0 TempoON=50 TempoOFF=200 [PosPrinter_MPagina] Largura=0 Altura=0 Esquerda=0 Topo=0 Direcao=0 EspacoEntreLinhas=0 [PosPrinter_Device] Baud=9600 Data=8 Timeout=3 Parity=0 Stop=0 MaxBandwidth=0 SendBytesCount=0 SendBytesInterval=0 HandShake=0 SoftFlow=0 HardFlow=0 [Proxy] Servidor= Porta= Usuario= Senha= [SoftwareHouse] CNPJ= RazaoSocial= NomeFantasia= WebSite= Email= Telefone= Responsavel= [Emissor] CNPJ= RazaoSocial= NomeFantasia= WebSite= Email= Telefone= Responsavel= [BoletoDiretorioConfig] DataArquivo=30/12/1899 DataCreditoLanc=30/12/1899 DirArqRemessa= DirArqRetorno= DirHomologacao=0 ImprimirMensagemPadrao=0 LayoutRemessa=0 LeCedenteRetorno=0 NomeArqRemessa= NomeArqRetorno= NumeroArquivo=0 RemoveAcentosArqRemessa=0 PrefixArqRemessa= [BoletoBancoConfig] Digito=0 LayoutVersaoArquivo=2 LayoutVersaoLote=1 LocalPagamento=Pegar no lugar X Numero=0 NumeroCorrespondente=0 OrientacaoBanco= TipoCobranca=6 CasasDecimaisMoraJuros=0 CIP= [BoletoCedenteConfig] Agencia=0443 AgenciaDigito=0 Bairro=PAU MIUDO CaracTitulo=0 CEP=40310010 Cidade=SALVADOR CNPJCPF=29203140000149 CodigoCedente=123 CodigoTransmissao=789 Complemento= Conta=36896 ContaDigito=4 Convenio=123 Logradouro=AVENIDA BARROS REIS Modalidade=741 Nome=AUTO VIDROS PEIXOTO LTDA - EPP NumeroRes=438 ResponEmissao=0 Telefone=(71) 3018-1172 TipoCarteira=0 TipoDocumento=0 TipoInscricao=1 UF=BA DigitoVerificadorAgenciaConta= IdentDistribuicao=1 Operacao= [BoletoBancoFCFortesConfig] DirLogo=D:\Java\BoletoAPI\Boleto\target\classes\Logos Filtro=0 Layout=0 MostrarPreview=0 MostrarProgresso=0 MostrarSetup=0 NomeArquivo=C:\Users\HAROLD~1\AppData\Local\Temp\Boleto3126164253930370758.pdf NumeroCopias=1 PrinterName= SoftwareHouse= AlterarEscalaPadrao=0 NovaEscala=96 [BoletoConfig] emailAssuntoBoleto= emailMensagemBoleto= [BoletoCedenteWS] ClientID= ClientSecret= KeyUser= Scope= IndicadorPix=0 [BoletoWebSevice] LogRegistro=1 PathGravarRegistro= Ambiente=1 Operacao=0 VersaoDF=1.2 UseCertificateHTTP=0 [DFe] SSLCryptLib=0 SSLHttpLib=0 SSLXmlSignLib=0 UF=SP TimeZone.Modo=0 TimeZone.Str= URLPFX= ArquivoPFX= DadosPFX= Senha= NumeroSerie= VerificarValidade=1
-
2 horas atrás, antonio.carlos disse:
Programa exemplo ocorre o mesmo comportamento ?
Yep. Se não for modificado nada, ele não salva nada, já se modificar para salvar na unidade D, ele continua não salva:
acbrBoleto.configGravar("D:\\Temp\\configBoletoExemplo.ini");
De fato, mesmo modificando para salvar na pasta da aplicação, ele também não salva:
acbrBoleto.configGravar("configBoletoExemplo.ini");
Parece que o salvamento da configuração não está funcionando.
Mas de qualquer forma, isso é um detalhe de menor importância.
O problema principal é que, mesmo passando o nosso número para o ACBr, o sistema está jogando "0" no campo correspondente do arquivo CNAB400 do Itaú. -
1 hora atrás, lucimauro disse:
O certo não seria ?
acbrBoleto.configGravar("D:\Temp\configBoleto.ini");
Não, porque, na linguagem Java, a barra invertida tem um significado especial, dentro de uma constante String; assim:
- \b é backspace;
- \t é TAB;
- \n é quebra de linha;
- \r é retorno de carro;
- \" é uma aspa dupla;
- \' é uma aspa simples;
- \f é avanço de página;
- \\ é uma contrabarra, ou seja, \;
- \xxx é a definição octal de um caractere ASCII;
- \uxxxx é a definição hexadecimal de um caractere unicode.
Vide: https://www.dca.fee.unicamp.br/cursos/PooJava/sintaxe/seqesc.html
Assim, para representar uma única barra invertida dentro de uma constante string da linguagem é necessário informar duas barras invertidas. De fato, essa sintaxe também é usada pelas linguagens JS, C#, C++, Go, C e, de fato, é utilizada pela maioria das linguagens inspiradas na linguagem C.
-
Interessante: tentei chamar o método "configGravar()", passando como parâmetro o caminho do INI, mas ele não está gerando o arquivo no local especificado.
acbrBoleto.configGravar("D:\\Temp\\configBoleto.ini");
-
Bom dia, tudo bem?
No caso, é a biblioteca, estou usando o "ACBrLibBoleto" para Java; o arquivo de configuração é em memória, e o título está no primeiro post.
-
Boa tarde;
Estamos tendo problemas com a geração do arquivo de remessa do banco Itaú: estamos enviando o nosso número com um valor não-zero, mas o arquivo de remessa gerado está tendo o seu valor preenchido como zero.
Título:
[Titulo1] NumeroDocumento=00977701-A NossoNumero=10151 Carteira=109 ValorDocumento=525,00 Vencimento=05/08/2022 DataDocumento=06/07/2022 DataProcessamento=19/08/2022 DataAbatimento=19/08/2022 DataDesconto=19/08/2022 DataMoraJuros=19/08/2022 DiasDeProtesto=0 DiasDeNegativacao=null DataProtesto=20/08/2022 DataNegativacao=19/08/2022 DataMulta=19/08/2022 DataBaixa=19/08/2022 ValorAbatimento=null ValorDesconto=0,00 ValorMoraJuros=0,27 ValorIOF=null ValorOutrasDespesas=0,00 MultaValorFixo=null PercentualMulta=2,00 LocalPagamento=Pegar no lugar X Especie=NF EspecieMod=R$ DataLimitePagto=19/08/2022 Sacado.NomeSacado=UNIDAS SA Sacado.CNPJCPF=04437534000130 Sacado.Pessoa=JURIDICA Sacado.Logradouro=AVENIDA RAJA GABAGLIA Sacado.Numero=1781 Sacado.Bairro=LUXEMBURGO Sacado.Complemento=12 ANDAR Sacado.Cidade=BELO HORIZONTE Sacado.UF=MG Sacado.CEP=30380457 Sacado.Email=nfe@locamerica.com.br Sacado.SacadoAvalista.Pessoa=3 Sacado.SacadoAvalista.NomeAvalista= Sacado.SacadoAvalista.CNPJCPF= Sacado.SacadoAvalista.Logradouro= Sacado.SacadoAvalista.Numero= Sacado.SacadoAvalista.Complemento= Sacado.SacadoAvalista.Bairro= Sacado.SacadoAvalista.Cidade= Sacado.SacadoAvalista.UF= Sacado.SacadoAvalista.CEP= Sacado.SacadoAvalista.Email= Sacado.SacadoAvalista.Fone= Sacado.SacadoAvalista.InscricaoNr= Mensagem=null Informativo=null Detalhamento=null Competencia=null ArquivoLogoEmp=null Verso=null Instrucao1= Instrucao2= Aceite=1 OcorrenciaOriginal.TipoOcorrencia=null Parcela=1 TotalParcelas=1 SeuNumero=0000009483 TipoDiasProtesto=null CodigoNegativacao=0 TipoDiasNegativacao=null TipoImpressao=null TipoDesconto=0 TipoDesconto2=0 CarteiraEnvio=null
Seguem anexos o boleto e o arquivo de remessa gerados.
-
Bom dia;
Parece que a forma como está preenchendo esses dois campos vai ser suficiente para atender aos requisitos.
Muito obrigado pelo auxílio.
-
De fato, pelo o que eu estou vendo, ele sempre está jogando o mesmo valor tanto para "sequência (NSA)", quanto para "Número Remessa/Retorno".
Esses dois valores vão ser sempre iguais?
-
1 hora atrás, José M. S. Junior disse:
Bom dia,
No arquivo de configuração da lib "ACBrLib.ini", na tag LogPath pode definir o local onde será gerados os logs. O log da dll é muito importante para identificar problemas do tipo, para saber se o método está chegando corretamente até a na dll ou é algo na aplicação.
Veja na sessão Principal, LogPath, se não estiver preenchido, defina um path para os logs. e na tag LogNivel defina como 4
https://acbr.sourceforge.io/ACBrLib/Geral.html
Será gerado um log diário:
Boa tarde;
OK, obrigado; depois de adicionar o código necessário, o log foi gerado:
acbrBoleto.configGravarValor(ACBrSessao.Principal, "LogPath", new File("../logs").getAbsolutePath()); acbrBoleto.configGravarValor(ACBrSessao.Principal, "LogNivel", 4);
Segue anexo o log.
-
21 horas atrás, José M. S. Junior disse:
Esse campo posição 184 a 191 do Header do Lote, é o numero da remessa passado no parâmetro do método mesmo, conforme indicação do manual... Se não está gerando no arquivo, não deve estar chegando na lib, para que seja lido.
Por favor anexe o log gerado pela ACBrLibBoleto. É um txt de log, por default é gerado no mesmo diretório onde a dll se encontra.
Bom dia; no caso, a DLL está sendo referenciada pelo JAR do ACBrLib, que está dentro de uma aplicação que está sendo executado via Spring Boot; eu olhei todos os lugares onde tivesse o DLL da ACBrLib, mas nenhum deles aparenta ter arquivo de log na mesma pasta; onde ficaria esse log do "ACBrLibBoleto", e que nome ele teria?
-
Boa tarde;
Grato pela sugestão, mas testando aqui, o "NumeroDocumento" afeta o campo 19.3P, "Nº do Documento". No entanto, o campo que falta para deixar igual ao arquivo que está sendo comparado é o 20.1, "Número Remessa/Retorno"; vide screenshot do padrão original FEBRABAN e o equivalente da documentação específica do Itaú:
-
Olá, bom dia; grato pelas sugestões, mas:
Adicionei código para passar "NumeroArquivo", e não aparenta estar afetando nada:
acbrBoleto.configGravarValor(ACBrSessao.BoletoDiretorioConfig, "NumeroArquivo", "333");
De qualquer forma, de acordo com o manual, esse valor é sobrescrito pelo valor que é passado como parâmetro para o método "GerarRemessa"
acbrBoleto.GerarRemessa(file.getParent(), boleto.getCedente().getSequencialRemessa(), file.getName());
E, como mencionado anteriormente, nos testes esse parâmetro afeta o campo 19.0, "sequência (NSA)", mas não o 20.1, "Número Remessa/Retorno".
-
OK, está quase completo; agora só falta o campo 20.1: "Número Remessa/Retorno".
-
1 hora atrás, Cristofer Rodrigues disse:
Aqui no seu arquivo, vi que tem 2 vezes a configuração "LayoutVersaoArquivo" uma na linha 76, onde faz o set para 777, e outra na linha 145, que faz o set para 0(zero).
Estão na mesma função, no ini que é gerado, chegou a verificar qual o valor que está sendo gravado?
Só estou perguntando mesmo na intenção de ajudar, não conheço muito de java.
Tem razão, já havia um outro lugar preenchendo esse campo, e eu não havia notado. Vou corrigir isto; muito obrigado.
-
OK, verifiquei as sugestões, e não parece ser isso:
- No caso do LayoutVersaoArquivo, mesmo eu passando alguma coisa, o valor passado não parece afetar o campo 20.0, "Número da Versão do Layout do Arquivo", nem em nenhuma outra parte do arquivo. Conforme mencionado pelo José, pode ser que seja o caso do ACBr estar usando um valor fixo para o banco em questão. No caso, o banco usado nos testes é o Itaú;
- Já no caso do segundo parâmetro da função "GerarRemessa()", ele funciona, mas afeta somente o 19.0, "sequência (NSA)", mas não afeta o 20.1, "Número Remessa/Retorno"; nos testes, nenhum dos campos sugeridos até o momento aparenta afetar este último.
-
Obrigado aos dois; vou fazer os testes, aqui.
-
Bom, fiz umas modificações rápidas no código para testar, e as instruções ajudaram, em parte.
O que deu certo:
- Passar o parâmetro para a função de geração de remessa realmente fez com que o campo "19.0", "sequência (NSA)", fosse preenchido com o valor passado;
- O "LayoutVersaoLote" realmente afetou o campo 07.1, "Nº da Versão do Layout do Lote".
O que não deu certo:
- "LayoutVersaoArquivo" não afetou o "20.0", " Número da Versão do Layout do Arquivo" e, de fato, não aparenta ter afetado nenhuma parte do arquivo gerado;
- "SeuNumero" afetou "35.3P"; esse campo já estava correto, mas foi bom saber o que ele afeta, para referência futura;
- "Numero" e "NumeroCorrespondente", que constam no manual, não parecem estar afetando nada no arquivo;
- O único "NossoNumero" que foi encontrado na documentação é o do título, e ele não está apresentando problemas.
Com isso, ficam faltando os seguintes campos para o arquivo gerado bater com a versão antiga:
- Campo 20.0: Número da Versão do Layout do Arquivo;
- 20.1: Número Remessa/Retorno
Para referência, os fontes da montagem dos inis estão em anexo.
-
OK, muito obrigado; vou começar a realizar testes em breve.
-
Adendo outros campos que estão diferentes:
- 07.1: Nº da Versão do Layout do Lote: 030 no Cobre Bem versus 000 no ACBr;
- 20.1: Número Remessa/Retorno: 00000169 no Cobre Bem versus 00000001 no ACBr; não parece ter nada a ver com o "Nosso Número", que é "000084279".
Similarmente, estes também não parecem constar da documentação. O que eu precisaria passar nos INIs para preencher estes campos, assim como os campos 19.0 e 20.0?
-
Boa tarde;
Estamos migrando nosso sistema do Cobre Bem para o ACBr e, ao comparar o arquivo CNAE 240 gerados pela nossa implementação do Cobre Bem versus a nova implementação via ACBr, estamos tendo diferença de vários valores; entre eles, no cabeçalho do arquivo:
- Campo 19.0: Seqüência (NSA)
- Campo 20.0: Número da Versão do Layout do Arquivo
Quais campos eu devo informar no INI para preencher estes dois campos?
Arquivo remessa CNAB400 do banco Itaú está com o nosso número sendo preenchido como zero
em Dúvidas gerais
Postado
Um outro detalhe: porque o ACBr silenciosamente zera o valor, ao invés de dar erro? Existiria alguma situação onde o banco aceitaria um arquivo de remessa com esse valor zerado, mesmo que se tenha optado por "Cliente Emite"? Qual seria o comportamento correto do ponto de vista da aplicação que consome a DLL quando ocorrerem estes casos?