Vimos no artigo passado, a lógica de funcionamento do TEF. Agora vamos "colocar a mão na massa" e começar a desenvolver as nossas rotinas!
Nesta edição, iremos realizar a primeira comunicação com o Gerenciador Padrão e tratar todos os retornos e mensagens possíveis.
A idéia é verificarmos se o Gerenciador Padrão está ativo, antes de iniciarmos uma transação TEF.
- Exemplo em Delphi
//////////////////////////////////////////////////////////
// Esta função verifica se o Gerenciador Padrão está ATIVO
//////////////////////////////////////////////////////////
function VerificaGerenciadorPadrao;
var
cConteudoArquivo: string;
cIdentificacao : TDateTime;
cArquivo : TextFile;
iTentativas : integer;
lFlag : longbool;
begin
AssignFile( cArquivo, 'INTPOS.001');
cConteudoArquivo := '';
cIdentificacao := Time;
cConteudoArquivo := '000-000 = ATV' + #13 + #10 +
'001-000 = ' + FormatDateTime( 'hhmmss', cIdentificacao )
+ #13 + #10 +
'999-999 = 0';
ReWrite( cArquivo );
WriteLn( cArquivo, cConteudoArquivo );
CloseFile( cArquivo );
CopyFile( pchar( 'INTPOS.001' ),
pchar( 'C:\TEF_DIAL\REQ\INTPOS.001' ), lFlag );
DeleteFile( 'INTPOS.001' );
for iTentativas := 1 to 7 do
begin
if ( FileExists( 'C:\TEF_DIAL\RESP\ATIVO.001' ) ) or
( FileExists( 'C:\TEF_DIAL\RESP\INTPOS.STS' ) ) then
begin
Application.MessageBox( 'O Gerencial Padrão se encontra ATIVO !',
'Atenção', MB_IconInformation + MB_OK );
break;
end;
Sleep( 1000 );
if ( iTentativas = 7 ) then
begin
Application.MessageBox( 'O Gerencial Padrão INATIVO!',
'Atenção',
MB_IconInformation + MB_OK );
Break;
end;
end;
end;
Muito bom. Obrigado pela ajuda. O Desenvolvimento de software somente é possível graças a disposição daqueles que tem conhecimento de compartilhar com os que ainda estão adquirindo ou estão enfrentando alguma dificuldade. Parabéns, continue sempre.
ResponderExcluirOlá!
ExcluirA ajuda mutua deveria existir em todas as profissões, porém, a ganancia e a soberba prevalecem. Se precisar de mais ajuda, estou a disposição.
Seja sempre bem Vindo(a)!!