Team Coherence: utilizando a TC Tracker API
Para quem ainda não conhece, o TC Tracker é um dos módulos do Team Coherence (veja mais sobre o TC neste post). Ele é responsável pela gerência de requisições e bugs.
O próprio cliente do TC já oferece uma interface muito agradável e prática para trabalhar com o Tracker. No entanto, também está disponível uma API que implementa (ou melhor, disponibiliza, pois faz chamas às rotinas nativas) todas as funcionalidades que existem no servidor do TC. Desta forma, é possível criar um sistema de controle de requisições e bugs de acordo com as necessidades do usuário.
Esta API é escrita em Delphi e, como dito anteriormente, faz chamadas às rotinas nativas utilizando stdcall. O download é gratuito e pode ser feito aqui.
Para utilizá-la, basta fazer o download, descompactar e copiar os .pas para o diretório com os fontes do projeto. Abaixo segue um exemplo bem simples que mostra como conectar no servidor do TC e listar os projetos cadastrados:
1 procedure TfrmPrincipal.btnGoClick(Sender: TObject); 2 var 3 conn, 4 user: string; 5 connected: boolean; 6 result: integer; 7 begin 8 try 9 result := TrkConnect('Local', 'Marcos', 'xxxxx'); 10 if (result <> Err_OK) then 11 ShowMessage('Erro ao conectar: ' + IntToStr(result)); 12 13 cdsProjetos.EmptyDataSet; 14 result := TrkEnumProjects(AdicionaProjeto, cdsProjetos); 15 if (result <> Err_OK) then 16 ShowMessage('Erro ao listar os projetos: ' + 17 IntToStr(result)) 18 finally 19 TrkCurrentConnection(conn, user, connected); 20 if (connected) then 21 begin 22 result := TrkDisconnect; 23 if (result <> Err_OK) then 24 ShowMessage('Erro ao desconectar: ' + IntToStr(result)); 25 end; 26 end; 27 end;
Na linha 9, faço uma chamada à função TrkConnect passando o nome da conexão, usuário e senha.
Na linha 14, chamo a função TrkEnumProjects para retornar todos os projetos cadastrados. Ela recebe dois parâmetros: uma função que trata o que será feito com cada projeto retornado e um ponteiro para alguma informação extra, neste caso, um DataSet. A rotina que passei como parâmetro deve seguir a seguinte assinatura:
1 function (data: Pointer; name: string; id: Cardinal): boolean;
Sua implementação simplesmente adiciona o projeto em questão ao DataSet e retorna true para continuar o processo:
1 function AdicionaProjeto(data: Pointer; name: 2 string; id: Cardinal): boolean; 3 begin 4 TClientDataSet(data).Append; 5 TClientDataSet(data).FieldByName('id').AsInteger := id; 6 TClientDataSet(data).FieldByName('name').AsString := name; 7 TClientDataSet(data).Post; 8 9 Result := true; 10 end;
O resultado final é apresentado abaixo:
Existem várias outras rotinas disponíveis para acessar o TC Tracker. Todas elas bem documentadas e de fácil uso. Além disso, também está disponível uma API para acessar o controle de versão (Version Manager). O download desta pode ser feito aqui.
É isso ai. T+




Deixe o seu comentário