Интеграция с системами управления производством независимых разработчиков
Некоторые производственные организации, использующие Microsoft Dynamics 365 Supply Chain Management, используют собственные функции в Dynamics 365 для управления производственными мероприятиями для станков, оборудования и персонала. Однако в других производственных организациях, особенно в случае сложных производственных требований, вместо этого используются системы управления производством (MES) стороннего разработчика. Организации могут выбрать решение MES третьей стороны, поскольку, к примеру, оно специально приспособлено для их вертикальной отрасли.
В интегрированном решении обмен данными выполняется полностью автоматически и происходит в режиме, близком к режиму реального времени. Таким образом, данные остаются актуальными в обеих системах, и ввод данных вручную не является обязательным. Например, когда потребление материалов регистрируется в системе MES, интеграция гарантирует, что то же потребление также регистрируется в Dynamics 365. Следовательно, актуальные записи запасов доступны для других важных процессов, таких как планирование и продажи.
Решение позволяет пользователям Supply Chain Management быстрее, проще и дешевле выполнять интеграцию со сторонними решениями MES. Оно предлагает следующие функции:
- Бизнес-события и интерфейсы, поддерживающие основные процессы управления производством
- Централизованная панель мониторинга, в которой можно отслеживать историю обработки событий и устранять неполадки и исправлять сбойные процессы
На следующем рисунке показана типичная коллекция бизнес-событий, процессов и сообщений, которыми обменивается интегрированное решение.
Включение функции интеграции MES
Прежде чем можно будет использовать эту функцию, администратор должен включить ее в системе, как описано в следующей процедуре.
- Перейдите в раздел Администрирование системы > Настройка > Конфигурация лицензии.
- Убедитесь, что ключ лицензии Время и посещаемость включен (отображается флажок). Этот лицензионный ключ необходим, поскольку он управляет функциональностью и данными системы выполнения производства. Если он не включен, выполните следующие действия:
- Переведите систему в режим обслуживания, как описано в разделе Режим обслуживания.
- На странице Конфигурация лицензии выберите флажок Время и посещаемость.
- Выключите режим обслуживания, как описано в разделе Режим обслуживания
- Перейдите в раздел Администрирование системы > Рабочие области > Управление функциями.
- Используйте рабочую область Управление функциями, чтобы включить функцию Интеграция системы управления производством. (В Supply Chain Management версии 10.0.29, эта функция включена по умолчанию. В Supply Chain Management версии 10.0.32 она является обязательной и не может быть выключена.)
Процессы, доступные для интеграции MES
Для интеграции можно включить любые из следующих процессов или из все.
Наименование процесса | Описание |
---|---|
Запуск в производство производственных заказов и бизнес-события изменения статуса производственного заказа | Этот процесс предоставляет бизнес-событие, которое может прослушивать система MES, для получения сведений о производственных заказах, которые должны быть произведены. Предполагается, что ссылочные данные, связанные с производственным заказом, предоставляются от Supply Chain Management системе MES через протокол OData (Open Data Protocol) или сущности данных. |
Запустить производственный заказ | Этот процесс обеспечивает Supply Chain Management сведениями о производственных заказах, которые запускаются с помощью системы MES. Это гарантирует, что обе системы имеют актуальное представление всех производственных действий. |
Сообщение о произведенном или списанном количестве | Этот процесс обеспечивает Supply Chain Management сведениями о количестве товара и количестве брака, сообщенных для производственного задания с помощью системы MES. Это гарантирует, что супервизоры цеха имеют актуальное представление хода выполнения плана производства. |
Сообщение о потреблении сырья | Этот процесс обеспечивает Supply Chain Management сведениями из системы MES о количестве потребленных материалов. Он делает актуальные записи запасов доступными для других важных процессов, таких как планирование и продажи. |
Сообщение о времени, затраченном на операцию | Этот процесс обеспечивает Supply Chain Management сведениями о времени, которое используется для определенной операции. |
Завершить производственный заказ | Этот процесс информирует Supply Chain Management, что система MES обновила производственный заказ до его последнего статуса Завершено. Этот статус указывает, что в производственном заказе больше не будет произведено никаких количеств. |
Мониторинг входящих сообщений
Чтобы отслеживать входящие сообщения MES в системе, перейдите Управление производством > Настройка > Управление производством > Интеграция систем управления производством.
Все сообщения для конкретного производственного заказа обрабатываются в последовательности их получения. Однако сообщения для других производственных заказов не могут быть обработаны в полученной последовательности, поскольку пакетные задания обрабатываются параллельно. В случае сбоя пакетное задание будет пытаться обработать каждое сообщение три раза, прежде чем устанавливать статус Сбой.
Страница Интеграция систем управления производством функционирует так же, как страница Сообщения обработчика сообщений и представляет очень схожую функциональность. (Он даже показывает сообщения MES в дополнение к сообщениям других типов.) Сведения о том, как использовать любую страницу для просмотра сообщений, поиска и исправления сообщений с ошибкой и т. д., см страницу сообщений обработчика сообщений
Вызов API
Для вызова API-интерфейса интеграции системы MES отправьте запрос POST
на следующий URL-адрес конечной точки:
/api/services/SysMessageServices/SysMessageService/SendMessage
Тело отправленного запроса должно быть похоже на следующий пример. Замените значения для _companyId
, _messageType
и _messageContent
на требуемые. Сведения о различных типах сообщений, поддерживаемых интерфейсом API, и о проектировании их содержимого см. в следующем разделе.
{
"_companyId": "USMF",
"_messageQueue": "JmgMES3P",
"_messageType": "ProdProductionOrderReportFinished",
"_messageContent":
"{\"ProductionOrderNumber\": \"P000123\", \"ReportFinishedLines\": [{\"ItemNumber\": \"A0001\", \"ReportedGoodQuantity\": 10, \"ReportAsFinishedDate\": \"2021-01-01\"}]}"
}
Типы и содержимое сообщений API
В этом разделе описывается каждый тип сообщений, которыми можно обмениваться через API интеграции с системой MES.
Сообщение о запуске производственного заказа
Для сообщения о запуске производственного заказа значение параметра _messageType
равно ProdProductionOrderStart
. В следующей таблице показаны поля, которые поддерживает это сообщение.
Имя поля | Статус | Тип |
---|---|---|
ProductionOrderNumber |
Обязательная аналитика | Строка |
StartedQuantity |
Необязательный | Действующий |
StartedDate |
Необязательный | Дата |
AutomaticBOMConsumptionRule |
Необязательный | Перечисление (FlushingPrincip | Always | Never) |
Сообщение о приемке
Для сообщения о приемке значение _messageType
равно ProdProductionOrderReportFinished
. В следующей таблице показаны поля, которые поддерживает это сообщение.
Имя поля | Статус | Тип |
---|---|---|
ProductionOrderNumber |
Обязательная аналитика | Строка |
ReportFinishedLines |
Обязательная аналитика | Список строк (по крайней мере одна), каждая из которых содержит полезные данные, которые описаны в следующей таблице |
В следующей таблице показаны поля, поддерживаемые каждой строкой в разделе ReportFinishedLines
сообщения ProdProductionOrderReportFinished
.
Имя поля | Статус | Тип |
---|---|---|
LineNumber |
Необязательный | Действующий |
ItemNumber |
Необязательный | Строка |
ProductionType |
Необязательный | Перечисление (MainItem | Formula | BOM | Co_Product | By_Product | None), расширяемое |
ReportedErrorQuantity |
Необязательный | Действующий |
ReportedGoodQuantity |
Необязательный | Действующий |
ReportedErrorCatchWeightQuantity |
Необязательный | Действующий |
ReportedGoodCatchWeightQuantity |
Необязательный | Действующий |
AcceptError |
Необязательный | Перечисление (Yes | No) |
ErrorCause |
Необязательный | Перечисление (None | Material | Machine | OperatingStaff), расширяемое |
ExecutedDateTime |
Необязательный | DateTime |
ReportAsFinishedDate |
Необязательный | Дата |
AutomaticBOMConsumptionRule |
Необязательный | Перечисление (FlushingPrincip | Always | Never) |
AutomaticRouteConsumptionRule |
Необязательный | Перечисление (RouteDependent | Always | Never) |
RespectFlushingPrincipleDuringOverproduction |
Необязательный | Перечисление (Yes | No) |
JournalNameId |
Необязательный | Строка |
PickingListJournalNameId |
Необязательный | Строка |
RouteCardJournalNameId |
Необязательный | Строка |
FromOperationNumber |
Необязательный | Целое число |
ToOperationNumber |
Необязательно | Целое число |
InventoryLotId |
Необязательный | Строка |
BaseValue |
Необязательный | Строка |
EndJob |
Необязательный | Перечисление (Yes | No) |
EndPickingList |
Необязательный | Перечисление (Yes | No) |
EndRouteCard |
Необязательный | Перечисление (Yes | No) |
PostNow |
Необязательный | Перечисление (Yes | No) |
AutoUpdate |
Необязательный | Перечисление (Yes | No) |
ProductColorId |
Необязательный | Строка |
ProductConfigurationId |
Необязательный | Строка |
ProductSizeId |
Необязательный | Строка |
ProductStyleId |
Необязательный | Строка |
ProductVersionId |
Необязательно | Строка |
ItemBatchNumber |
Необязательно | Строка |
ProductSerialNumber |
Необязательно | Строка |
LicensePlateNumber |
Необязательно | Строка |
InventoryStatusId |
Необязательно | Строка |
ProductionWarehouseId |
Необязательно | Строка |
ProductionSiteId |
Необязательно | Строка |
ProductionWarehouseLocationId |
Необязательно | Строка |
InventoryDimension1 ...InventoryDimension12 |
Необязательно | Строка |
12 расширяемых аналитик (от InventoryDimension1
до InventoryDimension12
) требуют настройки и не всегда используются. Дополнительные сведения о них см. в разделе Добавление новых складских аналитик через расширение.
Сообщение о потреблении материала (лист комплектации)
Для сообщения о потреблении материала (лист комплектации) значение _messageType
равно ProdProductionOrderPickingList
. В следующей таблице показаны поля, которые поддерживает это сообщение.
Имя поля | Статус | Тип |
---|---|---|
ProductionOrderNumber |
Обязательная аналитика | Строка |
JournalNameId |
Необязательно | Строка |
PickingListLines |
Обязательная аналитика | Список строк (по крайней мере одна), каждая из которых содержит полезные данные, которые описаны в следующей таблице |
В следующей таблице показаны поля, поддерживаемые каждой строкой в разделе PickingListLines
сообщения ProdProductionOrderPickingList
.
Имя поля | Статус | Тип |
---|---|---|
ItemNumber |
Обязательная аналитика | Строка |
ConsumptionBOMQuantity |
Необязательно | Действующий |
ProposalBOMQuantity |
Необязательно | Действующий |
ScrapBOMQuantity |
Необязательно | Действующий |
BOMUnitSymbol |
Необязательно | Строка |
ConsumptionInventoryQuantity |
Необязательно | Действующий |
ProposalInventoryQuantity |
Необязательно | Действующий |
ConsumptionCatchWeightQuantity |
Необязательно | Действующий |
ProposalCatchWeightQuantity |
Необязательно | Действующий |
ConsumptionDate |
Необязательно | Дата |
OperationNumber |
Необязательный | Целое число |
LineNumber |
Необязательный | Действующий |
PositionNumber |
Необязательный | Строка |
IsConsumptionEnded |
Необязательный | Перечисление (Yes | No) |
ErrorCause |
Необязательный | Перечисление (None | Material | Machine | OperatingStaff), расширяемое |
InventoryLotId |
Необязательный | Строка |
Время, используемое для сообщения об операции (маршрутная карта)
Для сообщения о времени, используемом для операции (маршрутная карта) значение _messageType
равно ProdProductionOrderRouteCard
. В следующей таблице показаны поля, которые поддерживает это сообщение.
Имя поля | Статус | Тип |
---|---|---|
ProductionOrderNumber |
Обязательная аналитика | Строка |
JournalNameId |
Необязательно | Строка |
RouteCardLines |
Обязательная аналитика | Список строк (по крайней мере одна), каждая из которых содержит полезные данные, которые описаны в следующей таблице |
В следующей таблице показаны поля, поддерживаемые каждой строкой в разделе RouteCardLines
сообщения ProdProductionOrderRouteCard
.
Имя поля | Статус | Тип |
---|---|---|
OperationNumber |
Обязательная аналитика | Целое число |
OperationPriority |
Необязательный | Перечисление (Primary | Secondary1 | Secondary2 | ... | Secondary20) |
OperationId |
Необязательный | Строка |
OperationsResourceId |
Необязательный | Строка |
Worker |
Необязательный | Строка |
HoursRouteCostCategoryId |
Необязательно | Строка |
QuantityRouteCostCategoryId |
Необязательно | Строка |
HourlyRate |
Необязательно | Действующий |
Hours |
Необязательно | Действующий |
GoodQuantity |
Необязательно | Действующий |
ErrorQuantity |
Необязательно | Действующий |
CatchWeightGoodQuantity |
Необязательно | Действующий |
CatchWeightErrorQuantity |
Необязательно | Действующий |
QuantityPrice |
Необязательно | Действующий |
ProcessingPercentage |
Необязательный | Действующий |
ConsumptionDate |
Необязательный | Дата |
TaskType |
Необязательный | Перечисление (QueueBefore | Setup | Process | Overlap | Transport | QueueAfter | Burden) |
ErrorCause |
Необязательный | Перечисление (None | Material | Machine | OperatingStaff), расширяемое |
OperationCompleted |
Необязательный | Перечисление (Yes | No) |
BOMConsumption |
Необязательный | Перечисление (Yes | No) |
ReportAsFinished |
Необязательный | Перечисление (Yes | No) |
Сообщение о завершении производственного заказа
Для сообщения о завершении производственного заказа значение параметра _messageType
равно ProdProductionOrderEnd
. В следующей таблице показаны поля, которые поддерживает это сообщение.
Имя поля | Статус | Тип |
---|---|---|
ProductionOrderNumber |
Обязательная аналитика | Строка |
ExecutedDateTime |
Необязательный | DateTime |
EndedDate |
Необязательный | Дата |
UseTimeAndAttendanceCost |
Необязательный | Перечисление (Yes | No) |
AutoReportAsFinished |
Необязательный | Перечисление (Yes | No) |
AutoUpdate |
Необязательный | Перечисление (Yes | No) |
Другая производственная информация
Сообщения поддерживают действия или события, происходящие в цехе. Они обрабатываются с помощью платформы интеграции MES, которая описывается в этой статье. Дизайн подразумевает, что другие справочные сведения для совместного использования с MES (например, сведения о продукте или спецификация либо маршрут (с определенной настройкой и временем конфигурации), используемые в конкретном производственном заказе) извлекаются из системы с использованием информационных объектов с помощью переноса файлов или OData.
Получение обратной связи о состоянии сообщения
После того как система MES отправила сообщение в Supply Chain Management, для Supply Chain Management может быть уместным вернуть отзыв о состоянии сообщения. Ниже приведены несколько примеров случаев, в которых такое поведение может быть уместным:
- Нет человека, ответственного за постоянный контроль интеграции с системой MES.
- Лицо, ответственное за интеграцию с системой MES, хочет получать уведомления по электронной почте о сбое сообщения, чтобы он знал, что нужно предпринять действие.
- Система MES должна отображать сообщение об ошибке, чтобы сообщить оператору цеха или какому-то сотруднику отдела ИТ о том, что они должны предпринять действие.
- Система MES должна пересчитывать график заказа после того, как она получит сообщение о сбое (например, из-за того, что не удалось запустить производственный заказ).
В этих случаях можно воспользоваться преимуществом стандартной функции оповещения в модуле Supply Chain Management. Для получения сведений о том, как работают стандартные оповещения, см. в следующих ресурсах:
- Статья справки: Обзор оповещений
- Видео: Параметры правила генерации оповещений в приложениях для управления финансами и операциями
Например, можно настроить следующие оповещения, чтобы отправить отзыв о состоянии сообщения:
- Создание бизнес-события ("Послать извне"), которое используется, если сообщение находится в состоянии Сбой.
- Отправьте уведомление и сообщение электронной почты ИТ-администратору или руководителю производственного цеха.