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

Определение перехода документа в новое состояние

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


Вступление в Клуб: 24.08.2012
СообщениеСр Июл 19, 2017 12:03   Определение перехода документа в новое состояние Ответить с цитатой
Полезность: Нет оценки
Приветствую, коллеги!
Есть задача: при выполнении проводки документа нужно определить его новое состояние и выполнить некоторые действия, если это "то самое" состояние. Получилось реализовать только в расширении DOC_TO_PROV. Но дело в том, что проводка документов может идти и другим путем, через FOLDER_TO_PROV.
Посоветуйте пож-та хук, если такой есть. MD_DO_TRANS_1 не подходит, он выполняется до смены состояния.
Alkov
Профи


Вступление в Клуб: 23.09.2010
СообщениеЧт Июл 20, 2017 03:46    Ответить с цитатой
Полезность: Нет оценки
Разве хук не MD_FOR_PROV_CP_1 ?
mike24
Участник со стажем


Вступление в Клуб: 24.08.2012
СообщениеЧт Июл 20, 2017 09:26    Ответить с цитатой
Полезность: Нет оценки
Alkov пишет:
Разве хук не MD_FOR_PROV_CP_1 ?

Увы, не оно
vtar
Эксперт


Вступление в Клуб: 20.03.2009
СообщениеЧт Июл 20, 2017 10:34    Ответить с цитатой
Полезность: Нет оценки
mike24 пишет:
Alkov пишет:
Разве хук не MD_FOR_PROV_CP_1 ?

Увы, не оно


В справочнике "Расширения и перекрытия. Точки вызова" в MD_FOR_PROV вставь нужный метод .

Тут смотрел ?

http://cftclub.ru/viewtopic.php?t=3986&highlight=%F1%EE%F1%F2%EE%FF%ED%E8%E5

http://cftclub.ru/viewtopic.php?t=4838&highlight=%E2+%D0%D6
mike24
Участник со стажем


Вступление в Клуб: 24.08.2012
СообщениеЧт Июл 20, 2017 11:49    Ответить с цитатой
Полезность: Нет оценки
Да, смотрел.
В MD_FOR_PROV можно увидеть текущее состояние документа, т.е. он выполняется до того, как документ перешел в новое состояние.
vtar
Эксперт


Вступление в Клуб: 20.03.2009
СообщениеЧт Июл 20, 2017 12:07    Ответить с цитатой
Полезность: Нет оценки
а если при вызове хука/точки вызова смотреть

if P_MESS = 'BEGIN'

....

if P_MESS = 'END'

а вообще цитирую доку Приложение 1-07-00. Расширения продукта

Операции расширения [HOOK]:

MD_DO_TRANS_1
Платежные
документы.
Проверка
переходов.
Вер.01
[MAIN_DOCUM].
[DO_TRANS]
Проверка переходов


Короткое имя операции:
MD_DO_TRANS_1
Полное имя операции:
Платежные документы. Проверка переходов. Вер.01
Короткое имя класса и операции, из которой вызывается операция HOOK:
[MAIN_DOCUM].[DO_TRANS]
Полное имя операции, из которой вызывается операция HOOK:
Проверка переходов
Назначение операции HOOK:
Используется для реализации банком собственных проерок при переходе платежного
документа из одного состояния в другое.
Входные параметры:
1. Платежный документ, Тип - [MAIN_DOCUM_REF]
Возвращаемое значение:
Нет.
Значение на дистрибутиве:
Никаких действий не производится.
mike24
Участник со стажем


Вступление в Клуб: 24.08.2012
СообщениеЧт Июл 20, 2017 12:14    Ответить с цитатой
Полезность: Нет оценки
Ага, и так пробовал. Все равно возвращает то состояние, которое было до проводки Sad
Вот поэтому и прошу помощь зала, может кто уже решал подобную задачу.
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеПт Июл 21, 2017 11:11    Ответить с цитатой
Полезность: Нет оценки
mike24 пишет:
Ага, и так пробовал. Все равно возвращает то состояние, которое было до проводки Sad
Вот поэтому и прошу помощь зала, может кто уже решал подобную задачу.


тоже искал - не нашел. Пришлось в МД_ФОР_ПРОВ просто условия сужать. Например, чтобы в РЦ не переходило пришлось ставить что текущее FORM и например счет ко КТ =301.
Как любое следующее отследить - не нашел.
De Mian
Профи


Вступление в Клуб: 26.09.2008
СообщениеПт Июл 21, 2017 15:41    Ответить с цитатой
Полезность: Нет оценки
mike24 пишет:
Ага, и так пробовал. Все равно возвращает то состояние, которое было до проводки Sad
Вот поэтому и прошу помощь зала, может кто уже решал подобную задачу.

1) ::[MAIN_DOCUM][DOC_TO_PROV] -> ::[MAIN_DOCUM].[FOLDER_TO_PROV] -> CALL_PRODUCT -> ::[HOOK].[MD_CALL_PROD_1]
2) ::[MAIN_DOCUM][DOC_TO_PROV] -> ::[MAIN_DOCUM].[FOLDER_TO_PROV]-> CALL_PRODUCT -> ::[MAIN_DOCUM][FOR_PROV] -> ::[HOOK].[MD_FOR_PROV_CP_1]
Если действия выполнять после проводки папки, то
3) ::[MAIN_DOCUM][DOC_TO_PROV] -> ::[MAIN_DOCUM].[FOLDER_TO_PROV]-> ::[FOLDER_PAY].[DOC_TO_PROV]-> ::[FOLDER_PAY].[FOLDER_TO_PROV] -> ::[FOLDER_PAY].[ANALYS_FOLD]( null, ‘END’ или 'END_MAIN_FOLDER') -> расширение ANALYS_FOLD

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

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