powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Как сделать обновления области информационной панели при изменениии данных в таблице БД?
21 сообщений из 21, страница 1 из 1
Как сделать обновления области информационной панели при изменениии данных в таблице БД?
    #39776120
zorlo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Подскажите, пожалуйста, по следующей ситуации...

1) На информационной панели есть кнопка, по нажатии на которую запускается процедура.
2) На этой же информационной панели есть дата и время отображения отработки процедуры, которая берётся из тиблички БД (эту дату обновляет процедура, после того, как отработает)

Подскажите, как сделать нечто подобное:
При нажатии на кнопку отображать надпись "Обновление данных" до тех пор, пока в табличке с датой не обновится значение?
Можно ли сделать какой то AJAX? Или что то подобное?
...
Рейтинг: 0 / 0
Как сделать обновления области информационной панели при изменениии данных в таблице БД?
    #39776122
Фотография George Nordic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zorlo, "информационная панель" - в чем?
Сколько записей? Сколько занимает Reload? Какие именно изменения необходимо отобразить?
...
Рейтинг: 0 / 0
Как сделать обновления области информационной панели при изменениии данных в таблице БД?
    #39776162
zorlo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
George Nordic,

Информационная панель в Oracle BI. Информационная панель представляет собой html-страницу с набором объектов oracle bi - некое отображение данных из БД в экранной форме. На странице может быть много объектов.
На страницу можно вставлять html. К примеру, я сделал кнопку на странице в html.
Reload - в плане сколько отрабатывает времени процедура? Где то 3 - 4 минуты.

В общем один из объектов - это отображение строкой даты и времени отработки процедуры, которые берутся из таблички БД.

Хотелось бы сделать нечто подобное - когда запускается процедура по нажатию кнопки на странице - на странице бы отображалась какая-нибудь надпись и она была до тех пор, пока в табличку БД не запишется новое значение даты обновления процедуры.
...
Рейтинг: 0 / 0
Как сделать обновления области информационной панели при изменениии данных в таблице БД?
    #39776285
sharkoff_new
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zorloGeorge Nordic,

Информационная панель в Oracle BI. Информационная панель представляет собой html-страницу с набором объектов oracle bi - некое отображение данных из БД в экранной форме. На странице может быть много объектов.
На страницу можно вставлять html. К примеру, я сделал кнопку на странице в html.
Reload - в плане сколько отрабатывает времени процедура? Где то 3 - 4 минуты.

В общем один из объектов - это отображение строкой даты и времени отработки процедуры, которые берутся из таблички БД.

Хотелось бы сделать нечто подобное - когда запускается процедура по нажатию кнопки на странице - на странице бы отображалась какая-нибудь надпись и она была до тех пор, пока в табличку БД не запишется новое значение даты обновления процедуры.

Не задумывались о материализации того, что выдает процедура заблаговременно? И пинанием процедуры job db, etl tool в круговою или по какому либо расписанию?
Заставлять пользователя ждать , тем более пинать из BI процедуру не лучший способ, на мой взгляд.
...
Рейтинг: 0 / 0
Как сделать обновления области информационной панели при изменениии данных в таблице БД?
    #39776324
zorlo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sharkoff_new,

Пинать из BI процедуру я научился. Job есть. Пользователю хочется ещё дополнительно кнопку
...
Рейтинг: 0 / 0
Как сделать обновления области информационной панели при изменениии данных в таблице БД?
    #39776344
tarrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zorlosharkoff_new,

Пинать из BI процедуру я научился. Job есть. Пользователю хочется ещё дополнительно кнопку

Путь в никуда. Вы пытаетесь заменить учетную систему BI решением. Раньше тоже модно было из отчетов процедуры дергать. Это всегда костыли и грабли в одном флаконе.
...
Рейтинг: 0 / 0
Как сделать обновления области информационной панели при изменениии данных в таблице БД?
    #39776381
zorlo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tarrus,
Может и грабли, но никуда без них...

Я думаю сейчас над двумя решениями:

1) Обновлять раз в какое то время только один анализ на странице? Можно так сделать? Рефрешить не всю страницу, а только один анализ? Рефрешить всю страницу раз в какое то время я умею. А вот только один анализ нет...

2) Попробовать прикрутить механизм, чтобы при нажатии на кнопку начали крутиться часики до тех пор, пока в табличке с датой не обновится значение.
Наверняка можно как то сделать? Подскажете направление?
...
Рейтинг: 0 / 0
Как сделать обновления области информационной панели при изменениии данных в таблице БД?
    #39776391
tarrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zorlotarrus,
Может и грабли, но никуда без них...

Я думаю сейчас над двумя решениями:

1) Обновлять раз в какое то время только один анализ на странице? Можно так сделать? Рефрешить не всю страницу, а только один анализ? Рефрешить всю страницу раз в какое то время я умею. А вот только один анализ нет...

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

Спросите себя и пользователя, а зачем? У всех систем есть ограничения и не все хотелки реализуемы. Ваш колхоз потом кому-то разгребать, помните об этом.
...
Рейтинг: 0 / 0
Как сделать обновления области информационной панели при изменениии данных в таблице БД?
    #39776599
Фотография George Nordic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zorlo, согласен со скептицизмом коллег. Если нужно быстродействие (кстати, насколько часто?) я бы перегружал данные в in-memory DB и строил бы витрины поверх неё. Кстати, все более распространенным становится данный подход. Но в вашем случае - это изменение архитектуры. Может последовать жесть. Только если подобных запросов будет много и есть шанс переделать малой кровью.

Непонятна сама постановка задачи. Что пользователь ждет увидеть? Ну, увидит он 10000200 строк вместо 10000000 - это ему поможет? Облегчит его моральные страдания?
Если что-то определенное ждет - ставите триггер и делайте алерт.

Можно поподробнее о постановки задачи?

tarrus, это не замена учетной системы на BI - в BI 95% случаев данные раз в день грузятся - для анализа нет необходимости в посекундной точности, он для принятия тактических решений. Для оперативных - фрод там или анализ отклонения трафика - есть специализированные продукты типа Splank'a или вообще на уровне DB проверка заложена.

С Уважением,
Георгий
...
Рейтинг: 0 / 0
Как сделать обновления области информационной панели при изменениии данных в таблице БД?
    #39777170
zorlo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
George Nordic,


С точки зрения пользователя, концепция такая...

1) Есть страничка, где много ссылок на разные отчёты.
2) Все отчёты обновляются одной процедурой.
3) В конце страничке выведен анализ, где отображается дата и время отработки процедуры. Этот анализ смотрит на вюху в БД, в которой одна строка с датой обновления процедуры. Когда запускается процедура - дата во вьюхе становится пустой, когда процедура закончила работать - в поле проставляется дата.

Нужно было сделать кнопку, по нажатию на которую запускалась бы процедура, появлялся бы какой-нибудь признак на странице, что процедура отрабатывает и после отработки показалась бы дата отработки.

Как я запускаю процедуру:
1) Я сделал кнопку при нажатии на которую происходит на секунду переход на точно такую же страничку, отображается анализ.
2) Этот анализ сделан на базе вьюхе, в которой запускается select, который запускает функцию, которая в свою очередь уже дёргает процедуру

Теперь к сути....

После того, как я нажал кнопку - интересно было бы видеть работает ли ещё процедура или остановилась...

Я вижу два пути, но пока не знаю как их реализовать...

1) Сделать js процесс на страничке, который бы смотрел на вьюху в БД, когда у неё в поле дата пусто - то на страничке

- либо производился бы refresh каждые 10 секунд (желательно только одного анализа, где отображается дата)
- либо выводилось сообщение с подобным текстом "Производится обновление данных"

2) Если первый пункт не получится - поставить автоматический refresh только на этот анализ, где отображается дата на каждые секунд 20. Но я пока не знаю, можно ли сделать автоматический refresh не на всю страницу, а только на конкретную область, где размещён анализ....
...
Рейтинг: 0 / 0
Как сделать обновления области информационной панели при изменениии данных в таблице БД?
    #39777198
Фотография George Nordic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zorlo, кажется, Вы пытаетесь написать собственную BI-систему поверх DB? Да еще и для финансовой организации? Мне кажется, это не лучшая идея. Особенно в плане реализации безопасности и разграничения ролей доступа.

>1) Есть страничка, где много ссылок на разные отчёты. - ок. Типа Дашборда или просто ссылки на отчеты?
>2) Все отчёты обновляются одной процедурой. - вот это зло. Конечно, смотря что за отчеты. Но 90% отчетов для принятия управленческих решений требует загрузки раз в неделю. минимум - раз в день. ЧАС - уже редкость. Если надо чаще - это уже он-лайн аналитика, там другие задачи - фрод / безопасность, анализ работоспособности железа и приложений...
>3) В конце страничке выведен анализ, где отображается дата и время отработки процедуры. Этот анализ смотрит на вюху в БД, в которой одна строка с датой обновления процедуры. Когда запускается процедура - дата во вьюхе становится пустой, когда процедура закончила работать - в поле проставляется дата.
> Нужно было сделать кнопку, по нажатию на которую запускалась бы процедура, появлялся бы какой-нибудь признак на странице, что процедура отрабатывает и после отработки показалась бы дата отработки - вот тут вопрос в том, сколько отрабатывает процедура и как ждать ее окончания. И что будет если это время существенно вырастет? Свой Progress Bar писать?

>С точки зрения пользователя, концепция такая...
Я пытаюсь понять бизнес-задачу. Давайте возьмем отчет, по которому требуют посекундную оперативность - что именно отслеживают пользователи? А что будет, если там будут данные на секундной давности, а 10-секундной? Сколько строк / транзакций хотят они видеть?

С Уважением,
Георгий
...
Рейтинг: 0 / 0
Как сделать обновления области информационной панели при изменениии данных в таблице БД?
    #39777234
zorlo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
George Nordic,


>1) Есть страничка, где много ссылок на разные отчёты. - ок. Типа Дашборда или просто ссылки на отчеты?

- Это реализовано с помощью компонентов BI "Ссылка или изображение" где размещён путь к нужной информационной панели (на пример на скриншоте)


>2) Все отчёты обновляются одной процедурой. - вот это зло. Конечно, смотря что за отчеты. Но 90% отчетов для принятия управленческих решений требует загрузки раз в неделю. минимум - раз в день. ЧАС - уже редкость. Если надо чаще - это уже он-лайн аналитика, там другие задачи - фрод / безопасность, анализ работоспособности железа и приложений...

- Джобы тоже есть, но есть необходимость обновлять по кнопке в некоторые моменты.

3)
>С точки зрения пользователя, концепция такая...
Я пытаюсь понять бизнес-задачу. Давайте возьмем отчет, по которому требуют посекундную оперативность - что именно отслеживают пользователи? А что будет, если там будут данные на секундной давности, а 10-секундной? Сколько строк / транзакций хотят они видеть?

- К примеру пользователи в течении дня грузили какие то источники или редактировали данные в разных системах. И тут не дожидаясь джоба - захотелось посмотреть эти изменения в отчётах. Посекундная давность не нужна. Достаточно того времени давности, с которого начала отрабатывать процедура. Поэтому и хочется отображать на главной странице состояние загрузки процедуры. Количество транзакций зависит от того на сколько много было изменений в данных. К примеру, пока процедура отрабатывала не более 10 минут.
...
Рейтинг: 0 / 0
Как сделать обновления области информационной панели при изменениии данных в таблице БД?
    #39777258
Фотография George Nordic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zorlo, честно, я бы изменил постановку самого бизнес-запроса. Ну да ладно, успеете еще с пользователями наобщаться.

Так как у вас не одна таблица, а, судя по всему, сложный план запроса, я бы курил в сторону Estimated Execution Plan. Т.е. делал бы прогресс бар или писал "Джоб запущен, ожидаемое завершение %"

С Уважением,
Георгий
...
Рейтинг: 0 / 0
Как сделать обновления области информационной панели при изменениии данных в таблице БД?
    #39778501
мигель1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется данная задача, достаточно тривиальна

в каждую процедуру пишется строчка insert into table_log

Название процедуры , дата , итд

А потом выводится результат селекта из данной таблицы
...
Рейтинг: 0 / 0
Как сделать обновления области информационной панели при изменениии данных в таблице БД?
    #39778714
tarrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мигель1Мне кажется данная задача, достаточно тривиальна

в каждую процедуру пишется строчка insert into table_log

Название процедуры , дата , итд

А потом выводится результат селекта из данной таблицы

Как бы да, но когда у вас процедуры идут не по паре миллисекунд, а проклятые людишки жмут на кнопку несколько раз, начинаешь понимать за что занимаешься поддержкой больше, чем разработкой.

Приходилось разгребать подобные поделия.
...
Рейтинг: 0 / 0
Как сделать обновления области информационной панели при изменениии данных в таблице БД?
    #39778768
Фотография George Nordic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tarrusа проклятые людишки жмут на кнопку несколько разDisable кнопки, вместо неё "процедура запущена в 13.22 ожидаемое завершение в 13.45"

И писать время отработки предыдущих запросов в отдельную таблицу - тоже норм идея.

С Уважением,
Георгий.
...
Рейтинг: 0 / 0
Как сделать обновления области информационной панели при изменениии данных в таблице БД?
    #39778815
tarrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
George Nordictarrusа проклятые людишки жмут на кнопку несколько разDisable кнопки, вместо неё "процедура запущена в 13.22 ожидаемое завершение в 13.45"

И писать время отработки предыдущих запросов в отдельную таблицу - тоже норм идея.

С Уважением,
Георгий.

Т.е. уже сколько колхоза набирается. А потом еще права на кнопку попросят прикрутить и пошло поехало :)
...
Рейтинг: 0 / 0
Как сделать обновления области информационной панели при изменениии данных в таблице БД?
    #39779167
zorlo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tarrus,

Процедура отрабатывает каждый раз разное время...

Я попробовал написать функцию, которая запускает процедуру. Ну и вызываю её потом во вьюхе в селекте, вывел это в анализ на информационную панель и навесил стандартную кнопку обновить. Когда нажимаешь кнопку "Обновить" - появляется кружок ожидания, вроде всё как надо... Но когда перезаходишь на страницу - происходит автоматический рефреш этого анализа и процедура всёравно запускается без кнопки... Решение не подходит.


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

Теперь что хочется в идеале...

У меня выведен анализ с отображением даты... Хотелось бы, чтобы этот анализ автоматически рефрешился каждые 10-15 секунд до тех пор, пока там не обновится дата.
В крайнем случае, чтобы этот анализ рефрешился постоянно каждые 10-15 секунд. Я нашёл решение здесь https://www.sql.ru/forum/1128192/obiee-11g-avtorefresh-stranicy?mid=17213323#17213323

Научился вычислять answer_id, но под своё решение пока не приспособил
...
Рейтинг: 0 / 0
Как сделать обновления области информационной панели при изменениии данных в таблице БД?
    #39779227
tarrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zorlotarrus,

Процедура отрабатывает каждый раз разное время...

Я попробовал написать функцию, которая запускает процедуру. Ну и вызываю её потом во вьюхе в селекте, вывел это в анализ на информационную панель и навесил стандартную кнопку обновить. Когда нажимаешь кнопку "Обновить" - появляется кружок ожидания, вроде всё как надо... Но когда перезаходишь на страницу - происходит автоматический рефреш этого анализа и процедура всёравно запускается без кнопки... Решение не подходит.


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

Теперь что хочется в идеале...

У меня выведен анализ с отображением даты... Хотелось бы, чтобы этот анализ автоматически рефрешился каждые 10-15 секунд до тех пор, пока там не обновится дата.
В крайнем случае, чтобы этот анализ рефрешился постоянно каждые 10-15 секунд. Я нашёл решение здесь https://www.sql.ru/forum/1128192/obiee-11g-avtorefresh-stranicy?mid=17213323#17213323

Научился вычислять answer_id, но под своё решение пока не приспособил

Всё это какая-то адская жесть. Кнопки, процедуры, функции во вьюхах. Самоустраняюсь, обсуждать тут нечего.
...
Рейтинг: 0 / 0
Как сделать обновления области информационной панели при изменениии данных в таблице БД?
    #39779938
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попытка сделать из Bi универсальный GUI для приложения )))
сова натягивалась, натягивалась.... но глобусь пролазил с большим трудом

AFAIK с учетом, что Oracle BI обычный Weblogic Server, то никто не мешает на него тупо задеплоить кастомное ADF приложение. Но готов ли за это платить работодатель/заказчик/пользователь?

Наверное можно и без server-side Java обойтись, чисто клиентский JavaScript + адовые refresh'и. Но лично мне, было бы проще программировать на полноценных средствах разработки (JDeveloper, ADF). Ну и потребность опыта в программировании (JavaScript + HTML + умение читать чужой код) все равно никуда не девается.
...
Рейтинг: 0 / 0
Как сделать обновления области информационной панели при изменениии данных в таблице БД?
    #39780186
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
занимаюсь тем же самым. Но только в связке с TIBCO Spotfire. Суть та же, но с ним легче, он умеет на питоне, а питон умеет и что хочешь вызывать и даже в базу писать и "processing" отображать.

Все это конечно от жадности, что тут говорить. Жалко платить полмильена нерублей за супер-джава приложение которое будет writeback красиво делать, когда можно не очень красиво за 50к.

p.s. Я бы на месте бизнеса тоже не платил.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Как сделать обновления области информационной панели при изменениии данных в таблице БД?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]