duardomribeiro
Membros-
Total de ítens
10 -
Registro em
-
Última visita
Últimos Visitantes
1.131 visualizações
duardomribeiro's Achievements
-
Erro ao compilar o pacote "ACBr_TEFD.dpk" (Erros no jsonsutilsEx.pas))
um tópico no fórum postou duardomribeiro Dúvidas Gerais sobre o ACBr
Boa tarde, Uso o Delphi2010. Em uma pasta nova e limpa, atualizei hoje meus fontes do ACBR. Executei o "apagarAcbr.bat" para limpar o ambiente, Iniciei o instalador com a opção de apagar tudo, porém no momento da instalação ocorre o erro abaixo, ao compilar o ACBr_TEFD.dpk: ... Compiling package D:\ACBr\Pacotes\Delphi\ACBrTEFD\ACBr_TEFD.dpk "C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\bin\dcc32.exe" "D:\ACBr\Pacotes\Delphi\ACBrTEFD\ACBr_TEFD.dpk" Embarcadero Delphi for Win32 compiler version 21.0 Copyright (c) 1983,2009 Embarcadero Technologies, Inc. D:\ACBr\Fontes\Terceiros\json4delphi\src\jsonsutilsEx.pas(108) Error: E2003 Undeclared identifier: 'FormatSettings' D:\ACBr\Fontes\Terceiros\json4delphi\src\jsonsutilsEx.pas(108) Error: E2066 Missing operator or semicolon D:\ACBr\Fontes\Terceiros\json4delphi\src\jsonsutilsEx.pas(108) Error: E2014 Statement expected, but expression of type 'Char' found D:\ACBr\Fontes\Terceiros\json4delphi\src\jsonsutilsEx.pas(291) Error: E2003 Undeclared identifier: 'DynUnitNameFld' D:\ACBr\Fontes\Terceiros\json4delphi\src\jsonsutilsEx.pas(291) Error: E2029 ')' expected but identifier 'Tail' found D:\ACBr\Fontes\Terceiros\json4delphi\src\jsonsutilsEx.pas(293) Error: E2066 Missing operator or semicolon D:\ACBr\Fontes\Terceiros\json4delphi\src\jsonsutilsEx.pas(333) Error: E2026 Constant expression expected D:\ACBr\Fontes\Terceiros\json4delphi\src\jsonsutilsEx.pas(335) Error: E2014 Statement expected, but expression of type 'TTypeKind' found D:\ACBr\Fontes\Terceiros\json4delphi\src\jsonsutilsEx.pas(342) Error: E2125 EXCEPT or FINALLY expected D:\ACBr\Fontes\Terceiros\json4delphi\src\jsonsutilsEx.pas(358) Error: E2029 Declaration expected but 'FINALLY' found D:\ACBr\Fontes\Terceiros\json4delphi\src\jsonsutilsEx.pas(361) Error: E2029 '.' expected but ';' found D:\ACBr\Fontes\Terceiros\json4delphi\src\jsonsutilsEx.pas(17) Error: E2065 Unsatisfied forward or external declaration: '__ObjectToJson' D:\ACBr\Fontes\Terceiros\json4delphi\src\jsonsutilsEx.pas(18) Error: E2065 Unsatisfied forward or external declaration: '__jsonToObject' D:\ACBr\Fontes\Terceiros\json4delphi\src\Jsons.pas(37) Fatal: F2063 Could not compile used unit 'jsonsutilsEx.pas' Compilation failure Erro ao compilar o pacote "ACBr_TEFD.dpk". Abortando... Ocorreram erros na compilação dos pacotes. ... O que pode ser isso? Obrigado. log_Delphi_2010_Win32.txt- 22 replies
-
- jsonsutilsex.pas
- jsonsutilsex
- (e 3 mais)
-
Erro de Validação de Conteúdo - Motivo do Erro
duardomribeiro replied to ricardolopes's tópico in ACBrSAT
Muito bom, Obrigado Daniel. -
Ainda não consegui teste algum em rede. Você colocou a bemasat.dll e a bemasat.xml na syswow64? Como configurou a porta COM no XML?
-
Erro de Validação de Conteúdo - Motivo do Erro
duardomribeiro replied to ricardolopes's tópico in ACBrSAT
Obrigado por ter verificado, Entendi. Bom, entao vou descartar esse acerto na classe e pegar o código do erro pelo retorno completo, direto na aplicação. Obrigado. -
Erro de Validação de Conteúdo - Motivo do Erro
duardomribeiro replied to ricardolopes's tópico in ACBrSAT
Acredito que esteja respondendo de forma correta. Meu sat é o RB 1000 FI da Bematech. O retorno é esse '315368|06010|1230|Erro de validação do conteúdo||' (Essa descricao é o que sempre aparece em qualquer problema de validação) inclusive no exemplo. Destrinchando o retorno: fRetornoLst[0] = '315368' //numero da seção fRetornoLst[1] = '06010' //código da não aceitação fRetornoLst[2] = '1230' //código REAL do problema; de acordo com a tabela de erros significa "IE do emitente diferente da IE do contribuinte autorizado para uso do SAT" fRetornoLst[3] = 'Erro de validação do conteúdo' //descrição não aceitação fRetornoLst[4] = '' fRetornoLst[5] = '' Note que a causa real do problema esta no índice 2, e da forma como estava antes esse código 1230 nunca era visível na aplicação: fcodigoSEFAZ := StrToIntDef( fRetornoLst[index+1], 0); Lembrando que nesse momento o índice já começa valendo 3, logo, retornava sempre VAZIO ao invés do código real do erro. No bloco que mexi mudei para vir exatamente o índice 2 fcodigoSEFAZ := StrToIntDef( fRetornoLst[index-1], 0);Lembrando que nesse momento o índice já começa valendo 3 Com essa mudança consigo agora em minha aplicação usar a função "MotivoInvalidoVenda(codigoSEFAZ);" para retornar a descrição real do problema. Agora, se há outra forma de conseguir esse código 1230 na aplicação, sem essa alteração, me avise. -
Erro de Validação de Conteúdo - Motivo do Erro
duardomribeiro replied to ricardolopes's tópico in ACBrSAT
A correção foi feita na procedure "SetRetornoStr"; Segue a unit com a correção: ACBrSATClass.pas Me corrijam se eu estiver errado, mas assim consegui exatamente o código do erro. -
Erro de Validação de Conteúdo - Motivo do Erro
duardomribeiro replied to ricardolopes's tópico in ACBrSAT
Notei que o procedure TACBrSATResposta.SetRetornoStr(AValue : String) ; esta pegando indice errado para retornar o "codigo sefaz", ficando VAZIO. Tinhamos somente este bloco no metodo: if fRetornoLst.Count > index+2 then begin fmensagemRetorno := fRetornoLst[index]; fcodigoSEFAZ := StrToIntDef( fRetornoLst[index+1], 0); fmensagemSEFAZ := fRetornoLst[index+2]; end else fmensagemRetorno := AValue; Usei uma condicao que ja existia mais acima para conseguir desviar e pegar o indice correto. if Length(Trim(fRetornoLst[2])) = 4 then //Enviar e Cancelar venda tem um campo a mais no inicio da resposta(CCCC) begin //Bloco com o novo indice: if fRetornoLst.Count > index+2 then begin fmensagemRetorno := fRetornoLst[index]; fcodigoSEFAZ := StrToIntDef( fRetornoLst[index-1], 0); fmensagemSEFAZ := fRetornoLst[index]; end else fmensagemRetorno := AValue; end else begin //Bloco que ja existia, para demais operacoes. if fRetornoLst.Count > index+2 then begin fmensagemRetorno := fRetornoLst[index]; fcodigoSEFAZ := StrToIntDef( fRetornoLst[index+1], 0); fmensagemSEFAZ := fRetornoLst[index+2]; end else fmensagemRetorno := AValue; end; Porém ainda acho que vai dar problema, pois nao sei se o fRetornoLst vem sempre com a mesma quantidade de campos. -
Daniel, colocando a dll e o xml junto com o acbrSat agora funcionou (com o sat plugado local), so que em rede nao esta funcionando: O Cenario é o seguinte, estou em uma estação, o sat esta ligado no servidor, mesmo configurando o ip, tanto com o ip do sat, quanto com o ip do servidor, a estação nao enxerga o SAT, e fica retornando "Erro na abertura da porta de comunicação com o S@T", e o mais curioso de tudo, em nossa aplicacao, que comecamos desenvolver com uso direto com a BEMAFI32.DLL, tudo funciona mesmo estando em rede.
-
FIz toda a configuração conforme os comentarios anteriores, mas quando tento mandar qualquer comando o SATTeste retorna Erro|Erro na abertura da porta de comunicacao com o S@T ou Resposta:Erro|Erro no parametro codigoDeAtivacao, e o satteste congela, no sat nao pisca luz alguma, em momento nenhum. Outro detalhe é, o sat nao funcionou local, e nem via rede, sempre retorna o mesmo erro. Conforme foi falado acima, meu ambiente esta assim: -A aplicacao SatTeste esta em c:\satteste, junto com seu INI, e no diretorio c:\Sat esta a bemasat.dll (64) Junto com o bemasat.xml. Nota: O Sat esta funcionando corretamente quando usamos o software ActivationSoftware da propria bematech, e tambem esta funcionando corretamente com nossa aplicacao, que usa diretamente a bemasat.dll, mas com o ACBR não funciona por nada. Meus arquivos: BemaSat.XML: <?xml version="1.0" encoding="UTF-8" ?> <bematech> <Sistema> <LocalizarPorta>1</LocalizarPorta> <Porta>COM5</Porta> <Path>C:\SAT</Path> <NivelLog>1</NivelLog> <ValidarParametros>0</ValidarParametros> </Sistema> <Timeouts> <ativacao>300000</ativacao> <icp_brasil>300000</icp_brasil> <consultar_sat>2000</consultar_sat> <associar_assinatura>20000</associar_assinatura> <consultar_sessao>20000</consultar_sessao> <trocar_codigo_ativacao>20000</trocar_codigo_ativacao> <bloquear_sat>300000</bloquear_sat> <desbloquear_sat>20000</desbloquear_sat> <extrair_logs>20000</extrair_logs> <atualizar_sat>1800000</atualizar_sat> <configurar_rede>20000</configurar_rede> <enviar_venda>10000</enviar_venda> <cancelar_venda>1000</cancelar_venda> <teste_fim_a_fim>20000</teste_fim_a_fim> <consultar_status>2000</consultar_status> </Timeouts> </bematech> SatTeste.ini: [sAT] Modelo=1 ArqLog=ACBrSAT.log NomeDLL=C:\Sat\BemaSAT32.dll CodigoAtivacao=(senha que configuramos no nosso SAT na ativação) CodigoUF=35 NumeroCaixa=1 Ambiente=1 PaginaDeCodigo=65001 versaoDadosEnt=0,06 FormatarXML=1 [Extrato] Porta= ParamsString= [Emit] CNPJ= IE= IM= RegTributario=0 RegTribISSQN=6 IndRatISSQN=0 [swH] CNPJ=11111111111111 Assinatura=9d4c4eef8c515e2c1269c2e4fff0719d526c5096422bf1defa20df50ba06469a28adb25ba0447befbced7c0f805a5cc58496b7b23497af9a04f69c77f17c0ce68161f8e4ca7e3a94c827b6c563ca6f47aea05fa90a8ce3e4327853bb2d664ba226728fff1e2c6275ecc9b20129e1c1d2671a837aa1d265b36809501b519dbc08129e1c1d2671a837aa1d265b36809501b519dbc08129e1c1d2671a837aa1d265b36809501b519dbc08129e1c [Fortes] UsarFortes=1 Largura=0 MargemTopo=0 MargemFundo=0 MargemEsquerda=0 MargemDireita=0 Preview=0 [Printer] Name= [Rede] tipoInter=0 tipoLan=2 SSID= seg=0 codigo= lanIP=192.168.1.124 lanMask=255.255.0.0 lanGW=192.168.1.10 lanDNS1=192.168.1.5 lanDNS2=192.168.1.7 usuario= senha= proxy=0 proxy_ip= proxy_porta=0 proxy_user= proxy_senha= Desde já agradeço. Eduardo Ribeiro