Domanda

Esiste un modo per utilizzare i campi modulo che non corrispondono al campo del database per le elaborazioni temporanee?

vale a dire. Voglio aggiungere:

  • campi temporanei item1 , item2
  • campo database sum
  • Pulsante
  • con hook record che imposta sum = item1 + item2
È stato utile?

Soluzione

Per quanto ne so, semplicemente non è possibile con ClearQuest. Ho provato a fare qualcosa di simile e mi è stato detto dal nostro consulente IBM che l'unico modo è creare un campo DB per tutte le variabili.

Altri suggerimenti

In realtà non è possibile allegare dati ai campi del modulo: sono rappresentazioni dei dati sottostanti, non qualcosa con cui gli script interagiscono direttamente.

Anche l'aggiunta di dati temporanei al record (entità) sottostante sembra improbabile. Forse è possibile abusare dell'API perl e allegare dinamicamente i dati agli oggetti entità, ma personalmente non lo proverei, potresti perdere i tuoi dati per capriccio di CQ allora ;-)

Ciò non significa tuttavia che sia impossibile disporre di dati temporanei. Il modo migliore mi sembra di utilizzare l'oggetto sessione, che è esplicitamente destinato a tale scopo.

Dal file della guida:

  

IBM Rational ClearQuest supporta il   uso di variabili a livello di sessione per   memorizzazione delle informazioni. Dopo aver creato   variabili di sessione, è possibile accedere   attraverso l'attuale sessione   oggetto che utilizza funzioni o subroutine,   compresi ganci, che hanno accesso a   l'oggetto Session. Quando la corrente   la sessione termina, tutte le variabili   associato a quell'oggetto Session   sono cancellati. La sessione termina quando il   l'utente si disconnette o il riferimento finale   all'oggetto Session cessa di esistere.

C'è della documentazione utile su questo argomento in file: /// C: /Program%20Files/Rational/ClearQuest/doc/help/cq_api/c_session_vars.htm (Presumendo un'installazione predefinita su una macchina Windows, ovviamente.)

Traducendo l'esempio di codice lì dentro in quello che sembri desiderare, prima memorizzi i dati che hai calcolato all'interno dell'oggetto sessione:

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

Quindi, nel tuo hook di calcolo, recuperi i valori memorizzati e imposta il valore del campo dei totali in questo modo:

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

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

Adeguati al gusto ovviamente ;-)

I progettisti di schemi ClearQuest spesso includono campi 'temporanei' nei loro tipi di record. Lo fanno in modo da eseguire operazioni sugli hook per generare un altro valore.

Ad esempio, per i campi Notes, esiste un campo Notes_entry 'temporaneo' in cui l'utente digita la nota più recente e quando il record viene salvato, il valore viene aggiunto al campo Notes_Log. Alla successiva modifica del record, il campo Notes_entry viene cancellato in modo che l'utente possa digitare un nuovo Notes_entry.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top