Функциональные возможности программы
Введение в EME-БД
ЕМЕ-БД – оригинальная база данных (далее - БД), написанная программистами ЕМЕ самостоятельно на С++ и предназначенная для создания прикладных проектов с развитым пользовательским интерфейсом по принципу одна БД – один проект. EME.WMS представляет собой комплексное решение для автоматизации складской логистики, направленное на повышение эффективности, точности и управляемости складских операций.
Используемые языки программирования в EME.WMS
Сам механизм базы (ядро) и слой прикладных базовых алгоритмов (метапроект), разрабатываются на языке С++. Далее, в качестве надстроек над С++ реализованы два полноценных интерпретируемых языка - это объектно-ориентированный язык ЕМЕ-L (EME Language, он же “емель” или “емеля”) и механизм последовательной выборки и обработки запросов EME-SQL, т.е. полноценный SQL. Также используется язык программирования Java, на котором написан Монитор Заданий - клиент, предназначенный для управления и контроля выполнения заданий в рамках автоматизации складской логистики и складских бизнес-процессов. Java и C# используются для разработки мобильных приложений под Android. Язык программирования Python используется для разработки приложений с использованием технологий искусственного интеллекта.
Структура ЕМЕ-БД
Проекты ЕМЕ-БД состоят из версии компилируемого кода (для краткости просто говорят о версии) и данных (комплект файлов БД). Компилируемый код состоит из dll файлов ядра (директория kernel/exe, исходный код лежит в директории kernel/src) и dll файлов метапроекта (соответственно, metaproj/exe и metaproj/src). Метапроект представляет собой расширение емельных программ на языке С++, то есть программ на внутреннем языке EME-L и обеспечивает работу одной версии с несколькими проектами. Каждому проекту соответствует свой dll – драйвер проекта, входящий в состав метапроекта, и данные БД. Структура базы данных проекта хранится внутри этой же БД. Для этого предусмотрены записи с фиксированными номерами: Запись с номером минус 1 (описание записей), запись с номером минус 2 (описание полей), Запись с номером минус 3 (перечень возможных атрибутов полей).
Транзакции в ЕМЕ-БД
ЕМЕ-БД является транзакционной. Это означает, что рабочая станция формирует файл транзакции и отправляет его на сервер. Только после того, как сервер успешно получил транзакцию, она будет закрыта. Транзакция, как абстрактная категория, представляет собой неразделимую группу операций, которые все вместе переводят БД из одного устойчивого состояния в другое. Под устойчивым состоянием БД подразумевается не только физическая целостность банка данных, но и логическая, прикладная целостность. Скажем, если мы переводим документ накладной в статус “Товар отгружен”, то, в случае, если статус документа записывается только в одном месте – в заголовке накладной, то операции отгрузки товаров по всем строкам документа обязаны быть объединены в одну транзакцию. Их нельзя отделить друг от друга без разрушения логической целостности банка данных (иначе будет расхождение в остатках товаров на складе с суммой операций по всем документам).
В конструкции ЕМЕ-БД транзакция представляет собой буфер данных (в виде блока в памяти или файла на диске), в котором записаны операции физической модификации БД. Транзакция представляет собой массив команд по записи в файлы БД новых значений. В теории БД такой массив команд называют “файл намерений”. Для того, чтобы обеспечить целостность данных при выполнении команд транзакции, буфер транзакции сохраняют на диск. Это позволяет при сбое, в процессе разворачивания транзакции, перезапустить компьютер и повторить разворачивание транзакции еще раз. Доступ к строкам записей ЕМЕ-БД может осуществляться непосредственно по физическому номеру строки в записи.
Ссылки в ЕМЕ-БД
Таким же образом организованы и ссылки – в ЕМЕ-БД все ссылки прямые по физическому номеру строки в ссылаемой записи. Это возможно потому, что транзакции в ЕМЕ-БД являются последовательными (нельзя модифицировать базу, то есть открывать новую транзакцию, не развернув все предыдущие), это исключает конфликты. Открытая транзакция создает новую виртуальную копию БД, называемую в ЕМЕ-БД уровнем данных. Если транзакция успешно закрыта, уровень сохраняется. Уровни нужны для многопоточной работы, разные потоки на рабочей станции могут иметь свои виртуальные копии данных.
Интеграция WMS с ERP
Интеграция WMS с ERP представляет собой автоматизированный механизм обмена данными между системами, позволяющий синхронизировать справочники, документы по движению товаров и изменения характеристик номенклатуры.
Обмен данными осуществляется через транзитную SQL-ориентированную базу данных (Postgres). Протокол обмена строго симметричен: каждая сторона (ERP или WMS) имеет право создавать строки только в своих таблицах.
Процесс обмена строится на сообщениях, которые размещаются в головных и дочерних таблицах:
- Головная таблица: первичный ключ — идентификатор сообщения (ID), который может быть GUID или кодом товара/клиента/заказа.
- Дочерние таблицы: первичный ключ составной — идентификатор строки сообщения (ID) и идентификатор заголовка (HEADER_ID).
Основные компоненты EME-WMS
Ядро и метапроект EME-WMS
Ядро базы данных представляет собой единственный уровень взаимосвязанных библиотек, а также предоставляет функции для доступа к органам диалогов и к ячейкам отчетов. Метапроект обеспечивает работу одной версии с несколькими проектами (хотя обычно одна версия работает с одним проектом). Каждому проекту соответствует свой dll – драйвер проекта, входящий в состав метапроекта, и данные БД. Естественно, что разрабатывать прикладные проекты манипулируя физическими номерами записей и полей неудобно. Поэтому над базовыми ядерными функциями надстраиваются классы доступа к данным на С++. Для чтения и записи данных в ЕМЕ-WMS достаточно указать номер записи, номер поля, номер строки. Это самый нижний уровень для программиста, называемый уровнем ядра БД. Есть еще уровень прикладных классов С++ (классов метапроекта), уровень классов EME-L (язык программирования ЕМЕ, код хранится в БД), уровень запросов к ЕМЕ-БД (язык запросов ЕМЕ на SQL, текст запросов хранится в БД).
Компонент metc-sys
Компонент metc-sys содержит системные классы, реализации которых непосредственно касаются WMS. Например - интерпретатор EME-L, сервер заданий, точки входа для классификаторов веб-объектов, методы вариантов, put/get методы для различных типов данных.
Компонент metc-wms
Компонент metc-wms содержит классы записей базы данных, i-классы, которые отвечают за логику WMS (поиски ячеек, просчет пачки и т.д).
Компонент metd-sys
Компонент metd-sys предоставляет функционал для работы с диалогами в системе EME.WMS.
Компонент metr-sys
Компонент metr-sys содержит классы для формирования отчетов и печатных форм. Печатные формы отличаются от отчетов тем, что печатная форма является одной из функций диалога и вызывается из тулбара диалога кнопкой с изображением принтера. К диалогу можно привязывать несколько печатных форм, тогда для выбора нужной будет открываться меню. Отчет – это самостоятельный модуль программы, который обычно имеет также и свой диалог для выбора параметров отчета. Это внешние отличия печатной формы и отчета. Внутри же и то и другое – совершенно одно и то же, шаблоны отчетов и печатных форм конструируются в Визуальном Редакторе Отчетов и хранятся в базе данных в одной записи.
Компонент metc-clr
Опциональный компонент, который необходим для развертывания 3PL-портала. Данный веб-портал позволяет работать с товарами, принадлежащими разным собственникам (в контексте 3PL собственник пользуется складом как услугой и использует его производственные мощности для хранения товаров). Пользователем веб-портала является сотрудник организации-поклажедателя (собственник товаров). 3PL-портал взаимодействует с Рабочей станцией EME.WMS по REST-API.
Основной функционал:
- Осуществление биллинговых операций.
- Администрирование документов поставки (ASN).
- Администрирование заказов.
- Администрирование перевозок.
- Администрирование перечня артикулов.
- Формирование отчетов по складским операциям (в том числе и в разрезе определенного собственника товара).
Программный состав EME-WMS
- БД (База данных) – структурированное хранилище данных. БД сама по себе не реализует работу склада или другого предприятия, и не реализует кнопки для пользователя.
- Сервер WMS (поддерживает платформы Windows и Linux) — серверное программное обеспечение базы данных EME.
- Сервер ИИ - серверное ПО для ОС Linux, обеспечивающее работу искусственного интеллекта на складе для управления складскими процессами. Сервер WMS работает совместно с сервером ИИ. Сервер ИИ не является предустановленным компонентом, и если он не развернут, то WMS будет работать стабильно, но без функционала ИИ.
- Сервер http (http-сервер) – это сервер для клиентских устройств (Монитор Заданий и ТСД), добавляет цепочку физических событий бизнес-процесса в очередь транзакций.
- Мозговой компьютер (bc) – компонент системы EME.WMS, отвечающий за автоматизацию бизнес-процессов, обработку событий и формирование регламентных заданий.
- Рабочая станция – это специальная программа, которая обеспечивает интерфейс к БД.
- Мобильное приложение для ТСД (Android-приложение) - обеспечивает взаимодействие сотрудника склада с WMS для получения и выполнения приказов. Приложение предоставляет кладовщику необходимую и достаточную информацию о текущем приказе и методике его выполнения на каждом шаге.
- Монитор Заданий - клиентское приложение, предназначенное для управления и контроля выполнения заданий в рамках автоматизации складской логистики и бизнес-процессов в системе EME.WMS.
- Промежуточная SQL-база данных - необходима для интеграции WMS с ERP-системой заказчика или поклажедателя (в случае 3PL-склада).
- Apache Superset - отчетная среда, работающая с аналитической базой данных PostgreSQL: включает настроенные стили ЕМЕ и отчетный модуль склада.
- Емельян - искусственный интеллект компании EME. Функционирует в веб-интерфейсе Нейроконсультанта (независимая от WMS система) и в Мониторе Заданий. Консультирует по EME.WMS согласно документации.
- Веб-портал 3PL (опциональный компонент) - предназначен для обработки заявок поклажедателей на поставку и отгрузку товара, а также для бронирования таймслотов для транспортных средств.
- Хэш-БД (опциональный компонент) - предназначена для работы с марками ЕГАИС и «Честный знак».
- Резервный сервер (опциональный компонент) - это сервер горячего резервирования, запущенный как служба с ключом «/node».
Установка и эксплуатация ПО
Для установки EME.WMS необходимо использовать установочный дистрибутив, переданный менеджером.

Соглашаемся с условиями использования

Выбираем компоненты программы

Выбираем место на диске

Указываем папку в меню Пуск и запускаем процесс установки

Структура папок EME.WMS

При необходимости – ярлыки с необходимыми параметрами
запуска программы настраиваются в файле eme.config.

Новые ярлыки создаются в директории kernel.x64 (ярлык db.exe)
администратором WMS.

Стоимость ПО
Стоимость лицензий на ПО, а также стоимость проектов внедрения и поддержи зависит от требований заказчика.
Для получения коммерческого предложения свяжитесь с нами по электронной почте wms@eme.ru.