Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
mvg Участник - экстремал
Вступление в Клуб: 04.12.2008
|
Чт Апр 15, 2010 15:48  Программное журналирование |
|
Полезность: Нет оценки
|
При включении журналирования для какого-либо реквизита типа возможно выбрать вариант программного журналирования:
Цитата: | "Прогр." – Журналирование выполняется программно. При установленном параметре подразумевается, что в написанном пользователем тексте соответствующей процедуры будет указан метод журналирования. Если в интерфейсном пакете процедуры не найдется соответствующих команд, то журналирования не произойдет. |
Есть ли у кого-нибудь пример использования данного варианта?
Последний раз редактировалось: mvg (Пт Апр 16, 2010 07:23), всего редактировалось 1 раз |
|
 |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Пт Апр 16, 2010 05:07   |
|
Полезность: Нет оценки
|
Цитата из справки по PL/Plus:
Цитата: |
В языке PL/Plus определены дополнительные операторы для работы с объектами языка – это модификаторы. Они распознаются по символу ‘%’.
%log - вызов процедуры журналирования значений реквизитов, помеченных как "Журналируемые программно" в свойствах ТБП, для экземпляра, к которому применен модификатор. Возвращаемого значения не имеет, может использоваться только как отдельный оператор.
|
|
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Пт Апр 16, 2010 21:26   |
|
Полезность: 1
|
Я использую процедуру
rtl.log_vals(this, 'I93_OP_TYPE', 'STRING', [I93_OP_TYPE].[CODE], 'MAIN_DOCUM');
работает без всяких галочек.
Смотреть по Ctrl-H на реквизите. |
|
 |
timochev Эксперт
Вступление в Клуб: 02.07.2007
|
Пн Апр 19, 2010 07:55   |
|
Полезность: Нет оценки
|
Volod пишет: | Я использую процедуру
rtl.log_vals(this, 'I93_OP_TYPE', 'STRING', [I93_OP_TYPE].[CODE], 'MAIN_DOCUM');
работает без всяких галочек.
Смотреть по Ctrl-H на реквизите. |
Правильно ли я понимаю, что преимущество этого способа в том, что жкрналируется не ID ссылки, а код экземпляра с этим ID?
Где такой код у Вас используется? Журналирование все-таки лучше делать на триггерах, чтоб уж никто не пробрался мимо. А здесь используется pl+, что говорит об использовании из программного кода. |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Пн Апр 19, 2010 09:05   |
|
Полезность: Нет оценки
|
Этот код я взял из триггера, который создается при установке галки журналирования на реквизите.
Триггер не могу использовать, т.к. они замедляют обработку безнал. документов.
Приходится обходить таким образом.
Четвертый параметр определяет содержимое журнальной записи. |
|
 |
timochev Эксперт
Вступление в Клуб: 02.07.2007
|
Пн Апр 19, 2010 09:11   |
|
Полезность: Нет оценки
|
Т.е. Вы вставили данный вызов в некоторый pl+ код, изменяющий ссылку? Но где гарантия, что из другого места (другой операции) никто не поменяет этот реквизит? |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Пн Апр 19, 2010 09:17   |
|
Полезность: Нет оценки
|
Мне нужно в определенной операции для определенных пользователей отслеживать изменение реквизита. |
|
 |
Andry Участник - экстремал
Вступление в Клуб: 14.01.2009
|
Пт Июл 30, 2010 17:59  модификатор %arch |
|
Полезность: Нет оценки
|
А кто-нибудь уже работает с функциональностью из 7.1 - архивными реквизитами (через модификатор %arch)?
Пробовали ли функцию переноса данных из системного журнала истории в историю архивных реквизитов? |
|
 |
Andry Участник - экстремал
Вступление в Клуб: 14.01.2009
|
Ср Сен 08, 2010 12:58  Re: модификатор %arch |
|
Полезность: Нет оценки
|
Andry пишет: | А кто-нибудь уже работает с функциональностью из 7.1 - архивными реквизитами (через модификатор %arch)? |
Неужели никому не интересна эта функциональность 7.1?
см PLPLUS.TXT:
...
2.1. Реализован новый модификатор %arch, позволяющий работать
с архивными реквизитами в PL/Plus (см.п.3.1).
Новый модификатор в зависимости от контекста использования реализует следующие режимы работы с архивами:
2.1.1. Применение к типу.
[CLASS]%arch - варианты использования:
...
2.1.2. Применение по ссылке.
<ref [CLASS]>%arch(p_qual string,p_time timestamp) return [CLASS]%arch
....
2.1.3. Применение к скалярному реквизиту.
<ref [CLASS]>->[ATTR1].[ATTR2]%arch(p_time timestamp,
p_field string default null) return string
...
2.1.5. Применение по ссылке в SQL-выражениях PL/Plus.
<ref [CLASS]>%arch.[FIELD]
...
2.1.6. Применение к типу.
[CLASS]%arch.[INSERT](p_rec [CLASS]%arch)
... |
|
 |
|