powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Помогите определить грамотный подход, Apex/Python/Pl/sql
17 сообщений из 17, страница 1 из 1
Помогите определить грамотный подход, Apex/Python/Pl/sql
    #39686895
c-net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Oracle 11G, Apex 18.

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

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

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

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

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

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

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

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

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

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

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

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

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

Впрочем, городить огород, изобретать велосипед и переоткрывать Америку никто не запрещает, ведь вы - свободный человек свободной страны.
...
Рейтинг: 0 / 0
Помогите определить грамотный подход, Apex/Python/Pl/sql
    #39687241
c-net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Помогите определить грамотный подход, Apex/Python/Pl/sql
    #39687242
c-net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Саша Сплинтер, спасибо, покурю
...
Рейтинг: 0 / 0
Помогите определить грамотный подход, Apex/Python/Pl/sql
    #39687249
c-net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Саша Сплинтерc-net,

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

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

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

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

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

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

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

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

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


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