Nov 10 2006

Team Coherence: utilizando a TC Tracker API

Autor: Marcos Dell Antonio - Categorias: Team Coherence

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+

Adicione ao del.icio.us del.icio.us | Adicione ao Rec6 Rec6

Faça um comentário