CftClub.ru
Клуб специалистов ЦФТ-Банк

Программный вызов CTRL+S (История состояний)

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы
Предыдущая тема :: Следующая тема  
Автор Сообщение
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, сужающее поиск до одной партиции, то будет СУПЕРМЕГАБЫСТРО!
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru