У меня есть настраиваемое поле в Bugzilla, которое мне нужно обновить после выполнения вызова JSON на другой сервер после обновления ошибки.Я могу позвонить и получить ответ, но попытка обновить ошибку не удалась.
Я попытался установить поле в перехватчиках bug_end_of_update
и object_end_of_set_all
, но оно не сработалосовсем.Если я попытаюсь сделать это в bug_end_of_update
, сам объект обновится в памяти, но он никогда не будет установлен в базе данных.Вызов update для объекта $bug
в этом методе отправляет Bugzilla в бесконечный цикл, который требует полного перезапуска для исправления.В приведенном ниже коде я могу корректно обновить поле assigned_to
.Использование такого же точного вызова не работает для настраиваемого поля.
sub object_end_of_set_all {
my ($self, $args) = @_;
my $object = $args->{'object'};
if ($object->isa('Bugzilla::Bug')) {
$object->{'assigned_to'} = $object->{'reporter_id'}; #this works
$object->{'cf_custom_field'} = 'hello world'; #this doesn't
my $blessedField = {cf_custom_field};
bless $blessedField;
$object->set($blessedField, 'hello world'); #also doesn't work
$object->update; #puts bugzilla into an infinite loop that never returns
}
}
Я ожидаю, что установка настраиваемого поля будет работать точно так же, как assigned_to
, но это не так, и документация по этому вопросукрайне не хватает.