forum.bitel.ru
http://forum.bitel.ru/

Каким образом можно отловить событие генерации отчета
http://forum.bitel.ru/viewtopic.php?f=12&t=9614
Страница 1 из 1

Автор:  2ray [ 26 авг 2014, 16:10 ]
Заголовок сообщения:  Каким образом можно отловить событие генерации отчета

Для внутренних необходимо отловить событие генерации конкретного отчета. И отправить его в другую систему. Нужный нам отчет написан на jrxml, генерит он pdf файл. Вот этот pdf и надо отправить в другую систему.

Автор:  Phricker [ 26 авг 2014, 16:14 ]
Заголовок сообщения:  Re: Каким образом можно отловить событие генерации отчета

Повесить скрипт на событие "до/после экшна"
ЕМНИМС экшн наз-ся Report. Плясать от этого

Автор:  2ray [ 26 авг 2014, 17:22 ]
Заголовок сообщения:  Re: Каким образом можно отловить событие генерации отчета

Phricker писал(а):
Повесить скрипт на событие "до/после экшна"
ЕМНИМС экшн наз-ся Report. Плясать от этого

Вот эти классы:
до ru.bitel.bgbilling.kernel.event.events.ActionBeforeEvent, после ru.bitel.bgbilling.kernel.event.events.ActionAfterEvent, для отчета bitel.billing.server.phone.bean.Report ?
Где именно событие вешается? В конфигурациях кернеля?

Автор:  Phricker [ 26 авг 2014, 17:34 ]
Заголовок сообщения:  Re: Каким образом можно отловить событие генерации отчета

http://wiki.bitel.ru/index.php/%D0%97%D ... 0%BD%D0%B0

Автор:  2ray [ 27 авг 2014, 10:11 ]
Заголовок сообщения:  Re: Каким образом можно отловить событие генерации отчета

Phricker писал(а):
http://wiki.bitel.ru/index.php/%D0%97%D0%B0%D0%BF%D1%83%D1%81%D0%BA_%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%B0_%D0%B4%D0%BE_%D0%B8_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D0%B0%D0%BA%D1%88%D0%B5%D0%BD%D0%B0


Похоже я что-то не так делаю. Вот, что я добавил в конфиг кернеля:
action.event_reports_Report=after
dynaction:ru.bitel.bgbilling.kernel.event.events.ActionAfterEvent=ru.kristall.bgbilling.action.Report

Класс ru.kristall.bgbilling.action.Report

package ru.kristall.bgbilling.action;

import ru.bitel.bgbilling.common.BGException;
import ru.bitel.bgbilling.common.BGMessageException;
import ru.bitel.bgbilling.kernel.event.events.ActionAfterEvent;

public class Report extends ActionAfterEvent
{
public void doAction() throws BGException {
throw new BGMessageException( "Test" );
//System.out.println("ACTION REPORT");
}
}

Автор:  dimOn [ 27 авг 2014, 11:02 ]
Заголовок сообщения:  Re: Каким образом можно отловить событие генерации отчета

совсем не то делаете.

1.) ActionBeforeEvent и ActionAfterEvent это обычные события. надо прописать action.event_reports_Report=after и потом ловить/обрабатывать их как другие события (см. обработчики событий в клиенте, можнно на bgbs или динкоде). никаких дополнительных динклассов писать не нужно и прописывать куда-то.

2) dynaction:ru.bitel.bgbilling.kernel.event.events.ActionAfterEvent=ru.kristall.bgbilling.action.Report — это совершенно другой метод, никакого отношения к п.1 не имеющий. но это рекомендуется вместо п.1, как и написано в ссылке выше. и прописывать сюда надо не какой-то там евент ru.bitel.bgbilling.kernel.event.events.ActionAfterEvent, очевидно, а класс, который хотите в динкоде перегрузить. про это тоже по ссылке выше есть.

Автор:  2ray [ 27 авг 2014, 11:18 ]
Заголовок сообщения:  Re: Каким образом можно отловить событие генерации отчета

dimOn писал(а):
совсем не то делаете.

1.) ActionBeforeEvent и ActionAfterEvent это обычные события. надо прописать action.event_reports_Report=after и потом ловить/обрабатывать их как другие события (см. обработчики событий в клиенте, можнно на bgbs или динкоде). никаких дополнительных динклассов писать не нужно и прописывать куда-то.

2) dynaction:ru.bitel.bgbilling.kernel.event.events.ActionAfterEvent=ru.kristall.bgbilling.action.Report — это совершенно другой метод, никакого отношения к п.1 не имеющий. но это рекомендуется вместо п.1, как и написано в ссылке выше. и прописывать сюда надо не какой-то там евент ru.bitel.bgbilling.kernel.event.events.ActionAfterEvent, очевидно, а класс, который хотите в динкоде перегрузить. про это тоже по ссылке выше есть.


Получается как классы обработчики, которые создаются на уже имеющиеся в клиенте события (скрипты поведения). Надо написать дин.класс который наследовался бы от EventScriptBase ?

Автор:  dimOn [ 27 авг 2014, 16:13 ]
Заголовок сообщения:  Re: Каким образом можно отловить событие генерации отчета

Нет, это вообще два разных метода реализации того, что вы хотите.

1. либо пишете action.event_reports_Report=after , потом вешаете на ActionAfterEvent скрипт как обычно, и внутри обрабатываете event куда приходит нужная инфа в onEvent итд (обработчик может быть как на bgbs так и на дин.коде).
2. либо пишете dynaction:<...>reports<...>ActionReport=ru.kristall.bgbilling.action.ActionReport и внутри дин.класса ru.kristall.bgbilling.action.ActionReport перегружаете родной ActionReport (потому что его логика вам, очевидно, тоже нужна) для этого вызываете super.doAction итд, а после этого вызова уже пишете свой код какой-то.

Автор:  2ray [ 27 авг 2014, 16:19 ]
Заголовок сообщения:  Re: Каким образом можно отловить событие генерации отчета

dimOn писал(а):
Нет, это вообще два разных метода реализации того, что вы хотите.

1. либо пишете action.event_reports_Report=after , потом вешаете на ActionAfterEvent скрипт как обычно, и внутри обрабатываете event куда приходит нужная инфа в onEvent итд (обработчик может быть как на bgbs так и на дин.коде).
2. либо пишете dynaction:<...>reports<...>ActionReport=ru.kristall.bgbilling.action.ActionReport и внутри дин.класса ru.kristall.bgbilling.action.ActionReport перегружаете родной ActionReport (потому что его логика вам, очевидно, тоже нужна) для этого вызываете super.doAction итд, а после этого вызова уже пишете свой код какой-то.

Непонятен момент: потом вешаете на ActionAfterEvent скрипт как обычно. Как же это, обычно?

Автор:  dimOn [ 27 авг 2014, 17:22 ]
Заголовок сообщения:  Re: Каким образом можно отловить событие генерации отчета

http://bgbilling.ru/v6.1/doc/ch02s03.html

Автор:  2ray [ 27 авг 2014, 17:26 ]
Заголовок сообщения:  Re: Каким образом можно отловить событие генерации отчета

dimOn писал(а):
http://bgbilling.ru/v6.1/doc/ch02s03.html

В этом и проблема, что нет нужного мне события в списках событий Скрипта поведения

Автор:  dimOn [ 28 авг 2014, 13:14 ]
Заголовок сообщения:  Re: Каким образом можно отловить событие генерации отчета

2ray писал(а):
dimOn писал(а):
http://bgbilling.ru/v6.1/doc/ch02s03.html

В этом и проблема, что нет нужного мне события в списках событий Скрипта поведения

А версия у вас 5.2? Непонятно тогда, в kernel_event.sql они описаны. Скорее всего вы криво обновлялись или у вас какая-то дремучая версия. Покажите все версии из окна about.
Но вообще строго рекомендуется не использовать их, а использовать dynaction. В более новых версиях эти события deprecated и когда-нибудь удалится это всё.

Автор:  Phricker [ 28 авг 2014, 13:17 ]
Заголовок сообщения:  Re: Каким образом можно отловить событие генерации отчета

2ray писал(а):
dimOn писал(а):
http://bgbilling.ru/v6.1/doc/ch02s03.html

В этом и проблема, что нет нужного мне события в списках событий Скрипта поведения

Они называются "Перед действием" и "После действия"
И да лучше динкод

Автор:  2ray [ 28 авг 2014, 14:21 ]
Заголовок сообщения:  Re: Каким образом можно отловить событие генерации отчета

dimOn писал(а):
2ray писал(а):
dimOn писал(а):
http://bgbilling.ru/v6.1/doc/ch02s03.html

В этом и проблема, что нет нужного мне события в списках событий Скрипта поведения

А версия у вас 5.2? Непонятно тогда, в kernel_event.sql они описаны. Скорее всего вы криво обновлялись или у вас какая-то дремучая версия. Покажите все версии из окна about.
Но вообще строго рекомендуется не использовать их, а использовать dynaction. В более новых версиях эти события deprecated и когда-нибудь удалится это всё.

Автор:  2ray [ 28 авг 2014, 14:21 ]
Заголовок сообщения:  Re: Каким образом можно отловить событие генерации отчета

Phricker писал(а):
2ray писал(а):
dimOn писал(а):
http://bgbilling.ru/v6.1/doc/ch02s03.html

В этом и проблема, что нет нужного мне события в списках событий Скрипта поведения

Они называются "Перед действием" и "После действия"
И да лучше динкод

А как определить, что сработало нужное мне событие?

Автор:  Phricker [ 28 авг 2014, 14:32 ]
Заголовок сообщения:  Re: Каким образом можно отловить событие генерации отчета

Код:
if(event.getRequest().getParameter("action").equals("UpdateContractPayment")){
......
      }
   }

например так. Помоему это относилось как раз к событию "Перед действием"

Автор:  2ray [ 28 авг 2014, 14:40 ]
Заголовок сообщения:  Re: Каким образом можно отловить событие генерации отчета

Phricker писал(а):
Код:
if(event.getRequest().getParameter("action").equals("UpdateContractPayment")){
......
      }
   }

например так. Помоему это относилось как раз к событию "Перед действием"

Для моего случая if(event.getRequest().getParameter("action").equals("ActionReport")){ ...} или if(event.getRequest().getParameter("action").equals("Report")){ ...}
Как узнать, что за экшен-класс вызывается при генерации отчета.

Автор:  2ray [ 01 сен 2014, 15:19 ]
Заголовок сообщения:  Re: Каким образом можно отловить событие генерации отчета

Phricker писал(а):
Код:
if(event.getRequest().getParameter("action").equals("UpdateContractPayment")){
......
      }
   }

например так. Помоему это относилось как раз к событию "Перед действием"

В скриптах поведения при генерации отчета никак не реагирует. Ни "перед", ни "после".

Автор:  2ray [ 03 сен 2014, 11:41 ]
Заголовок сообщения:  Re: Каким образом можно отловить событие генерации отчета

Так как реализовать то?

Автор:  dimOn [ 08 сен 2014, 16:11 ]
Заголовок сообщения:  Re: Каким образом можно отловить событие генерации отчета

Непонятно что именно вы делаете. Непонятно каким способом. И непонятно в какой момент у вас и что не работает.
Потому что на вопрос "так как реализовать то" было несколько ссылок и советов выше.

Вы делаете событиями перед/после действия или всё же через dynaction?
И в том и другом случае - прописали соответствующие настройки правильно в конфиге?
Событие само по себе вызывается? Проверили?

Автор:  2ray [ 09 сен 2014, 11:00 ]
Заголовок сообщения:  Re: Каким образом можно отловить событие генерации отчета

dimOn писал(а):
Непонятно что именно вы делаете. Непонятно каким способом. И непонятно в какой момент у вас и что не работает.
Потому что на вопрос "так как реализовать то" было несколько ссылок и советов выше.

Вы делаете событиями перед/после действия или всё же через dynaction?
И в том и другом случае - прописали соответствующие настройки правильно в конфиге?
Событие само по себе вызывается? Проверили?

Оба способа испробовал. Да в конфиге прописал action.event_reports_Report=after. Событие не вызывается.

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/