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

Модератор: ykolesnikov

Ответить
xpasha
OTRS Новобранец
Сообщения: 185
Зарегистрирован: 22 авг 2011, 12:30

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

Сообщение xpasha » 24 дек 2013, 21:35

Всем доброго дня,

Бьюсь над проблемой сохранения статусов эскалации в динамических полях. Вот я создал динамическое поле 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;

Как же правильно вызвать эту процедуру изменения динамического поля?
OTRS 3.3.4
CentOS 6.5, MySQL 5.1.X
OTRS 3.3.6 тестовая

xpasha
OTRS Новобранец
Сообщения: 185
Зарегистрирован: 22 авг 2011, 12:30

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

Сообщение xpasha » 24 дек 2013, 21:43

Может существуют другие методы изменения значений динамических полей?
OTRS 3.3.4
CentOS 6.5, MySQL 5.1.X
OTRS 3.3.6 тестовая

xpasha
OTRS Новобранец
Сообщения: 185
Зарегистрирован: 22 авг 2011, 12:30

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

Сообщение xpasha » 25 дек 2013, 18:05

С синтаксисом разобрался. Теперь если статически определить FieldID то изменение значение динамического поля работает. Осталось понять, как получить FieldID по имени динамического поля.
Господа разработчики сведующие в этом вопросе, помогите пожалуйста разобраться.
OTRS 3.3.4
CentOS 6.5, MySQL 5.1.X
OTRS 3.3.6 тестовая

merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

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

Сообщение merkushov » 26 дек 2013, 09:02

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

    my $FieldID;
    my $DynamicField = $Self->{DynamicFieldObject}->DynamicFieldGet(
        Name => $DynamicFieldName,
    );
    if ( $DynamicField && $DynamicField->{ID} ) {
        $FieldID = $DynamicField->{ID};
    }
Меркушов Виктор, perl программист

xpasha
OTRS Новобранец
Сообщения: 185
Зарегистрирован: 22 авг 2011, 12:30

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

Сообщение xpasha » 26 дек 2013, 16:06

Спасибо! Все получилось! :)
OTRS 3.3.4
CentOS 6.5, MySQL 5.1.X
OTRS 3.3.6 тестовая

ykolesnikov
OTRS Гуру
Сообщения: 3119
Зарегистрирован: 24 дек 2010, 09:27
Откуда: Череповец
Благодарил (а): 4 раза
Поблагодарили: 5 раз
Контактная информация:

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

Сообщение ykolesnikov » 26 дек 2013, 16:10

А теперь, если это не секрет, расскажите решение полностью. Заранее спасибо. :oops:
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

mukexa
OTRS Новобранец
Сообщения: 148
Зарегистрирован: 30 апр 2013, 19:08
Откуда: Украина, Киев.
Поблагодарили: 1 раз

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

Сообщение mukexa » 27 мар 2014, 18:48

Меня тоже очень интересует данная тема, поделитесь пожалуйста.
Хочу реализовать след. схему: в реквизитах клиента будет висеть поле "версия", а при заполнении заявки хотелось бы его значение отправить в динамическое поле, чтобы агентам меньше заполнять.
OTRS 5s, Ubuntu 12.04

alexus
OTRS Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

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

Сообщение alexus » 27 мар 2014, 19:23

mukexa писал(а): Хочу реализовать след. схему: в реквизитах клиента будет висеть поле "версия", а при заполнении заявки хотелось бы его значение отправить в динамическое поле, чтобы агентам меньше заполнять.
Edit Config Settings in Ticket -> Core::Ticket
DynamicFieldFromCustomerUser::Mapping
С уважением,
Алексей Юсов

Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!

mukexa
OTRS Новобранец
Сообщения: 148
Зарегистрирован: 30 апр 2013, 19:08
Откуда: Украина, Киев.
Поблагодарили: 1 раз

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

Сообщение mukexa » 28 мар 2014, 14:38

Благодарю за наводку!
В очередной раз поражаюсь гибкости такого комбайна как OTRS! )
OTRS 5s, Ubuntu 12.04

alexus
OTRS Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

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

Сообщение alexus » 29 мар 2014, 20:24

На самом деле этот функционал появился только в 3.3. Но мы делали такой аддон еще год назад, это было не очень сложно.
С уважением,
Алексей Юсов

Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!

Ответить