Ganchos

Este tópico explica o conceito de ganchos do ClearQuest.

Ganchos são pontos de entidade, como acionadores, para scripts que executam em momentos específicos para controlar como os usuários trabalham em um ambiente do Rational ClearQuest.

Os ganchos são executados com privilégio de superusuário e, portanto, não estão sujeitos ao controle de acesso usual ou restrições do comportamento do campo. Você pode utilizar ganchos para configurar e reconfigurar valores nos campos que geralmente são de leitura. (Você não pode reconfigurar campos de sistema, tais como o campo Histórico.) Os campos obrigatórios permanecem como tais. Para obter informações adicionais, consulte IBM Rational ClearQuest API Reference e Ações e Controle de Acesso .

Quatro tipos de ganchos são suportados:

Linguagens de Script para Ganchos

É possível criar ganchos em VBScript (for Windows) e Perl (para o sistema UNIX e Windows). Por padrão, os ganchos são executados em VBScript no Windows. Para obter informações sobre a execução de ganchos em Perl para Windows, consulte Linguagens de Script .

Você pode incluir um script escrito em VBScript ou Perl em ganchos de campos e ações. Se você estiver criando scripts globais ou scripts de registros, deverá utilizar VBScript ou Perl.

Para armazenamento e referência apropriados, você pode gravar scripts em VBScript e Perl no mesmo esquema. Entretanto, um esquema executa scripts apenas na linguagem especificada para esse esquema. Para obter informações adicionais, consulte Linguagens de Script).

Grave ou edite scripts no editor de script. Quando definir um novo script, o Designer inclui a sintaxe de chamada para esse gancho na janela do editor de scripts. A sintaxe da chamada não pode ser editada. O Designer também inclui o texto de corpo de amostra que você pode editar conforme necessário. (O texto de corpo inicial é comentado e não é executado a menos que você remova os marcadores de comentários.)

O Designer fornece um editor de scripts diferentes para VBScript e Perl, e indica o tipo de editor na barra de título da janela. Verifique se você está no editor correto antes de escrever seu código.

Contexto Operacional para Scripts de Ganchos

O processo de escrita de ganchos VBScript e Perl é simplificado porque o contexto operacional é consistente. Antes que um gancho chame um script VBScript ou Perl, o software Rational ClearQuest cria um objeto de sessão e efetua login no usuário. Como todos os ganchos (incluindo scripts globais) são executados a partir do contexto do registro atual, será fornecido um objeto Entity que corresponde a esse registro. (Os Scripts Globais compartilham o objeto Entity associado ao gancho que o chamou).

Em um script, é possível chamar os métodos de Entity sem especificar um identificador inicial. Por exemplo, você pode chamar o método GetSession de Entity da seguinte maneira:

set curSession = GetSession 
 

Ao chamar métodos desta forma, o software Rational ClearQuest assume que você está chamando um método do objeto Entity implícito transmitido para o gancho. Se você desejar referir-se a esse objeto Entity explicitamente, poderá utilizar o nome do tipo de registro como um identificador para o objeto. A utilização desse identificador pode ajudar a esclarecer o código que manipula mais de um objeto Entity por vez, como no seguinte exemplo, que marca uma entidade como uma duplicata de outra:

set curSession = GetSession  
 idName = GetFieldValue("id").GetValue  
 set currentObj = curSession.GetEntity("defect", idName)  
 ' Marque a entidade com ID="SAMPL00000031" como uma duplicata desta entidade.
 ' Utilize a ação chamada "duplicate".  
 set dupEntityObj = curSession.GetEntity("defect", "SAMPL00000031") 
 curSession.MarkEntityAsDuplicate dupEntityObj, currentObj, "duplicate"

Como os scripts podem afetar o comportamento de um campo, projete e teste o seu código de gancho cuidadosamente. Por exemplo, se um gancho requerer que um campo contenha algum tipo de valor, o campo será obrigatório mesmo se seu comportamento não estiver configurado como MANDATORY.

Considerações do Teste de Ganchos

O código de gancho poderá apresentar erros sutis no tempo de execução se não estiver gravado corretamente. Um gancho será compilado quando você validar o esquema, e todos os erros de sintaxe ou gramática serão marcados. Teste um esquema com um banco de dados de teste antes de efetuar o seu registro de entrada e faça backup do seu banco de dados do usuário antes de aplicar nele as alterações do esquema. Para obter informações adicionais, consulte Testando o Esquema com um Banco de Dados de Teste.

Considere os seguintes problemas ao planejar os ganchos:

Ganchos em um Ambiente Replicado

Muitos problemas relacionados a ganchos executados em um ambiente replicado são os mesmo para problemas de bloqueio do banco de dados do site único. O teste funcional de ganchos também é igual em um site único ou em um ambiente replicado. Entretanto, a execução de alguns ganchos ClearQuest pode ser diferente em um ambiente replicado do que é em um ambiente de site único. Por exemplo, ganchos que atualizam outros registros no contexto da ação de um registro podem encontrar erros se o outro registro não for controlado no site atual e, portanto, não for modificável.

Cada registro de banco de dados só pode ser atualizado no site no qual é controlado no momento (isso é indicado pelo nome do site da réplica no campo ratl_mastership do registro). Em aplicativos complexos, vários registros podem ser atualizados como parte de uma transação complexa. Ao projetar e testar ganchos em um ambiente replicado, esses princípios devem ser considerados.

Para aplicativos complexos em um ambiente replicado com registros intervinculados, seu design de esquema deverá lidar com os seguintes casos:
  • O registro-pai não pode ser modificado em razão de seu domínio. Por exemplo, o registro-pai não poderá ser modificado se não for controlado no site atual.
  • O registro-pai pode ser modificado (principal no site atual), mas um registro subordinado não pode em razão de seu domínio (não é o principal no site atual).

Consulte também Bloqueio de Registro e Validando Esquemas .

Scripts Instalados pelos Pacotes

Ao instalar um pacote, os ganchos do campo ou os scripts de registro podem ser incluídos no esquema. Estes scripts são parte do pacote, não parte do seu código do gancho.

Os scripts não podem ser excluídos ou modificados; eles não são parte do código possuído por um esquema. Por essa razão, não existe relacionamento entre a configuração da linguagem padrão escolhida para o código de gancho e a linguagem em que os ganchos pertencentes a um pacote são implementados.


Feedback