Свой\чужой: обучаем сервис извлечения штрих-кодов.

12 4

7 дней назад:

…Стоя в достаточно уютной для банка кабинке кассы, вручаю оператору бумажки с непривлекательной (для меня) суммой дорожного налога и довольно интересным (для меня, опять же) двумерным штрих - кодом. Отсчитывая последние десятки рабочих минут на часах, девушка подносит сие графическое творение к сканеру штрих – кодов и … тишина, нарушаемая лишь моей вырвавшейся улыбкой. Пара минут клацанья ее симпатичными ноготками по клавиатуре все же привели к расставанию меня и N-ой суммы денег, но запомнилось мне не это…

Сегодня:

            Вспомнив эту ситуацию я подумал…нет, не о ее ноготках, а о том самом “промахе” в работе автоматической идентификации документов посредством штрих-кода. В данном случае было потеряно чуть менее двух человекоминут. Во что же выльется ошибка идентификации документов, вернувшихся в компанию, если на них не удается прочесть данные штрих-кода?

По сему, эта статья призвана осветить основные причины ошибок распознавания картинки штрих-кода с документов и способы их устранения.

Как все начинается:

Приобретая в составе службы ввода дополнительную службу преобразования, заказчик получает в  составе последней и сервис извлечения штрих – кодов, который начинает успешно работать в составе стандартного прикладного сценария обработки документов. Или нет?

Исходное положение:

На документ нанесен “стандартный” штрих-код DIRECTUM. Документ пропускается через сканер (рассматриваем данный способ получения графической копии, поскольку захват с факса или с e-mail начинается с этого же самого этапа). Скан-образ обрабатывается сервисом извлечения штрих – кодов (далее BR).

Ситуация раз:Штрих-код на документе корректно распознается, дальнейшая обработка происходит согласно прикладной логике. На этом статью бы и закончить... Но бывают и прочие случаи.

Ситуация два: Обработка скана BR`ом влечет к возникновению ошибок, извлечение штрих-кода не происходит.

Возможные причины зафиксируются в этом случае в представлении журнала событий ОС DCTSEventLog (Пуск\выполнить\ eventvwr.msc \DCTSEventLog).

 

  1. Ошибка с содержанием текста:

  

Возможные причины и способы устранения ошибки следующие:

 

Причина

Решение

1

Недостаточное качество изображения штрих-кода на скан-образе.

Увеличить параметры сканирования до рекомендуемых: 300 dpiи 8 градаций серого.

Примечание: Могут использоваться и прочие, если сканер формирует изображения с достаточным качеством.

2.

Некорректные значения параметров настройки BR.

В конфигурационном файле службы преобразования DCTSTransformationService.exe.config задать следующие настройки:

BarcodeColor="GrayScale8Bits"

BarcodeMaxResolution="300"

Примечание: Данные параметры должны снижать качество изображения до указанных значений для ускоренной обработки. Однако слишком малые значения могут привести к неудовлетворительному результату.

3.

Нанесен неподдерживаемый тип штрих-кода или некорректный штрих-код.

BR обрабатывает следующие типы штрих – кодов:

  •Code11;
  •Code39;
  •Code93;
  •Code128;
  •Codabar;
  •Inter2of5;
  •EAN13;
  •EAN8;
  •UPCA;
  •UPCE;
  •Add2;
  •Add5.
 

В DIRECTUMи его бизнес- решениях чаще всего используется тип CODE128. Некорректный штрих-код может быть получен при использовании в нем символов кириллицы (CODE128 не поддерживает кириллицу).

Примечание: Штрих-кодCODE128 с кириллицей сформируется, но ничем не распознается.

4.

Недостаточный размер изображения штрих-кода.

Размер штрих-кода может быть увеличен. При этом вероятность успешного распознавания значительно возрастает и при меньшем разрешении сканирования.

 

2.  Ошибка с содержанием текста:

 

Connector:Connection time out. HRESULT=0x800A1527 - Client:An unanticipated error occurred during the processing of this request. HRESULT=0x800A1527 - Client:Sending the Soap message failed or no recognizable response was received HRESULT=0x800A1527 - Client:Unspecified client error. HRESULT=0x800A1527.

 

 

Причина

Решение

1

Недостаточный таймаут на выполнение операции.

Увеличить значение константы DCTSExecutionTimeout.

Примечание:Значение задается в миллисекундах. Т.о. следует указать 30000-60000.

 

3. Ошибка с содержанием текста:

 

 

 

 

Причина

Решение

1

Отсутствие на сервере с установленной службой преобразования MSSОAP.

Установить на машине со службой преобразования MSSOAP: http://www.microsoft.com/downloads/en/details.aspx?FamilyId=C943C0DD-CEEC-4088-9753-86F052EC8450&displaylang=en

 

На данный момент перечисленные мной ситуации являются наиболее вероятными. Надеюсь, что эта статья поможет многим сократить как свои, так и зависимые от вас те самые человекоминуты\часы\дни, которые так часто разделяют нас работающих от нас отдыхающих.

12
Авторизуйтесь, чтобы оценить материал.
1
Иван Чурбаков
Примечание: Штрих-кодCODE128 с латиницей сформируется, но ничем не распознается.

 Наверно имеется в виду кириллица.
Константин Широбоков

Простите - заработался, исправлю).

Mikhail Popkov

Все установлено по Вашей рекомендации, в логе все гут, пакет отправлен, но при этом шк не находит и бар код не распознает

ExceptionExists()- SoapMapper:Array dimensions do not match definition. HRESULT=0x8002000B: Invalid index.
 - SoapMapper:Restoring data into SoapMapper BarcodeInfo failed HRESULT=0x8002000B: Invalid index.
 - SoapMapper:Restoring data into SoapMapper RecognizeResult failed HRESULT=0x8002000B: Invalid index.
 - Client:Unspecified client error. HRESULT=0x8002000B: Invalid index|Функция "DCTSRecognizeBarCodeInFile"

ошибки soap

Array dimensions do not match definition

Restoring data into SoapMapper BarcodeInfo failed

Restoring data into SoapMapper RecognizeResult failed

Unspecified client error

где что не так?

 

Константин Широбоков

Какая старая статья...
Михаил, попробуйте обнаружить ШК на тестовом скане через утилиту Dtkbarcode reader demo. Если утилита обнаружит ШК, то уже хорошо. Далее смотрим а как быстро она смогла это сделать: если за милисекунды, то скан великолепный, и надо проверить настройки сервиса извлечения ШК. если же долго, то есть неск секунд, то качество скана оч низкое и надо бы его улучшить. 
Если ничего не получится -высылайте конфиг-файл службы и обезличенный пример скана со ШК.

Авторизуйтесь, чтобы написать комментарий