Форум OlegON > Программы и оборудование для автоматизации торговли > Системы автоматизации торговли > Супермаг Плюс (Супермаг 2000)

Переполнение при генерации номера документа. Требуется сменить префикс. : Супермаг Плюс (Супермаг 2000)

19.03.2024 12:33


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, время: 12:33.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.