Opened 19 months ago
Last modified 19 months ago
#1148 closed улучшение
Валидация серийных номеров не соответствует установленному формату — at Version 12
Reported by: | alx | Owned by: | Denis_N |
---|---|---|---|
Priority: | major | Component: | БД изделий АДС |
Keywords: | Cc: |
Description (last modified by )
В нашей компании действует устное распоряжение директора, предписывающее присваивать производимым изделиям серийные номера формата "латинская заглавная буква и следующие за ней 5 цифр". Однако в r213/base валидация вводимых серийных номеров производится по совпадению с регулярным выражением ^([A-Z]?\d{5}|Р\d{6}|[А-Я]\d{4})$
. Таким образом, валидация не соответствует распоряжению директора.
Предлагаю привести регулярное выражение, которым валидируются серийные номера изделий, в соответствие распоряжению директора, а именно к такому виду: ^[A-Z]\d{5}
.
Change History (13)
by , 19 months ago
follow-up: 2 comment:1 by , 19 months ago
comment:2 by , 19 months ago
Replying to san:
На чём основаны эти ожидания?
На предположениях и догадках о том, как должна работать система (в виду отсутствия документации, в которой я мог бы это узнать точно и достоверно). :)
follow-up: 4 comment:3 by , 19 months ago
Добавил в #997 формат серийных номеров.
Формат серийных номеров изделий: A12345 - латинская заглавная буква и 5 цифр 12345 - 5 цифр Б1234 - русская заглавная Б и 4 цифры Р123456 - русская заглавная Р[эр] и 6 цифр
Номер из твоего примера не соответствует формату, но в коде я вижу проверку ^([A-Z]?\d{5}|Р\d{6}|[А-Я]\d{4})$
в которой явно упущен вариант 5 цифр
comment:4 by , 19 months ago
Replying to san:
Добавил в #997 формат серийных номеров.
Добавил комментарий о том, что этот список неполный (отсутствует серийный номер из 6 цифр).
Номер из твоего примера не соответствует формату, но в коде я вижу проверку
^([A-Z]?\d{5}|Р\d{6}|[А-Я]\d{4})$
в которой явно упущен вариант5 цифр
Смотри внимательнее - не упущен: \d{5}
ближе к началу выражения.
follow-up: 8 comment:5 by , 19 months ago
Аааа, точно) не заметил "?". Думаю что бага тут
Добавил комментарий о том, что этот список неполный (отсутствует серийный номер из 6 цифр).
Я всё уточнил, список полный.
follow-up: 7 comment:6 by , 19 months ago
Хм.. потерял часть комментария.
Я хотел сказать: думаю что бага тут нет, всё работает правильно, единственно последнее условие немного шире чем Б.
comment:7 by , 19 months ago
comment:8 by , 19 months ago
Replying to san:
Я всё уточнил, список полный.
А где, если не секрет, ты это уточнил? У нас есть стандарт на серийные номера?
follow-up: 10 comment:9 by , 19 months ago
К сожалению стандарта нет.
Уточнил у бывшего начальника производства и текущего.
comment:10 by , 19 months ago
Description: | modified (diff) |
---|---|
Type: | дефект → улучшение |
Replying to san:
К сожалению стандарта нет.
В таком случае, как вообще можно накладывать ограничения на форматы серийных номеров?
Ну хорошо, на сегодняшний день ты узнал, что по факту существует пять разных форматов. А завтра по каким-либо причинам решат использовать шестой (например те же 6-цифровые номера) - а система их не принимает...
Я понимаю, что идея валидировать введенные номера сама по себе здравая. Но она должна следовать за административными решениями. Вот если бы был на производстве введен в действие стандарт с пятью форматами - тогда я бы с чистой совестью закрыл этот тикет как invalid (я поэтому из задавал вопрос). Но так как никаких административных решений нет - я считаю, что система не имеет права ограничивать пользователей в использовании каких-либо серийных номеров. Есть желание повысить надежность ввода, исключить возможные ошибки - пожалуйста: предлагай менеджерам с соответствующими полномочиями административно установить некие правила (фиксированный формат, контрольный символ как в номерах кредиток, QR-коды наконец (еще предыдущий начальник ПТО их хотел использовать) - все что угодно), и когда административным решением эти правила будут введены - вот тогда можно их подкрепить техническим (программным) решением. Технические средства следуют за административными, но никак не наоборот. По-моему так. (с) Винни
Изменил тип тикета на улучшение.
comment:11 by , 19 months ago
К сожалению стандарта нет.
Тут я пожалуй был излишне категоричен. Есть формат номеров одобренный директором(устно) и производство его использует(просто когда ты спрашивал про стандарт, я представил некие письмено зафиксированые правила).
Формат этот- латинская заглавная буква и 5 цифр. Буква означает год изготовления платы(инкрементируется начиная с A = 2018), производство с 2018 года печатает серийные номера по этому "стандарту".
В прошлом году при заказе ошибочно напечатали E0<5 цифр> и было принято решение лишний первый ноль игнорировать.
Думаю что можно считать это правило устоявшимся и ориентироваться на него.
comment:12 by , 19 months ago
Description: | modified (diff) |
---|---|
Summary: | Не принимается серийный номер платы → Валидация серийных номеров не соответствует установленному формату |
На чём основаны эти ожидания?