Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
lexoos Участник - экстремал
Вступление в Клуб: 06.11.2007
|
Пт Фев 26, 2010 09:57  Бизнес-операции |
|
Полезность: Нет оценки
|
Подскажите плиз!
В конверсионных операциях необходимо настроить схему проводок следующим образом:
сначала должны сформироваться и провестись 2 документа, затем должны сформироваться и проводиться (ну или хотябы проводиться) следующие (при условии успешной проводки первых двух).
как можно реализовать?
разбиваю вормирование документов на 2 БО - при последующем подтверждении сделки вторая часть документов формируется БО2 вне зависимости от состояния документов по БО1
спасибо за помощь! |
|
 |
timochev Эксперт
Вступление в Клуб: 02.07.2007
|
Пт Фев 26, 2010 10:44   |
|
Полезность: Нет оценки
|
В "Справочнике видов валютных операций" в массиве "Маршрут обработки" у каждого этапа с помощью вычисляемых параметров можно определить "Условие выполнение этапа" |
|
 |
lexoos Участник - экстремал
Вступление в Клуб: 06.11.2007
|
Пт Фев 26, 2010 11:13   |
|
Полезность: Нет оценки
|
timochev пишет: | В "Справочнике видов валютных операций" в массиве "Маршрут обработки" у каждого этапа с помощью вычисляемых параметров можно определить "Условие выполнение этапа" |
Если такое условие не выполнится, то произойдет запуск следующего этапа и сделка никогда не приобретет пропущенный этап и не будут сформированы соответствующие документы.
Допустим, данное условие пропишем у все следующих за БО1 этапах, я как понимаю нужно свою логику писать для получения значения реквизита-состояния документов по БО1, дистрибутивных попдобных нет? |
|
 |
IBSO Профи
Вступление в Клуб: 20.08.2009
|
Пт Фев 26, 2010 11:20   |
|
Полезность: Нет оценки
|
А условие "Проводить всю папку "в этом не поможет? как я понимаю, если хоть 1 документ из БО не может провестись, то и все документы откатываются. |
|
 |
lexoos Участник - экстремал
Вступление в Клуб: 06.11.2007
|
Пт Фев 26, 2010 11:26   |
|
Полезность: Нет оценки
|
IBSO пишет: | А условие "Проводить всю папку "в этом не поможет? как я понимаю, если хоть 1 документ из БО не может провестись, то и все документы откатываются. |
в данном случае - нет, т.к. первая партия доков - межфилиальные, имеющие промежуточный статус (в РЦ), вторая - кассовые, так же имеющие промежуточный статус (в Кассу) и в кассу они не должны попадать, пока не проведутся межфилиальные документы |
|
 |
timochev Эксперт
Вступление в Клуб: 02.07.2007
|
Пт Фев 26, 2010 11:32   |
|
Полезность: Нет оценки
|
lexoos пишет: | timochev пишет: | В "Справочнике видов валютных операций" в массиве "Маршрут обработки" у каждого этапа с помощью вычисляемых параметров можно определить "Условие выполнение этапа" |
Если такое условие не выполнится, то произойдет запуск следующего этапа и сделка никогда не приобретет пропущенный этап и не будут сформированы соответствующие документы. | Нда, фигня получается.
Есть еще в доке Цитата: | Метод проверки условий выполнения – если в реквизите указано имя метода данного класса и указан признак проверки даты валютирования, то перевод экземпляра в следующий статус производится или не производится в зависимости от результата выполнения этого метода (в действующей версии не используется). | Похоже это то, что надо. Но последняя фраза надежду убивает...
Может сделать выч.параметр, который вызывает pragma error, когда документы не проведены? Иначе возвращает TRUE. Только сообщения для пользователя нормального не будет. |
|
 |
IBSO Профи
Вступление в Клуб: 20.08.2009
|
Пт Фев 26, 2010 11:37   |
|
Полезность: Нет оценки
|
нет, вычпар не поможет. Его можно писать если документ вообще не создается или создается.
Последний раз редактировалось: IBSO (Пт Фев 26, 2010 11:40), всего редактировалось 1 раз |
|
 |
lexoos Участник - экстремал
Вступление в Клуб: 06.11.2007
|
Пт Фев 26, 2010 11:39   |
|
Полезность: Нет оценки
|
timochev пишет: | Есть еще в доке Цитата: | Метод проверки условий выполнения – если в реквизите указано имя метода данного класса и указан признак проверки даты валютирования, то перевод экземпляра в следующий статус производится или не производится в зависимости от результата выполнения этого метода (в действующей версии не используется). | Похоже это то, что надо. Но последняя фраза надежду убивает... |
Откуда выдержка? Про какой реквизит идет речь?
timochev пишет: | Может сделать выч.параметр, который вызывает pragma error, когда документы не проведены? Иначе возвращает TRUE. Только сообщения для пользователя нормального не будет. | Спасибо, попробую так (а сругаться в pragma error можно и культурно, прагмы же валятся на экран при выполнении БО). В крайнем случае все последующим переходам также пропишу новое условие, благо их после БО1 всего 3. |
|
 |
timochev Эксперт
Вступление в Клуб: 02.07.2007
|
Пт Фев 26, 2010 11:39   |
|
Полезность: Нет оценки
|
Кстати, проверьте, может "Метод проверки условий выполнения" уже используется в 10.1? |
|
 |
lexoos Участник - экстремал
Вступление в Клуб: 06.11.2007
|
Пт Фев 26, 2010 11:40   |
|
Полезность: Нет оценки
|
мы пока на 9.6 |
|
 |
timochev Эксперт
Вступление в Клуб: 02.07.2007
|
Пт Фев 26, 2010 11:41   |
|
Полезность: Нет оценки
|
lexoos пишет: | Откуда выдержка? Про какой реквизит идет речь?
| "Глава_17(Конверсионные_операции).chm"/"Справочник видов валютных операций" |
|
 |
lexoos Участник - экстремал
Вступление в Клуб: 06.11.2007
|
Пт Фев 26, 2010 15:00   |
|
Полезность: Нет оценки
|
Попробовал указанный ранее "Метод проверки условий выполнения" на 9.6: указал метод (SAB_PROV), создал групповую операцию в конверсионных с таким же коротким наименованием, возвращающую булевое значение. При подтверждении сделки такая ругань:
Цитата: | ORA-06550: line 1, column 14:
PLS-00201: identifier 'Z$SALE_LIST_SAB_PROV.SAB_PROV_EXECUTE' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
ORA-06512: at "IBS.Z$SALE_LIST_GET_STATUS", line 107
ORA-06512: at "IBS.Z$SALE_PODTV", line 78 |
Не работает на текущей версии или что то не доделал/не так сделал? |
|
 |
timochev Эксперт
Вступление в Клуб: 02.07.2007
|
Пт Фев 26, 2010 16:42   |
|
Полезность: Нет оценки
|
1. Операция должна быть в типе SALE_LIST
2. Должен быть 1 параметр типа "Ссылка на "Продукты""
3. Должна возвращать строку
Эти все условия выполняются? |
|
 |
timochev Эксперт
Вступление в Клуб: 02.07.2007
|
Пт Фев 26, 2010 16:46   |
|
Полезность: Нет оценки
|
Нашел функцию проверки состояния документов и ее использование при закрытии сделки (в RUN_SCHEME_3):
Код: | -- Проверка на проведенность всех порожденных документов
strStatusDoc := [SALE].[MAKE_DOCUMENT].Get_Status_Doc([ARR_DOCUM]);
boolFlag := false;
if strStatusDoc = 'Проведены' or trim(strStatusDoc) = '' then
boolFlag := true;
end if;
if not boolFlag then
V_TEXT_BACK := V_TEXT_BACK || 'Существуют непроведенные документы по сделке.' || NL$;
V_TEXT_BACK := V_TEXT_BACK || 'Для закрытия сделки проведите документы с помощью признака "Проводить"';
end if;
|
|
|
 |
Alex2019 Профи
Вступление в Клуб: 02.07.2007
|
Пт Фев 26, 2010 19:10   |
|
Полезность: Нет оценки
|
А вы не пробовали использовать механизм финраспоряжений в конверсионке?
По-моему, это как раз то, что Вам надо, т.к. пока не выполнено ФР по первой БО (т.е. ее документы не проведены), протолкнуть дальше сделку не удастся. |
|
 |
|