Question

Existe-t-il un moyen d'utiliser des champs de formulaire qui ne correspondent pas au champ de base de données pour les traitements temporaires?

I.e. Je veux ajouter:

  • champs temporaires item1 , item2
  • champ de base de données sum
  • Bouton
  • avec un crochet d’enregistrement qui définit la somme = élément1 + élément2
Était-ce utile?

La solution

Autant que je sache, ce n’est tout simplement pas possible avec ClearQuest. J'ai essayé de faire quelque chose de similaire et notre consultant IBM nous a dit que le seul moyen est de créer un champ de base de données pour toutes les variables.

Autres conseils

Vous ne pouvez pas vraiment attacher de données à des champs de formulaire - ce sont des représentations des données sous-jacentes, pas quelque chose avec lequel les scripts interagissent directement.

L'ajout de données temporaires à l'enregistrement sous-jacent (l'entité) elle-même semble également peu probable. Peut-être est-il possible d’abuser de l’API perl et d’attacher de manière dynamique des données à des objets d’entité, mais je ne le tenterais pas personnellement, vous risqueriez alors de perdre vos données à la merci de CQ; -)

Cela ne signifie toutefois pas qu’il est impossible de disposer de données temporaires. La meilleure façon de procéder me semble utiliser l’objet session, qui est explicitement prévu à cet effet.

À partir du fichier d'aide:

  

IBM Rational ClearQuest prend en charge le   utilisation de variables de la session pour   stocker des informations. Après avoir créé   variables de la session, vous pouvez accéder   eux à travers la session en cours   objet utilisant des fonctions ou des sous-routines,   y compris les crochets, qui ont accès à   l'objet de session. Quand le courant   session se termine, toutes les variables   associé à cet objet Session   sont supprimés. La session se termine lorsque le   l'utilisateur se déconnecte ou la référence finale   à l'objet Session cesse d'exister.

Il existe une documentation utile à ce sujet dans fichier: /// C: /Program%20Files/Rational/ClearQuest/doc/help/cq_api/c_session_vars.htm (en supposant une installation par défaut sur une machine Windows, bien sûr.)

En traduisant l’exemple de code présent dans ce que vous semblez vouloir, commencez par stocker les données que vous avez calculées dans l’objet de session:

$session->SetNameValue("item1", $value1);
$session->SetNameValue("item2", $value2);

Ensuite, dans votre crochet de calcul, vous récupérez les valeurs stockées et définissez la valeur de ce champ de totaux comme suit:

my $item1 = GetNameValue("item1");
my $item2 = GetNameValue("item2");
my $sum = $item1 + $item2;

$entity->SetFieldValue("some_totals_record", $sum);

Adaptez-vous au goût bien sûr ;-)

Les concepteurs de schéma ClearQuest incluent souvent des champs "temporaires" dans leurs types d'enregistrement. Pour ce faire, ils effectuent des opérations sur les points d'ancrage afin de générer une autre valeur.

Par exemple, pour les champs Notes, il existe un champ "temporaire" Notes_entry dans lequel l'utilisateur entre la note la plus récente. Lorsque l'enregistrement est enregistré, la valeur est ajoutée au champ Notes_Log. Lors de la modification suivante de l'enregistrement, le champ Notes_entry est effacé afin que l'utilisateur puisse saisir un nouveau nom Notes_entry.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top