Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Помогите определить грамотный подход, Apex/Python/Pl/sql / 17 сообщений из 17, страница 1 из 1
13.08.2018, 14:14
    #39686895
c-net
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите определить грамотный подход, Apex/Python/Pl/sql
Добрый день!

Oracle 11G, Apex 18.

Необходимо обработать данные перед выгрузкой и выгрузить в Excel в определенном формате по шаблону (тут более менее понятно).

Не могу определиться с выбором варианта реализации.

Вариант 1:
Готовить/обрабатывать данные в Apex с помощью Pl/Sql(вычисления, выборки,временные таблицы и т.д.), потом Python скриптом взаимодействовать с Excel и Oracle уже на стадии работы с шаблоном и "распихиванием" готовых данных.

Вариант 2:
Всю обработку(вычисления, выборки,временные таблицы и т.д.) и дальнейшие этапы проводить в питоне.

У обоих вариантов есть свои плюсы минусы(как например плюс в более удобной любой IDE питона для большого кода, а минус большой скрипт и работа с данными "со стороны" питона). Какой вариант наиболее грамотный?

И для обоих вариантов общий вопрос: использовать временные таблицы в классическом варианте, или например подход описанный здесь
Данных немного, несколько тысяч строк, но с большим количеством динамических вариаций.

Заранее спасибо за размышления:)
...
Рейтинг: 0 / 0
13.08.2018, 14:40
    #39686918
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите определить грамотный подход, Apex/Python/Pl/sql
Я использую Apache POI, При использоваии Стрима, объем ограничен размером винта. И никаких временных таблиц.
...
Рейтинг: 0 / 0
13.08.2018, 15:01
    #39686930
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите определить грамотный подход, Apex/Python/Pl/sql
c-net,

А как вы собираетесь из питона отдать пользователю готовый файл в апекс? :)
...
Рейтинг: 0 / 0
13.08.2018, 15:26
    #39686955
c-net
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите определить грамотный подход, Apex/Python/Pl/sql
blkangel,
Уже. Через json /Ajax скачивается файл с сервера.
...
Рейтинг: 0 / 0
13.08.2018, 15:29
    #39686958
c-net
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите определить грамотный подход, Apex/Python/Pl/sql
blkangel,

Мне интересно, как вообще правильно это делать с точки зрения скорости, подводных камней. Руки чешутся это все делать в питоне , но что то я подозреваю, что это некорректно, так работать с данными..
...
Рейтинг: 0 / 0
13.08.2018, 15:39
    #39686962
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите определить грамотный подход, Apex/Python/Pl/sql
c-netblkangel,
Уже. Через json /Ajax скачивается файл с сервера.
А как Ajax понимает, что файл готов? Представим что файл готовится 1 час?
...
Рейтинг: 0 / 0
13.08.2018, 15:41
    #39686963
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите определить грамотный подход, Apex/Python/Pl/sql
c-netblkangel,

Мне интересно, как вообще правильно это делать с точки зрения скорости, подводных камней. Руки чешутся это все делать в питоне , но что то я подозреваю, что это некорректно, так работать с данными..

Какой то костыльное решение... Вот если бы питон как сервис висел, принимал он 2 файла XSD и XML, а обратно выплевывал бы эксель , ворд, пдф готовый, вот было бы красиво.
...
Рейтинг: 0 / 0
13.08.2018, 15:51
    #39686967
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите определить грамотный подход, Apex/Python/Pl/sql
c-net,

И каким образом вы дергаете скрипт питона?
...
Рейтинг: 0 / 0
14.08.2018, 06:49
    #39687202
Помогите определить грамотный подход, Apex/Python/Pl/sql
c-net,

Правильно работать с генератором отчетов. Jasper вам в помощь. Ищите готовое поддерживаемое бесплатное решение JasperReportIntegration.

Впрочем, городить огород, изобретать велосипед и переоткрывать Америку никто не запрещает, ведь вы - свободный человек свободной страны.
...
Рейтинг: 0 / 0
14.08.2018, 09:12
    #39687241
c-net
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите определить грамотный подход, Apex/Python/Pl/sql
blkangel,

ну пока накидал саму схему(корявенько конечно), но работает

Это DA по клику

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
$.ajax({
    url: 'http://192.168.137.29/py/graph_4_3.py',
    type: "GET",
    
    success: function(data) {
       window.location.href = data.download_link;
    }
})




это сам скрипт

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
import json
import cgi
import os
import cx_Oracle
import win32com.client



connection = cx_Oracle.connect('user/pwd@192.168.137.29/xe')

Excel = win32com.client.Dispatch("Excel.Application")

Wb = Excel.Workbooks.Open(u'F:\\data\\templates\\test.xlsx')
Sheet = Wb.ActiveSheet
Sheet.Cells(1,1).Value='test_win32com'

source_db = connection.cursor()
source_db.execute("SELECT * FROM reestr where id_parent='3'")

i=2
for result in source_db:
	Sheet.Cells(i,2).Value =result
	i+=1
	
source_db.close()
connection.close()



Wb.Save()
Wb.Close()
Excel.Quit()

download_link='http://192.168.137.29/templates/test.xlsx'

print "Content-type: application/json; charset=utf-8\n\n"
print json.dumps({'download_link':download_link})
...
Рейтинг: 0 / 0
14.08.2018, 09:12
    #39687242
c-net
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите определить грамотный подход, Apex/Python/Pl/sql
Саша Сплинтер, спасибо, покурю
...
Рейтинг: 0 / 0
14.08.2018, 09:27
    #39687249
c-net
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите определить грамотный подход, Apex/Python/Pl/sql
Саша Сплинтерc-net,

Правильно работать с генератором отчетов. Jasper вам в помощь. Ищите готовое поддерживаемое бесплатное решение JasperReportIntegration.

Впрочем, городить огород, изобретать велосипед и переоткрывать Америку никто не запрещает, ведь вы - свободный человек свободной страны.

У Заказчика параноидальное отношение к экселю, с очень специфичными шаблонами и требованиями к оформлению(шаг в сторону расстрел). Вот и принято решение брать шаблоны заказчика и распихивать в них данные.
...
Рейтинг: 0 / 0
14.08.2018, 09:40
    #39687259
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите определить грамотный подход, Apex/Python/Pl/sql
c-net,

Вы не ответили, кто у Вас дергает скрипт на Питоне, и как аякс понимает готовность файла. Это принципиальные вопросы.
...
Рейтинг: 0 / 0
14.08.2018, 09:42
    #39687262
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите определить грамотный подход, Apex/Python/Pl/sql
Вы питоновский скрипт Аяксом дергаете? Это возможно? Чего то видимо упускаю.
...
Рейтинг: 0 / 0
14.08.2018, 09:54
    #39687274
c-net
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите определить грамотный подход, Apex/Python/Pl/sql
blkangel,
да. работает. как не ответил.. там же указан *.py Проверял на других машинах по локалке - все работает.

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

Но опять же, меня не это больше волнует, меня волнует где обрабатывать данные.
Подумав ночь, я все таки сегодня буду пробовать делать это в Apex. Питоном просто запихивать в эксель, уж больно мне понравилась библиотека win32com.client. Да и вообще питон мне по душе.
...
Рейтинг: 0 / 0
14.08.2018, 10:29
    #39687299
c-net
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите определить грамотный подход, Apex/Python/Pl/sql
Вот, кстати, небольшая статья по теме обработки внутри/снаружи здесь
...
Рейтинг: 0 / 0
05.09.2018, 12:59
    #39698406
c-net
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите определить грамотный подход, Apex/Python/Pl/sql
c-net, Для справки.

Все получилось. Схема отработала. В апексе два ДА друг за другом:

1) Pl/sql: готовятся/обрабатываются данные из разных таблиц по необходимым условиям(в статическую таблицу)
2) JS+Ajax: Python скрипт вытаскивает эти данные в Excel, с помощью win32com.client форматирует и дает ссылку на скачивание.

Аякс послушно ждет ссылки пока выполняется скрипт(порядка 8-10 сек) - потом появляется окно на скачивание сформированного файла.
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Помогите определить грамотный подход, Apex/Python/Pl/sql / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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