|
|
|
Получение значений итемов в триггере
|
|||
|---|---|---|---|
|
#18+
Всем добрый день/ночь. Как в триггере получить какие-либо значения из итемов приложения? Пользователь зашёл в Apex приложение, в приложении определяем IP-адрес и идентификатор пользователя(по обычному справочнику). Далее, пользователь создаёт/редактирует/удаляет данные в какой-то таблице. Нужно логировать его действия (создание/редактирование/удаление строк в таблице) и сделать нужно это из триггера. Из триггера нужно, т.к. нужно сравнивать значения до изменения и после и выполнять какие-то действия в зависимости от изменений. А вот как получить в триггере IP компьютера и идентификатор пользователя? При вставке и редактировании можно из приложения вставить необходимые значения в нужные колонки, а как при удалении? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 03:31 |
|
||
|
Получение значений итемов в триггере
|
|||
|---|---|---|---|
|
#18+
Vlad_567, :APP_USER есть. IP пишешь при входе в форме логин из процесса. При работе его уже писать не надо. Старое и новое значение в триггере это new. old. Можно из самого APEX тоже логировать, но это хуже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 06:23 |
|
||
|
Получение значений итемов в триггере
|
|||
|---|---|---|---|
|
#18+
Vlad_567, Маркер удаления тоже есть. Использование в бд айтемсов apex плохой стиль ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 06:24 |
|
||
|
Получение значений итемов в триггере
|
|||
|---|---|---|---|
|
#18+
Маркер удаления тоже есть. - что это такое? IP адрес получаю при входе в приложение, там-же идентификатор пользователя. У меня пока один (не полный) вариант: в таблице сделать 2 колонки (IP_ADDR и ID_USER); при вставке/редактировании таблицы заполнять эти колонки из приложения; в триггере получается будут значения: IP_ADDR и ID_USER, а также old и new значения всех колонок. А что делать при удалении из таблицы? При удалении нет ни того ни другого. Если бы это было Delphi приложение, можно было бы узнать имя компьютера прямо из триггера (не важно в какой момент: insert/update/delete), как вариант из пакетных переменных. А в апексе такое не проходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 06:43 |
|
||
|
Получение значений итемов в триггере
|
|||
|---|---|---|---|
|
#18+
Может можно где-то на сервере сохранить идентификатор открытого пользователем приложения, чтобы он был доступен из триггера? Что-то аналогичное пакетной переменной (с программой на Delphi, когда у каждой открытой программы своя сессия). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 07:13 |
|
||
|
Получение значений итемов в триггере
|
|||
|---|---|---|---|
|
#18+
Vlad_567, Я же назвал :app_user? При удалении из триггера пишут в таблу логов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 07:41 |
|
||
|
Получение значений итемов в триггере
|
|||
|---|---|---|---|
|
#18+
А есть какие-то минусы, нюансы, если в триггере просто получить значение итема? например: v('ITEM_1') Сделал тестовую табличку и приложение, вроде работает (пробовал получить значение итема как со страницы, так и итема приложения), но как-то всё слишком просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 07:51 |
|
||
|
Получение значений итемов в триггере
|
|||
|---|---|---|---|
|
#18+
Petro123Vlad_567, Я же назвал :app_user? При удалении из триггера пишут в таблу логов пока писал свой сообщение, появилось - это сообщение. в триггере v('app_usser') ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 07:53 |
|
||
|
Получение значений итемов в триггере
|
|||
|---|---|---|---|
|
#18+
Vlad_567но как-то всё слишком просто Да. Говнокод писать очень просто и быстро. И главное, он тоже будет работать. Если это лаба, то потянет. Если нет, то я выше написал что делать в твоём случае. В чём проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 10:03 |
|
||
|
Получение значений итемов в триггере
|
|||
|---|---|---|---|
|
#18+
Vlad_567, у меня так: глобальная процедура Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. в триггере Код: sql 1. 2. т.е. кроме v('APP_USER') в БД нет айтемсов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 10:48 |
|
||
|
Получение значений итемов в триггере
|
|||
|---|---|---|---|
|
#18+
Vlad_567Может можно где-то на сервере сохранить идентификатор открытого пользователем приложения, чтобы он был доступен из триггера? Что-то аналогичное пакетной переменной (с программой на Delphi, когда у каждой открытой программы своя сессия). у D длинные транзакции и сессии. Тут они обезличенные и короткие ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 10:50 |
|
||
|
|

start [/forum/topic.php?fid=50&msg=39107464&tid=1874778]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
156ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
| others: | 267ms |
| total: | 514ms |

| 0 / 0 |
