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

Модератор: 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
Откуда: Воронеж
Поблагодарили: 1 раз

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 Гуру
Сообщения: 3116
Зарегистрирован: 24 дек 2010, 09:27
Откуда: Череповец
Благодарил (а): 4 раза
Поблагодарили: 4 раза
Контактная информация:

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
Откуда: Украина, Киев.

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

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

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

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

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

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

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

Prod: OTRS ITSM 5.0.14 on CentOS 7 x64 Linux with MySQL 5.7

Radiant System OTRS Intergrator RU
Radiant System OTRS Intergrator EN
Хотите внедрить OTRS? Спросите меня как!
Следите за нашими новостями на Facebook

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

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

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

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

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

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

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

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

Prod: OTRS ITSM 5.0.14 on CentOS 7 x64 Linux with MySQL 5.7

Radiant System OTRS Intergrator RU
Radiant System OTRS Intergrator EN
Хотите внедрить OTRS? Спросите меня как!
Следите за нашими новостями на Facebook

Ответить