|
|
|
можно ли создать свою переменную
|
|||
|---|---|---|---|
|
#18+
Добрый вечер. Создал таблицу (в ней поля ID, Login, Territory, Comments), cделал триггер, который при обновлении таблицы присваивает полю 'Login' значение 'App_user': create or replace trigger "T1_CLIENTS" BEFORE insert or update on "CLIENTS" for each row begin if :new.Login is null then :new.Login := v('APP_USER'); end if; end; Теперь появилась проблема с автоматическим внесением поля :new.Territory. Я могу вытащить с помощью sql запросов территорию из таблицы с данными пользователей по логину, но не знаю, как её присвоить к :new.Territory. Или может проще создать новую переменную, назвать app_terr, вставить в процесс, только как прописать это в процессе? (там стандартные действия не раскрываются)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2014, 18:29 |
|
||
|
можно ли создать свою переменную
|
|||
|---|---|---|---|
|
#18+
Oleg3412, Табличка зачем? Пиши туда Ид юзверов и все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2014, 19:23 |
|
||
|
можно ли создать свою переменную
|
|||
|---|---|---|---|
|
#18+
У меня есть таблица с юзерами и их территориями, я просто не понимаю, как сделать такую переменную, чтобы когда юзер заходил в сессию, видел свои данные и нажимал на кнопку, вызывающую DML форму, этой переменной (например, app_ter) тоже присваивалось значение как и для :app_user (это сделано в апексе). Надо дополнительный процесс сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2014, 23:26 |
|
||
|
можно ли создать свою переменную
|
|||
|---|---|---|---|
|
#18+
В Shared Components есть раздел Application Item вот там и заводите необходимую переменную, она будет глобальна для всего приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2014, 09:22 |
|
||
|
можно ли создать свою переменную
|
|||
|---|---|---|---|
|
#18+
kasik, Глобальные переменные зло... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2014, 09:47 |
|
||
|
можно ли создать свою переменную
|
|||
|---|---|---|---|
|
#18+
Oleg3412, ты приведи скрины действий пользователя..по шагам.... я лично, ничего не понял. Или приведи шаблон-мастер который использовал. Там есть сразу 2-е странички с DML. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2014, 10:04 |
|
||
|
можно ли создать свою переменную
|
|||
|---|---|---|---|
|
#18+
Oleg3412юзер заходил в сессию юзер не знает что такое сессия. Он открыл страничку (скрин) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2014, 10:05 |
|
||
|
можно ли создать свою переменную
|
|||
|---|---|---|---|
|
#18+
blkangel, В парадигме Apex вещь бывает незаменимой. А в чем зло то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2014, 10:43 |
|
||
|
можно ли создать свою переменную
|
|||
|---|---|---|---|
|
#18+
У меня интерактивный отчет и форма DML для изменения полей (сделал через Create Application). Сделал аутентификацию. Но нужно, чтобы пользователь видел только свои поля. Я зашел в Home page -> в Body -> таблицу и изменил код SQL, который подгружает данные с таблицы, добавив условие where: Select "LOGIN", "TERRITORY", "DATE", "COMMENTS", from "DATA" where UPPER("LOGIN") = UPPER(:APP_USER) Теперь юзер видит только свои записи и нажав стандартную кнопку Create или Edit, он может управлять данными через DML форму. Но я не хочу, чтобы он управлял полями LOGIN, TERRITORY, и они заполнялось автоматически. LOGIN получилось заполнить через триггер: create or replace trigger "DATA_T1" BEFORE insert or update on "DATA" for each row begin if :new.LOGIN is null then :new.LOGIN := v('APP_USER'); end if; end; У меня для аутентификации есть таблица USER, где есть логин (LOGIN), пароль (PASSWORD) и территория (TERRITORY). Я создал глобальную переменную app_ter, но не понимаю, где и как можно присвоить ей значение для того, чтобы потом триггер взял с неё территорию пользователя и обновил поле TERRITORY. Залазил в процессы в Home page и в DML form - вносит пустое значение, например, в процессе Home page: begin :APP_TER := v('TERRITORY'); end; Но не понимает система переменных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2014, 10:52 |
|
||
|
можно ли создать свою переменную
|
|||
|---|---|---|---|
|
#18+
kasik, парадигма веб - параметры через URL. Большие - коллекции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2014, 10:53 |
|
||
|
можно ли создать свою переменную
|
|||
|---|---|---|---|
|
#18+
Oleg3412, сделай в триггере select запрос на получение территории из таблы юзеров. По хорошему нужно территорию из data убрать, т.к. она уже есть в другой таблице (нормализация БД) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2014, 11:00 |
|
||
|
можно ли создать свою переменную
|
|||
|---|---|---|---|
|
#18+
Ок, спасибо за направление, сейчас сделаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2014, 11:14 |
|
||
|
можно ли создать свою переменную
|
|||
|---|---|---|---|
|
#18+
kasikblkangel, В парадигме Apex вещь бывает незаменимой. А в чем зло то? Поясняю. Дано: - страницы номерами 1,2. Страница 1 содержит данный клиента (ФИО, аддрес и т.д.), страница 2, заказы клиента. - На каждой странице есть процесс after submit, которые используют глобальную переменную, например :CLIENT_ID (ИД клиента). Теперь представим работает пользователь на странице 2 он открыл карточку заказов клиента (:CLIENT_ID=1), и тут пользователю захотелось посмотреть какие то данные у другого клиента. Он не закрываю страницу 2, ОТКРЫВАЕТ В НОВОМ ОКНЕ новую страницу с той же сессией и идет в карту другого клиента (:CLIENT_ID=2) на страницу 1 (или на страницу 2, эффект одинаковый). Поработав в новом окне, он возвращается к первому окну и жмет сохранить. В итоге, новые заказы или даже все будут принадлежать :CLIENT_ID=2, хотя пользователь этого не хотел. А что самое ужасное, что пользователь может и не заметить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2014, 13:23 |
|
||
|
можно ли создать свою переменную
|
|||
|---|---|---|---|
|
#18+
blkangel, Молотком тоже можно саморезы закалачивать! Можно, но нафига... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2014, 14:05 |
|
||
|
можно ли создать свою переменную
|
|||
|---|---|---|---|
|
#18+
blkangel- На каждой странице есть процесс after submit, которые используют глобальную переменную, например :CLIENT_ID (ИД клиента). Если это неизменная в рамках сессии константа, то почему бы и нет. blkangelГлобальные переменные зло... Это не зло и не добро, это инструмент. Присвоить значение страничному полю в сессии можно где угодно: в процессе другой страницы, в URL, в вычислении уровня приложения, в DA. Это не означает, что страничные поля плохие или хорошие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 18:42 |
|
||
|
можно ли создать свою переменную
|
|||
|---|---|---|---|
|
#18+
suPPLerПрисвоить значение страничному полю в сессии можно где угодно не очень понял. Если поле глобальное, то оно не страничное. Как тут присвоить в другом процессе, если страница (не создана...не на экране?)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 09:45 |
|
||
|
можно ли создать свою переменную
|
|||
|---|---|---|---|
|
#18+
Petro123, Чтобы обойти грабли, которые я описал, при загрузке страницы нужно глобальную переменную присвоить переменной на странице, а в процессе сохранения использовать именно ее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 14:04 |
|
||
|
можно ли создать свою переменную
|
|||
|---|---|---|---|
|
#18+
blkangelPetro123, Чтобы обойти грабли, которые я описал, при загрузке страницы нужно глобальную переменную присвоить переменной на странице, а в процессе сохранения использовать именно ее. ну, дак, второй вариант обойти грабли вообще не использовать глобальную. Случай то рядовой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 14:56 |
|
||
|
|

start [/forum/topic.php?fid=50&msg=38786299&tid=1875203]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
188ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 489ms |

| 0 / 0 |
