README.md

OMOBUS™ master data

В данном проекте описываются механизмы интеграции и структуры входящих и исходящих потоков данных (только потоков с наивысшим приоритетом), передаваемых между источником и получателем данных, в качестве которых выступает КИС (Корпоративная Информационная система - ERP) заказчика и сервер OMOBUS™. Описание не содержит информацию о потоках, связанных со сбором заказов через дистрибьюторов (omobus-slave-data), а так же не содержит информацию о выходных потоках, содержащих расширенный набор аналитических данных (данных с нормальным приоритетом), собранных с помощью системы OMOBUS™ (omobus-lts-db).


Описание процедуры обмена данными через web-службу OMOBUS™

Обмен данными между КИС заказчика и системой OMOBUS™ осуществляется по протоколу HTTPS через специализированную web-службу OMOBUS™ в формате JSON. Адрес web-службы для обмена данными данных можно получить, обратившись в службу технической поддержки OMOBUS™.

ВНИМАНИЕ! обмен данными выполняется только в кодировке UTF-8 без BOM (byte order mark - byte sequence 0xEF,0xBB,0xBF).

Описание web-службы загрузки справочных данных

Web-служба загрузки справочных данных (/data) принимает следующие команды:

  • POST - загрузка справочных данных;
  • GET - получение ранее загруженных справочных данных;
  • DELETE — удаление ранее загруженных справочных данных.

Параметры запроса можно передавать либо в URI, либо в теле HTTP запроса. Параметры, указанные в теле HTTP запроса, имеют более высокий приоритет. Необходимо указание двух параметров:

  • tid (в URI) или X-Tid (в теле HTTP сообщения) - Token ID (можно получить, обратившись в службу технической поддержки OMOBUS™);
  • (опционально) ref (в URI) или X-Ref (в теле HTTP сообщения) - название одного или нескольких потоков справочных данных, перечисленных через запятую (см. описание потоков ниже); используется только для команд GET и DELETE.

Пример загрузки справочника accounts (параметры передаются в теле HTTP запроса):

$ curl --verbose --request POST -H "Content-Type: application/json" -H "X-TID: 2" --data "@./accounts.json" https://zdev.omobus.net/bridge/data

или то же самое, но через параметры в URI:

$ curl --verbose --request POST -H "Content-Type: application/json" --data "@./accounts.json" https://zdev.omobus.net/bridge/data?tid=2

Пример загрузки нескольких справочников за один запрос (параметры передаются в теле HTTP запроса):

$ curl --verbose --request POST -H "Content-Type: application/json" -H "X-TID: 2" --data "@./all.json" https://zdev.omobus.net/bridge/data

Пример получения данных ранее загруженных справочников accounts, products и users:

$ curl --verbose https://zdev.omobus.net/bridge/data?tid=2\&ref=accounts,products,users

В случае успеха, возвращается ответ с кодом 201 или 200. Данные принимаются только в кодировке UTF-8 без BOM.

Описание web-службы загрузки документов

Web-служба выгрузки сформированных на мобильных устройствах документов (/docs) принимает следующие команды:

  • GET - получение документов или справочных данных, выгружаемых из системы OMOBUS™.

Параметры запроса можно передавать либо в URI, либо в теле HTTP запроса. Параметры, указанные в теле HTTP, имеют более высокий уровень приоритета. Необходимо указание следующих параметров:

  • tid (в URI) или X-Tid (в теле HTTP сообщения) - Token ID (можно получить, обратившись в службу технической поддержки OMOBUS).
  • (опционально) ref (в URI) или X-Ref (в теле HTTP сообщения) - Название одного или нескольких потоков документов и/или справочных данных, перечисленных через запятую (см. описание потоков ниже).
  • (опционально) strip (в URI) или X-Strip (в теле HTTP сообщения) - Удалить пустые реквизиты из возвращаемого набора данных. Возможны значения: yes или no. По-умолчанию, если реквизит не задан, данные параметр принимает значение, равное yes.
  • (опционально) ttd (в URI) или X-TTD (в теле HTTP сообщения) - Список состояний документов, перечисляемых через запятую, которые будут выключены в возвращаемый набор данных. Разрешено использование следующих значений: delivered — документ доставлен до точки обмена, accepted — получено подтверждение получения документа. По-умолчанию, в том случае, если данный параметр не определен, возвращаемый набор данных будет включать только документы с состоянием delivered.

Порядок работы КИС в ходе приема документов состоит из следующих последовательно выполняемых запросов:

  1. GET - получить список всех необработанных на текущий момент времени документов. Под необработанными считаются все документы, по которым не передана в систему OMOBUS™ информация о том, что на их основании созданы документы в КИС заказчика. Данная информация передается в потоке erp_docs. Пример запроса:

    $ curl --verbose https://zdev.omobus.net/bridge/docs?tid=2&ref=orders
    
  2. Сохранить документ(-ы) в КИС заказчика.

  3. (опционально) POST - загрузить в систему OMOBUS™ информацию о созданных в КИС заказчика документах. Пример запроса:

    $ curl --verbose --request POST -H "Content-Type: application/json" -H "X-TID: 2" --data "@./erp_docs2.json" https://zdev.omobus.net/bridge/data
    

Периодичность повтора загрузки документов рекомендуется установить в интервале от 5 до 45 мин.

ВНИМАНИЕ! Список загружаемых документов может содержать документы, которые уже были загружены в КИС заказчика. Принимающая сторона должна корректно обрабатывать такие ситуации.

В случае успеха, возвращается ответ с кодом 200. Данные возвращаются только в кодировке UTF-8 без BOM.


Описание процедуры обмена данными через общую базу данных omobus-zero-db

База данных в зоне ответственности заказчика под управлением СУБД Microsoft SQL Server или PostgreSQL

В данном случае, заказчик предоставляет удаленный доступ (вариант 1) к серверу базы данных по протоколу TCP/IP с доступом к нему через сеть Internet, или же, в локальной сети заказчика размещается специализированная версия серверного программного обеспечения OMOBUS™ (вариант 2), которое осуществляет доступ к базе данных и выполняет обмен с сервером OMOBUS™. В результате, фактическое взаимодействие системы OMOBUS™ и учетной системы заказчика выполняется через предопределенный набор таблиц, находящихся в зоне ответственности заказчика и под его полным управлением. Набор таблиц базы данных соответствует описываемым ниже потокам данных (скрипт создания базы для СУБД Microsoft SQL).

Пример создание базы omobus-zero-db в СУБД Microsoft SQL Server с помощью утилит, входящих в комплект библиотеки FreeTDS:

$ fisql -I freetds.conf -S srv1 -U sa -P pwd -i omobus-zero-db.sql
$ fisql -I freetds.conf -S srv1 -U omobus -P 0 -D omobus-zero-db -i version.sql

В ходе выполнения будет создан пользователь с именем omobus и паролем 0. Не забудьте изменить пароль, использованный по-умолчанию!

База данных в зоне ответственности OMOBUS™ под управлением СУБД PostgreSQL

В данном случае, заказчику предоставляется удаленный доступ к серверу базы данных по протоколу TCP/IP с доступом к нему через сеть Internet, находящейся в зоне ответственности системы OMOBUS™. В результате, фактическое взаимодействие системы OMOBUS™ и учетной системы заказчика выполняется через предопределенный набор таблиц, находящихся в зоне ответственности OMOBUS™. Набор таблиц базы данных соответствует описываемым в данном документе потокам данных.


Описание процедуры обмена данными через общий ftp-ресурс

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

Обмен данными с общим ftp-ресурсом выполняется только в режиме явного TLS соединения (FTP over TLS (Explicit)) описание которого приводится в RFC 4217.

ВНИМАНИЕ! Несмотря на наименьшие накладные расходы при передаче данных, данный вариант интеграции не рекомендуется в связи с высокой сложностью полноценной реализации описываемого ниже протокола обмена. Рекомендуется использовать интеграцию с использованием специализированной web-службы omobus или другие способы, описываемые в данном документе.

Обмен данными производится в текстовом (CSV-подобном) формате, путем публикации пакетов на общем ftp-ресурсе, который расположен в зоне ответственности OMOBUS™.

Регулирование доступа (на общем ftp-ресурсе) к сгенерированным пакетам, осуществляется с помощью флагового файла __unlocked__. Отсутствие флагового файла говорит о том, что ресурс занят генератором пакетов, и доступ к файлам пакетов невозможен. Чтение файлов с ресурса возможно только при наличии флагового файла __unlocked__.

Обобщенный алгоритм работы генератора пакетов следующий:

  • сформировать полный набор пакетов;
  • подключиться к общему ресурсу;
  • удалить флаговый файл __unlocked__;
  • удалить (c общего ресурса) все пакеты потоков, которые будут опубликовываться (загружаться);
  • опубликовать (загрузить) сгенерированные пакеты;
  • создать флаговый файл __unlocked__.

Пример трассировки процедуры обмена между клиентом и ftp-сервером в ходе публикации пакетов данных (без учета установления TLS соединения):

*: Connected to the 127.0.0.1:21021 at 2015-07-02 08:42:45 +0300
S: 220 Welcome.
C: USER point1
S: 331 User point1 OK. Password required
C: PASS 1
S: 230 OK. Current restricted directory is /
C: CWD o2d/
S: 250 OK. Current directory is /o2d
C: EPSV
S: 229 Extended Passive mode OK (|||50203|)
C: TYPE A
S: 200 TYPE is now ASCII
C: NLST
*: passive connection to the 127.0.0.1:50203
S: 150 Accepted data connection
*: passive connection closed
(получен список файлов)
S: 226 20 matches total
C: DELE __unlocked__
S: 250 Deleted __unlocked__
C: DELE orders+43350bb6203def32769cefdf90f0e4f8.gz
S: 250 Deleted orders+43350bb6203def32769cefdf90f0e4f8.gz
C: EPSV
S: 229 Extended Passive mode OK (|||62246|)
C: TYPE I
S: 200 TYPE is now 8-bit binary
C: STOR orders+0f760fc98300f0ee41263ebbffad1946.gz.t
*: passive connection to the 127.0.0.1:62246
S: 150 Accepted data connection
*: passive connection closed
S: 226-File successfully transferred
S: 226 0.000 seconds (measured here), 4.18 Mbytes per second
C: SIZE orders+0f760fc98300f0ee41263ebbffad1946.gz.t
S: 213 364
C: RNFR orders+0f760fc98300f0ee41263ebbffad1946.gz.t
S: 350 RNFR accepted - file exists, ready for destination
C: RNTO orders+0f760fc98300f0ee41263ebbffad1946.gz
S: 250 File successfully renamed or moved
C: EPSV
S: 229 Extended Passive mode OK (|||65425|)
C: STOR __unlocked__
*: passive connection to the 127.0.0.1:65425
S: 150 Accepted data connection
*: passive connection closed
S: 226 File successfully transferred
C: QUIT
S: 221-Goodbye. You uploaded 1 and downloaded 0 kbytes.
S: 221 Logout.
*: Disconnected from the 127.0.0.1:21021 at 2015-07-02 08:42:45 +0300

В свою очередь, обобщенный алгоритм работы на читающей стороне состоит из следующих шагов:

  • подключиться к общему ресурсу;
  • прочитать список пакетов, расположенных на общем ресурсе;
  • проверить наличие флагового файла __unlocked__;
  • при наличии флагового файла – загрузить пакеты.

Пример трассировки процедуры обмена между клиентом и ftp-сервером в ходе получения пакетов данных (без учета установления TLS соединения):

*: Connected to the 127.0.0.1:21021 at 2015-06-26 09:09:52 +0300
S: 220 Welcome.
C: USER point0
S: 331 User point0 OK. Password required
C: PASS 0
S: 230 OK. Current restricted directory is /
C: CWD d2o/
S: 250 OK. Current directory is /d2o
C: EPSV
S: 229 Extended Passive mode OK (|||57858|)
C: TYPE A
S: 200 TYPE is now ASCII
C: NLST
*: passive connection to the 127.0.0.1:57858
S: 150 Accepted data connection
S: 226 43 matches total
*: passive connection closed
(загружен список файлов; проверка наличия __unlocked__)
C: EPSV
S: 229 Extended Passive mode OK (|||58139|)
C: TYPE I
S: 200 TYPE is now 8-bit binary
C: RETR account_params+0.txt
*: passive connection to the 127.0.0.1:58139
S: 150 Accepted data connection
S: 226-File successfully transferred
S: 226 0.000 seconds (measured here), 1.38 Mbytes per second
*: passive connection closed
(загрузка остальных файлов)
C: QUIT
S: 221-Goodbye. You uploaded 0 and downloaded 3545 kbytes.
S: 221 Logout.
*: Disconnected from the 127.0.0.1:21021 at 2015-06-26 09:09:52 +0300

ВНИМАНИЕ! Данная схема обмена подразумевает одновременную работу с общим ресурсом только одного генератора пакетов и неограниченное число читателей, которые не мешают работе генератора пакетов. Однако, в связи с отсутствием атомарности в процедуре установки блокировки на общий ресурс, читатель должен быть готов к коллизиям (невозможность загрузки пакета), вызванным параллельным срабатыванием генератора пакетов.

Текстовые данные в пакете передаются в кодировке utf-8 без BOM (byte order mark - byte sequence 0xEF,0xBB,0xBF). В качестве разделителя столбцов используется символ (;) или (|). При этом генератор пакетов должен обеспечивать экранирование символов разделителя путём их замены на символы, отличные от символа разделителя.

В первой значимой строке перечисляются имена всех столбцов.

Последним символом строки должен быть разделитель.

Возможно использование комментариев, в этом случае строка должна начинаться с символа #.

Пример данных:

test_id;descr;
# тестовый пример
0;описание;

Имена пакетов формируются по следующей схеме:

code+sign.[txt|gz|bz2]

где code - имя потока данных; sign - уникальный идентификатор хранящихся в пакете данных (например, MD5/SHA1 хеш-сумма сформированных данных) без учета комментариев; txt - данные хранятся без сжатия; gz - данные сжаты с помощью алгоритма DEFLATE (https://www.zlib.net); bz2 - данные сжаты с помощью алгоритма Барроуза — Уилера (http://www.bzip.org/).

ВНИМАНИЕ! Настоятельно рекомендуется формировать уникальный идентификатор пакета на основе исходных (несжатых) данных, которые в нем размещаются. В этом случае, возможна организация загрузки только тех пакетов, которые содержат изменения (по сравнению с предыдущей итерацией загрузки).


Типы данных

Допустимо использование следующих типов данных:

  • address_t = VARCHAR(256) - Строка длиной 256 символов.
  • blob_t = VARCHAR(256) - Строка, представляющая собой имя ссылки на двоичный объект, который расположен в том же месте, что и поток, содержащий данное поле. Двоичный объект должен иметь расширение «.blob».
  • bool_t = INT2 - Целое число размером 1 или 2 байта (может принимать значение 0 или 1).
  • code_t = VARCHAR(24) - Строка длиной 24 символа.
  • codes_t = VARCHAR(24) ARRAY - Строковое представление массива элементов типа code_t. В качестве разделителя между элементами выступает символ ‘,’.
  • color_t = INT4 - Цвет в кодировке RGB (десятичная запись).
  • country_t = VARCHAR(2) - Код страны в формате ISO:3166-1 alpha-2.
  • countries_t = VARCHAR(2) ARRAY - Строковое представление массива элементов типа country_t. В качестве разделителя между элементами выступает символ ‘,’.
  • currency_t = NUMERIC(18,4) - Число с дробной частью. В качестве десятичного разделителя используется точка. Разделитель групп разрядов не используется.
  • date_t = VARCHAR(10) - Строка длиной 10 символов, содержащая дату в формате ISO:8601.
  • datetime_t = VARCHAR(19) - Строка длиной 19 символов, содержащая дату и время в формате ISO:8601, с пробелом в качестве разделителя даты и времени.
  • datetimetz_t = VARCHAR(32) - Строковое представление даты в формате ISO:8601, с пробелом в качестве разделителя даты и времени, с указанием часового пояса в виде смещения относительно UTC в часах и минутах.
  • descr_t = VARCHAR(256) - Строка длиной 256 символов.
  • doctype_t = VARCHAR(24) - Тип документа.
  • double_t = FLOAT8 - Число с плавающей точкой.
  • ean13_t = EAN13 - Строковое представление штрихкода в формате EAN13.
  • ean13s_t = EAN13 ARRAY - Строковое представление штрихкодов в формате EAN13. В качестве разделителя между элементами выступает символ ‘,’.
  • email_t = VARCHAR(254) - Строковое представление адреса электронной почты.
  • hstore_t = VARCHAR(4096) - Хранилище вида “ключ”=>“значение” с разделителем параметров в виде ‘,’. При этом, в том случае, если ключ или значение содержит ["], данный символ должен заменяться на [\"].
  • gps_t = NUMERIC(10,6) - Географические координаты в градусах (десятичная запись).
  • int32_t = INT4 - Целое число размером 4 байта.
  • int64_t = INT8 - Целое число размером 8 байта.
  • note_t = VARCHAR(1024) - Строка длиной 1024 символов.
  • numeric_t = NUMERIC(16,4) - Число с дробной частью. В качестве десятичного разделителя используется точка. Разделитель групп разрядов не используется.
  • phone_t = VARCHAR(32) - Номер телефона.
  • uid_t = VARCHAR(48) - Строка длиной до 48 символов. Допускается использование только: (1) десятичных цифр от 0 до 9; (2) букв латинского алфавита; (3) букв кириллического алфавита; (4) пробела; (5) символов -. _ / : ( ).
  • uids_t = VARCHAR(48) ARRAY - Строковое представление массива элементов типа uid_t. В качестве разделителя между элементами выступает символ ‘,’.

Входящие (относительно сервера OMOBUS™) потоки данных

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

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

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

Значение иденификаторов (тип таких полей uid_t и uids_t), используемых в приведенном ниже описании, являются регистрозависимыми.

Требования к наличию потков данных:

  • [mandatory] - поток данных должен передаваться обязательно
  • [recommended] - поток данных рекомендуется передавать
  • [strongly recommended] - поток данных настоятельно рекомендуется передавать

accounts [mandatory]

Актуальные клиенты. В качестве клиентов могут выступать любые физические объекты, в которых возможен ввод данных или выполнение каких либо активностей, например, торговые точки, аптеки, медицинские учреждения и т.п.

Код Тип Ссылка Описание
PK account_id uid_t ID клиента.
pid uid_t accounts ID родительского элемента.
M ftype bool_t Элемент является папкой (1) или т/точкой (0).
code code_t Код клиента.
M descr descr_t Название клиента.
M address address_t Адрес клиента. Доп. информация указывается в круглых скобках.
chan_id uid_t channels ID канала рынка.
poten_id uid_t potentials ID категории клиента.
rc_id uid_t retail_chains ID торговой сети.
region_id uid_t regions ID региона.
city_id uid_t cities ID города.
latitude gps_t Шширота в градусах (десятичная запись).
longitude gps_t Долгота) в градусах (десятичная запись).
props hstore_t Доп. параметры в виде ключ=>значение с разделителем ‘,’.
tag_ids uids_t tags Список тегов, связанных с продуктом.

ВНИМАНИЕ! Для клиентов, созданных через OMOBUS™, должен передаваться ID клиента, полученного из OMOBUS™ (см. поток additions).

В том случае, если данный реквизит не проставлен, код клиенту выставляется автоматически на стороне сервера OMOBUS™.

Реквизит city_id используется для определения связи клиента с административно-территориальным устройством страны, см. пояснения к потоку cities.

Географическое положение клиента (широта/долгота) в градусах (десятичная запись) и спользуются только при добавление новых клиентов. В дальнейшей работе, определение географического положения клиента происходит в автоматическом режиме по мере поступления исходных данных в систему OMOBUS™. Обобщенный алгоритм работы данного функционала состоит из следующих этапов (описание таблиц приводится в проекте omobus-proxy-db):

  1. По факту поступления нового клиента без заполненных полей latitude и/или longitude в таблицу accounts, генерируется запрос (при условии наличия данных в поле address) на геокодирование (таблица geocode_stream с reverse=0).

  2. По факту изменения адреса клиента (без учета изменений в примечании к адресу, указываемых в круглых скобках) в таблице accounts, сбрасываются текущие координаты клиента (latitude/longitude) и генерируется запрос (при условии наличия данных в поле address) на геокодирование (таблица geocode_stream с reverse=0).

  3. Запросы геокодирования обрабатываются демоном geocode, который периодически (один раз в четыре минуты) осуществляет процедуру прямого (получение по адресу географических координат) и обратного (получение по географическим координатам адреса) геокодирования с помощью общедоступных сетевых ресурсов. Результаты выполнения запроса записываются в таблицу geocode_stream, в том числе и нормализированный адрес клиента. При этом, результат выполнения запроса считается успешным только в том случае, если получены однозначно качественные данные (с точностью до номера дома). В случае успешного выполнения процедуры прямого геокодирования, зафиксированное положение клиента записывается в таблицу accounts.

  4. В том случае, если положение клиента на шаге 3 получить не удалось или полученное ранее положение удалено сборщиком мусора (GC, см. п. 5), в мобильном клиенте, при выполнении активности у клиента, предоставляется возможность зафиксировать положение клиента (по-умолчанию, разрешено всем сотрудникам). Также, руководители могут на своих мобильных устройствах уточнять координаты клиента в радиусе до 5 км. и при условии превышения расстояния до клиента точности определения географической координаты. Результат выполнения данных действий попадает в таблицу h_location, генерируется запрос на обратное геокодирование (таблица geocode_stream с reverse=1). Зафиксированное положение клиента записывается в таблицу accounts, и в дальнейшем попадает в выгрузку, описываемую в данном документе.

  5. Сборка мусора (GC). Один раз в сутки демоном gc выполняется автоматическая проверка полученных координат клиента и удаление потенциально проблемных. К потенциально проблемным относятся те положения клиентов, при посещении которых не менее последних 3 раз подряд, сотрудник располагался на расстоянии более 260 м. в момент начала посещения и окончания посещения или в момент окончания посещения координаты отсутствовали.

account_hints

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

Код Тип Ссылка Описание
PK account_id uid_t accounts ID клиента.
PK join_code uid_t Код кластера.
PK descr0 descr_t Текст, отображаемый в левой части строки.
M descr1 descr_t Текст, отображаемый в правой части строки.
extra_info note_t Дополнительное описание.
attention bool_t Важная информация (0 или 1).
row_no int32_t Порядковый номер строки внутри кластера.

Реквизит join_code используемый для объединения информации в блоки (кластера) и сортировки кластеров при отображение.

В параметрах descr0, descr1, extra_info разрешено использование HTML тегов bold (жирный текст) и italic (курсив).

Дополнительное описание (реквизит extra_info) отображается непосредственно под текстом, отображаемым в левой части строки.

В случае, если реквизит attention=1, текст указанный в реквизите descr1 показывается красным цветом.

account_params

Дополнительные параметры клиента, определенные дистрибьютором. Данный поток устанавливает привязку клиента к дистрибьюторам (видимость дистрибьюторов) и рекомендуется к заполнению в тех случаях, когда необходима организация сбора Заказов продукции и/или Возвратов продукции. Область видимости дистрибьюторов расширяется в том случае, если в потоке invoice_prices будут переданы данные (см. описание этого потока).

Код Тип Ссылка Описание
PK distr_id uid_t distributors ID филиала или дистрибьютора.
PK account_id uid_t accounts ID клиента.
group_price_id uid_t group_prices ID групповой цены.
payment_delay int32_t Отсрочка платежа.
payment_method_id uid_t payment_methods ID метода оплаты.
wareh_ids uids_t warehouses Список ID складов или пустое значение.
M locked bool_t Клиент заблокирован.

В реквизите wareh_ids задается список складов, через которые может осуществляться поставка продукции клиенту. Пустое значение означает, что поставка продукции осуществляется с любого склада филиала или дистрибьютора.

ВАЖНО! Для заблокированных клиентов отключается возможность создания Заказов продукции.

account_prices

Персональные цены для клиента. Данный вид цен имеет наивысший приоритет по сравнению с ценами, заданными с помощью потоков group_prices и/или std_prices.

Код Тип Ссылка Описание
PK distr_id uid_t distributors ID филиала или дистрибьютора.
PK account_id uid_t accounts ID клиента.
PK prod_id uid_t products ID продукта.
M pack_id uid_t packs ID упаковки.
M price currency_t Цена продукта в упаковке, заданной pack_id.

Область применения: С помощью данного потока можно жестко привязать цены к конкретному клиенту. Как правило, данный вид цен целесообразно использовать в качестве уточняющей цены при определенных ценах, задаваемых в потоках group_prices и/или std_prices. Другими словами, каждый клиент может иметь свой список цен для части или для всех продуктов, по одной на каждый продукт.

addition_types

Типы новых клиентов. Используется в документе «Регистрация нового клиента».

Код Тип Ссылка Описание
PK addition_type_id uid_t ID типа нового клиента.
M descr descr_t Название типа нового клиента.

agencies

Список агентств, в которых трудоустроены сотрудники.

Код Тип Ссылка Описание
PK agency_id uid_t ID агентства.
M descr descr_t Название агентства.

agreements1

Договоренности на размещение рекламных материалов в торговом зале клиента. В рамках данного потока должны передаваться только действующие в текущий момент планы.

Код Тип Ссылка Описание
PK account_id uid_t accounts ID клиента.
PK placement_id uid_t placements ID места размещения.
PK posm_id uid_t pos_materials ID POS материала.
cookie uid_t Метка для взаимосвязи POS материалов.

Реквизит cookie используется для определения случаев, когда размещение одного POS материала может покрывать недостаточное размещение другогою

agreements2

Планы и/или договоренности на размещение продукции на полке. В рамках данного потока должны передаваться только действующие в текущий момент планы.

Код Тип Ссылка Описание
PK account_id uid_t accounts ID клиента.
PK prod_id uid_t products ID продукта.
facing int32_t Минимальное количество продукции, размещенной лицевой стороной к покупателю.
cookie uid_t Метка для взаимосвязи продуктов

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

Идентификатор продукта Название продукта План
1 53582 БЛЕНД-а-МЕД з/п РОМАШКА 50мл 10
2 53583 БЛЕНД-а-МЕД з/п Ромаш+Отбеливание 100мл 5
3 53584 БЛЕНД-а-МЕД з/п Ромаш+Отбеливание 50мл 8

при этом, необходимо, чтобы при расчете KPI учитывалась фактическая представленность следующих продуктов:

Идентификатор продукта Название продукта План
1 53586 БЛЕНД-а-МЕД з/п Сила моря с минер.100мл нет
2 53587 БЛЕНД-а-МЕД з/п ТРЕХМЕРНОЕ ОТБЕЛ 50мл нет

тогда, если фактическая представленность будет следующей:

Идентификатор продукта Название продукта Факт
1 53582 БЛЕНД-а-МЕД з/п РОМАШКА 50мл 3
2 53583 БЛЕНД-а-МЕД з/п Ромаш+Отбеливание 100мл 6
3 53586 БЛЕНД-а-МЕД з/п Сила моря с минер.100мл 2
4 53587 БЛЕНД-а-МЕД з/п ТРЕХМЕРНОЕ ОТБЕЛ 50мл 5

значение KPI будет посчитано следующим образом:

план: 10 + 5 + 8 = 23
факт: 3 + 6 + 2 + 5 = 16

а сам поток agreements2 должен быть наполнен данными следующим образом:

account_id prod_id facing strict cookie
1 53582 10 0 #anything
1 53583 5 0 #anything
1 53584 8 0 #anything
1 53586 NULL 0 #anything
1 53587 NULL 0 #anything

agreements3

Планы и/или договоренности по наличию продукции у клиента. В рамках данного потока должны передаваться только действующие в текущий момент планы.

Код Тип Ссылка Описание
PK account_id uid_t accounts ID клиента.
PK prod_id uid_t products ID продукта.
M stock int32_t Минимальное остаток продукции на складе.
cookie uid_t Метка для взаимосвязи продуктов.

Реквизит cookie используется для определения случаев, когда остатки одного продукта могут покрывать недостаточные остатки другого продукта.

agreements4

Договоренности по проведению ценового промо у клиента. Под ценовым промо понимается, например, скидка на продукт с обязательной отметкой данного факта на ценнике и/или в каталоге продукции клиента, EDLP (Everyday low price) и т.п.. В рамках данного потока должны передаваться только действующие в текущий момент планы.

Код Тип Ссылка Описание
PK account_id uid_t accounts ID клиента.
PK prod_id uid_t products ID продукта.
M descr descr_t Название (краткое) ценового промо.
M b_date date_t Дата начала ценового промо.
M e_date date_t Дата окончания ценового промо.
extra_info note_t Дополнительная информация, связанная с ценовым промо.

В реквизите descr указывается только краткое описание ценового промо, детальная информация приводится в extra_info.

asp_types

Типы дополнительных мест продаж (ДМП — Addition-Sales-Place). Используется для детализации мест размещения продукции, указанных в placements.

Код Тип Ссылка Описание
PK asp_type_id uid_t ID типа ДМП.
M descr descr_t Название типа ДМП.
placement_ids uids_t placements Список ID мест размещения, для которых действует данный тип ДМП (пустое значение означает — действует для всех мест размещения).
country_ids countries_t countries Список ID стран, для которых действует данный тип ДМП (пустое значение означает — действует для всех стран).
dep_ids uids_t departments Список ID подразделений, для которых действует данный тип ДМП (пустое значение означает — действует для всех подразделений).
row_no int32_t Порядок сортировки (приоритета).
props hstore_t Доп. параметры в виде ключ=>значение с разделителем ‘,’.

attributes

Дополнительные параметры клиента, используемые при формировании профиля клиента (карточки клиента).

Код Тип Ссылка Описание
PK attr_id uid_t ID дополнительного параметра.
M descr descr_t Название дополнительного параметра.
dep_ids uids_t departments Список ID подразделений, для которых действует данный дополнительный параметр (пустое значение означает — действует для всех подразделений).
row_no int32_t Порядок сортировки (приоритета).

audit_criterias

Критерии аудита результатов размещения продукции в торговом зале.

Код Тип Ссылка Описание
PK audit_criteria_id uid_t ID критерия аудита.
M descr descr_t Название критерия.
M wf wf_t Весовой коэффициент критерия в общей оценке (измеряется в дипазоне от 0.01 до 1).
M mandatory bool_t Критерий является обязательным (0 или 1).
extra_info note_t Расширенное описание критерия оценки или пояснения для правильного выставления оценки.
row_no int32_t Порядок сортировки (приоритета).

audit_scores

Возможные оценки критериев аудита результатов размещения продукции в торговом зале.

Код Тип Ссылка Описание
PK audit_score_id uid_t ID оценки.
M descr descr_t Полное наименование балла.
M score int32_t Значение балла.
M wf wf_t Весовой коэффициент балла в общей оценке (измеряется в дипазоне от 0 до 1).
row_no int32_t Порядок сортировки (приоритета).

balances

Балансы счетов клиентов (остатоки кредитного лимита).

Код Тип Ссылка Описание
PK distr_id uid_t distributors ID филиала или дистрибьютора.
PK account_id uid_t accounts ID клиента.
M amount currency_t Баланс счета клиента.
M b_date date_t Дата актуальности информации.

blacklist

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

Код Тип Ссылка Описание
PK distr_id uid_t distributors ID филиала или дистрибьютора.
PK account_id uid_t accounts ID клиента (допустимо пустое значение).
PK prod_id uid_t products ID продукта.

Реквизит account_id может быть пустым, если значение блокировки задается для всех клиентов.

brands [mandatory]

Бренды. В случае отсутствия данного потока, часть функционала может быть недоступна, например, мониторинг доли полки.

Код Тип Ссылка Описание
PK brand_id uid_t ID бренда.
M descr descr_t Незвание бренда.
M manuf_id uid_t manufacturers ID производителя.
row_no int32_t Порядок сортировки (приоритета).

canceling_types

Причины отмены рабочего дня.

Код Тип Ссылка Описание
PK canceling_type_id uid_t ID причины отмены рабочего дня.
M descr descr_t Описание причины отмены рабочего дня.
country_ids countries_t countries Список ID стран (допустимо пустое значение).
dep_ids uids_t departments Список ID подразделений (допустимо пустое значение).
roles codes_t Список кодов ролей (допустимо пустое значение).
row_no int32_t Порядок сортировки (приоритета).

Пустое значение в реквизитах country_ids, dep_ids и roles означает, что данная причина отмены рабочего дня действует без ограничений.

categories [strongly recommended]

Категории продуктов с точки зрения их размещения в торговом зале.

Код Тип Ссылка Описание
PK categ_id uid_t ID категории продукта.
M descr descr_t Название категории.
brand_ids uids_t brands Список ID брендов, размещаемых в категории. Обязательно для заполнения в том случае, если необходимо проводить мониторинг доли полки / доли в ассортименте.
wf wf_t Весовой коэффициент категории (измеряется в дипазоне от 0.01 до 1). Сумма всех весовых коэффициентов должно равняться 1. Обязательно для заполнения в том случае, если необходимо проводить аудит размещения продукции в торговом зале.
row_no int32_t Порядок сортировки (приоритета) категории.

channels [strongly recommended]

Канал рынка, например, гипермаркет, супермаркет и т.п

Код Тип Ссылка Описание
PK chan_id uid_t ID канала рынка.
M descr descr_t Название канала рынка.
dep_ids uids_t departments Список ID подразделений (допустимо пустое значение).

cities

Описание административно-территориального устройства страны. Данные организованы в виде линейной иерархии, начиная с самой крупной административно-территориальной единицы страны и заканчивая нанселенным пунктом.

Код Тип Ссылка Описание
PK city_id uid_t ID города (населенного пункта) или административно-территориального образования.
pid uid_t ID родительского элемента.
M ftype bool_t Элемент является населенным пунктом (0) или административно-территориальным образованием (1).
M descr descr_t Название города или административно-территориального образования.
M country_id country_t countries ID страны.

cohorts

Категории контактов (сотрутдиков клиента).

Код Тип Ссылка Описание
PK cohort_id uid_t ID категории контакта.
M descr descr_t Название категории контакта.

comment_types

Виды комментариев.

Код Тип Ссылка Описание
PK comment_type_id uid_t ID вида комментария.
M descr descr_t Описание вида комментария.
min_note_length int32_t Минимально допустимое число символов в примечании к создаваемому документу [Комментарий].
photo_needed bool_t Необходимо приложить фото (0 или 1).
extra_info note_t Дополнительная информация для сотрудника, в которой приводится однозначное и непротеворечивое описание данного вида комментария, включая ограничения, накладываемые на него, например, обязательность фото или минимальный размер примечания.
row_no int32_t Порядок сортировки (приоритета) типа комментария.
props hstore_t Доп. параметры в виде ключ=>значение с разделителем ‘,’.

confirmation_types

Типы подтверждений выполнения задач.

Код Тип Ссылка Описание
PK confirmation_type_id uid_t ID типа подтверждения выполнения задачи.
M descr descr_t Название типа подтверждения выполнения задачи.
min_note_length int32_t Минимально допустимое количество символов, которые должен ввести сотрудник в примечание к выполненияю задачи. Если не указано, сотрудник может ввести любое количество символов.
photo_needed bool_t При подтверждение задачи сотрудник обязан сделать фотограцию (0 или 1).
accomplished bool_t После выбора данного типа подтверждения задача больше не показывается сотруднику (0 или 1).
succeeded varchar(6) Выбор данного типа подтверждения говорит об успешном выполнение задачи. Возможные значения: yes, no или partly.
extra_info note_t Дополнительная информация для сотрудника, в которой приводится однозначное и непротеворечивое описание данного типа подтверждения выполнения задачи.
target_type_ids uids_t target_types Список ID типов задач, для которых действует данный тип подтверждения выполнения задачи.
row_no int32_t Порядок сортировки (приоритета).
props hstore_t Дополнительные параметры в виде “ключ”=>“значение” с разделителем ‘,’.

contacts

Список контактов клиента. По-умолчанию в системе OMOBUS™ разрешено редактирование контактов с помощью мобильных устройств, поэтому данный поток используется для загрузки и управления только тех контактов, которые не создавались и/или не редактировались средствами системы OMOBUS™.

Код Тип Ссылка Описание
PK contact_id uid_t ID контакта.
M account_id uid_t accounts ID клиента.
M name descr_t Имя контакта.
M surname descr_t Фамилия контакта.
patronymic descr_t Отчество контакта.
M job_title_id uid_t job_titles ID должности.
mobile phone_t Номер мобильного телефона.
email email_t Адрес электронной почты.
spec_id uid_t specialities ID специальности контакта.
cohort_id uid_t cohorts ID категории контакта.
loyalty_level_id uid_t loyalty_levels ID уровня лояльности контакта.
influence_level_id uid_t influence_levels ID уровня влияния контакта.
intensity_level_id uid_t intensity_levels ID уровня интенсивности работы.
start_year int32_t Год начала трудовой деятельности.
locked bool_t Контакт заблокирован (временно не работает) (0 или 1).
extra_info note_t Дополнительная информация о контакте.
consent_id uid_t ID согласия на обработку персональных данных.
consent_status varchar(24) Набор подписанных согласий.
consent_data blob_t Согласие на обработку персональных данных.
consent_type varchar(32) Тип данных, передаваемых в consent_data.
consent_dt datetime_t Дата и время получения согласия на обработку персональных данных.
consent_country country_t countries Код страны оформления согласия.
consent_validity int32_t Срок действия согласия (лет).

Для заблокированных контактов (реквизит locked=1) проведение обячения невозможно.

Реквизит consent_status может принимать одно из следующих значений:

  • collecting — подписано согласие на сбор и обработку персональных данных;
  • collecting_and_informing — аналогично предыдущему плюс согласие на получение информационных сообщений.

Реквизит consent_type может принимать одно из следующих значений: application/pdf – данные в формате PDF.

Реквизит cookie фактически представляет собой «дедуплицированный» идентификатор контакта.

В случае передачи в OMOBUS™ подписанного документа с согласием на сбор и обработку персональных данных, необходимо заполнять следующие реквизиты: consent_status, consent_type, consent_dt и consent_country.

debts

Просроченная дебиторская задолженность (ПДЗ). Фактичесик ПДЗ это долг, не оплаченный во-время.

Код Тип Ссылка Описание
PK distr_id uid_t distributors ID филиала или дистрибьютора.
PK account_id uid_t accounts ID клиента.
M debt currency_t Просроченный долг.
M d_date date_t Дата актуальности информации.

delivery_types

Типы доставки продукции.

Код Тип Ссылка Описание
PK delivery_type_id uid_t ID типа доставки продукции.
M descr descr_t Название типа доставки.
row_no int32_t Порядок сортировки (приоритета).

departments

Подразделения, в которых работают сотрудники. Данный справочник используется для разделения продуктов, отображаемых сотрудникам разных подразделений. Например, подразделение MASS работает с продукцией массового спроса, подразделение OTC — с нерецептурными фармакологическими препаратами, подразделение PHARMA — с рецептурными фармакологическими препаратами.

Код Тип Ссылка Описание
PK dep_id uid_t ID подразделения.
M descr descr_t Название подразделения.

discard_types

Причины исключения клиента из маршрута.

Код Тип Ссылка Описание
PK discard_type_id uid_t ID причины исключения из маршрута.
M descr descr_t Название причины исключения из маршрута.
row_no int32_t Порядок сортировки (приоритета).
props hstore_t Доп. параметры в виде ключ=>значение с разделителем ‘,’.

discount_promos

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

ВНИМАНИЕ! В случае возникновения коллизии, при которой на одну дату действует несколько скидочных промо-акций с пересекающимся набором продуктов из акционного ассортимента, выбор скидочной промо-акции будет происходить случайным образом.

Код Тип Ссылка Описание
PK distr_id uid_t distributors ID филиала или дистрибьютора.
PK account_id uid_t accounts ID клиента.
PK promo_guid uid_t Уникальный идентификатор промо.
M discount int32_t Значение скидки в %.
PK b_date date_t Дата начала действия промо.
M e_date date_t Дата окончания действия промо.
M prod_ids uids_t products Список ID промо продуктов (акционный ассортимент).
M items int32_t Минимальное количество акционных продуктов.
M packs int32_t Минимально допустимое количесво, выраженное в базовой упаковке.
amount currency_t Минимальная сумма документа, начиная с которой будет действоать скидка.
M subject varchar(64) Название промо.
M body note_t Полное описание промо.
applicability int32_t Количество уникальных продуктов, на которое будет действовать скидка.
covered_ids uids_t products Список ID продуктов, на которые будет действовать скидка.

Скидочная промо-акция действует в том случае, если в заказ добавлено минимально допустимое (реквизит items) количество продуктов из акционного ассортимента (реквизит prod_ids), при этом количество каждого добавленного продукта из акционного ассортимента должно быть не меньше значения, указанного в реквизите packs, а итоговая сумма документа (до применения скидки) не менее значения, указанного в реквизите amount.

В реквизитах items и packs разрешено указание только значений больше нуля.

Реквизит amount можно передавать пустым, в этом случае, скидочная промо-акция будет действовать на заказ любой суммы.

Реквизит applicability описывает область действия скидочной промо-акции. В случае указания пустого значения, скидочная промо-акция будет действовать на все продукты, указанные в реквизите covered_ids. В случае указания значения больше нуля, скидочная промо-акция будет действовать только на указанное количество продуктов из акционного ассортимента (реквизит prod_ids). Указание в реквизите applicability значений меньших или равных нулю не допускается.

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

Список доступного акционного ассортимента может динамически меняться в зависимости от доступности продуктов в конкретный момент времени.

В документе Заказ продукции скидочная промо-акция применяется по дате доставки продукции.

distributors

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

Код Тип Ссылка Описание
PK distr_id uid_t ID филиала или дистрибьютора.
M descr descr_t Название филиала или дистрибьютора.
M country_id country_id countries ID страны, в которой действует дистрибьютор.

В том случае, если значение в реквизите country_id не задано, оно автоматически выставляется в RU при загрузке данных.

equipment_conditions

Состояние торгового оборудования (например, Оборудование доступно покупателю, Оборудование требует ремонта и т.п.).

Код Тип Ссылка Описание
PK equipment_cond_id uid_t ID состояния т/оборудования.
M descr descr_t Название состояния т/оборудования.
row_no int32_t Порядок сортировки (приоритета).

equipment_types

Виды торгового оборудования.

Код Тип Ссылка Описание
PK equipment_type_id uid_t ID вида т/оборудования.
M descr descr_t Название вида т/оборудования.
row_no int32_t Порядок сортировки (приоритета).

equipments

Список торгового оборудования, установленного у клиентов. По-умолчанию в системе OMOBUS™ разрешено редактирование параметров установленного торгового оборудования с помощью мобильных устройств, поэтому данный поток используется только для загрузки новых (отсутствующих в OMOBUS™) данных и корректировки данных, которые не изменялись в OMOBUS™.

Код Тип Ссылка Описание
PK serial_number varcahr(40) Серийный номер торгового оборудования.
M account_id uid_t accounts ID клиента.
M equipment_type_id uid_t equipment_types ID вида торгового оборудования.

erp_docs

Документы, созданные в КИС. Необходимо выгружать документы, изменения в которые вносились в течении последних 5 календартных дней.

Код Тип Ссылка Описание
PK distr_id uid_t distributors ID филиала или дистрибьютора.
PK doc_id uid_t orders, reclamations ID документа OMOBUS™.
PK erp_id uid_t ID документа в КИС дистрибьютора.
pid uid_t erp_docs ID документа-основания в КИС.
M erp_no code_t Номер документа в КИС.
M erp_dt datetime_t Дата/время создания документа в КИС.
M amount currency_t Итоговая сумма документа с учетом всех скидок и НДС.
M status int32_t Статус документа.

Реквизит status может принимать одно из следующих значений:

  • 0 — документ введен в систему;
  • 1 — документ проведен (закрыт);
  • -1 — документ удален/отменен/аннулирован;
  • 2 — отгружен клиенту;
  • 3 — получен клиентом/доставлен клиенту.

erp_products

Детализация документов, созданных в КИС. Данный поток является детализацией потока erp_docs.

Код Тип Ссылка Описание
PK distr_id uid_t distributors ID филиала или дистрибьютора.
PK doc_id uid_t orders, reclamations ID документа OMOBUS™.
PK erp_id uid_t erp_docs ID документа в КИС филиала или дистрибьютора.
PK prod_id uid_t products ID продукта.
M pack_id uid_t packs ID упаковки.
M qty numeric_t Количество продукта в упаковке, определенной в pack_id.
M amount currency_t Итоговая стоимость продукта.

fault_types

Виды проблем размещения продукции в торговом зале. Используется в документе Представленность продукции на полке для указания ошибок и/или недостатков, выявленных до или в ходе размещения продукции. К типичным проблемам размещения могут относится следующие виды проблем: отсутствие на полке, отсутсвие ценника и т.п.

Код Тип Ссылка Описание
PK fault_type_id uid_t ID вида проблемы размещения.
M descr descr_t Название вида проблемы размещения.
activity_type_ids uids_t activity_types Список ID типов активностей (допустимо пустое значение).
row_no int32_t Порядок сортировки (приоритета).
props hstore_t Доп. параметры в виде ключ=>значение с разделителем ‘,’.

В реквизите activity_type_ids задаются ограничения на область видимости видов проблем размещения. Пустое значение означает, что какие-либо огораничения отсутствуют.

floating_prices

Периодические цены. Данный вид цен имеет наивысший приоритет по сравнению с ценами, заданными с помощью потоков account_prices, group_prices и/или std_prices. В рамках данного потока должны передаваться только действующие в текущий момент периодические цены и цены, которые запланированы к действию в ближайшие 15 дней.

ВНИМАНИЕ! В случае возникновения коллизии, при которой на одну дату действует несколько акционных цен, выбор используемой цены будет происходить случайным образом.

Код Тип Ссылка Описание
PK distr_id uid_t distributors ID филиала или дистрибьютора.
PK account_id uid_t accounts ID клиента.
PK prod_id uid_t products ID продукта.
M pack_id uid_t packs ID упаковки.
M price currency_t Цена продукта в упаковке, заданной pack_id.
PK b_date date_t Дата начала действия цены.
M e_date date_t Дата окончания действия цены.
promo bool_t Акционная цена (0 или 1).

В случае установки параметра promo в 1, сотрудник информируется о том, что для данного продукта действует акционная цена (виртуальная папка, маркер в общем списке продуктов).

Область применения: С помощью данного потока можно определить цены периодического действия индивидуально для каждого клиента. При этом, необходимость использования данной цены определяется по дате доставки (что эквивалентно дате отгрузки) продукции, которая задается перед созданием документа «Заказ продукции». Данное правило можно проиллюстрировать следующим примером:

  • в потоке floating_prices определена цена с 15 февраля по 20 февраля, равная 10 руб.;
  • обычная цена 15 руб.;
  • если заказ делается 13 февраля на 13 февраля, показывается цена 15 руб.;
  • если заказ делается 13 февраля на 15 февраля, показывается цена 10 руб.;
  • если заказ делается 15 февраля на 21 февраля, показывается цена 15 руб.

В документе Заказ продукции периодические цены применяются по дате доставки продукции.

group_prices

Групповые цены (ценовые условия). Привязка групповой цены к конкретному клиенту выполняется в потоке account_params. Приоритет цен, заданных с помощью данного потока, выше чем у цен, задаваемых с помощью потока std_prices.

Код Тип Ссылка Описание
PK distr_id uid_t distributors ID филиала или дистрибьютора.
PK group_price_id uid_t ID групповой цены (см. account_params).
PK prod_id uid_t products ID продукта.
M pack_id uid_t packs ID упаковки.
M price currency_t Цена продукта в упаковке, заданной pack_id.

Область применения: Данный вид цен позволяет «привязывать» одни и те же групповые цены разным клиентам. Фактически, в потоке group_prices задается список «ценовых условий» («прайс-лист»). Ссылка из account_params дает возможность разным клиентам иметь один и тот же набор ценовых условий. В пределе, каждый клиент может иметь свой набор ценовых условий, что эквивалентно механизму, описанному в потоке account_prices.

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

highlights

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

Код Тип Ссылка Описание
PK account_id uid_t accounts ID клиента. Возможно задание пустого значение, что означает — подсветка действует для всех клиентов.
PK prod_id uid_t products ID продукта.
color color_t Цвет текста. Можно использовать любые цвета, кроме красного. Красный цвет используется для идентификации заблокированных продуктов (см. поток blacklist и permited_returns).
bgcolor color_t Цвет фона строки, в которой показывается продукт. Необходимо учитывать тот факт, что заданный цвет фона перекрывает подсветку строк в режиме четный/нечетный.
remark descr_t Дополнительное пояснение продукта.
tag_ids uids_t tags Список тегов, связанных с продуктом.

influence_levels

Уровни влияния сотрудников клиента (контактов). Используется при регистрации контактов.

Код Тип Ссылка Описание
PK influence_level_id uid_t ID уровня влияния.
M descr descr_t Название уровня влияния.
dep_ids uids_t departments Список ID подразделений или пустое значение.
row_no int32_t Порядок сортировки (приоритета).
props hstore_t Доп. параметры в виде ключ=>значение с разделителем ‘,’.

Пустое значение в реквизите dep_ids означает, что данная строка действует для всех подразделений.

intensity_levels

Интенсивность работы сотрудников клиента (контактов). Под интенсивностью работы понимается потенциал контакта. Используется при регистрации контактов.

Код Тип Ссылка Описание
PK intensity_level_id uid_t ID уровня интенсивности работы.
M descr descr_t Название уровня интенсивности работы.
dep_ids uids_t departments Список ID подразделений или пустое значение.
row_no int32_t Порядок сортировки (приоритета).
props hstore_t Доп. параметры в виде ключ=>значение с разделителем ‘,’.

Пустое значение в реквизите dep_ids означает, что данная строка действует для всех подразделений.

interaction_types

Разрешенные формы взаимодействия (работы) сотрудников на территории клиента.

Код Тип Ссылка Описание
PK interaction_type_id uid_t ID разрешенной формы взаимодействия.
M descr descr_t Название разрешенной формы взаимодействия.
dep_ids uids_t departments Список ID подразделений, для которых действует данная форма взаимодействия (пустое значение означает — действует для всех подразделений).
row_no int32_t Порядок сортировки (приоритета).

inventories

Товарные запасы клиента по данным, полученным из учетной системы клиента. В данном потоке необходимо передавать самые актуальные данные.

Код Тип Ссылка Описание
PK account_id uid_t accounts ID клиента.
PK prod_id uid_t products ID продукта.
PK inv_date date_t Дата актуальности информации.
M stock int32_t Значение остатка (>= 0).
price currency_t Значение цены (>= 0.0).
inout bool_t Флаг In-Out продукта (0 или 1).
props hstore_t Дополнительные параметры в виде “ключ”=>“значение” с разделителем ‘,’.

Если, продукт введен в ассортимент клиента на временной основе, параметр inout устанавливается в значение равное 1.

invoice_prices

Рекомендованные производителем цены, по которым клиенты осуществляют закупки продукции у дистрибьютора.

Код Тип Ссылка Описание
PK country_id uid_t countries ID страны, в которой действует цена.
PK prod_id uid_t products ID продукта.
M pack_id uid_t packs ID упаковки.
M price currency_t Цена продукта в упаковке, заданной pack_id.

Область применения: Данный вид цен используется в тех случаях, когда для клиента не определены цены дистрибьютора. Данный поток никаким образом не пересекается с ценами, определенными в потоках std_prices, group_prices, account_prices и floating_prices. Как правило, данный поток используется в тех случаях, когда необходимо обеспечить создание рекомендованного заказа во вновь зарегистрированных клиентах.

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

job_titles

Должности сотрудников клиента (контактов). Используется при регистрации контактов.

Код Тип Ссылка Описание
PK job_title_id uid_t ID должности.
M descr descr_t Название должности.
dep_ids uids_t departments Список ID подразделений, для которых действует данная должность (пустое значение означает — действует для всех подразделений).

kinds

Виды (группы) продуктов.

Код Тип Ссылка Описание
PK kind_id uid_t ID вида (группы) продукта.
M descr descr_t Название группы продуктов.
row_no int32_t Порядок сортировки (приоритета)..

loyalty_levels

Уровни лояльности сотрудников клиента (контактов). Используется при регистрации контактов.

Код Тип Ссылка Описание
PK loyalty_level_id uid_t ID уровня лояльности.
M descr descr_t Название уровня лояльности.
dep_ids uids_t departments Список ID подразделений или пустое значение.
row_no int32_t Порядок сортировки (приоритета).
props hstore_t Доп. параметры в виде ключ=>значение с разделителем ‘,’.

Пустое значение в реквизите dep_ids означает, что данная строка действует для всех подразделений.

mailboxes

Список адресов электронной почты, которые полевой сотрудник может указать в документе Заказ продукции для отправки информации о заказанной продукции.

Код Тип Ссылка Описание
PK email email_t Адрес электронной почты.
M descr descr_t Описание адреса электронной почты, позволяющее однозначно идентифицировать данный адрес.
distr_id uid_t distributors ID дистрибьютора, с которым связан данный адрес электронной почты. Данный адрес электронной почты будет использоваться только в том случае, если документ Заказ создается на указанного дистрибьютора. Возможно задание пустого значение, которое означает, что данный адрес электронной почты будет показываться при выборе любого дистрибьютора.

manufacturers [mandatory]

Производители.

Код Тип Ссылка Описание
PK manuf_id uid_t ID произвоителя.
M descr descr_t Название производителя.
competitor bool_t Конкурент (0 или 1).

matrices

Список продуктов, обязательный к размещению в торговом зале клиента.

Код Тип Ссылка Описание
PK account_id uid_t accounts ID клиента.
PK prod_id uid_t products ID продукта.
row_no int32_t Порядок сортировки (приоритета).
props hstore_t Доп. параметры в виде ключ=>значение с разделителем ‘,’.

mutuals

Итог взаиморасчетов.

Код Тип Ссылка Описание
PK distr_id uid_t distributors ID филиала или дистрибьютора.
PK account_id uid_t accounts ID клиента.
M mutual currency_t Итог взаиморасчетов с клиентом.
M m_date date_t Дата актуальности информации.

mutuals_history

История взаиморасчетов.

Код Тип Ссылка Описание
PK distr_id uid_t distributors ID филиала или дистрибьютора.
PK account_id uid_t accounts ID клиента.
PK erp_id uid_t erp_docs ID документа в КИС филиала или дистрибьютора.
M erp_no code_t Код документа в КИС филиала или дистрибьютора.
M erp_dt datetime_t Дата или дата/время проведения документа в КИС филиала или дистрибьютора.
M amount currency_t Сумма документа.
M incoming bool_t Входящий платеж (значения: 0 или 1).
M unpaid currency_t Неоплаченная сумма.

mutuals_history_products

Детализация документов истории взаиморасчётов. Данный поток связан с mutual_history и должен содержать данные только по тем документам, которые имеются в mutual_history.

Код Тип Ссылка Описание
PK distr_id uid_t distributors ID филиала или дистрибьютора.
PK erp_id uid_t erp_docs ID документа в КИС филиала или дистрибьютора.
PK prod_id uid_t products ID продукта.
M pack_id uid_t packs ID упаковки.
M qty numeric_t Количество в упаковке, определенной параметром pack_id.
M amount currency_t Итоговая стоимость продукта.

my_accounts

Список клиентов, приписанных к сотруднику, и которые входят в его зону ответственности. Для руководителей, задается только в том случае, если ему приписаны клиенты, которых нет у его подчиненных. С помощью данного потока регулируется наполнение на мобильных устройствах папки [СВОИ КЛИЕНТЫ].

Код Тип Ссылка Описание
PK user_id uid_t users ID сотрудника.
PK account_id uid_t accounts ID клиента.

ВНИМАНИЕ! Необходимо обеспечить заполнение данными хотя бы одного потока из следующего списка: my_accounts, my_cities, ma_habitats, my_regions, my_retail_chains или my_routes. При этом возможно заполнение для сотрудников с разными ролями разных потоков, например, для ТП – потоки my_accounts и my_routes, а для KAM – my_retail_chains и т.п..

my_cities

Список городов (административно-территориально образований), приписанных к сотруднику. Для руководителей, задается только в том случае, если ему приписаны города, которых нет у его подчиненных.

Код Тип Ссылка Описание
PK user_id uid_t users ID сотрудника.
PK city_id uid_t regions ID города (населенного пункта) или административно-территориального образования.
PK chan_id uid_t channels ID канала рынка. Допустимо наличие пустого значение которое означает «все каналы рынка».

my_habitats

Список клиентов, доступных сотруднику, но за которые сотрудник не отвечает. Для руководителей, задается только в том случае, если ему приписаны города, которых нет у его подчиненных.

Код Тип Ссылка Описание
PK user_id uid_t users ID сотрудника.
PK account_id uid_t accounts ID клиента.

my_hints

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

Код Тип Ссылка Описание
PK user_id uid_t users ID сотрудника.
PK join_code uid_t Код приоритетной информации, используемый для объединения информации в кластер и сортировки кластеров при отображение.
PK descr0 descr_t Текст, отображаемый в левой части строки.
M descr1 descr_t Текст, отображаемый в правой части строки.
extra_info note_t Дополнительное описание, отображаемое непосредственно под текстом, отображаемым в левой части строки.
attention bool_t Необходимо обратить особое внимание на данные (0 или 1) путем отрисовки отображаемого текста, заданного в поле descr2, красным цветом.
row_no int32_t Порядковый номер строки внутри кластера.

В параметрах descr0, descr1, extra_info разрешено использование следующих html-тегов: - жирный текст; - курсив.

my_regions

Список регионов, приписанных к сотруднику. Для руководителей, задается только в том случае, если ему приписаны регионы, которых нет у его подчиненных.

Код Тип Ссылка Описание
PK user_id uid_t users ID сотрудника.
PK region_id uid_t regions ID региона.
PK chan_id uid_t channels ID канала рынка. Допустимо наличие пустого значение которое означает «все каналы рынка».

my_retail_chains

Список торговых сетей, приписанных к сотруднику (как правило, KAM или TM). Для руководителей, задается только в том случае, если ему приписаны торговые сети, которых нет у его подчиненных.

Код Тип Ссылка Описание
PK user_id uid_t users ID сотрудника.
PK rc_id uid_t retail_chains ID торговой сети.
PK region_id uid_t regions ID региона. Возможно задание пустого значения, что означает – все регионы.

my_routes [strongly recommended]

Маршруты сотрудников. Данные передаются только начиная с текущей даты + 1 день (current_date + 1) до текущей даты + 30 дней (current_date + 30). По предварительному согласованию, возможно, вместо конкретных дат маршрута, задание списка номеров дней недели, в которые выполняется посещение в т/точку.

Код Тип Ссылка Описание
PK user_id uid_t users ID сотрудника.
PK account_id uid_t accounts ID клиента.
PK p_date date_t Плановая дата маршрута.
duration int32_t Рекомендуемая продолжительность посещения в минутах.
row_no int32_t Порядковый номер посещения.
activity_type_id uid_t activity_types ID вида активности (в том случае если не задано, используется значение вида активности по-умолчаню = Посещение).

oos_types

Виды причин отсутствия товарного запаса (OOS — Out-of-Stock).

Код Тип Ссылка Описание
PK oos_type_id uid_t ID причины OOS.
M descr descr_t Название причины OOS.
dep_ids uids_t departments Список ID подразделений, для сотрудников которых действует данная причина OOS. Пустое значение означает, что данная причина OOS действует для всех сотрудников без ограничений.
row_no int32_t Порядок сортировки (приоритета).
props hstore_t Доп. параметры в виде ключ=>значение с разделителем ‘,’.

order_params

Дополнительные параметры заказа (отображаются на устройствах в виде флагов с двумя возможными состояниями: Да или Нет).

Код Тип Ссылка Описание
PK distr_id uid_t distributors ID филиала или дистрибьютора.
PK param_id uid_t ID параметра заказа.
M descr descr_t Название параметра заказа.

order_types

Виды заказов.

Код Тип Ссылка Описание
PK order_type_id uid_t ID вида заказа.
M descr descr_t Название вида заказа.
row_no int32_t Порядок сортировки (приоритета).

ownership_types

Типы владения торговым оборудованием (например, «В собстенности производителя», «В собственности клиента» и т.п.).

Код Тип Ссылка Описание
PK ownership_type_id uid_t ID типа владения торговым оборудованием.
M descr descr_t Название типа владения торговым оборудованием.
row_no int32_t Порядок сортировки (приоритета).

packs [mandatory]

Упаковки. Должна существовать как минимум одна упаковка для каждого продукта с pack = 1 (базовая упаковка)

Код Тип Ссылка Описание
PK pack_id uid_t ID упаковки.
PK prod_id uid_t products ID продукта.
M descr descr_t Название упаковки.
M pack int32_t Размерность упаковки относительно базовой упаковки.
weight numeric_t Вес упаковки.
volume numeric_t Объем упаковки.
precision int32_t Точность задаваемого количества (указывается количество знаков после запятой).

payment_methods

Типы оплаты.

Код Тип Ссылка Описание
PK payment_method_id uid_t ID типа оплаты.
M descr descr_t Название типа оплаты.
row_no int32_t Порядок сортировки (приоритета).

pending_types

Причины переноса планового посещения (отложить посещение).

Код Тип Ссылка Описание
PK pending_type_id uid_t ID причины переноса.
M descr descr_t Название причины переноса.
row_no int32_t Порядок сортировки (приоритета).

permitted_returns

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

Код Тип Ссылка Описание
PK distr_id uid_t distributors ID филиала или дистрибьютора.
PK account_id uid_t accounts ID клиента.
PK prod_id uid_t products ID продукта.
M pack_id uid_t packs ID упаковки.
M price currency_t Цена продукта, по которой осуществляется возврат.
max_qty numeric_t Максимально допустимое количество возвращаемой продукции.
locked bool_t Продукт запрещен к возврату (0 или 1). В случае, если locked=1, продукт показывается при создании возврата, но выбрать его нельзя.

potentials

Категории клиентов.

Код Тип Ссылка Описание
PK poten_id uid_t ID категории клиента.
M descr uid_t Название категории клиента.

photo_params

Дополнительные параметры фотографий торгового места (отображаются на устройствах в виде флагов с двумя возможными состояниями: Да или Нет).

Код Тип Ссылка Описание
PK photo_param_id uid_t ID дополнительного параметра фотографии.
M descr descr_t Название дополнительного параметра фотографии.
placement_ids uids_t placements Список ID мест размещения (допустимо пустое значение).
country_ids countries_t countries Список ID стран (допустимо пустое значение).
dep_ids uids_t departments Список ID подразделений (допустимо пустое значение).
activity_type_ids uids_t activity_types Список ID типов активностей (допустимо пустое значение).
row_no int32_t Порядок сортировки (приоритета).

В реквизитах placement_ids, country_ids, dep_ids и activity_type_ids определяются ограничения на область видимости дополнительных параметров фотографии. Пустое значение означает, что какие-либо огораничения отсутствуют.

photo_types

Типы фотографий торгового места.

Код Тип Ссылка Описание
PK photo_type_id uid_t ID типа фотографии.
M descr descr_t Название типа фотографии.
placement_ids uids_t placements Список ID мест размещения (допустимо пустое значение).
country_ids countries_t countries Список ID стран (допустимо пустое значение).
dep_ids uids_t departments Список ID подразделений (допустимо пустое значение).
activity_type_ids uids_t activity_types Список ID типов активностей (допустимо пустое значение).
row_no int32_t Порядок сортировки (приоритета).

В реквизитах placement_ids, country_ids, dep_ids и activity_type_ids определяются ограничения на область видимости типа фотографии. Пустое значение означает, что какие-либо огораничения отсутствуют.

placements

Места размещения продукции и/или PoS/PoP материалов в т/точке.

Код Тип Ссылка Описание
PK placement_id uid_t ID места размещения.
M descr descr_t Название места размещения.
row_no int32_t Порядок сортировки (приоритета).

plu_codes

Список Price-LoockUp (PLU) кодов продуктов торговых сетей. Данные коды отображаются в каталоге продуктов на мобильном устройстве и могут использоваться для ускорения поиска требуемого продукта в учетной системе клиента.

Код Тип Ссылка Описание
PK rc_id uid_t retail_chains ID торговой сети.
PK prod_id uid_t products ID продукта.
M plu_code code_t PLU код.

pmlist

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

По-умолчанию, мобильное приложение настроено таким образом, что в случае указания данного списка, при мониторинге цен в обязательном порядке необходимо будет сделать фотографию ценника. Для клиентов, у которых данный список не указан, фотография ценника опциональна. Данное правило может быть изменено в настройках мобильного приложения. Дополнительно возможно указание следующих правил: (1) фотография ценника всегда опциональна и (2) фотография ценника всегда обязательна.

Код Тип Ссылка Описание
PK account_id uid_t accounts ID клиента.
PK prod_id uid_t products ID продукта.
props hstore_t Доп. параметры в виде ключ=>значение с разделителем ‘,’.

pos_materials

PoS/PoP материалы.

Код Тип Ссылка Описание
PK pos_id uid_t ID PoS/PoP материала.
M descr descr_t Название PoS/PoP материала.
M content_blob blob_t Бинарное представление PoS/PoP материала.
M content_type varchar(32) Тип бинарного представления материала.
M brand_ids uids_t brands Список ID брендов, для которых предназначен материал.
placement_ids uids_t placements Список ID мест размещения, в которых может располагаться материал.
chan_ids uids_t channels Список ID каналов рынка, в которых действует материал.
dep_ids uids_t departments Список ID подразделений, для которых доступен материал.
country_ids uids_t countries Список ID стран, в которых действует материал.
b_date date_t Дата начали действия данного материала.
e_date date_t Дата окончания действия данного материала.
shared bool_t Разрешено распространение материала (0 или 1).

Тип бинарного представления (реквизит content_type) материала может принимать из следующих значений:

  • image/jpeg - изображение в формате JPEG,
  • application/pdf - PDF документ.

Пустое значение в реквизитах placement_ids, chan_ids, dep_ids и country_ids означает, что данный материал действует без ограничений.

В том случае если параметр shared равен 1 (разрешено распространение PoS/PoP материала), полевому сотруднику предоставляется возможность отправить внешним получателям данный материал через мобильное устройство.

priorities

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

Код Тип Ссылка Описание
PK brand_id uid_t brands ID приоритетного бренда.
PK b_date date_t Дата начала действия данного приоритета.
M e_date date_t Дата окончания действия данного приоритета.
PK country_id uid_t countries ID страны, в которой действует данный приоритет. ВНИМАНИЕ! Данный параметр может быть заполнен пустым значением, это означает, что данное правило действует для всех стран.

В том случае, если какой-либо бренд является приоритетным на постоянной основе, можно значения полей b_date и e_date оставить пустыми (одновременно оба поля).

products [mandatory]

Продукты (свои и конкуренты). В данном потоке возможна организация иерархического подчинения путем задания реквизитов prod_id, pid и ftype. При этом, корневые элементы иерархического списка должны содержать в поле pid пустое значение.

Код Тип Ссылка Описание
PK prod_id uid_t ID продукта.
pid uid_t products
M ftype bool_t Элемент является папкой (1) или продуктом (0).
code code_t Код (артикул) продукта.
M descr descr_t Полное наименование продукта.
kind_id uid_t kinds ID вида (группы) продукта.
brand_id uid_t brands ID бренда.
categ_id uid_t categories ID категории.
shelf_life_id uid_t shelf_lifes ID срок годности.
obsolete bool_t Продукт больше не производится, но еще имеется в наличии.
novelty bool_t Новинка.
promo bool_t ПРОМО продукт.
barcodes ean13s_t Список штрих кодов, связанных с продуктом.
M units int32_t Гранулярность продукта (шт, мл, ..).
image blob_t Изображение продукта.
country_ids countries_t countries Список ID стран (допустимо пустое значение).
dep_ids uids_t departments Список ID подразделений (допустимо пустое значение).
row_no int32_t Порядок сортировки данных.
props hstore_t Доп. параметры в виде ключ=>значение с разделителем ‘,’.

В случае отсутсвия данных в реквизите code, код продукта выставляется автоматически на стороне сервера OMOBUS™.

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

Реквизит units показывает, из скольких элементов состоит данный продукт, например, для продукта «Салфетки бумажные 4 рул.» данное поле будет иметь значение равное 4 (рулона). Данный показатель используется для расчета стоимости продукта (Мониторинг цен) из расчета на одну минимально неделимую единицу продукта. По-умолчанию, значение равно 1.

В реквизитах country_ids и dep_ids определяются ограничения на область видимости продукта. Пустое значение означает, что какие-либо ограничения отсутствуют.

promo_types

Возможные формы (виды, типы) проведения промо, например, «По личной договоренности», «Контракт» и т.п. Используется в качестве параметра, характеризующего дополнительные места продажи.

Код Тип Ссылка Описание
PK promo_type_id uid_t ID типа промо.
M descr descr_t Название типа промо.
row_no int32_t Порядок сортировки (приоритета).

quest_entities

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

Код Тип Ссылка Описание
PK qname_id uid_t quest_names ID анкеты.
PK qentity_id uid_t ID типа фотографии анкеты.
M descr descr_t Название типа фотографии анкеты.
mandatory bool_t Фотография данного типа является обязательной (0 или 1).
row_no int32_t Порядок сортировки (приоритета).

quest_items

Набор элементов, которые можно выбрать в том случае, если вопрос анкеты имеет тип selector.

Код Тип Ссылка Описание
PK qname_id uid_t quest_names ID анкеты.
PK qrow_id uid_t quest_rows ID вопроса анкеты.
PK qitem_id uid_t ID элемента вопроса анкеты.
M descr descr_t Название элемента.
row_no int32_t Порядок сортировки (приоритета).

quest_names

Названия анкет.

Код Тип Ссылка Описание
PK qname_id uid_t ID анкеты.
M descr descr_t Название анкеты.
row_no int32_t Порядок сортировки (приоритета).

quest_rows

Набор вопросов для анкет.

Код Тип Ссылка Описание
PK qname_id uid_t quest_names ID анкеты.
PK qrow_id uid_t ID вопроса анкеты или раздела анкетирования.
pid uid_t quest_rows
M ftype bool_t Элемент является разделом (1) или вопросом анкеты (0).
M descr descr_t Вопрос анкеты или название раздела.
qtype varchar(10) Тип вопроса анкеты.
mandatory bool_t Вопрос анкеты является обязательным (0 или 1).
extra_info note_t Детальное описание правил заполнения вопроса анкеты.
country_ids countries_t countries Список ID стран (допустимо пустое значение).
dep_ids uids_t departments Список ID подразделений (допустимо пустое значение).
roles codes_t Список кодов ролей (допустимо пустое значение).
row_no int32_t Порядок сортировки (приоритета).

Реквизит qtype может принимать одно из следующих значений:

Значение Описание
boolean Ответ Да или Нет.
triboolean Ответ Да, Нет или Неизвестно.
integer Целочисленное значение.
float Дробное значение.
text Текстовое значение.
selector Выбор варианта ответа из списка (варианты ответов задаются в потоке quest_items).

В реквизитах country_ids, dep_ids и roles определяются ограничения на область видимости вопроса анкеты. Пустое значение означает, что какие-либо ограничения отсутствуют.

rating_criterias

Список вопросов, по которым проводится оценка сотрудников, проводимая в рамках совместного маршрута.

Код Тип Ссылка Описание
PK rating_criteria_id uid_t ID критерия оценки.
pid uid_t rating_criterias ID родительского элемента.
M ftype bool_t Элемент является разделом (1) или критерием оценки (0).
M descr descr_t Полное наименование критерия или раздела.
dep_ids uids_t departments Список ID подразделений, для сотрудников которых действует данный критерий оценки. Пустое значение означает, что данный критерий оценки действует для всех сотрудников без ограничений.
M wf wf_t Весовой коэффициент критерия в общей оценке (измеряется в дипазоне от 0.01 до 1).
mandatory bool_t Критерий является обязательным для заполнения (0 или 1). В случае указания значения 1, сотрудник будет проинформирован о том, что данный критерия является обязательным, однако сотрудник имеет возможность проигнорировать его заполнение (с указанием причины).
extra_info note_t Расширенное описание критерия оценки или пояснения для правильного выставления оценки.
row_no int32_t Порядок сортировки (приоритета).

rating_scores

Список возможных баллов оценки сотрудников, проводимой в рамках совместного маршрута.

Код Тип Ссылка Описание
PK rating_score_id uid_t ID оценки.
M descr descr_t Полное наименование балла.
score int32_t Значение балла (>= 0)
wf wf_t Весовой коэффициент вклада балла в общей оценке (измеряется в дипазоне от 0 до 1).
extra_info note_t Расширенное описание оценки или пояснения для правильного выставления оценки.
rating_criteria_id uid_t rating_criterias ID критерия оценки, для которого действует данная оценка или пустое значение, если оценка действует для всех критериев (см. детали ниже).
row_no int32_t Порядок сортировки (приоритета).

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

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

reclamation_types

Причины возврата продукции.

Код Тип Ссылка Описание
PK reclamation_type_id uid_t ID причины возврата.
M descr descr_t название причины возврата.

recom_orders

Рекомендованный заказ. Используется в том случае, если сотруднику необходимо показать (в создаваемом им заказе) список продукции, с возможным указанием количества, предписанных (рекомендованных) к заказу.

Код Тип Ссылка Описание
PK account_id uid_t accounts ID клиента.
PK prod_id uid_t products ID продукта.
pack_id uid_t packs ID упаковки.
qty numeric_t Рекомендуемое к заказу количество.
stock_wf wf_t Коэффициент учета текущих остатков продукции на складе клиента.

Рекомендуемое к заказу количество продукции не является обязательным. Итоговое количество в рекомендуемом заказе рассчитывается по следующей формуле:

    qty = recom_orders.qty — (recom_orders.stock_wf * stock),

где stock — это остаток продукции в т/точке, qty — отображаемое в заказе количество.

recom_retail_prices

Рекомендованная розничная цена продукта. Цена продукта задается в той упаковке, которая доступна конечному потребителю на полке торгового зала. Данная цена носит информационный характер и показывается в модуле [Мониторинг цен].

Код Тип Ссылка Описание
PK account_id uid_t accounts ID клиента.
PK prod_id uid_t products ID продукта.
M rrp currency_t Рекомендуемая розничная цена (РРЦ).

recom_shares

Рекомендации по долям своей продукции в категории.

Код Тип Ссылка Описание
PK account_id uid_t accounts ID клиента. ВНИМАНИЕ! Данный параметр может быть заполнен пустым значением, это означает, что данное правило мониторинга доли полки / доли в ассортименте действует для всех клиентов.
PK categ_id uid_t categories ID категории.
sos wf_t Целевой показатель доли полки (SOS — Share-of-Shelf).
soa wf_t Целевой показатель доли в ассортименте (SOA — Share-of-Assortment).

regions [recommended]

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

Код Тип Ссылка Описание
PK region_id uid_t ID региона.
M descr descr_t Название региона.
country_id country_t countries ID страны формате ISO 3166-1 alpha-2.

restrictions

Ограничения, накладываемые на значение количества продукта в документе Заказ продукции.

Код Тип Ссылка Описание
PK distr_id uid_t distributors ID филиала или дистрибьютора.
PK account_id uid_t accounts ID клиента.
PK prod_id uid_t products ID продукта.
M pack_id uid_t packs ID упаковки.
min_qty numeric_t (min_qty >= 0) Минимально допустимое к заказу количество.
max_qty numeric_t (max_qty >=0) Максимально допустимое к заказу количество.
quantum int32_t (quantum > 0) Кратность заказываемого количества.

В реквизите account_id можно указывать пустое значение в том случае, если значение ограничения задается для всех клиентов.

Значения в реквизитах min_qty, max_qty и quantum задаются в упаковке, определенной в реквизите pack_id.

retail_chains [strongly recommended]

Торговые сети.

Код Тип Ссылка Описание
PK rc_id uid_t ID торговой сети.
M descr uid_t Название торговой сети.
ka_type code_t Тип торговой сети (например: NKA, LKA,и т.п.).
M country_id country_t countries ID страны, в которой действует торговая сеть.
uniform_pricing bool_t Торговая сеть применяет практику единого ценообразования (0 или 1)

Если в параметре country_id значение не задано, оно автоматически выставляется в значение RU при загрузке данных.

Установка параметра uniform_pricing в 1 автоматически включает в документе Мониторинг цен возможность автозаполнения документа по данным посещенной в текущий день т/точки той-же самой сети.

rules

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

В том случае, если сотрудник не может выполнить предписанные данными правилами действия, сотрудник может завершить посещение, оставив объяснение причины невыполнения действий.

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

Код Тип Ссылка Описание
PK doc_type doctype_t Код действи (документа), который необходимо выполнить (создать).
PK role code_t Роль пользователя. См. поток users для более детальной информации.
M frequency code_t Периодичность выполнения действия.

В реквизите doc_type возможно задание следующих значений: audit, checkup, location, order, oos, photo, posm, presence, price, promo, rating, stock.

Периодичность выполнения действия может принимать одно из следующих значений:

  • everytime – при каждом посещение;
  • once_a_week – один раз в неделю;
  • once_a_month – одни раз в месяц;
  • once_a_month_l2w – один раз в 2 последние полные недели месяца; once_a_quarter – одни раз в квартал.

Для всех значений, кроме everytime, производится автоматический анализ необходимости включений данного правила в рамках определнного данным параметром периода.

sales_history [recommended]

История продаж и возвратов.

Код Тип Ссылка Описание
PK account_id uid_t accounts ID клиента.
PK prod_id uid_t products ID продукта.
PK s_date date_t Дата продаж и/или возвратов.
amount_c currency_t Сумма продаж.
pack_c_id uid_t packs ID упаковки продажи.
qty_c numeric_t Количество продаж в упаковке, указанной в pack_c_id.
amount_r currency_t Сумма возвратов.
pack_r_id uid_t packs ID упаковки возврата.
qty_r numeric_t Количество возвратов в упаковке, указанной в pack_r_id.

Фактически, в данном потоке передаются суммарные дневные продажи и/или возвраты продукции.

shelf_lifes

Сроки годности продукции.

Код Тип Ссылка Описание
PK shelf_life_id uid_t ID срока годности.
M descr descr_t Описание срока годности, например, “8 мес.”

shelf_types

Категории полочного пространства (зона размещения продукции на полке) с точки зрения маркетинга. Используется в документе Представленность продукции на полке для указания места размещения продукции на полке. Данный справочник должен учитывать возможность размещения продукции в нескольких категориях одновременно.

Код Тип Ссылка Описание
PK shelf_type_id uid_t ID категории полочного пространства.
M descr descr_t Описание категории полочного пространства.
extra_info note_t Детальное описание категории полочного пространства.
row_no int32_t Порядок сортировки (приоритета).

shipments

Предписанный календарь доставок продукции клиенту. В том случае, если данный поток не заполнен, календарь доставок формируется автоматически вперед на десять календарных дней от текущей даты.

Код Тип Ссылка Описание
PK distr_id uid_t distributors ID филиала или дистрибьютора.
PK account_id uid_t accounts ID клиента.
PK d_date date_t Дата доставки.

specialities

Специальности сотрудников клиента (контактов). Возможно заполнение справочников с учетом специализации контактов. Используется при регистрации контактов.

Код Тип Ссылка Описание
PK spec_id uid_t ID специальности.
M descr descr_t Название специальности.
dep_ids uids_t departments Список ID подразделений или пустое значение.

Пустое значение в реквизите dep_ids означает, что данная строка действует для всех подразделений.

speclist

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

Код Тип Ссылка Описание
PK account_id uid_t accounts ID клиента.
PK prod_id uid_t products ID продукта.
props hstore_t Доп. параметры в виде ключ=>значение с разделителем ‘,’.

std_prices

Базовая цена. Используется в том случае, если не заданы групповые (group_prices) или персональные цены (account_prices).

Код Тип Ссылка Описание
PK distr_id uid_t distributors ID филиала или дистрибьютора.
PK prod_id uid_t products ID продукта.
M pack_id uid_t packs ID упаковки.
M price currency_t Цена продукта в упаковке, заданной pack_id.

Область применения: Данный вариант цены можно оценивать как цены по-умолчанию, которые используются в том случае, если не заданы персонализированные цены следующих уровней (с помощью потоков group_prices и/или account_prices).

symlinks

Таблица соответствия кодов производителя соответствующим кодам дистрибьютора. Данный поток заполняется только в том случае, если дистрибьюторы подключаются непосредственно к системе OMOBUS™, а таблица соответствия кодов ведется на стороне заказчика.

Код Тип Ссылка Описание
PK distr_id uid_t distributors ID дистрибьютора.
PK obj_code code_t Код объекта. Может принимать одно из следующих значение: product, account, user.
PK f_id uid_t ID объекта в системе производителя.
M t_id uid_t ID объекта в системе дистрибьютора.

tags

Параметры тегов (ярлыков).

Код Тип Ссылка Описание
PK tag_id uid_t ID тега.
M name varchar(5) Название тега длиной не более 5 символов.
style varchar(12) Стилевое оформление тега.
row_no int32_t Порядок сортировки (приоритета).

Ркувизит style может принимать пустое значение, в случае использования стиля по-умолчанию или одно из следующих значений стилей: grey, red, orange, yellow, teal, black.

targets

Задачи. Необходимо передавать только задачи, срок действия которых не истек. Задачи с истекшим сроком действия (т.e. e_date < current_date) игнорируются и не загружаются в OMOBUS™. Задача, которая начала свое действие в OMOBUS™ никогда не удаляется. В случае ее удаления из входного потока targets, для такой задачи выставляется дата завершения действия значением даты исчезновения этой задачи из входного потока. После начала действия задачи, все изменения ее параметров, передаваемые в потоке targets, игнорируются. В случае необходимости изменения параметров уже действующей задачи, необходимо создавать новую задачу.

Код Тип Ссылка Описание
PK target_id uid_t ID задачи.
M target_type_id uid_t target_types ID типа задачи.
M subject descr_t Заголовок задачи.
M body varchar(2048) Детальное описание задачи.
M b_date date_t Дата начала действия задачи.
M e_date date_t Дата окончания действия задачи.
dep_id uid_t departments Подразделение, для сотрудников которого действует задача.
account_ids uids_t accounts Список ID клиентов, у которых действует данная задача.
rc_ids uids_t retail_chains Список ID торговых сетей, в которых действует данная задача.
chan_ids uids_t channels Список ID каналов рынка, в которых действует данная задача.
poten_ids uids_t potentials Список ID категорйи клиента, у которых действует данная задача.
region_ids uids_t regions Список ID регионов, в которых действует данная задача.
city_ids uids_t cities Список ID городов, в которых действует данная задача.
M renewable bool_t Задача является возобновляемой.
awaiting int32_t Смещение в днях даты фактического начала действия задачи.
cookie uid_t Метка задачи.
props hstore_t Дополнительные параметры в виде “ключ”=>“значение”.

Реквизиты rc_ids, chan_ids, poten_ids, region_ids, city_ids используются одновременно для определения клиентов, у которых действует задача (выборка строится по правилу AND).

Реквизит account_ids позволяет добавить дополнительный набор клиентов. Данные клиенты прибавляются к клиентам, сформированным с помощью реквизитов rc_ids, chan_ids, poten_ids, region_ids, city_ids.

В реквизите body можно использовать HTML теги <b>, <i> и <br>.

Реквизит renewable влияет на автоматическую постановку новой задачи на основе сделанного подтверждения/отклонения выполнения исходной задачи. Если renewable=0 – дата завершения новой задачи равна дате завершения исходной задачи. Если renewable=1 – дата завершения новой задачи устанавливается в новое значнеие, исходя из настроек системы OMOBUS™ (по-умолчанию, продлевается на 14 дней).

Реквизит awaiting задается в том случае, если сотрудник начинает информироваться о некотором мероприятии у клиента с опережением. Значение данного параметра должно быть больше 0. Данный параметр учитывается при сортировке задач и в визуальном оформление задач на мобильном устройстве.

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

target_types

Типы задач.

Код Тип Ссылка Описание
PK target_type_id uid_t ID типа задачи.
M descr descr_t Название типа задачи.
M selectable bool_t Данный тип задачи может быть выбран сотрудником на мобильном устройстве при постановке задачи (0 или 1).
row_no int32_t Порядок сортировки (приоритета).

training_types

Виды проводимых обучений.

Код Тип Ссылка Описание
PK training_type_id uid_t ID вида проводимого обучения.
M descr descr_t Название вида проводимого обучения.
min_contacts int32_t (min_contacts > 0) Минимально допустимое количество контактов, которые могут участвовать в данном виде обучения.
max_contacts int32_t (max_contacts > 0) Максимально допустимое количество контактов, которые могут участвовать в данном виде обучения.
dep_ids uids_t departments Список ID подразделений, для сотрудников которых действует данный вид обучения. Пустое значение означает, что данный вид обучения действует для всех сотрудников без ограничений.
row_no int32_t Порядок сортировки данных.

unsched_types

Типы внеплановых действий.

Код Тип Ссылка Описание
PK unsched_type_id uid_t ID причины внепланового действия.
M descr descr_t Название причины внепланового действия.
country_ids countries_t countries Список ID стран (допустимо пустое значение).
dep_ids uids_t departments Список ID подразделений (допустимо пустое значение).
roles codes_t Список кодов ролей (допустимо пустое значение).
row_no int32_t Порядок сортировки (приоритета).

Пустое значение в реквизитах country_ids, dep_ids и roles означает, что данный тип внепланового действия действует без ограничений.

users [mandatory]

Сотрудники (мерчендайзеры, торговые представители, медицинские представители, супервайзеры (SV/ISE) и т.д.) оснащенные мобильными устройствами или имеющими доступ к web-console OMOBUS™. В справочнике должна прослеживаться иерархия подчинения сотрудников. Иерархия строится на основе: pids, user_id. Рекомендуется наличие корневых элементов (с пустым значением в поле pids) в иерархии.

Код Тип Ссылка Описание
PK user_id uid_t ID сотрудника.
pids uids_t users Список ID руководителей.
M descr descr_t ФИО сотрудника.
role code_t Роль сотрудника.
M country_id countriy_t countries ID страны размещения сотрудника.
dep_ids uids_t departments Список ID подразделений, данные которых доступны сотруднику.
distr_ids uids_t distributors Список ID филиалов и/или дистрибьюторов.
agency_id uid_t agencies ID агентства, в котором трудоустроен сотрудник.
mobile phone_t Номер мобильного телефона сотрудника.
email email_t Электронная почта сотрудника.
area descr_t Название территории, на которой работает сотрудник.
props hstore_t Дополнительные параметры.

В реквизите pids может быть указано несколько руководителей, при этом первый руководитель в списке является основным.

В реквизите roles возможно указание одного из следующих значений:

  • merch — мерчендайзер;
  • ise - InStore executive (супервайзер мерчендайзеров);
  • ism - InStore manager (руководитель мерчендайзеров);
  • sr — торговый представитель;
  • ksr — торговый представитель по ключевым клиентам;
  • sv — супервайзер (руководитель торговых представителей);
  • mr — медицинский представитель;
  • asm - Area Sales manager;
  • kam – Key Account manager; -tme – trade marketing executive.

Реквизит distr_ids обязателен к заполнению в том случае, если сотрудник создает документы Заказ продукции и/или Возврат продукции. Фактически, данный параметр определяет список дистрибьюторов, которые доступны сотруднику.

Параметры country_id и dep_ids используются для персонализации следующих справочных данных на мобильных устройствах:

  • бренды, продукты,
  • информационные материалы,
  • POP/POP материалы,
  • планограммы,
  • приоритетные бренды,
  • вопросы анкеты,
  • актуальные контакты службы поддержки пользователей OMOBUS™.

В web-console OMOBUS™ country_id используется только для отображения актуальных контактов службы поддержки пользователей той страны, в которой территориально расположен сотрудник.

ВНИМАНИЕ! Параметр country_id и dep_id не используется для ограничения доступа к списку клиентов, доступных сотруднику. Данное ограничение задается с помощью потоков _my*__.

Для того, чтобы снизить риски несанкционированного доступа к данным, при формирование списка сотрудников рекомендуется соблюдать следующие правила:

  1. Передавать в omobus только реально работающих с системой пользователей. В обязательном порядке исключив уволившихся сотрудников.

  2. Не использовать практику повторного использования кодов (уникальных идентификаторов) ранее работающих сотрудников. Как временная мера - информировать техническую поддержку об этих фактах для смены пароля учетной записи.

  3. Отказаться от массовой практики использования обезличенных учетных записей.

  4. Минимизировать практику бездумного предоставления доступа к данным клиентов для сотрудников, которые не нуждаются в этих данных.

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

vf_accounts

Список клиентов, отображаемых в виртуальной папке в маршруте.

Код Тип Ссылка Описание
PK vf_id uid_t vf_names ID виртуальной папки.
PK user_id uid_t users ID сотрудниками. ВНИМАНИЕ! Данный параметр может быть заполнен пустым значением, это означает, что данное правило действует для всех сотрудников.
PK account_id uid_t accounts ID клиента.
row_no int32_t Порядок сортировки данных.

vf_names

Названия виртуальных папок клиентов или продуктов.

Код Тип Ссылка Описание
PK vf_id uid_t ID виртуальной папки.
M descr descr_t Название виртуальной папки.
row_no int32_t Порядок сортировки данных.

vf_products

Список продуктов, отображаемых в виртуальной папке в справочнике продуктов. Может задаваться индивидуально для клиента.

Код Тип Ссылка Описание
PK vf_id uid_t vf_names ID виртуальной папки.
PK account_id uid_t accounts ID клиента. ВНИМАНИЕ! Данный параметр может быть заполнен пустым значением, это означает, что данное правило действует для всех клиентов.
PK prod_id uid_t products ID продукта.
row_no int32_t Порядок сортировки данных.

wareh_stocks

Оперативные остатки продукции на складе (актуальные остатки на момент формирования потока). Остатки задаются в базовой упаковке.

Код Тип Ссылка Описание
PK distr_id uid_t distributors ID филиала или дистрибьютора.
PK wareh_id uid_t warehouses ID склада.
PK prod_id uid_t products ID продукта.
M qty int32_t Остаток в базовой упаковке.

warehouses

Склады.

Код Тип Ссылка Описание
PK distr_id uid_t distributors ID филиала или дистрибьютора.
PK wareh_id uid_t ID склада.
M descr descr_t Название склада.

Исходящие (относительно сервера OMOBUS™) потоки данных

ВНИМАНИЕ! Данные в потоке передаются за 5 последних календарных дней (если о порядке передачи данных в потоке не указана дополнительная информация) с момента их внесения в систему, или с момента последнего их изменения на сервере OMOBUS™. Поэтому, принимающая сторона должна обеспечить гарантированный прием данных минимум 1 раз в 4 дня. В противном случае, часть данных будет утеряна принимающей стороной. В свою очередь, сервер OMOBUS™ обновляет весь массив данных на общем ресурсе с шагом 150 секунд (через каждые 150 секунд после предыдущей выгрузки + время, затрачиваемое на подготовку данных).

В рамках описываемых в данном проекте потоков передаются только приоритетные данные, которые могут потребовать оперативной реакции со стороны КИС заказчика. Все остальные данные, собранные системой OMOBUS™ передаются в LTS хранилище OMOBUS™ с учетом всех справочных данных, которые загружены в OMOBUS™ из разных источников.

Дата и время, если не сделано специального уточнения, представляют собой локальные дату и время фактической фиксации данных на устройстве (терминале сбора данных).

Все фотографии передаются в виде ссылок, которые используются для формирования URI конкретной фотографии, хранящейся на сервере OMOBUS™ или в архивном хранилище LTS. При этом, URI фотографии формируется следующим образом:

https://[omobusserver]/console/photo?ref=[photo]

или, для получения фотографии с маркировкой (параметры фотографии нанесены непосредственно на фото; данные фотографии формируются только по согласованию с заказчиком)

https://[omobusserver]/console/thumb?ref=[photo]&labeled=yes

или, для получения миниатюры фотографии

https://[omobusserver]/console/thumb?ref=[photo]

где [omobusserver] – DNS имя сервера OMOBUS™, [photo] – значение ссылки, которое передается в рамках потока.

activity_types

Виды активностей, которые разрешено использовать при планирование маршрутов (поток my_routes). Данный справочник формируется непосредственно в системе OMOBUS™. В данном потоке передаются только актуальные данные.

Код Тип Ссылка Описание
PK activity_type_id uid_t ID вида активности.
M descr descr_t Название вида активности.
M strict bool_t Физическое посещение клиента: 0 или 1.

additions

Заявки на регистрацию новых клиентов. В случае внесения нового клиента в КИС, необходимо в обязательном поряке выгружать ID данного клиента в OMOBUS™. Принимающая сторона должна быть готова к возникновению ситуации, при которой ранее подтвержденная заявка на регистрацию нового клиента будет удалена на стороне omobus. Одним из возможных вариантов обработки данной ситуации является удаление зарегистрированного на основе данной заявки клиента.

Код Тип Ссылка Описание
PK doc_id uid_t ID документа заявки.
M fix_dt datetime_t Дата/время фиксации заявки.
M user_id uid_t users ID сотрудника, подавшего заявку.
M account descr_t Название клиента.
M address address_t Фактический адрес клиента.
tax_number code_t Уникальный налоговый номер клиента.
addition_type_id uid_t addition_types ID типа новой клиента.
note note_t Дополнительная информация о клиенте.
chan_id uid_t channels ID канала рынка.
attr_ids uids_t attributes Список ID атрибутов клиента.
photos uids_t Фотографии клиента.
M account_id uid_t accounts ID, который присвоен клиенту в системе OMOBUS™.
validator_id uid_t users ID сотрудника, подтвердившего заявку.
M validated bool_t Заявка подтверждена: 0 или 1.
M hidden bool_t Заявка аннулирована: 0 или 1.
geo_address address_t Адрес клиента.
latitude gps_t Географическое положение клиента (широта).
longitude gps_t Географическое положение клиента (долгота).

В реквизите tax_number указывается уникальный номер клиента, получаемый при его регистрации в налоговых органах.

Для дальнейшего обмена с OMOBUS™ должен использоваться передаваемый в данном поле идентификатор (реквизит - account_id), а не идентификатор КИС.

Возможны ситуации, когда реквизит validator_id будет содержать, данные отсутствующие в потоке users. Это не является ошибкой.

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

contacts

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

Код Тип Ссылка Описание
PK doc_id uid_t ID документа.
M fix_dt datetime_t Дата/время создания документа.
M user_id uid_t users ID сотрудника.
M account_id uid_t accounts ID клиента.
M contact_id uid_t ID контакта.
M name descr_t Имя контакта.
M surname descr_t Фамилия контакта.
patronymic descr_t Отчество контакта.
M job_title_id uid_t job_titles ID должности.
spec_id uid_t specialities ID специальности контакта.
loyalty_level_id uid_t loyalty_levels ID уровня лояльности контакта.
influence_level_id uid_t influence_levels ID уровня влияния контакта.
intensity_level_id uid_t intensity_levels ID уровня интенсивности работы.
start_year int32_t Год начала трудовой деятельности.
mobile phone_t Номер мобильного телефона.
email email_t Адрес электронной почты.
doc_note note_t Дополнительная информация.
consent_id uid_t ID согласия на обработку персональных данных.
consent_status varchar(24) Набор подписанных согласий.
consent_data blob_t Согласие на обработку персональных данных.
consent_type varchar(32) Тип данных, передаваемых в consent_data.
consent_country country_t countries Код страны оформления согласия.
consent_validity int32_t Срок действия согласия (лет).
M facility varchar(6) Тип документа.

Реквизит facility может принимать одно из следующих значений:

  • new - регистрация нового контакта,
  • delete - удаление контакта (сщтрудник больше не работает у данного клиента),
  • update - корректировка данных контакта.

deletions

Заявки на удаление клиентов. После подтверждения факта удаления клиента, заявка на удаление актоматически аннулируется. Подтверждением факта удаления считается отсутствие клиента во входном потоке accounts.

Код Тип Ссылка Описание
PK account_id uid_t accounts ID клиента.
M user_id uid_t users ID сотрудника, подавшего заявку.
M fix_dt datetime_t Дата/время фиксации заявки.
note note_t Дополнительная информация.
photo uid_t Фотография.
validator_id uid_t users ID сотрудника, подтвердившего заявку.
M validated bool_t Заявка подтверждена: 0 или 1.
M hidden bool_t Заявка аннулирована: 0 или 1.

Возможны ситуации, когда реквизит validator_id будет содержать, данные отсутствующие в потоке users. Это не является ошибкой.

Клиенты, для которых подтверждена заявка на удаление, автоматически блокируются на стороне OMOBUS™. Факт блокировки не запрещает выполнение активности по данным клиентам.

equipments

Инвентаризация размещения торгового оборудования. Данные, переданные в рамках данного потока, никогда не меняются. Это означает, что если данные ранее были ранее загружены в хранилище, они гарантированно не потребуют внесения в них изменений. Стратегия загрузки данного потока: вставка только новых данных.

Код Тип Ссылка Описание
PK doc_id uid_t ID документа.
M fix_dt datetime_t Дата/время создания документа.
M user_id uid_t users ID сотрудника.
M account_id uid_t accounts ID клиента.
M equipment_id uid_t ID размещенного т/оборудования.
M serial_number varchar(40) equipments Серийный номер т/оборудования.
M equipment_type_id uid_t equipment_types ID вида т/оборудования.
equipment_cond_id uid_t equipment_conditions ID состояния т/оборудования.
doc_note note_t Дополнительная информация.
M photos uids_t Фотографии.
M facility varchar(15) Тип документа.

Реквизит equipment_id характеризует факт размещения торгового оборудования у клиента, поэтому для одних и тех-же серийных номеров (реквизит serial_number) возможны разные значения. История размещения торгового оборудования доступна в таблице omobus-lts-db.equipments.

Реквизит facility может принимать одно из следующих значений:

  • new - регистрация факта размещения торгового оборудования или его первичной инвентаризации,
  • delete - торговое оборудование больше не размещается у данного клиента,
  • inventorization - инвентаризация ранее размещенного торгового оборудования.

locations

Координаты клиентов, зафиксированные сотрудниками с помощью мобильных устройств. Данные, переданные в рамках данного потока, никогда не меняются. Это означает, что если данные ранее были ранее загружены в хранилище, они гарантированно не потребуют внесения в них изменений. Стратегия загрузки данного потока: вставка только новых данных.

Код Тип Ссылка Описание
PK doc_id uid_t ID документа.
M fix_dt datetime_t Дата/время создания документа.
M user_id uid_t users ID сотрудника.
M account_id uid_t accounts ID клиента.
M latitude gps_t Географическое положение клиента (широта).
M longitude gps_t Географическое положение клиента (долгота).
M accuracy double_t Точность определения данных в метрах.
dist double_t Расстояние до клиента в момент получения геоданных.

orders

Заказ продукции. В данных, переданные в рамках данного потока, возможно изменение только реквизитов ttd и erp_docs. Остальные реквизиты никогда не меняются. Это означает, что, если данные ранее были загружены в хранилище, они гарантированно не потребуют внесения в них изменений. Стратегия загрузки данного потока: вставка только новых данных и корректировка реквизитов ttd и erp_docs.

Код Тип Ссылка Описание
PK doc_id uid_t ID документа.
M fix_dt datetime_t Дата создания документа на устройстве.
M doc_no uid_t Номер документа на устройстве.
M user_id uid_t users ID сотрудника.
M dev_login uid_t Код устройства OMOBUS™.
M account_id uid_t accounts ID клиента.
M distr_id uid_t distributors ID филиала или дистрибьютора.
order_type_id uid_t order_types ID вида заказа.
group_price_id uid_t group_prices ID групповой цены.
wareh_id uid_t warehouses ID склада.
M delivery_date date_t Дата доставки.
delivery_type_id uid_t delivery_types ID типа доставки.
doc_note note_t Комментарий сотрудника.
payment_method_id uid_t payment_methods ID типа оплаты.
payment_delay int32_t Отсрочка платежа.
order_param_ids uids_t order_params Дополнительные параметры заказа.
M rows int32_t Количество строк в документе.
PK prod_id uid_t products ID продукта.
M row_no int32_t Номер строки в документе.
M pack_id uid_t packs ID упаковки.
M pack int32_t Размерность упаковки.
M qty numeric_t Количество.
M unit_price currency_t Цена.
discount int32_t Значение скидки в %.
M amount currency_t Сумма строки с учетом скидки.
weight numeric_t Вес.
volume numeric_t Объём.
promo_guid uid_t discount_promos Уникальный идентификатор промо.
ttd varchar(9) Статус обработки документа.
erp_ids uids_t erp_docs Список ID документов созданных в КИС.

Поле ttd может слдержать одно из следующих значений: delivered — документ доставлен до точки обмена, accepted — получено подтверждение получения документа.

profiles

Изменение параметров клиента. Данные, переданные в рамках данного потока, никогда не меняются. Это означает, что, если данные ранее были загружены в хранилище, они гарантированно не потребуют внесения в них изменений. Стратегия загрузки данного потока: вставка только новых данных.

Код Тип Ссылка Описание
PK doc_id uid_t ID документа.
M fix_dt datetime_t Дата создания документа на устройстве.
M user_id uid_t users ID сотрудника.
M account_id uid_t accounts ID клиента.
chan_id uid_t channels ID канала рынка.
poten_id uid_t potentials ID категории клиента.
phone phone_t Номер телефона.
workplaces int32_t Количество рабочих мест у клиента.
team int32_t Количество сотрудников.
interaction_type_id uid_t interaction_types ID разрешенной формы взаимодействия.
attr_ids uids_t attributes Дополнительные параметры клиента.

reclamations

Возврат продукции. В данных, переданные в рамках данного потока, возможно изменение только реквизитов ttd и erp_docs. Остальные реквизиты никогда не меняются. Это означает, что, если данные ранее были загружены в хранилище, они гарантированно не потребуют внесения в них изменений. Стратегия загрузки данного потока: вставка только новых данных и корректировка реквизитов ttd и erp_docs.

Код Тип Ссылка Описание
PK doc_id uid_t ID документа.
M fix_dt datetime_t Дата создания документа на устройстве.
M doc_no uid_t Номер документа на устройстве.
M user_id uid_t users ID сотрудника.
M dev_login uid_t Код устройства OMOBUS™.
M account_id uid_t accounts ID клиента.
distr_id uid_t distributors ID филиала или дистрибьютора.
doc_note note_t Комментарий.
M rows int32_t Количество строк в документе.
PK prod_id uid_t products ID продукта.
M row_no int32_t Номер строки в документе.
M reclamation_type_id uid_t reclamation_types ID причины возврата.
M pack_id uid_t packs ID упаковки.
M pack int32_t Размерность упаковки.
M qty numeric_t Количество.
M unit_price currency_t Цена.
M amount currency_t Сумма строки с учетом скидки.
weight numeric_t Вес.
volume numeric_t Объём.
ttd varchar(9) Статус обработки документа.
erp_ids uids_t erp_docs Список ID документов созданных в КИС.

Поле ttd может слдержать одно из следующих значений: delivered — документ доставлен до точки обмена, accepted — получено подтверждение получения документа.

wishes

Заявки на включение клиента в маршрут.

Код Тип Ссылка Описание
PK account_id uid_t ID клиента.
PK user_id uid_t users ID сотрудника, подавшего заявку.
M fix_dt datetime_t Дата/время фиксации заявки.
M weeks int32_t ARRAY Недели
M days int32_t ARRAY Дни
note note_t Дополнительная информация.
validator_id uid_t users ID сотрудника, подтвердившего заявку.
M validated bool_t Заявка подтверждена: 0 или 1.
M hidden bool_t Заявка аннулирована: 0 или 1.

Реквизит weeks представляет собой массив целых значений, состоящий из 4 элементов (соответствует максимальному количеству недель в цикле). Каждый элемент может принимать значение 0 или 1. Посещение выполняется в те недели, для которых значение выставлено в 1.

Реквизит days представляет собой массив целых значений, состоящий из 7 элементов (соответствует количеству дней в неделе). Каждый элемент может принимать значение 0 или 1. Посещение выполняется в те дни, для которых значение выставлено в 1.

Возможны ситуации, когда реквизит validator_id будет содержать, данные отсутствующие в потоке users. Это не является ошибкой.


COPYRIGHT

Разрешено распространение и использование исходного кода с модификациями или без модификаций, с учетом ограничений, указанных в файле COPYRIGHT.

Описание

Описание протокола обмена мастер данными с OMOBUS

Конвейеры
0 успешных
0 с ошибкой