2015-04-08 2 views
0

Я разрабатываю веб-приложение с использованием Oracle ADF. У меня ограниченный поток задач. У меня есть страница поиска, как показано ниже.Oracle ADF: обновить данные формы

enter image description here

Я создал выше двух форм с помощью элементов управления Просмотр данных объектов.

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

Так что мне нужно сделать это:. «Если когда-нибудь пользователь придет к этой форме, он должен получить свежую форму Он не должен содержать старые результаты поиска

Пожалуйста, помогите мне Как я могу добиться этого

...

Спасибо

+0

Всегда упоминайте свою версию JDeveloper, чтобы все знали, какую версию ADF вы используете. – User404

+0

спасибо. Я использую jdeveloper 11.1.2.4 – Abdul

ответ

0

Есть 2 способа сделать это:.

1) Установите задача потока в ISOLATED, на вкладке Task Flow Обзор -> Поведение -> Доля управления данными с вызывающим потоком задач -> unchecked (или изолированный, если вы используете JDev 12c)

Это гарантирует, что вы всегда начинаете FRESH при доступе к странице, но это потенциально может привести к увеличению производительности, потому что весь кеш объекта View будет воссоздан (запрошен) при загрузке страницы. Тем не менее, это самое быстрое решение.

2) Вы можете создать операцию вызова по умолчанию в потоке задач, откуда вы можете вызвать настраиваемый метод AM, который сбрасывает критерии просмотра. Метод будет размещен на классе реализации модуля приложения, и это может выглядеть следующим образом:

public void initTaskFlow() { 
    this.getViewObject1().executeEmptyRowSet(); 
} 

Это уберет данные результата. Если вы хотите сбросить параметры запросов для а также, вы можете использовать этот пример:

http://www.jobinesh.com/2011/04/programmatically-resetting-and-search.html

+0

Спасибо за ваше время. Я проверил ваше первое решение. Но у меня уже есть то же самое в моем ограниченном потоке задач. В транзакции я всегда начинаю новую транзакцию. И Share Data Control с вызовом потока задач не установлен. Позвольте мне попробовать со вторым решением. – Abdul

+0

Тот факт, что первое решение не работает, является ненормальным, это означает, что мы что-то упускаем ... Единственное, о чем я могу думать, - это, возможно, поддержка бэка в области сеанса, хранение привязок для элементов af: table и af: query ... –

0

Когда вы сделали какие-либо изменения в любой viewObject затем преобразование приложений этот viewObject, чтобы соответствовать состоянию сущности и ViewState, я думаю excuting viewObject будет решить вашу проблему

Ashish