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.
Порядок работы КИС в ходе приема документов состоит из следующих последовательно выполняемых запросов:
-
GET - получить список всех необработанных на текущий момент времени документов. Под необработанными считаются все документы, по которым не передана в систему OMOBUS™ информация о том, что на их основании созданы документы в КИС заказчика. Данная информация передается в потоке
erp_docs
. Пример запроса:$ curl --verbose https://zdev.omobus.net/bridge/docs?tid=2&ref=orders
-
Сохранить документ(-ы) в КИС заказчика.
-
(опционально) 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
):
-
По факту поступления нового клиента без заполненных полей
latitude
и/илиlongitude
в таблицу accounts, генерируется запрос (при условии наличия данных в полеaddress
) на геокодирование (таблицаgeocode_stream
сreverse
=0). -
По факту изменения адреса клиента (без учета изменений в примечании к адресу, указываемых в круглых скобках) в таблице
accounts,
сбрасываются текущие координаты клиента (latitude
/longitude
) и генерируется запрос (при условии наличия данных в полеaddress
) на геокодирование (таблицаgeocode_stream
сreverse
=0). -
Запросы геокодирования обрабатываются демоном geocode, который периодически (один раз в четыре минуты) осуществляет процедуру прямого (получение по адресу географических координат) и обратного (получение по географическим координатам адреса) геокодирования с помощью общедоступных сетевых ресурсов. Результаты выполнения запроса записываются в таблицу
geocode_stream
, в том числе и нормализированный адрес клиента. При этом, результат выполнения запроса считается успешным только в том случае, если получены однозначно качественные данные (с точностью до номера дома). В случае успешного выполнения процедуры прямого геокодирования, зафиксированное положение клиента записывается в таблицу accounts. -
В том случае, если положение клиента на шаге 3 получить не удалось или полученное ранее положение удалено сборщиком мусора (GC, см. п. 5), в мобильном клиенте, при выполнении активности у клиента, предоставляется возможность зафиксировать положение клиента (по-умолчанию, разрешено всем сотрудникам). Также, руководители могут на своих мобильных устройствах уточнять координаты клиента в радиусе до 5 км. и при условии превышения расстояния до клиента точности определения географической координаты. Результат выполнения данных действий попадает в таблицу
h_location
, генерируется запрос на обратное геокодирование (таблицаgeocode_stream
сreverse
=1). Зафиксированное положение клиента записывается в таблицу accounts, и в дальнейшем попадает в выгрузку, описываемую в данном документе. -
Сборка мусора (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_price
s и/или 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_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_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 | Список кодов ролей (допустимо пустое значение). | ||
activity_type_ids | uids_t | activity_types | Список ID типов активностей (допустимо пустое значение). | |
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_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*__.
Для того, чтобы снизить риски несанкционированного доступа к данным, при формирование списка сотрудников рекомендуется соблюдать следующие правила:
-
Передавать в omobus только реально работающих с системой пользователей. В обязательном порядке исключив уволившихся сотрудников.
-
Не использовать практику повторного использования кодов (уникальных идентификаторов) ранее работающих сотрудников. Как временная мера - информировать техническую поддержку об этих фактах для смены пароля учетной записи.
-
Отказаться от массовой практики использования обезличенных учетных записей.
-
Минимизировать практику бездумного предоставления доступа к данным клиентов для сотрудников, которые не нуждаются в этих данных.
Соблюдение выше приведенных рекомендаций позволит не только в значительной степени улучшить контроль над распространением данных, но и уменьшить вероятность проведения внешних атак на систему через скомпрометированные учетные записи.
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_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 — получено подтверждение получения документа.
COPYRIGHT
Разрешено распространение и использование исходного кода с модификациями или без модификаций, с учетом ограничений, указанных в файле COPYRIGHT.
Описание
Описание протокола обмена мастер данными с OMOBUS