|
Редактирование документа с отложенным сохраннием
|
|||
---|---|---|---|
#18+
Коллеги, Приветствую. Интересно следующее. Как бы Вы реализовали или уже реализовано редактирование документа, предположим приходная накладная. Которая имеет заголовок и спецификацию. Выполнив при этом следующие условия: 1) Редактируемый пользователем документ должен быть доступным для других пользователей на чтение в состоянии "на начало" редактирования первым пользователем. 2) В спецификации имеется много вычисляемых полей. 3) В процессе редактирования необходимо оперировать агрегированными значениям столбцов спецификации. (Например сумма налога по документу, сумма общая) 4) Пользователь редактирующий документ может либо отменить все изменения, либо сохранить их. Либо производить сохранение в процессе редактирования. 5) Набор столбцов на форме может меняться, например если нет необходимости видеть информацию по налогам, то колонки НДС ставка, сумма и т.п. можно скрыть чтобы не занимали место на экране. Сейчас у меня реализовано следующим образом: 1 - в отдельную таблицу вноситься запись о блокировании и при повторном открытии при наличии записи все элементы формы переводятся в рид-онли. Здесь имеем проблему первую так как непонятно как обработать ситуацию когда один и тот же пользователь в одной и той же APP_SESSION открывает один и тот же документ. 2 - При открытии документа происходит заполнение коллекции и работа идет уже с ней. Здесь я подозреваю будет большой расход памяти, при большом количестве строк в документах и большом количестве пользователей. Вычисляемы поля - JavaScript. 3 - JavaScript 4 - Вроде бы работает, но реализовано через On Demand процесс которому на вход подается вся спецификация в виде массива. Кажется это неправильно потому что, во первых - расход памяти, во вторых ограничение на объем спецификации. 5 - Со скрытием колонок проблем нет , они заменяться на apex_item.hideen, НО!!! иногда при сохранении все равно не записываются в базу и ошибку или ситуацию из за которой это происходит отловить не удается. Просьба покритиковать концепцию и предложить изменения которые в нее можно внести и поделится опытом реализации подобных задач. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2012, 21:14 |
|
Редактирование документа с отложенным сохраннием
|
|||
---|---|---|---|
#18+
Полено1) Редактируемый пользователем документ должен быть доступным для других пользователей на чтение в состоянии "на начало" редактирования первым пользователем. Полено1 - в отдельную таблицу вноситься запись о блокировании и при повторном открытии при наличии записи все элементы формы переводятся в рид-онли. Здесь имеем проблему первую так как непонятно как обработать ситуацию когда один и тот же пользователь в одной и той же APP_SESSION открывает один и тот же документ. Можно в качестве признака блокировки заносить в поле таблицы :APP_SESSION||':'||:APP_USER. При открытии другими пользователями проверять: 0. Пустое ли это поле. 1. Если не пустое, то активна ли блокирующая сессия. Хотя бы пусть будет в APEX_WORKSPACE_SESSIONS. В чём проблема, что пользователь открывает один и тот же документ в одной сессии несколько раз? В том, что он может открыть его на разных вкладках браузера одновременно? Полено4. Пользователь редактирующий документ может либо отменить все изменения, либо сохранить их. Либо производить сохранение в процессе редактирования. Полено4 - Вроде бы работает, но реализовано через On Demand процесс которому на вход подается вся спецификация в виде массива. Кажется это неправильно потому что, во первых - расход памяти, во вторых ограничение на объем спецификации. Кнопка "Сохранить" + AJAX + On Demand Process. Кнопка "ОК" + сабмит + обычный процесс и переход на другую страницу. Какой расход памяти Вы имеете в виду? Ограничение на объём спецификации — да, есть такое. Можно выкрутиться тем, что вводить, редактировать и сохранять строки спецификации на отдельной странице с формой. С кнопками "Сохранить и создать следующую строку" и "ОК". А спецификацию выводить как не редактируемую информацию в виде отчёта или PL/SQL-региона. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2012, 02:00 |
|
Редактирование документа с отложенным сохраннием
|
|||
---|---|---|---|
#18+
Полено5 - Со скрытием колонок проблем нет , они заменяться на apex_item.hidden, НО!!! иногда при сохранении все равно не записываются в базу и ошибку или ситуацию из за которой это происходит отловить не удается. Ну что сказать... Надо лучше ловить, надо по-другому ловить. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2012, 02:02 |
|
|
start [/forum/topic.php?fid=50&gotonew=1&tid=1876116]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
11ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 292ms |
total: | 439ms |
0 / 0 |