Уведомление (эскалация) о наступлении Due Date
Модератор: ykolesnikov
-
- OTRS Гуру
- Сообщения: 3119
- Зарегистрирован: 24 дек 2010, 09:27
- Откуда: Череповец
- Благодарил (а): 4 раза
- Поблагодарили: 5 раз
- Контактная информация:
Уведомление (эскалация) о наступлении Due Date
Добрый день!
Вновь поднимаю вопрос создания уведомления о достижении (а еще лучше - о предстоящем наступлении, по типу EscalationNotifyBefore) заявленной желаемой даты выполнения заявки.
Дата задается DynamicField или9 FreeTime в 3.0.х) - FreeTime6 с именем DueDate (Выполнить к дате) - и выводится в интерфейсах создания заявки и у клиента и у агента (телефонная заявка)
Вопрос - как уведомить агента о наступлении (или приближении наступления) события - указанной даты.
При конфигурировании уведомлений о событии, можно только создать уведомление об изменении этого поля.
В Generic Agent (Планировщик задач) - по этому полю можно фильтровать, но в задании надо указать конкретную дату или диапазон дат - поскольку задается константа, а не переменная (как я понимаю) такое задание руками надо создавать ежедневно.
Никак не пойму с какой стороны подступиться к этой проблеме, а было бы здорово иметь такой механизм.
Вновь поднимаю вопрос создания уведомления о достижении (а еще лучше - о предстоящем наступлении, по типу EscalationNotifyBefore) заявленной желаемой даты выполнения заявки.
Дата задается DynamicField или9 FreeTime в 3.0.х) - FreeTime6 с именем DueDate (Выполнить к дате) - и выводится в интерфейсах создания заявки и у клиента и у агента (телефонная заявка)
Вопрос - как уведомить агента о наступлении (или приближении наступления) события - указанной даты.
При конфигурировании уведомлений о событии, можно только создать уведомление об изменении этого поля.
В Generic Agent (Планировщик задач) - по этому полю можно фильтровать, но в задании надо указать конкретную дату или диапазон дат - поскольку задается константа, а не переменная (как я понимаю) такое задание руками надо создавать ежедневно.
Никак не пойму с какой стороны подступиться к этой проблеме, а было бы здорово иметь такой механизм.
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая
-
- OTRS Гуру
- Сообщения: 3119
- Зарегистрирован: 24 дек 2010, 09:27
- Откуда: Череповец
- Благодарил (а): 4 раза
- Поблагодарили: 5 раз
- Контактная информация:
Re: Уведомление (эскалация) о наступлении Due Date
Нет идей?
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая
-
- OTRS Гуру
- Сообщения: 5192
- Зарегистрирован: 20 сен 2010, 18:17
- Откуда: Москва
- Благодарил (а): 92 раза
- Поблагодарили: 82 раза
Re: Уведомление (эскалация) о наступлении Due Date
Легкий кастом эскалаций поможет
С уважением,
Алексей Юсов
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? Спросите меня как!
Алексей Юсов
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? Спросите меня как!
-
- OTRS Гуру
- Сообщения: 3119
- Зарегистрирован: 24 дек 2010, 09:27
- Откуда: Череповец
- Благодарил (а): 4 раза
- Поблагодарили: 5 раз
- Контактная информация:
Re: Уведомление (эскалация) о наступлении Due Date
Алексей, а чуть подробней!
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая
-
- OTRS Гуру
- Сообщения: 5192
- Зарегистрирован: 20 сен 2010, 18:17
- Откуда: Москва
- Благодарил (а): 92 раза
- Поблагодарили: 82 раза
Re: Уведомление (эскалация) о наступлении Due Date
Есть системный модуль, который отвечает за эскалацию. Надо "попросить" его понаблюдать за этим полем. Мы такое не делали, но думаю проблем не должно быть.
С уважением,
Алексей Юсов
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? Спросите меня как!
Алексей Юсов
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? Спросите меня как!
-
- OTRS Гуру
- Сообщения: 3119
- Зарегистрирован: 24 дек 2010, 09:27
- Откуда: Череповец
- Благодарил (а): 4 раза
- Поблагодарили: 5 раз
- Контактная информация:
Re: Уведомление (эскалация) о наступлении Due Date
О.К.
Коллега из Латвии на аглицком форуме выдал идею и, мне кажется, она продуктивна.
Суть в том, чтобы создать дополнительно скрытое динамическое поле и написать функцию в GenericAgent.pm, которая бы вычисляла разность между DueDate и текущим временем. При достижении разницы некоторой дельты это скрытое поле обновляется (любое желаемое значение). Далее настраиваем уведомление о событии DynamicField_DueDateUpdate (оно есть есть для созданного поля DueDate)
Приведенный ниже кусок кода возвращает значение в форме '2012-01-01 00:00:01'
Необходимые функции:
После этого надо создать задание для Generic Agent
Примерно так.
Поскольку программист я никакой, предлагаю сообществу доработать эту тему превратив в реальный код и статью в Howtos.
Коллега из Латвии, обещал код, но он пока где-то в отсутствии.
Надеюсь, это будет полезно.
Оригинал здесь - http://forums.otterhub.org/viewtopic.php?f=53&t=15492
Коллега из Латвии на аглицком форуме выдал идею и, мне кажется, она продуктивна.
Суть в том, чтобы создать дополнительно скрытое динамическое поле и написать функцию в GenericAgent.pm, которая бы вычисляла разность между DueDate и текущим временем. При достижении разницы некоторой дельты это скрытое поле обновляется (любое желаемое значение). Далее настраиваем уведомление о событии DynamicField_DueDateUpdate (оно есть есть для созданного поля DueDate)
Приведенный ниже кусок кода возвращает значение в форме '2012-01-01 00:00:01'
Необходимые функции:
Код: Выделить всё
Select all
my ( $s, $m, $h, $D, $M, $Y ) = $Self->{TimeObject}->SystemTime2Date(
SystemTime => $Self->{TimeObject}->SystemTime(),
);
my $Date = "$Y-$M-$D $h:$m:$s";
my $Diff = $Param{DueDate}-$Date;
Примерно так.
Поскольку программист я никакой, предлагаю сообществу доработать эту тему превратив в реальный код и статью в Howtos.
Коллега из Латвии, обещал код, но он пока где-то в отсутствии.
Надеюсь, это будет полезно.
Оригинал здесь - http://forums.otterhub.org/viewtopic.php?f=53&t=15492
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая
Re: Уведомление (эскалация) о наступлении Due Date
Здрасте!
Вооот, нашёл наконец-то этот модуль, заодно переписал его с фрифилдов на динамикфилды. Сразу предупреждаю - это абсолютно грязнейший хардкод, и я его написал, только потому что это был единичный случай использования, которому не надо было переживать миграцию... так что Use on your own risk :D:D
Module Kernel::System::GenericAgent.pm
Ну и сам модуль в аттачменте
Вооот, нашёл наконец-то этот модуль, заодно переписал его с фрифилдов на динамикфилды. Сразу предупреждаю - это абсолютно грязнейший хардкод, и я его написал, только потому что это был единичный случай использования, которому не надо было переживать миграцию... так что Use on your own risk :D:D
Module Kernel::System::GenericAgent.pm
Код: Выделить всё
++ ::815::830::
my $Ticket = "($Param{TicketNumber}/$Param{TicketID})";
my %TicketData = $Self->{TicketObject}->TicketGet(
TicketID => $_,
DynamicFields => 1,
);
my $DueDate = 1;
if($TicketData{DynamicField_TicketFreeTime6}){
$DueDate = $Self->{TimeObject}->TimeStamp2SystemTime(
String => $TicketData{DynamicField_TicketFreeTime6},
);
}
my $CurrentDate = $Self->{TimeObject}->SystemTime();
my $Diff = $DueDate - $CurrentDate;
++ ::1124::1135::
$Self->{LogObject}->Log( Priority => 'error', Message => "Difereneceis $Diff Currentdate is $CurrentDate DueDate is $DueDate ticketid is $Param{TicketID} dnname - $DynamicFieldConfig->{Name}");
if($DynamicFieldConfig->{Name} eq 'dummmmy') {
$Success = $Self->{BackendObject}->ValueSet(
DynamicFieldConfig => $DynamicFieldConfig,
ObjectID => $Param{TicketID},
Value => 'insertyourtexthere',
UserID => 1,
);
}
Smile :)
----------------------------------------
Artjoms Petrovs
System Analyst / Системный Аналитик
Software Developer / Разработчик Информационных Систем
----------------------------------------
OTRS 5 Patch Level 9
----------------------------------------
Artjoms Petrovs
System Analyst / Системный Аналитик
Software Developer / Разработчик Информационных Систем
----------------------------------------
OTRS 5 Patch Level 9
Re: Уведомление (эскалация) о наступлении Due Date
Добрый вечер!
Большое спасибо. Испробуем. Нужная вещь.Еще раз спасибо!
Большое спасибо. Испробуем. Нужная вещь.Еще раз спасибо!
С уважением
Ю. Колесников
OTRS 3.3.1, ITSM 3.3.1, SUSE 12, MySQL5
Ю. Колесников
OTRS 3.3.1, ITSM 3.3.1, SUSE 12, MySQL5
-
- OTRS Гуру
- Сообщения: 3119
- Зарегистрирован: 24 дек 2010, 09:27
- Откуда: Череповец
- Благодарил (а): 4 раза
- Поблагодарили: 5 раз
- Контактная информация:
Re: Уведомление (эскалация) о наступлении Due Date
Добрый день!
Наконец дошли руки позаниматься этой доработкой и сразу появились вопросы.
Поскольку в Perl я практически не смыслю
1. В первой части вставляемого кода вычисляется значение разницы между текущей датой и введенным значением динамического поля TicketFreeTime6 (его можно/нужно заменить на свое имя если оно отличается от этого). По описанной ранее идее, далее должна следовать проверка этой разницы с некоей дельтой (константой) и если она меньше этой дельты, то другому скрытому динамическому полю, скажем DueDateReached присваивается некое, любое значение, служащее лишь одной цели - инициировать событие изменения этого поля - TicketDynamicFieldUpdate_DueDateReached.
Вот этого кода я не вижу (если я правильно все понимаю), а правильно его написать не могу в силу в Perl
2. Во второй части вставляемого кода во фразе - видимо надо вставить имя своего поля - DueDateReached вместо dummmmy?
Ну и, наконец, в фразе - - ничего менять, наверное, необязательно т.к. его достаточно, лишь бы поле обновилось?
3. В каком виде надо задавать дельту - секундах или других единицах и в каком формате? Просто количество единиц или что-то типа НН:ММ:SS или как-то еще?
Наконец дошли руки позаниматься этой доработкой и сразу появились вопросы.
Поскольку в Perl я практически не смыслю
1. В первой части вставляемого кода вычисляется значение разницы между текущей датой и введенным значением динамического поля TicketFreeTime6 (его можно/нужно заменить на свое имя если оно отличается от этого). По описанной ранее идее, далее должна следовать проверка этой разницы с некоей дельтой (константой) и если она меньше этой дельты, то другому скрытому динамическому полю, скажем DueDateReached присваивается некое, любое значение, служащее лишь одной цели - инициировать событие изменения этого поля - TicketDynamicFieldUpdate_DueDateReached.
Вот этого кода я не вижу (если я правильно все понимаю), а правильно его написать не могу в силу в Perl
2. Во второй части вставляемого кода во фразе -
Код: Выделить всё
if($DynamicFieldConfig->{Name} eq 'dummmmy')
Ну и, наконец, в фразе -
Код: Выделить всё
Value => 'insertyourtexthere'
3. В каком виде надо задавать дельту - секундах или других единицах и в каком формате? Просто количество единиц или что-то типа НН:ММ:SS или как-то еще?
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая
-
- OTRS Гуру
- Сообщения: 3119
- Зарегистрирован: 24 дек 2010, 09:27
- Откуда: Череповец
- Благодарил (а): 4 раза
- Поблагодарили: 5 раз
- Контактная информация:
Re: Уведомление (эскалация) о наступлении Due Date
Ну что коддеги, так никто и не заинтересовался?
Вариант, что привел "Artjoms", с моими данными не заработал. Идею считаю по-прежнему продуктивной, а знаний не хватает, увы.
Мне представляется сама тема полезной, может кто доведет до ума?
Вариант, что привел "Artjoms", с моими данными не заработал. Идею считаю по-прежнему продуктивной, а знаний не хватает, увы.
Мне представляется сама тема полезной, может кто доведет до ума?
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая
Re: Уведомление (эскалация) о наступлении Due Date
Так никого и не заинтересовала тема?
С уважением
Ю. Колесников
OTRS 3.3.1, ITSM 3.3.1, SUSE 12, MySQL5
Ю. Колесников
OTRS 3.3.1, ITSM 3.3.1, SUSE 12, MySQL5
-
- OTRS Новобранец
- Сообщения: 22
- Зарегистрирован: 06 ноя 2012, 15:57
Re: Уведомление (эскалация) о наступлении Due Date
Присоединяюсь, а лучше еще и SMS посылать, т.к. выездной специалист бОльшую часть времени на выездах и смотреть свою почту может только урывками.ykolesnikov писал(а):Ну что коддеги, так никто и не заинтересовался?
Вариант, что привел "Artjoms", с моими данными не заработал. Идею считаю по-прежнему продуктивной, а знаний не хватает, увы.
Мне представляется сама тема полезной, может кто доведет до ума?
OTRS 3.1.11 ITSM 3.1.6 FreeBSD
-
- OTRS Бывалый
- Сообщения: 310
- Зарегистрирован: 25 окт 2012, 15:06
- Откуда: Воронеж
- Поблагодарили: 2 раза
Re: Уведомление (эскалация) о наступлении Due Date
Возможно, годика через пол. Сейчас подобной задачи не стоит.yuri0001 писал(а):Так никого и не заинтересовала тема?
Меркушов Виктор, perl программист