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

Автоматическое связывание заявок

Добавлено: 09 фев 2018, 08:00
ggs
Доброго времени суток! Есть потребность автоматически связывать заявки. Планирую сделать через планировщик задач, путем выполнения какого-нибудь скрипта или модуля. Внимание, вопрос: Существуют ли такие скрипты, которые позволяют связать заявки с указанием их номеров или заголовков (что-то типа CreateTicket из терминала)? На форуме смежных задач не встречал. Есть ли смысл копать в сторону модуля MasterSlave? Скриптов типа "LinkObject.pl" не нашел в дистрибутиве с OTRS. Да и вообще какие могут быть способы решения этой задачи? Понимаю что есть такая штука как API, через нее можно использовать функцию LinkAdd, но как это осуществить не знаю.

Re: Автоматическое связывание заявок

Добавлено: 09 фев 2018, 11:30
ykolesnikov
Вы подробно описали много возможных путей решения задачи, которую конкретно так и не поставили. А именно - критерии связывания, источник поступления и т.д.

Re: Автоматическое связывание заявок

Добавлено: 12 фев 2018, 08:38
ggs
Хорошо опишу задачу по-подробнее.
От клиента приходит заявка в отдел Поддержки, над ней работает один человек, после выполненных работ, он закрывает заявку. Она попадает под условия планировщика задач, и он выполняет скрипт - CreateTicket.pl новая заявка - с новым владельцем, и в отделе Бухгалтерия. Дальше в этом отделе работают с созданной заявкой (подготавливают документы о выполненных работах), но что бы понять о чем была работа, необходимо связать предыдущую заявку с этой.
Это сделано для того, что бы статистика была верной, иначе если заявки предавать по очередям, то в итоге все заявки будет закрывать бухгалтерия, а это не правильно.

З.Ы. каждый отдел работает со своими очередями.

Re: Автоматическое связывание заявок

Добавлено: 12 фев 2018, 11:50
ykolesnikov
Посмотрите в сторону разделения заявки (Split Ticket), при этом можно настроить тип связи - Parent - Child ( порождённую заявку не закрыть, пока не закрыта родительская) или Normal (могут быть закрыты независимо). Как автоматизировать это не подскажу, но связь при разделении будет формироваться в соответствии с настройками.

Re: Автоматическое связывание заявок

Добавлено: 15 фев 2018, 13:55
ggs
Где вообще есть информация поподробнее об этом? в дистрибутиве не нашел ничего похожего, и в конфиге системы тоже. Не имею полного представления об этом модуле.

Re: Автоматическое связывание заявок

Добавлено: 15 фев 2018, 14:00
ggs
А можно ли взять модуль LinkObject.pm выпилить из него необходимый код и написать скрипт с этой частью кода???

Re: Автоматическое связывание заявок

Добавлено: 15 фев 2018, 14:08
alexus
У нас есть платный модуль TicketWorkflow, который может на базе тикета создать набор связаных зависимых друг от друга дочерних тикетов.
Посмотреть можно на демо
1. Авторизуетесь агентом, нажав кнопку, тут - https://demo.radiantsystem.com
2. https://demo.radiantsystem.com/otrs/ind ... ketID=3174 - нажимаете "Рабочий процесс" и выбираете вариант Workflow. Работает только для Запросов на обслуживание в статусе "в работе". Если надо, можете создать новый.

Re: Автоматическое связывание заявок

Добавлено: 19 фев 2018, 11:29
ggs
Платный модуль это, конечно, хорошо, но вот сколько он стоит, и может все таки есть варианты по-бесплатнее?))

Re: Автоматическое связывание заявок

Добавлено: 19 фев 2018, 12:12
alexus
У меня в подписи почта есть, отправляйте запрос.
А бесплатнее - пилить самому, если конечно Ваше время ничего не стоит ;) !

Re: Автоматическое связывание заявок

Добавлено: 26 фев 2018, 10:44
ggs
Хорошо, подскажите все таки как работает связывание заявок через api? В документации к otrs, видел, что эти функции доступны для использования, например, LinkAdd. Но реализацию не представляю, да и параметры в функции не полные, что ли. Прошу помощи.

Re: Автоматическое связывание заявок

Добавлено: 26 фев 2018, 21:25
alexus
1. grep -rl LinkAdd /opt/otrs/Kernel/System/
2. /opt/otrs/Kernel/System/Ticket.pm - тут есть пример вызова функции
Вот

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

    # link tickets
    $Kernel::OM->Get('Kernel::System::LinkObject')->LinkAdd(
        SourceObject => 'Ticket',
        SourceKey    => $Param{MainTicketID},
        TargetObject => 'Ticket',
        TargetKey    => $Param{MergeTicketID},
        Type         => 'ParentChild',
        State        => 'Valid',
        UserID       => $Param{UserID},
    );
3. /opt/otrs/Kernel/System/LinkObject.pm - тут сама функция с примером.

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

=item LinkAdd()

3. 
add a new link between two elements

    $True = $LinkObject->LinkAdd(
        SourceObject => 'Ticket',
        SourceKey    => '321',
        TargetObject => 'FAQ',
        TargetKey    => '5',
        Type         => 'ParentChild',
        State        => 'Valid',
        UserID       => 1,
    );

=cut

Re: Автоматическое связывание заявок

Добавлено: 26 мар 2018, 15:50
ggs
Добрый день! Очередной раз подумал над этой темой, придумали временное решение этого вопроса, т.к. настроить это все у меня пока не получается. Подумали, что передачу номера закрытой заявки в тело новой, проще реализовать. Принцип работы представляю следующий: Закрытая заявка попадает под условия планировщика и он с помощью какого-нибудь скрипта или других возможностей "выцепляет" ID этой заявки и передает его через переменную в тело новой заявки, скрипт TicketCreate. Подскажите есть ли такая возможность и какие есть решения для получения ID заявки?

Re: Автоматическое связывание заявок

Добавлено: 26 мар 2018, 16:03
alexus
ggs писал(а):Подскажите есть ли такая возможность и какие есть решения для получения ID заявки?
Странный вопрос - обычно все операции c тикетом выполняются по его ID. Т.е. если вы что-то делаете, то ID вы уже должны знать. А планировщик с ID не работает, т.к. это системный атрибут тикета.

Re: Автоматическое связывание заявок

Добавлено: 03 апр 2018, 10:26
ggs
Доброго времени суток!
Нашел способ связывать заявки с помощью функций Указанных в документации. Связывание отрабатывает но вот поиск ID заявки нет. Прикладываю код поиска ID заявки и ошибку. Полагаю что ошибка в описании $OperationObject .
Собственно, метод Run() есть, проверял.
Строка 8: my $OperationObject = $Kernel::OM-->Get('Kernel::Config')-->Get('GenericInterface::Operation::TicketSearch');

Надеюсь на вашу помощь в устранении этой проблемки, заранее Спасибо!