Frage

Gibt es eine Möglichkeit, Formularfelder zu verwenden, die dem Datenbankfeld nicht für temporäre Prozessen entspricht?

Dh ich möchte hinzufügen:

  • Temperaturfelder Gegenstand 1, Punkt2
  • Datenbankfeld Summe
  • Taste mit Rekordhaken, die festgelegt Summe = Gegenstand 1 + Punkt2
War es hilfreich?

Lösung

Soweit ich weiß, ist es mit Clearquest einfach nicht möglich. Ich habe versucht, etwas Ähnliches zu tun, und unser IBM -Berater wurde gesagt, dass der einzige Weg darin besteht, ein DB -Feld für alle Variablen zu erstellen.

Andere Tipps

Sie können Daten nicht wirklich an Formularfelder anhängen - dies sind Darstellungen der zugrunde liegenden Daten, mit denen Skripte nicht direkt interagieren.

Das Hinzufügen von temporären Daten zum zugrunde liegenden Datensatz (Entity) selbst klingt auch unwahrscheinlich. Vielleicht ist es möglich, die Perl-API zu missbrauchen und Daten dynamisch an Entitätsobjekte anzuhängen, aber ich persönlich würde es nicht versuchen, Sie können Ihre Daten im Laune aus CQ verlieren ;-)

Das bedeutet jedoch nicht, dass es unmöglich ist, vorübergehende Daten zu haben. Der beste Weg scheint mir das Sitzungsobjekt zu verwenden, das ausdrücklich zu diesem Zweck beabsichtigt ist.

Aus der Help -Datei:

IBM Rational Clearquest unterstützt die Verwendung von Sitzungsvariablen zum Speichern von Informationen. Nachdem Sie Sitzungsvariablen erstellt haben, können Sie über das aktuelle Sitzungsobjekt mithilfe von Funktionen oder Unterroutinen, einschließlich Hooks, auf sie zugreifen, die Zugriff auf das Sitzungsobjekt haben. Wenn die aktuelle Sitzung endet, werden alle mit diesem Sitzungsobjekt zugeordneten Variablen gelöscht. Die Sitzung endet, wenn sich der Benutzer anmeldet oder der endgültige Verweis auf das Sitzungsobjekt aufhört zu existieren.

Es gibt einige hilfreiche Dokumentationen zu diesem Thema in Datei: /// c: /program%20files/rational/clearquest/doc/help/cq_api/c_session_vars.htm (Natürlich eine Standardinstallation auf einem Windows -Computer angenommen.)

Um das Code -Beispiel in das zu übersetzen, was Sie scheinen, speichern Sie zuerst die Daten, die Sie im Sitzungsobjekt berechnet haben:

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

In Ihrem Berechnungshaken rufen Sie dann die gespeicherten Werte ab und setzen den Wert dieses Feldes von diesem Gesamtbereich wie folgt:

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

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

Sich natürlich an den Geschmack einstellen ;-)

Clearquest -Schema -Designer enthalten häufig "temporäre" Felder in ihre Datensatztypen. Sie tun dies, damit sie Operationen an Hooks ausführen, um einen anderen Wert zu generieren.

Beispielsweise gibt es für die Notes -Felder ein "temporäres" Notizen -NOTES_ENTRY -Feld, in das der Benutzer die neueste Notiz eingibt, und wenn der Datensatz gespeichert wird, wird der Wert dem Feld Notes_log hinzugefügt. Wenn das nächste Mal der Datensatz bearbeitet wird, wird das Feld Notes_entry gelöscht, sodass der Benutzer eine neue Notizens_entry eingeben kann.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top