поле без базы данных в форме ClearQuest - PullRequest
0 голосов
/ 01 октября 2008

Есть ли способ использовать поля формы, которые не соответствуют полю базы данных для временных обработок?

т.е. Я хочу добавить:

  • временных полей item1 , item2
  • поле базы данных сумма
  • с перехватом записи, который устанавливает сумму = item1 + item2

Ответы [ 3 ]

2 голосов
/ 09 июня 2009

Вы не можете прикрепить данные к полям формы - это представления базовых данных, а не то, с чем непосредственно взаимодействуют скрипты.

Добавление временных данных в основную запись (сущность) само по себе также маловероятно. Возможно, можно злоупотребить API-интерфейсом perl и динамически присоединять данные к объектам сущностей, но я лично не стал бы пробовать это, вы можете потерять ваши данные по прихоти CQ; -)

Это, однако, не означает, что невозможно иметь временные данные. Мне кажется, что лучше всего использовать объект сеанса, который явно предназначен для этой цели.

Из справочного файла:

IBM Rational ClearQuest поддерживает использование сессионных переменных для хранение информации. После создания переменные всей сессии, вы можете получить доступ их через текущую сессию объект, использующий функции или подпрограммы, включая крючки, которые имеют доступ к Сессионный объект. Когда текущий сессия заканчивается, все переменные связанный с этим объектом сеанса удалены. Сессия заканчивается, когда пользователь выходит из системы или окончательная ссылка к сеансу объект перестает существовать.

В этом файле есть полезная документация: /// C: /Program%20Files/Rational/ClearQuest/doc/help/cq_api/c_session_vars.htm (при условии установки по умолчанию в Windows машина, конечно.)

Преобразуя приведенный здесь пример кода в то, что вам, кажется, нужно, сначала вы сохраняете данные, которые вы рассчитали, внутри объекта сеанса:

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

Затем в подсчете вычислений вы извлекаете сохраненные значения и устанавливаете значение этого итогового поля следующим образом:

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

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

Подстраивайтесь под вкус конечно; -)

2 голосов
/ 04 октября 2008

Насколько я знаю, это просто невозможно с ClearQuest. Я пытался сделать нечто подобное, и наш консультант IBM сказал, что единственный способ - создать поле БД для всех переменных.

0 голосов
/ 18 ноября 2015

Разработчики схем ClearQuest часто включают в свои типы записей «временные» поля. Они делают это, поэтому выполняют операции с хуками, чтобы сгенерировать другое значение.

Например, для полей Notes существует «временное» поле Notes_entry, в которое пользователь вводит самую последнюю заметку, а когда запись сохраняется, значение добавляется в поле Notes_Log. При следующем редактировании записи поле Notes_entry очищается, чтобы пользователь мог ввести новый Notes_entry.

...