Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Sniffer Участник
Вступление в Клуб: 24.11.2009
|
Вт Ноя 24, 2009 14:41  Программный вызов CTRL+S (История состояний) |
|
Полезность: Нет оценки
|
Я новичок на форуме - поэтому не судите строго.
Для одного отчета понадобилось выводить историю состояний документа - в таком же виде как выводит его Ctrl+S на платежном документе. Я по наивности думал что это все храниться в массиве История состояний, однако это не так. В некоторых экземплярах платежных док-тов этот массив и вовсе пуст - однако Журнал изменения состояния по Ctrl+S выводиться.
Я предполагаю что эта информация берется из Аудита - но раз реализовано в навигаторе - то может быть есть и другие реализации позволяющие использовать в операциях ?
Заранее всем спасибо за любую помощь !!! |
|
 |
w00per Профи
Вступление в Клуб: 17.10.2007
|
Вт Ноя 24, 2009 15:19   |
|
Полезность: 6
|
При нажатии Ctrl+S выполняется следующий запрос.
Код: |
select O.OBJ_ID
, S.NAME
, U.NAME USERNAME
, O.USER_ID
, to_char(O.TIME, 'DD/MM/YYYY HH24:MI:SS') TIME
from IBS.OBJECT_STATE_HISTORY O
, IBS.STATES S
, IBS.USERS U
where O.OBJ_ID = :1
AND (O.STATE_ID = S.ID(+) AND S.CLASS_ID = :2)
AND U.USERNAME(+) = nvl(substr(O.USER_ID,1,instr(O.USER_ID,'.')-1),O.USER_ID)
order by O.TIME
|
_________________ I Lie About Everything. |
|
 |
German Профи
Вступление в Клуб: 25.06.2007
|
Вт Ноя 24, 2009 17:33   |
|
Полезность: Нет оценки
|
Кстати, ни у кого не наблюдается по CTRL+S нарушение сортировки (как строка, а не как дата) ? _________________ Homo homini |
|
 |
Alex2019 Профи
Вступление в Клуб: 02.07.2007
|
Вт Ноя 24, 2009 19:27   |
|
Полезность: Нет оценки
|
German пишет: | Кстати, ни у кого не наблюдается по CTRL+S нарушение сортировки (как строка, а не как дата) ? |
Наблюдается... Похоже, опять начудили |
|
 |
Sniffer Участник
Вступление в Клуб: 24.11.2009
|
Ср Ноя 25, 2009 07:08   |
|
Полезность: Нет оценки
|
w00per пишет: | При нажатии Ctrl+S выполняется следующий запрос.
|
Спасибо огромное !!! |
|
 |
alex_vko Участник
Вступление в Клуб: 19.08.2011
|
Пт Авг 19, 2011 08:25   |
|
Полезность: Нет оценки
|
А как определить к какому документу относится запись в IBS.OBJECT_STATE_HISTORY ? |
|
 |
markoff Участник - экстремал
Вступление в Клуб: 09.06.2009
|
Пт Авг 19, 2011 08:54   |
|
Полезность: 1
|
В таблице OBJECT_STATE_HISTORY есть колонка OBJ_ID и CLASS_ID, по ним вы сможете вычислить документ |
|
 |
lki Участник со стажем
Вступление в Клуб: 18.03.2008
|
Пт Мар 15, 2013 15:04   |
|
Полезность: Нет оценки
|
вопрос такой:
можно ли как-то ускорить данный запрос, т.к. есть необходимость получения астрономической даты создания платежного документа в системе, а данный запрос выполняется ооочень долго |
|
 |
svn Профи
Вступление в Клуб: 04.02.2008
|
Пт Мар 15, 2013 15:20   |
|
Полезность: 1
|
OBJ_ID должен принимать в параметрах строковое представление ID объекта |
|
 |
lki Участник со стажем
Вступление в Клуб: 18.03.2008
|
Пн Мар 18, 2013 06:43   |
|
Полезность: Нет оценки
|
svn пишет: | OBJ_ID должен принимать в параметрах строковое представление ID объекта |
действительно помогло, спасибо большое за совет |
|
 |
maestro Профи
Вступление в Клуб: 12.10.2010
|
Пн Мар 18, 2013 10:30   |
|
Полезность: 1
|
svn пишет: | OBJ_ID должен принимать в параметрах строковое представление ID объекта |
Обрати также внимание на то, что таблица нарезана по месяцам (секционирована), а индекс по OBJ_ID - локальный.
Т.о. при указании просто строкового OBJ_ID получишь перебор всех разделов таблицы, а если добавишь в предикат условие по TIME, сужающее поиск до одной партиции, то будет СУПЕРМЕГАБЫСТРО! |
|
 |
|