HP (QC) ALM POST или PUT заставляет меня предоставить "обязательные поля", которые не требуются в текущем состоянии рабочего процесса
Я пытаюсь обновить дефект HP QC через REST API, используя PUT VERB. Тем не менее, он скажет мне, что не может обновить дефект из-за "Отсутствует обязательное поле".
Я бы понял, если поле действительно требовалось, но дело в том, что это не так. Я могу пойти в QC, обновить тот же дефект со значением, которое я пытаюсь обновить в скрипте, и он работает просто отлично.
Если для поля "Состояние" установлено значение "Отложено", то поле "Пользователь-03", помеченное как "Отложенная причина", является обязательным, и вы не можете сохранить дефект без отложенной причины, когда состояние откладывается.
В этом случае статус устанавливается на "Закрыто", поэтому это обязательное поле не применяется в этом состоянии рабочего потока. Однако HP REST API 11 все равно заставит меня указать значение для каждого "потенциального" обязательного поля независимо от текущего состояния рабочего процесса.
Это очень плохой дизайн. Это можно обойти? Я не хочу помещать фиктивные данные в эти поля только для того, чтобы решить проблему с API HP.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<QCRestException><Id>qccore.required-field-missing</Id>
<Title>Missing required field: user-03 for entity defect</Title>
<ExceptionProperties/></QCRestException>
1 ответ
API остальных HP обходит рабочий поток / VBS, настроенный для всех этих целей. Это сильно зависит от метаданных настройки, которые мы имеем для каждого проекта.
Чтобы преодолеть то, что вы должны сделать, перейдите в настройку -> Объекты проекта -> Объект -> Пользовательские поля -> Пользователь-03. Отметьте это необязательное поле в настройке. В сценарии рабочего процесса вы все равно можете установить его обязательным для определенных условий, чтобы он работал с тем же поведением с точки зрения пользователя, и, надеюсь, остальные также позволят вам выполнить обновление без указания этого поля.
Спасибо,
Gaurav