Ir para conteúdo
  • Cadastre-se

dev botao

Erro No Retorno Decodificarpaginadecodigosat


menezesbr
  • Este tópico foi criado há 3224 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Bom dia, por favor, estou implementando o SAT no nosso sistema e estou tendo problemas com a unit ACBrSAT.pas na função:

 

function TACBrSAT.DecodificarPaginaDeCodigoSAT(ATexto : AnsiString) : String ;
begin
  if fsConfig.PaginaDeCodigo > 0 then
     Result := ACBrStr( TranslateString( ATexto, 0, fsConfig.PaginaDeCodigo ) )
  else
     Result := ACBrStr( ATexto ) ;
end ;

 

Não esta conseguindo retornar valor em fsConfig.PaginaDeCodigo, esta mostrando como Inaccessible value para quase qualquer função que eu rodo no SAT (Emulador).

 

post-3248-0-87105300-1434552775_thumb.pn

 

 

Consegui fazer a ativação e a associação da assinatura certinho mas logo em seguida de qualquer destes comandos me para o Delphi mostrando que não tem valor ai. ainda sim os comandos no emulador vão corretamente e o resultado é certinho de ativado e associado.

 

post-3248-0-51194000-1434552783_thumb.pn

 

Alguém esta tendo este problema ou teve?

 

Grato pela atenção

 

Abraços

 

André

Link para o comentário
Compartilhar em outros sites

  • Fundadores

O Debug do Delphi não tem nenhuma relação com o emulador...

 

A imagem acima, mostra que o Debug do Delphi não foi capaz de interpretar um valor em Tempo real... (isso pode ocorrer dependendo do tipo de variável)

 

A imagem de baixo, mostra que você não está informando valores corretos para o comando "Campos CNPJValue Inválido"

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

O Debug do Delphi não tem nenhuma relação com o emulador...

 

A imagem acima, mostra que o Debug do Delphi não foi capaz de interpretar um valor em Tempo real... (isso pode ocorrer dependendo do tipo de variável)

 

A imagem de baixo, mostra que você não está informando valores corretos para o comando "Campos CNPJValue Inválido"

 

Bom dia Daniel tudo bem?

 

Quando ao emulador fui mostrar só que os comandos foram aceitos corretamente, o erro do CNPJValue já corrigi, tando que logo abaixo onde marquei em vermelho já esta ok.

 

Quando ao compilador, realmente, fui mostrar onde ele me levou o erro, se executo só o sistema ele trava tudo e fecha, depurando via código ele me breca ali.

 

qualquer comando que eu execute ele me da este erro.

 

Erro apresentado:

 

post-3248-0-59536000-1434554347_thumb.pn

Editado por menezesbr
Link para o comentário
Compartilhar em outros sites

  • Consultores

Você consegue reproduzir o problema com o exemplo.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

Você consegue reproduzir o problema com o exemplo.

 

Sim, exatamente mesmo erro no mesmo lugar:

 

post-3248-0-40940900-1434558636_thumb.pn

 

Inclusive acabei de remover todo o ACBr, dei update, reinstalei tudo (sem erros) e testei novamente. Observei que o problema esta quando vai associar algum valor na variável fsRespostaComando:

 

post-3248-0-87668100-1434558647_thumb.pn

 

Tentei modificar e colocar qualquer valor ali, mesmo a string direto ali e da erro nesta hora também.

 

Tentei retornar direto e mesmo assim... para tudo:

 

post-3248-0-66426000-1434558953_thumb.pn

 

 

Editado por menezesbr
Link para o comentário
Compartilhar em outros sites

  • Fundadores

Eu ainda não consegui compreender qual é exatamente o problema...

 

Vc está querendo dizer, que fsRespostaComando fica vazia ??

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

Eu ainda não consegui compreender qual é exatamente o problema...

 

Vc está querendo dizer, que fsRespostaComando fica vazia ??

 

Então Daniel, confesso  que nem eu sei qual é o problema:

 

1 - o primeiro erro que da é quando ele passa pela função DecodificarPaginaDeCodigo  mostrando que não tem nada na fsConfig.PaginaDeCodigo

2 - se eu tiro esta função para ele retornar direto a string ele da erro que não consegue associar nada na variavel fsRespostaComando

3 - se eu ignoro esta variavel e tento retornar direto o que veio de valor, da erro no Result

 

Estou tentando tirar as funções para ver se consigo chegar em uma solução sem erros pelo menos mas não estou conseguindo.

 

Observei que utilizando a função TranslateString também gera erro. É como se alguma coisa não tivesse carregada, não consegui compreender o que esta ocorrendo também.

 

Tem alguma forma de lhes explicar melhor o que esta acontecendo?

 

 

--> Continuando os testes:

 

Removi a função FinalizaComando, colocando direro:

 

Result := fsSATClass.AssociarAssinatura( CNPJvalue, assinaturaCNPJs );//FinalizaComando(  );

 

ao invez de Result := FinalizaComando( fsSATClass.AssociarAssinatura( CNPJvalue, assinaturaCNPJs )  );

 

e não deu mais problemas, agora não sei na sequencia desta função o que exatamente esta acontecendo

Editado por menezesbr
Link para o comentário
Compartilhar em outros sites

  • Fundadores

Sinto muito, não estou conseguindo compreender a sua linha de raciocínio...

 

Se quiser reportar um Bug, favor fornecer o passo a passo usando a aplicação SATTeste.exe

 

Se quiser sugerir modificação nos fontes, favor anexar (zip) as units modificadas...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

Então Daniel, realmente não sei bem o que dizer.

 

Estou fazendo os testes mesmo no SAT Teste quando no meu sistema e o erro aparece em ambos.

 

Para vocês esta tudo normal? Conseguem usar normalmente? Não sei o que dizer mais do erro que esta acontecendo. Vou tentar outra versão do delphi e quem sabe tenho sorte.

 

Nao sei ainda informar se é bug nem se existe algo a se corrigir. Se descobrir lhes conto.

 

Mesmo assim obrigado

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Sim, já existem vários usuários usando o ACBrSAT...

 

Você ainda não descreveu o erro...

 

Qual comando você está tentando executar que não funciona ?

Qual é a exata mensagem de erro ??

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

Sim, já existem vários usuários usando o ACBrSAT...

 

Você ainda não descreveu o erro...

 

Qual comando você está tentando executar que não funciona ?

Qual é a exata mensagem de erro ??

 

Qualquer comando que eu tente executar ele esta dando exatamente o mesmo erro.

 

Agora observei que o erro esta na hora que ele vai rodar alguma função da classe fsSATClass, por exemplo:

 

Result := FinalizaComando( fsSATClass.AtivarSAT( subComando, CNPJ, cUF ) );

 

Se eu executo Result := FinalizaComando( 'Texto qualquer' ); ele vai certinho, mas não roda nenhum comando seguido do fsSATClass

 

To empacado ai pois ele não roda nem vai para a função, apenas da erro:

 

post-3248-0-08750000-1434650271_thumb.pn

Link para o comentário
Compartilhar em outros sites

Consegui ir um pouco mais a frente...

 

Encontrei no classe ACBrSATDinamico_stdcall.pas a função de ativar que até onde entendi ele envia a função para a DLL.

 

O erro ocorre na função TACBrSATDinamico_stdcall.AtivarSAT em:

 

Resp := xSAT_AtivarSAT( numeroSessao, subComando,
                          PAnsiChar(codigoDeAtivacao), PAnsiChar(CNPJ), cUF);

 

 

Agora só encontrei esse xSAT_AtivarSAT como função virtual que ele chama da DLL (pelo que entendi).

 

Alguma dica por ai?

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Vamos seguir de forma analítica... por favor responda apenas as perguntas...

 

Qual comando você está tentando executar que não funciona ?

Qual é a exata mensagem de erro ??

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

Vamos seguir de forma analítica... por favor responda apenas as perguntas...

 

Qual comando você está tentando executar que não funciona ?

Qual é a exata mensagem de erro ??

 

Desculpe, bom, todos os comandos dão erro, mas como acabei de zerar o emulador estou tentando com o AtivarSAT

 

Comando: AtivarSAT

 

Erro1: Abre uma janela "CPU" com um monte de códigos Hexa (aquela imagem que postei ali em cima). Para nesta tela e fica. Quando vou precionando F8 para continuar, ele vai andando nesta janela "CPU" e da o segundo erro:

 

Erro 2: Project:... access violation at 0x007b05c5: read of address 0x45477863. Process Stopped. Use Step or Run to continue.   A partir dai posso apertar ok quantas vezes quiser que ele só da esse erro.

Link para o comentário
Compartilhar em outros sites

Uma luz no fim do tunel.

 

Poderiam analisar para mim o arquivo em anexo?

 

Alterei o arquivo ACBrSATDinamico_stdcall.pas, coloquei um try na função Ativar e mesmo que a janela "CPU" abra, ele não passa para o segundo erro, é como se desse certo.

 

function TACBrSATDinamico_stdcall.AtivarSAT(subComando : Integer ;
  CNPJ : AnsiString; cUF : Integer) : String ;
Var
  Resp : PAnsiChar;
begin
  try
    Resp := xSAT_AtivarSAT( numeroSessao, subComando,
                            PAnsiChar(codigoDeAtivacao), PAnsiChar(CNPJ), cUF);
  except
    Resp := '';
  end;

  Result := String( Resp );
end ;

 

 

ACBrSATDinamico_stdcall.zip

Link para o comentário
Compartilhar em outros sites

Entendi.

 

Eu inicialmente havia feito testes com a std e fiz alguns com o cdecl, mas acho que o erro apresentado anteriormente devia ser outra coisa.

 

Realmente agora colocando o cdecl aparentemente deu tudo certo mesmo.

 

Muito agradecido por toda a ajuda.

 

Grande abraço

 

André

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3224 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.