Поделиться через


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

Примечание

Вместо Azure Active Directory теперь используется Microsoft Entra ID. Подробнее

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

Как протестировать процесс создания

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

Другим быстрым способом публикации примерных сообщений является использование запросов протокола Open Data Protocol (OData).

В обоих примерах обработчик сообщений в Microsoft Dynamics 365 Supply Chain Management обрабатывает сообщения и создает заказы в складской системе.

Совет

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

Одна и та же логика структуры сообщений применяется как к сообщениям о входящих, так и об исходящих заказах на отгрузку:

  • Заголовок заказа

    • Строка заказа 1

    • Строка заказа 2

    • Строка заказа n

  • Полный

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

Необходимые условия

Прежде чем вы сможете работать с этим примером, используя среду Supply Chain Management, вы должны подготовить свою систему следующим образом:

Настройка проверки подлинности для примера

На странице Приложения Microsoft Entra ID назначьте пользователя Администратор клиенту, который используется для аутентификации во время взаимодействия со средой Supply Chain Management из внешнего источника. Альтернативно, назначьте другого пользователя, у которого есть доступ для аутентификации к сообщениям интеграции, например, роль по умолчанию Оператор интеграции складских систем. Если вы используете того же пользователя для импорта основных данных продукта, необходимо добавить дополнительные привилегии, связанные с сущностями основных данных продукта, в роль Оператор интеграции складских систем.

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

Создание сообщений о заказах на отгрузку

Пример простого сообщения о заказе на входящую отгрузку

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

  • MessageId: M1
  • dataAreaId: USMF (Необязательно, в зависимости от компании-пользователя авторизации по умолчанию)
  • SourceSystemId: ERP
  • OrderNumber: IO1
  • ReceivingWarehouseId: 51

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

POST {{resource}}/data/InboundShipmentOrderMessages
{
"MessageId": "{{MessageId}}",
"dataAreaId": "{{dataAreaId}}",
"SourceSystemId": "{{SourceSystem}}",
"OrderNumber": "{{OrderNumber}}",
"ReceivingWarehouseId": "{{Warehouse}}"
}

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

POST {{resource}}/data/InboundShipmentOrderLineMessages
{
"MessageId": "{{MessageId}}",
"dataAreaId": "{{dataAreaId}}",
"SourceSystemId": "{{SourceSystem}}",
"OrderNumber": "{{OrderNumber}}",
"OrderLineNumber": 1,
"ItemNumber": "A0001",
"ExpectedQuantity": 10,
"ExpectedUnitSymbol": "Pcs"
}

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

POST {{resource}}/data/InboundShipmentOrderMessages(MessageId='{{MessageId}}', dataAreaId='{{dataAreaId}}',SourceSystemId='{{SourceSystem}}', OrderNumber='{{OrderNumber}}')/Microsoft.Dynamics.DataEntities.Complete?cross-company=true

Примечание

Значение dataAreaId используется как часть ключа для сопоставления с выпущенными сообщениями заголовка и строк. Поэтому должно быть указано значение dataAreaId. Суффикс ?cross-company=true необходим только для сообщений, в которых компания отличается от компании пользователя по умолчанию, настроенной на странице Приложения Microsoft Entra ID.

Пример простого сообщения о заказе на исходящую отгрузку

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

  • MessageId: M2
  • dataAreaId: USMF (Необязательно, в зависимости от компании-пользователя авторизации по умолчанию)
  • SourceSystemId: ERP
  • OrderNumber: OO1
  • ShipFromWarehouseId: 51
  • ConsigneeName или ReceiverName: Microsoft
  • ConsigneeCountryRegionId или ReceiverCountryRegionId: США

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

POST {{resource}}/data/OutboundShipmentOrderMessages
{
"MessageId": "{{MessageId}}",
"dataAreaId": "{{dataAreaId}}",
"SourceSystemId": "{{SourceSystem}}",
"OrderNumber": "{{OrderNumber}}",
"ShipFromWarehouseId": "{{Warehouse}}",
"ConsigneeName": "{{ConsigneeName}}",
"ConsigneeCountryRegionId": "{{ConsigneeCountryRegionId}}"
}

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

POST {{resource}}/data/OutboundShipmentOrderLineMessages
{
"MessageId": "{{MessageId}}",
"dataAreaId": "{{dataAreaId}}",
"SourceSystemId": "{{SourceSystem}}",
"OrderNumber": "{{OrderNumber}}",
"OrderLineNumber": 1,
"ItemNumber": "A0001",
"OrderedQuantity": 10,
"OrderedUnitSymbol": "Pcs"
}

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

POST {{resource}}/data/OutboundShipmentOrderMessages(MessageId='{{MessageId}}', dataAreaId='{{dataAreaId}}',SourceSystemId='{{SourceSystem}}', OrderNumber='{{OrderNumber}}')/Microsoft.Dynamics.DataEntities.Complete?cross-company=true

Примечание

Значение dataAreaId используется как часть ключа для сопоставления с выпущенными сообщениями заголовка и строк. Поэтому должно быть указано значение dataAreaId. Суффикс ?cross-company=true необходим только для сообщений, в которых компания отличается от компании пользователя по умолчанию, настроенной на странице Приложения Microsoft Entra ID.

Сообщения обработчика сообщений для заказов на отгрузку

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