Гость
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Редактирование документа с отложенным сохраннием / 3 сообщений из 3, страница 1 из 1
22.05.2012, 21:14
    #37806721
Полено
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Редактирование документа с отложенным сохраннием
Коллеги, Приветствую.

Интересно следующее. Как бы Вы реализовали или уже реализовано редактирование документа, предположим приходная накладная.
Которая имеет заголовок и спецификацию. Выполнив при этом следующие условия:
1) Редактируемый пользователем документ должен быть доступным для других пользователей на чтение в состоянии "на начало" редактирования первым пользователем.
2) В спецификации имеется много вычисляемых полей.
3) В процессе редактирования необходимо оперировать агрегированными значениям столбцов спецификации. (Например сумма налога по документу, сумма общая)
4) Пользователь редактирующий документ может либо отменить все изменения, либо сохранить их. Либо производить сохранение в процессе редактирования.
5) Набор столбцов на форме может меняться, например если нет необходимости видеть информацию по налогам, то колонки НДС ставка, сумма и т.п. можно скрыть чтобы не занимали место на экране.

Сейчас у меня реализовано следующим образом:
1 - в отдельную таблицу вноситься запись о блокировании и при повторном открытии при наличии записи все элементы формы переводятся в рид-онли. Здесь имеем проблему первую так как непонятно как обработать ситуацию когда один и тот же пользователь в одной и той же APP_SESSION открывает один и тот же документ.
2 - При открытии документа происходит заполнение коллекции и работа идет уже с ней. Здесь я подозреваю будет большой расход памяти, при большом количестве строк в документах и большом количестве пользователей. Вычисляемы поля - JavaScript.
3 - JavaScript
4 - Вроде бы работает, но реализовано через On Demand процесс которому на вход подается вся спецификация в виде массива. Кажется это неправильно потому что, во первых - расход памяти, во вторых ограничение на объем спецификации.
5 - Со скрытием колонок проблем нет , они заменяться на apex_item.hideen, НО!!! иногда при сохранении все равно не записываются в базу и ошибку или ситуацию из за которой это происходит отловить не удается.

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

Спасибо.
...
Рейтинг: 0 / 0
23.05.2012, 02:00
    #37806965
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Редактирование документа с отложенным сохраннием
Полено1) Редактируемый пользователем документ должен быть доступным для других пользователей на чтение в состоянии "на начало" редактирования первым пользователем.
Полено1 - в отдельную таблицу вноситься запись о блокировании и при повторном открытии при наличии записи все элементы формы переводятся в рид-онли. Здесь имеем проблему первую так как непонятно как обработать ситуацию когда один и тот же пользователь в одной и той же APP_SESSION открывает один и тот же документ.
Можно в качестве признака блокировки заносить в поле таблицы :APP_SESSION||':'||:APP_USER. При открытии другими пользователями проверять:
0. Пустое ли это поле.
1. Если не пустое, то активна ли блокирующая сессия. Хотя бы пусть будет в APEX_WORKSPACE_SESSIONS.

В чём проблема, что пользователь открывает один и тот же документ в одной сессии несколько раз? В том, что он может открыть его на разных вкладках браузера одновременно?

Полено4. Пользователь редактирующий документ может либо отменить все изменения, либо сохранить их. Либо производить сохранение в процессе редактирования.
Полено4 - Вроде бы работает, но реализовано через On Demand процесс которому на вход подается вся спецификация в виде массива. Кажется это неправильно потому что, во первых - расход памяти, во вторых ограничение на объем спецификации.
Кнопка "Сохранить" + AJAX + On Demand Process. Кнопка "ОК" + сабмит + обычный процесс и переход на другую страницу.

Какой расход памяти Вы имеете в виду?

Ограничение на объём спецификации — да, есть такое.

Можно выкрутиться тем, что вводить, редактировать и сохранять строки спецификации на отдельной странице с формой. С кнопками "Сохранить и создать следующую строку" и "ОК". А спецификацию выводить как не редактируемую информацию в виде отчёта или PL/SQL-региона.
...
Рейтинг: 0 / 0
23.05.2012, 02:02
    #37806966
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Редактирование документа с отложенным сохраннием
Полено5 - Со скрытием колонок проблем нет , они заменяться на apex_item.hidden, НО!!! иногда при сохранении все равно не записываются в базу и ошибку или ситуацию из за которой это происходит отловить не удается.

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


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