[ТЕМА ЗАКРЫТА]
Опции темы
21.09.2006 13:25  
kadr
думаю стоит пояснить:
При генерации номера накладной на основе сличилки используется след алгоритм (могут быть неточности)

берётся (длина номера сличилки)+(1 знак "-")+(длина префикса накладной) в нашем случае получаем: длина номера сличилки 10 знаков, длина префикса накладной 5 знаков, т.е. имеем 16 знаков.
потом ищется макс номер накладной в smdocuments c условием найденное кол-во знаков (16)+макс количество знаков в номере накладной (в нашем случае 5)
Код:
 AND (LENGTH(ID) = 5 + 16)
   AND ID BETWEEN '00ПРН00001' AND '00ПРН99999';
если находится, то отсекается всё что больше 16 знаков (остаётся номер накладной) и увеличивается на 1.
на всякий случай проверяется на существование, а потом выдаётся сгенерированный номер.

Т.е. в случае vadim`а мы получили:
существовала накладная "00ПРН12345 Справочная" и длина её номера как раз равна 5+16, после всех операций у нас остаётся "очная" вот это значение пытаемся ув. на 1 и получаем ошибку
>>ORA-06502: PL/SQL: : ошибка преобразования символа в число ошибка числа или значения.
Такую ошибку разработчики не предусмотрели и у нас выдаётся
>>ORA-20069: Переполнение при генерации номера документа. Требуется сменить префикс.
Что немного сбивает с пути поиска проблемы.

После удаления пробела длина номера уже не удовлетворяет условию (LENGTH(ID) = 5 + 16) и номера накладных на основе сличилки прекрасно генерятся.

Уф-ф-ф, устал пока писал. Конечно запутанно объяснил, но надеюсь с пониманием проблем не будет
 
27.10.2006 14:03  
sova74
kadr, у меня вопрос может ли это быть при генерации актов переоценки на основе прихода. и если может то где искать неправильный номер, в приходах или переоценках
 
27.10.2006 14:18  
Mtirt
Это может касаться любых документов.
 
27.10.2006 16:41  
kadr
sova74, искать надо воо вновь создаваемых документах, следовательно в твоём случае в актах переоценки
 
27.10.2006 17:44  
sova74
ребята, спасибо. Я перешерстил все акты с момента когда возникла ошибка - 2 дня все номера нормальные без пробелов.
вопрос 1. Может ли это быть в удаленных номерах? и если да то как найти этот номер.
вопрос 2. Существует ли какой нить скрипт для проверки номеров?
 
27.10.2006 18:09  
OlegON
Если не критично, то, как писал выше, поменяй и у приходок и у актов префикс и прокатит...
 
30.10.2006 08:47  
kadr
sova74, https://olegon.ru/index.php?name=For...ic&p=4974#4974 здесь я писал, что дело не в пробелах, а в длине номера, даже если в приведённом примере удалить не пробел, а любой из знаков, то всё будет нормально
 
30.10.2006 10:13  
sova74
kadr, я пробовал и увеличивать длину номера и уменьшать ее
ошибка остается. доки создаются с новыми номерами а проводиться нехотят.

olegon, Олег, меняли не только префиксы нои длину номера, непомагло.

Что удивительно, в день когда произошла ошибка акты создавалиь до обеда и все было нормально. что произошло после обеда непонятно *11
 
30.10.2006 10:23  
OlegON
Погоди, давай еще раз, они все таки создаются, но не хотят проводиться? Как-то странно перескочило. Ты поменял префиксы и у приходок и у актов, на всех МХ?
 
30.10.2006 10:38  
sova74
olegon, совершенно верно, но у меня предчуствие , что это не префиксы виноваты. Поскольку с ораклом не очень, не москазать более конкретно
 
 


Опции темы



Часовой пояс GMT +3, время: 11:50.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.