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. Saber 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, é possível criar mensagens de ordens de transporte diretamente nas páginas Mensagens de ordens de transporte de saída e Mensagens de ordens de transporte 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 no Microsoft Dynamics 365 Supply Chain Management processa as mensagens e cria as ordens no sistema do 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

Os dados de exemplo fornecidos neste artigo utilizam um processo que não depende da empresa predefinida para autorizar utilizadores. Por conseguinte, as mensagens deverão incluir um valor dataAreaId.

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, conforme a empresa predefinida do utilizador de autorizaçã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, conforme a empresa predefinida do utilizador de autorizaçã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.