>Я так понял ситуацию: сначала формируем документ так, как он и формируется,
т.е. через генератор, с возможностью пропуска номера при >отмене генерации
документа. При этом получаем "внутренний" ID документа, который "наружу" не
светится. После этого, когда все уже >готово, отдельно, из ДРУГОГО
генератора берем серийный порядковый "наружный" номер. В этой операции
какие-то исключения крайне >маловероятны (дернуть генератор, и все),
соответственно, риск пропуска номера крайне мал..

Спасибо, за помощь.

 

Получается решение такое:

 

Во временную таблицу (время жизни до конца транзакции) пишем  Id созданных
документов

После завершения процедуры формирования  в этой же транзакции выполняем
update номера документа значением полученным из генератора, получается что
единственный вариант пропуска номера - разрыв коннекта в промежутке между
получением номеров их генератора и  коммит.

 

А вот вторая затронутая проблема - протоколирование срабатывания exception
как то может быть решена ?

Сейчас это делается из самого приложения, но логичнее было бы из триггера
или процедуры.

 

 

С уважением, Мещеряков Вадим

 

директор ООО "Комплексные Системы" 

454021 г. Челябинск ул. 40 лет Победы 31, 77

Тел: +7 (351) 2807917

Моб: +7 922 6395170    

Web: www.del-fin.ru

ICQ: 343-554-572

SKYPE: vadimmescheryakov

 

 

 

Ответить