Создание изменения

Moderator: DenisBY

Locked
benjackson
Znuny newbie
Posts: 7
Joined: 17 Jun 2015, 14:29
Znuny Version: 3.3.9
Real Name: Ilya

Создание изменения

Post by benjackson »

Добрый день!

Никак не могу разобраться, как осуществить процесс создания Изменения через фильтры PostMaster или GenericAgent, других вариантов не вижу...

В фильтрах PostMaster добавил X-OTRS-ITSMTemplate и X-OTRS-Template (пробовал, какой отработает), Условие - определенное слово в Subject.
Фильтр по данным заголовкам не отрабатывает

В GenericAgent ничего связанного с изменениями нет.
Создал задание запуска модуля

Модуль: Kernel::Modules::AgentITSMChangeAddFromTemplate

Параметр 1: ключ: ITSMChange Параметр 1: значение: new
Параметр 2: ключ: LinkObject Параметр 2: значение: new
Параметр 3: ключ: ITSMChange::Template Параметр 3: значение: test_template
Параметр 4: ключ: Web::UploadCache Параметр 4: значение: new

Но результат такой же..

Подскажите, что я делаю не правильно?
artjoms15
Znuny advanced
Posts: 121
Joined: 30 Aug 2011, 10:48
Znuny Version: 3.3.8 && 4.0.9
Real Name: Artjoms Petrovs
Location: Latvia

Re: Создание изменения

Post by artjoms15 »

День добрый!

Не уверен, что Postmaster находит необходимые header'ы во входящем письме, и не уверен, что срабатывает задание GenericAgent'a для тикета (Надо видеть фильтры ).

Я пройду по всем состояниям процесса (Допустим, что изменение запустится через GenericAgent) и укажу, на что следует обратить внимание.

1) Проверить, что GenericAgent находит Тикет, на основе которого создать change ( кнопка Run GenericAgent Job )

2) Если используется модуль AgentITSMChangeAddFromTemplate.pm убедиться, что поданы Ключи:
  • Action == "AgentITSMChangeAddFromTemplate" #для Permissions
    UserID == ID агента, от чьего имени создается чейндж #для Permissions, необходим доступ к Change Management
    Subaction == "CreateFromTemplate" #вызов нужного блока для создания чейнджа
    TemplateID == ID Шаблона, из которого хотим создать Чейндж
    MoveTimeType == "PlannedStartTime"
    MoveTimeYear == Год чейнджа
    MoveTimeMonth == Месяц
    MoveTimeDay == День
    MoveTimeHour == Час
    MoveTimeMinute == Минута
2) Проверить ошибки в Журнале Событий и в логах Апача

3) Тестирование и подача динамических параметров

А.
Ar cieņu / Kind regards,
----------------------------------------
Artjoms Petrovs
Sistēmu analītiķis/Programmētājs /
Systems Analyst/Programmer
benjackson
Znuny newbie
Posts: 7
Joined: 17 Jun 2015, 14:29
Znuny Version: 3.3.9
Real Name: Ilya

Re: Создание изменения

Post by benjackson »

artjoms15 wrote:День добрый!
Не уверен, что Postmaster находит необходимые header'ы во входящем письме, и не уверен, что срабатывает задание GenericAgent'a для тикета (Надо видеть фильтры ).
Я пройду по всем состояниям процесса (Допустим, что изменение запустится через GenericAgent) и укажу, на что следует обратить внимание.
1) Проверить, что GenericAgent находит Тикет, на основе которого создать change ( кнопка Run GenericAgent Job )
2) Eсли используется модуль AgentITSMChangeAddFromTemplate.pm убедиться, что поданы Ключи:
  • Action == "AgentITSMChangeAddFromTemplate" #для Permissions
    UserID == ID агента, от чьего имени создается чейндж #для Permissions, необходим доступ к Change Management
    Subaction == "CreateFromTemplate" #вызов нужного блока для создания чейнджа
    TemplateID == ID Шаблона, из которого хотим создать Чейндж
    MoveTimeType == "PlannedStartTime"
    MoveTimeYear == Год чейнджа
    MoveTimeMonth == Месяц
    MoveTimeDay == День
    MoveTimeHour == Час
    MoveTimeMinute == Минута
3) Проверить ошибки в Журнале Событий и в логах Апача
4) Тестирование и подача динамических параметров
А.
Спасибо за ответ!
1) GenericAgent находит Тикет
2)
otrs.JPG
3) Can't call method "FatalError" on an undefined value at /opt/otrs//Kernel/Modules/AgentITSMChangeAddFromTemplate.pm line 33.

Я так понимаю модуль не видет параметры, в какую сторону копать?
You do not have the required permissions to view the files attached to this post.
artjoms15
Znuny advanced
Posts: 121
Joined: 30 Aug 2011, 10:48
Znuny Version: 3.3.8 && 4.0.9
Real Name: Artjoms Petrovs
Location: Latvia

Re: Создание изменения

Post by artjoms15 »

Нет, тут проблема в другом - не загружены необходимые Объекты, которые обычно автоматически подгружаются, если модуль вызван из веб-интерфейса.

Вижу 2 решения - в обоих надо править код:

1) Надо скопировать модуль AgentITSMChangeAddFromTemplate.pm, зарегистрировать в системе, добавить в него создание необходимых объектов

Code: Select all

use Kernel::Config;
    use Kernel::System::Encode;
    use Kernel::System::Log;
    use Kernel::System::Main;
    use Kernel::System::DB;
    use Kernel::System::Time;
    use Kernel::System::Queue;
    use Kernel::System::Ticket;
    use Kernel::System::GenericAgent;

    my $ConfigObject = Kernel::Config->new();
    my $EncodeObject = Kernel::System::Encode->new(
        ConfigObject => $ConfigObject,
    );
    my $LogObject = Kernel::System::Log->new(
        ConfigObject => $ConfigObject,
        EncodeObject => $EncodeObject,
    );
    my $TimeObject = Kernel::System::Time->new(
        ConfigObject => $ConfigObject,
        LogObject    => $LogObject,
    );
    my $MainObject = Kernel::System::Main->new(
        ConfigObject => $ConfigObject,
        EncodeObject => $EncodeObject,
        LogObject    => $LogObject,
    );
    my $DBObject = Kernel::System::DB->new(
        ConfigObject => $ConfigObject,
        EncodeObject => $EncodeObject,
        LogObject    => $LogObject,
        MainObject   => $MainObject,
    );
    my $QueueObject = Kernel::System::Queue->new(
        ConfigObject => $ConfigObject,
        LogObject    => $LogObject,
    );
    my $TicketObject = Kernel::System::Ticket->new(
        ConfigObject => $ConfigObject,
        LogObject    => $LogObject,
        DBObject     => $DBObject,
    );
и начать тестировать

ИЛИ

Можно подправить файл Custom/Kernel/System/GenericAgent.pm

и подать в вызов внешнего модуля список параметров ( Другими словами, объекты созданные инстанцией GenericAgent'a )
Надо добавить строку %Param,

~ строка 1318

Code: Select all

        if ( $Self->{MainObject}->Require( $Param{Config}->{New}->{Module} ) ) {

            # protect parent process
            eval {
                my $Object = $Param{Config}->{New}->{Module}->new(
                    %{$Self},
                    Debug => $Self->{Debug},
                );
                if ($Object) {
                    $Object->Run(
                        %Param, # ДОБАВИТЬ ЭТУ СТРОКУ
                        %{ $Param{Config} },
                        TicketID => $Param{TicketID},
                    );
                }
            };
            if ($@) {
                $Self->{LogObject}->Log( Priority => 'error', Message => $@ );
            }
        }
Ar cieņu / Kind regards,
----------------------------------------
Artjoms Petrovs
Sistēmu analītiķis/Programmētājs /
Systems Analyst/Programmer
Locked