Russian (Русский) - Change language

Как подготовить справочники поставщиков и подразделений компании

ODBC-совместимая база данных

ABBYY FlexiCapture for Invoices позволяет подключить Набор данных к ODBC-совместимой базе данных (см. Подключение справочников поставщиков и подразделений компаний), однократно загрузить данные, а также регулярно обновлять Набор данных данными из внешней базы (см. Обновление данных в Наборе данных).

Поэтому первым шагом является разворачивание внешних данных в ODBC-совместимой базе данных, например, MS Access, MS SQL Server или Oracle.

Дедубликация записей во внешней базе

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

Уникальным ключом Набора данных подразделений компании является поле Id (см. Столбцы Набора данных BusinessUnits). С точки зрения пользователя данное поле — есть результат определения подразделения компании, которому выставлен инвойс, в результате обработки.

Уникальным ключом Набора данных поставщиков должно являться значение, которое будет передано во внешнюю систему как результат определения поставщика инвойса в результате обработки в ABBYY FlexiCapture for Invoices. Если используется одна таблица поставщиков, то уникальный ключ должен быть поставлен в соответствие полю Id Набора данных. Это значение будет передано во вешнюю систему в результате определения поставщика инвойса.

Если же в одном проекте предполагается обрабатывать инвойсы, выставленные разным подразделениям компании, и каждое подразделение компании имеет свою базу поставщиков, то при настройке Набора данных необходимо сопоставить уникальный ключ подразделения компании со столбцом BusinessUnitId Набора данных Vendors, а ключ поставщика — со столбцом Id Набора данных Vendors. Таким образом, уникальным ключом записи поставщика, который будет передан во вешнюю систему в результате определения поставщика инвойса, будет пара значений Id и BusinessUnitId (см. Столбцы Набора данных Vendors).

Далее для простоты мы будем говорить только о поставщике (для подразделения компании всё аналогично).

Уникальный ключ записи должен определять уникальное сочетание параметров, которые используются для автоматического определения поставщика. Часто бывает, что внешняя система считает уникальной запись о поставщике, основываясь на большем количестве параметров, чем указано на инвойсе и / или используется для автоматического определения поставщика.

Например, внешняя система может предполагать получение идентификатора MCN_USD, если поставщик My Company Name Ltd. выставил инвойс в долларах США, и идентификатора MCN_EUR, если та же компания выставила инвойс в евро. Несмотря на то, что информация о валюте указана на инвойсе (следовательно, при обработке инвойса это случай, когда нужно вернуть идентификатор MCN_USD, может быть отличён от случая, когда должен быть возвращён идентификатор MCN_EUR), валюта не является признаком, который используется для определения поставщика.

Таким образом, в рамках механизма автоматического определения поставщика инвойса невозможно разрешить случаи MCN_USD и MCN_EUR.

В таком случае необходимо завести идентификатор MCN, который будет соответствовать двум случаям MCN_USD и MCN_EUR и будет возвращён в результате автоматического определения поставщика. После этого можно создать правило в определении документа, которое, в зависимости от валюты инвойса, будет делать выбор между MCN_USD и MCN_EUR.

Если обобщить рассмотренный пример,можно сделать вывод, что уникальный идентификатор записи о поставщике должен обладать уникальным набором параметров, которые участвуют в автоматическом определении поставщика: название компании, адрес компании, идентификационные номера для уплаты налогов (VATID, NationalVATID), международный банковский счёт (IBAN). (см. Столбцы Набора данных Vendors). Только в этом случае механизм автоматического определения поставщика сможет однозначно выбрать запись о поставщике, которой соответствует инвойс.

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

В случае, если одинаковый (или трудно различимый) набор параметров, используемых для автоматического определения поставщика, соответствует различным уникальным ключам, то программа не будет иметь возможности выбрать один из данных ключей — результат определения поставщика будет не только случайным, но и качество сильно деградирует.

Причина в том, что если по данным, напечатанным на инвойсе, уверенно определяется поставщик My Company Name, но в Наборе данных данным инвойса соответствует несколько записей MCN1, MCN2, ... MCNN, то программа может сделать выбор в пользу другой записи, которая хуже соответствует данным инвойса, но не порождает столь большого числа соответствующих записей, что в конечном итоге приведёт к неправильно определённому поставщику.

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

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

Множественные столбцы в Наборах данных

Набор данных позволяет хранить несколько значений для одного логического столбца одной записи о компании.

Это необходимо, так как такие параметры компаний, как название, улица и т.д. могут указываться на изображениях в различных вариантах (например, "My Company Name" и "MCN Ltd."), а для определения компании, которой соответствует инвойс, желательно максимальное совпадения текста в записи Набора данных и на изображении.

Также компании могут иметь несколько банковских счетов или других атрибутов.

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

Набор Данных использует денормализацию таблицы по столбцам, т.е. хранит информацию в следующем виде:

Уникальный ключ Набора данных* Name1 Name2 ... NameN ...
1 My Company Name MCN Ltd. ... <empty value> ...
2 The Second Company, Inc. S-Company ... <empty value> ...
... ... ... ... ... ...

Таким образом, для одного логического поля записи Name создаётся несколько столбцов в Наборе данных, которые хранят все возможные значения поля — это называется множественным столбцом Name.

При подключении таблицы (или представления) внешней базы данных допустимо использовать как аналогичную денормализацию по столбцам, так и более распространённую денормализацию по строкам. В этом случае строки, которые должны быть объединены в параметры одной записи в Наборе данных, должны иметь одинаковое значение столбца, соответствующее уникальному ключу в Наборе данных. Например:

Столбец, соответствующий уникальному ключу в Наборе данных* Name ...
1 My Company Name ...
1 MCN Ltd. ...
... ... ...
N <empty value> ...
2 The Second Company, Inc. ...
2 S-Company ...
... ... ...
N <empty value> ...
... ... ...

*В качестве уникального ключа для Набора данных  BusinessUnits  выступает поле Id. В качестве уникального ключа для Набора Данных Vendors  выступает в зависимости от настроек либо поле Id, либо пара полей: Id и BusinessUnitId (см. Столбцы Набора данных Vendors).

14.01.2021 14:17:24


Please leave your feedback about this article