Partilhar via


Exemplo de utilização de ordens de envio de entrada e saída

Nota

O Azure Active Directory é agora o Microsoft Entra ID. Saiba mais

Este artigo fornece um cenário de exemplo que mostra como criar ordens de envio de entrada e de saída através do processamento de mensagens. Utiliza os dados de exemplo padrão associados ao exemplo de entidade legal (empresa) USMF.

Como testar o processo de criação

Para experimentar o processo de criação de ordens de envio de entrada e de saída através de mensagens, defina as opções Ativar a criação manual de mensagens de ordem de envio de saída e Ativar a criação manual de mensagens de ordem de envio de entrada como Sim para um registo do Sistema de origem. Em seguida, pode criar mensagens de encomenda de envio diretamente nas páginas Mensagens de encomenda de envio de saída e Mensagens de encomenda de envio de entrada.

Outra maneira rápida de publicar mensagens de exemplo é usar pedidos OData (Open Data Protocol).

Em ambos os casos de exemplo, o processador de mensagens processa Microsoft Dynamics 365 Supply Chain Management as mensagens e cria as encomendas no sistema de armazém.

Dica

Para ignorar completamente os processos de criação de ordens de envio através de mensagens, pode criar as ordens de envio de entrada e as ordens de envio de saída diretamente nas páginas de encomendas ao permitir as definições Ativar a criação manual de ordens de envio de entrada e Ativar a criação manual de ordens de envio de saída para um sistema de origem.

A mesma lógica de estrutura de mensagens aplica-se às mensagens de ordens de envio de entrada e saída:

  • Cabeçalho da encomenda

    • Linha da encomenda 1

    • Linha da encomenda 2

    • Linha da encomenda n

  • Concluir

Sugestão

Para obter mais exemplos de solicitações HTTP para criar mensagens e integrar dados mestre de inventário e produtos, vá para o repositório dynamics365scm-warehouse no GitHub.

Pré-requisitos

Para poder trabalhar neste exemplo utilizando um ambiente do Supply Chain Management, deverá preparar o seu sistema da seguinte forma:

Configurar a autenticação para o exemplo

Na página Aplicações de Microsoft Entra ID, atribua o utilizador Admin ao cliente utilizado para a autenticação durante a interação com o ambiente Supply Chain Management de uma origem externa. Em alternativa, atribua outro utilizador que tenha acesso de autenticação às mensagens de integração, como a função predefinida Operador de integração do sistema de armazém. Se utilizar o mesmo utilizador como parte da importação de dados globais de produto, terá de adicionar mais privilégios relacionados com as entidades de dados globais de produto à função Operador de integração do sistema de armazém.

Quando publica entidades através de OData, deverá garantir que a empresa predefinida do utilizador corresponde à empresa na qual a entidade será publicada ou que a empresa (valor dataAreaId) é especificada nas mensagens de payload do pedido. De qualquer forma, as mensagens de ordem de envio só poderão ser concluídas se a empresa (valor dataAreaId) for especificada.

Criar mensagens de ordem de envio

Exemplo de uma mensagem simples de ordem de envio de entrada

Para a mensagem de cabeçalho de ordem de envio de entrada InboundShipmentOrderMessages, deverá fornecer pelo menos os seguintes dados:

  • MessageId: M1
  • dataAreaId: USMF (Opcional, dependendo da empresa de utente de autorização padrão)
  • SourceSystemId: ERP
  • OrderNumber: IO1
  • ReceivingWarehouseId: 51

Quando utiliza variáveis do , a mensagem InboundShipmentOrderMessages assemelha-se ao exemplo seguinte.

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

A mensagem InboundShipmentOrderLineMessages assemelha-se ao exemplo seguinte.

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

Para consolidar as mensagens, publique uma mensagem completa para o cabeçalho e linhas. A mensagem completa assemelha-se ao exemplo seguinte.

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

Nota

O valor dataAreaId é utilizado como parte da chave para corresponder ao cabeçalho e mensagens de linha libertados. Por conseguinte, é necessário especificar o valor dataAreaId. O sufixo ?cross-company=true só é obrigatório para mensagens em que a empresa seja diferente da empresa predefinida do utilizador configurada na página Aplicações de Microsoft Entra ID.

Exemplo de uma mensagem simples de ordem de envio de saída

Para a mensagem de cabeçalho de ordem de envio de saída OutboundShipmentOrderMessages, deverá fornecer pelo menos os seguintes dados:

  • MessageId: M2
  • dataAreaId: USMF (Opcional, dependendo da empresa de utente de autorização padrão)
  • SourceSystemId: ERP
  • OrderNumber: OO1
  • ShipFromWarehouseId: 51
  • ConsigneeName ou ReceiverName: Microsoft
  • ConsigneeCountryRegionId ou ReceiverCountryRegionId: EUA

Quando utiliza variáveis do , a mensagem OutboundShipmentOrderMessages assemelha-se ao exemplo seguinte.

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

A mensagem OutboundShipmentOrderLineMessages assemelha-se ao exemplo seguinte.

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

Para consolidar as mensagens, publique uma mensagem completa para o cabeçalho. A mensagem completa assemelha-se ao exemplo seguinte.

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

Nota

O valor dataAreaId é utilizado como parte da chave para corresponder ao cabeçalho e mensagens de linha libertados. Por conseguinte, é necessário especificar o valor dataAreaId. O sufixo ?cross-company=true só é obrigatório para mensagens em que a empresa seja diferente da empresa predefinida do utilizador configurada na página Aplicações de Microsoft Entra ID.

Mensagens do processador de mensagens para ordens de envio

Após a importação dos dois documentos para a fila de mensagens, deverá utilizar o processador de mensagens para os processar e criar as ordens de envio de entrada e saída reais.