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

Перехват документ во время проводки

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
dbmaslov
Профи


Вступление в Клуб: 11.07.2007
СообщениеСр Апр 15, 2009 11:56   Перехват документ во время проводки Ответить с цитатой
Полезность: Нет оценки
Коллеги, а кто-нибудь знает, как перехватить переход документа (определенного) в промежуточное состояние (не PROV и не FORM), и выполнить свой код.
Похожее можно сделать через HOOK MD_FOR_PROV_1, но он не перехватывает состояние в "В кассу".
Это необходимо для того чтобы писать фактические операции в договор, в момент проводки или менять статус договора если при проводке документ встал В кассу.
Alex2019
Профи


Вступление в Клуб: 02.07.2007
СообщениеСр Апр 15, 2009 17:52   Re: Перехват документ во время проводки Ответить с цитатой
Полезность: Нет оценки
dbmaslov пишет:
Коллеги, а кто-нибудь знает, как перехватить переход документа (определенного) в промежуточное состояние (не PROV и не FORM), и выполнить свой код.
Похожее можно сделать через HOOK MD_FOR_PROV_1, но он не перехватывает состояние в "В кассу".
А как насчет MD_DO_TRANS_1?
dbmaslov
Профи


Вступление в Клуб: 11.07.2007
СообщениеВт Апр 21, 2009 19:28    Ответить с цитатой
Полезность: Нет оценки
Александр, к сожалению, в этот хук, передается документ до проводки, получается, что вижу только состояние FORM, а в какое состояние он пришел - не вижу.
timochev
Эксперт


Вступление в Клуб: 02.07.2007
СообщениеСр Апр 22, 2009 07:55    Ответить с цитатой
Полезность: Нет оценки
А зачем писать фактические операции или менять состояние договора (или производить прочие действия) до момента проводки (до состояния PROV)? Даже если документ меняет свое состояние на "В кассу", то это не означает, что далее он будет проведен. Он может быть и возвращен кассиром.
У нас в свое время тоже стояла такая задача. В результате мы все делаем в MD_FOR_PROV_1 именно, когда документ получает состояние "Проведен".
Есть одно НО! В этом хуке P_MESS = 'END' не означает, что отработали все продуктовые анализы. Нам, не помню почему, приходилось с этим бороться.
dbmaslov
Профи


Вступление в Клуб: 11.07.2007
СообщениеСр Апр 22, 2009 08:51    Ответить с цитатой
Полезность: Нет оценки
У договора, который породил документы есть статус в кассу.
Это промежуточный статус, который дает возможность понять что документы ушел в другое подразделение.

Конечно, можно держать договор в состоянии "На обработку" до момента проводки всех документов, но хочется как лучше, т.к. будет непонятно обрабатывали его или еще нет.

Тогда напрашивается вариант ввести промежуточный статус "Обработан" - который и будет означать, что документы сформировались, а вы уж сами разбирайтесь, что с ними и где они валяются (Касса, РКО итд), ну а когда документ проведется, договор перейдет в состояние "Исполнен" и запишутся фактические операции.
timochev
Эксперт


Вступление в Клуб: 02.07.2007
СообщениеСр Апр 22, 2009 09:10    Ответить с цитатой
Полезность: Нет оценки
Можно анализировать состояния документов и выводить "наименьшее" из состояний при отображении договора.
sergius_79
Участник со стажем


Вступление в Клуб: 08.07.2007
СообщениеВт Апр 28, 2009 10:21    Ответить с цитатой
Полезность: Нет оценки
Задача поставлена интересная. Попробуйте написать проверочную операцию для FORM_TO_KS_ACT. Что-то типа такого:
Код:
begin
   if P_EVENT = 'EXECUTE' and P_METHOD_CLASS = 'MAIN_DOCUM' and P_METHOD_NAME = 'FORM_TO_KS_ACT' then
      debug_pipe ('Хехехе!', 0);
   end if;
end;

В ней же можно перехватывать некоторые другие переходы, для которых есть операции. Больше ничего (кроме триггеров) в голову не приходит.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

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