Страница 1 из 1

Изменение значения динамического поля

Добавлено: 24 дек 2013, 21:35
xpasha
Всем доброго дня,

Бьюсь над проблемой сохранения статусов эскалации в динамических полях. Вот я создал динамическое поле EscalationTime1 типа text. В модуле Ticket.pm пытаюсь в подпрограмме TicketEscalationIndexBuild изменить значение этого поля.

После строки 2526 вставляю код который по идее должен сохранить значение EscalationTime в эту переменную следующим образом:

my $Success = $DynamicFieldValueObject->ValueSet(
FieldID => 'EscalationTime1', # ID of the dynamic field В каком виде это FieldID должно быть? В виде названия поля или его числового ID из базы?
ObjectID => $TicketID, # ID of the current object that the field
# must be linked to, e. g. TicketID
Value => [
{
ValueText => '$EscalationTimes{escalation_solution_time}', # optional, one of these fields must be provided
},
],
UserID => $UserID,
);

В результате получаю ошибку:

Global symbol "$DynamicFieldValueObject" requires explicit package name at /opt/[..]

Модуль подключен

use Kernel::System::DynamicFieldValue;

Как же правильно вызвать эту процедуру изменения динамического поля?

Re: Изменение значения динамического поля

Добавлено: 24 дек 2013, 21:43
xpasha
Может существуют другие методы изменения значений динамических полей?

Re: Изменение значения динамического поля

Добавлено: 25 дек 2013, 18:05
xpasha
С синтаксисом разобрался. Теперь если статически определить FieldID то изменение значение динамического поля работает. Осталось понять, как получить FieldID по имени динамического поля.
Господа разработчики сведующие в этом вопросе, помогите пожалуйста разобраться.

Re: Изменение значения динамического поля

Добавлено: 26 дек 2013, 09:02
merkushov

Код: Выделить всё

    my $FieldID;
    my $DynamicField = $Self->{DynamicFieldObject}->DynamicFieldGet(
        Name => $DynamicFieldName,
    );
    if ( $DynamicField && $DynamicField->{ID} ) {
        $FieldID = $DynamicField->{ID};
    }

Re: Изменение значения динамического поля

Добавлено: 26 дек 2013, 16:06
xpasha
Спасибо! Все получилось! :)

Re: Изменение значения динамического поля

Добавлено: 26 дек 2013, 16:10
ykolesnikov
А теперь, если это не секрет, расскажите решение полностью. Заранее спасибо. :oops:

Re: Изменение значения динамического поля

Добавлено: 27 мар 2014, 18:48
mukexa
Меня тоже очень интересует данная тема, поделитесь пожалуйста.
Хочу реализовать след. схему: в реквизитах клиента будет висеть поле "версия", а при заполнении заявки хотелось бы его значение отправить в динамическое поле, чтобы агентам меньше заполнять.

Re: Изменение значения динамического поля

Добавлено: 27 мар 2014, 19:23
alexus
mukexa писал(а): Хочу реализовать след. схему: в реквизитах клиента будет висеть поле "версия", а при заполнении заявки хотелось бы его значение отправить в динамическое поле, чтобы агентам меньше заполнять.
Edit Config Settings in Ticket -> Core::Ticket
DynamicFieldFromCustomerUser::Mapping

Re: Изменение значения динамического поля

Добавлено: 28 мар 2014, 14:38
mukexa
Благодарю за наводку!
В очередной раз поражаюсь гибкости такого комбайна как OTRS! )

Re: Изменение значения динамического поля

Добавлено: 29 мар 2014, 20:24
alexus
На самом деле этот функционал появился только в 3.3. Но мы делали такой аддон еще год назад, это было не очень сложно.