关于使用入站和出站装运订单的示例

注释

Azure Active Directory 现在是 Microsoft Entra ID。 了解详细信息

本文提供一个示例场景,用于显示如何通过消息处理创建入站和出站装运单。 它使用与 USMF 示例法人(公司)关联的标准示例数据。

如何测试创建流程

若要尝试通过消息创建入站和出站装运单的流程,请针对相关源系统记录将启用手动出站装运单消息创建启用手动入站装运单消息创建选项设置为。 然后,您可以直接在 出站货件订单消息入站货件订单消息 页面上创建货件订单消息。

过帐示例消息的另一种快速方法是使用 Open Data Protocol (OData) 请求。

在这两个示例案例中,Microsoft Dynamics 365 Supply Chain Management 中的消息处理器处理消息,并在仓库系统中创建订单。

提示

若要完全跳过通过消息创建装运单的流程,您可以通过允许源系统的启用手动入站装运单创建启用手动出站装运单创建设置,直接在订单页面上创建入站装运单和出站装运单。

相同的消息结构逻辑适用于入站和出站装运单消息:

  • 订单标头

    • 订单行 1

    • 订单行 2

    • 订单行 n

  • 已完成

提示

有关创建消息和集成库存和产品主数据的 HTTP 请求的更多示例,请转到 GitHub 上的 dynamics365scm-warehouse 存储库

先决条件

在使用 Supply Chain Management 环境演练本示例之前,您必须按以下方式准备您的系统:

  • 检查版本要求,并如启用和配置仅仓库管理模式中所述启用该功能。
  • 在安装了标准演示数据的系统中工作,然后选择 USMF 法人。
  • 源系统页面上设置至少一条记录。 此示例场景假设您已设置一个源系统,其中源系统字段设置为 ERP。 有关详细信息,请参阅配置源系统
  • 设置编号规则中所述设置所需的编号规则。

为示例设置身份验证

Microsoft Entra ID 应用程序页面上,将管理员用户分配到在从外部源与 Supply Chain Management 环境交互期间用于身份验证的客户端。 或者,分配另一个对集成消息具有身份验证访问权限的用户,例如默认仓库系统集成操作员角色。 如果您在产品主数据导入过程中使用同一用户,则必须向仓库系统集成操作员角色添加与产品主数据实体相关的更多特权。

当您通过 OData 发布实体时,您必须确保用户的默认公司与实体将发布到的公司匹配,或者该公司(dataAreaId 值)在请求有效负载消息中指定。 无论哪种方式,仅当指定公司(dataAreaId 值)时才能完成装运单消息。

创建装运单消息

简单入站装运单消息示例

对于 InboundShipmentOrderMessages 入站装运单标头消息,您必须至少提供以下数据:

  • MessageIdM1
  • dataAreaIdUSMF(可选,具体取决于默认授权用户公司)
  • SourceSystemIdERP
  • OrderNumberIO1
  • ReceivingWarehouseId51

当您使用 变量时,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 值。 仅公司不同于在 Microsoft Entra ID 应用程序页面上设置的用户默认公司的消息才需要后缀 ?cross-company=true

简单出站装运单消息示例

对于 OutboundShipmentOrderMessages 出站装运单标头消息,您必须至少提供以下数据:

  • MessageIdM2
  • dataAreaIdUSMF(可选,具体取决于默认授权用户公司)
  • SourceSystemIdERP
  • OrderNumberOO1
  • ShipFromWarehouseId51
  • ConsigneeNameReceiverNameMicrosoft
  • ConsigneeCountryRegionIdReceiverCountryRegionIdUSA

当您使用 变量时,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 值。 仅公司不同于在 Microsoft Entra ID 应用程序页面上设置的用户默认公司的消息才需要后缀 ?cross-company=true

装运单的消息处理器消息

在两个单据导入到消息队列中后,您必须使用消息处理器处理它们并创建实际的入站和出站装运单。