Criar um novo fornecedor

Para criar um novo fornecedor, siga os seguintes passos. Também pode utilizar estes passos para fazer adições a fornecedores existentes.

Definir arquitetura do fornecedor

Antes de criar um fornecedor, compreenda o que quer que o prestador faça e para que pretende usá-lo. Os fornecedores têm múltiplos componentes e pode não precisar de todos os componentes.

Use a tabela seguinte para determinar quais os componentes de que precisa.

Condição Componente necessário
O serviço para o qual queres criar um fornecedor não tem conector no Power Automate.
Para mais informações, consulte Lista de todos os conectores do Power Automate.
Crie um conector de cliente ou use um conector genérico.
O seu fornecedor troca dados entre um serviço externo e o Microsoft Dataverse. O seu fornecedor precisa de uma transformação de fornecedor. Adicione um componente de transformação de fornecedor a cada transformação.
A lógica do designer de orquestração é executada pelo seu fornecedor. Crie um fluxo do Power Automate separado para representar cada uma das ações.
O seu fornecedor precisa de processar mensagens de um serviço externo. Crie um fluxo Processador de Mensagens do Power Automate.
O seu fornecedor recebe mensagens de um serviço externo a intervalos regulares. Crie um fluxo Extrator de Mensagens do Power Automate.
O seu fornecedor levanta eventos empresariais que atualmente não estão definidos na Gestão Inteligente de Encomendas. Crie uma nova definição de evento empresarial e adicione eventos existentes.

Quando tiver uma boa compreensão das soluções, prossiga com a implementação do seu fornecedor.

Criar uma solução de fornecedor

Complete as seguintes tarefas para criar uma solução de fornecedor:

  • Defina um fornecedor personalizado.

  • Adicione uma definição de fornecedor.

  • Adicione os componentes à sua solução.

Definir um fornecedor personalizado

Crie uma solução no Power Apps para armazenar os componentes do seu fornecedor. Para os passos para criar uma nova solução no Power Apps, veja Criar uma solução no Power Apps.

Adicionar uma definição de fornecedor

Uma definição de fornecedor contém detalhes sobre o seu fornecedor. A definição determina como o seu prestador aparece no Catálogo de Prestadores.

  1. Na solução de fornecedor que criou, selecione Novo.

  2. Selecione IOMDefinição de Fornecedor.

  3. Adicione os seguintes detalhes:

    • Nome de exibição: O nome que pretende dar ao seu fornecedor, por exemplo, "Fornecedor de Teste."

    • Nome lógico: a chave de exportação do seu fornecedor.

    • Descrição: texto para descrever o que faz o seu fornecedor.

  4. Selecione Guardar.

  5. Se quiser adicionar um logótipo, carregue a imagem.

  6. Valide se a definição do fornecedor aparece na solução. Deve ser apresentado um registo com o tipo de componente Definição de Fornecedor IOM. Se não aparecer, selecione Adicionar existente e depois selecione o registo que criou.

  7. Valide se o seu fornecedor aparece no Catálogo do Fornecedor. Se definir o campo Está Ativo para Sim, a definição do seu fornecedor aparece no Catálogo de Prestadores. Abra o Intelligent Order Management. Aceda a Fornecedores > Catálogo. Verifique se a sua definição de fornecedor é apresentada.

Adicionar componentes à solução

Depois de criar a sua definição de fornecedor, adicione os componentes de fornecedor à solução.

  1. Aceda à sua solução.

  2. Selecione Adicionar existente.

  3. Selecione o tipo de componente Gestão Inteligente de Encomendas e depois selecione o registo que criou.

Criar uma transformação de fornecedor

Se o seu prestador necessitar de uma transformação, adicione um componente de transformação de prestador à sua solução. Pode ser necessário criar múltiplas transformações.

  1. Na sua solução de fornecedor, selecione Novo.

  2. Selecione Transformação da Definição de Fornecedor IOM.

  3. Adicione os seguintes detalhes:

    1. Nome a apresentar: o nome da sua transformação de fornecedor, por exemplo, "Transformar Ordens de Venda."

    2. Nome lógico: o identificador exclusivo do seu fornecedor. Este valor é a chave de importação e exportação dos dados. Deve começar com o prefixo do editor. Por exemplo, a Microsoft usa o prefixo do editor msdyn_. Exemplos de nome lógico são: msdyn_flexe_fulfillmentorderproduct_orderline e msdyn_flexe_fulfillmentorder_order.

    3. Tipo de origem: este campo indica o tipo de dados recebido. Existem duas opções disponíveis: JsonDocument ou Dataverse Entity. Se os dados já estiverem no Dataverse, selecione Entidade do Dataverse. Caso contrário, selecione JsonDocument. O elemento Power Automate que defines usa esta informação para pesquisar a transformação.

    4. Nome do objeto de origem: O nome dos dados que está a transformar. Se estiver a transformar um registo Dataverse, certifique-se de que o Nome do Objeto de Origem é o mesmo nome da tabela Dataverse.

    5. Nome do objeto de destino: o destino do registo que pretende transformar.

    6. Transformação: a MQuery Online do Power Query que é utilizada para transformar os dados de entrada. Para informações sobre Power Query e MQuery, consulte O que é o Power Query? e Referência da linguagem da fórmula M do Power Query. De seguida, apresenta-se um exemplo de uma MQuery que transforma uma ordem de venda de um serviço de encomenda externo numa ordem de venda no Intelligent Order Management.

shared TransformSourceData =

let

orderItems = Source\[OrderItems\],

orderheader =

Record.FromTable

(

Table.SelectRows

(

Record.ToTable

(

\[

ordernumber = Record.FieldOrDefault(Source, "SellerOrderId", Text.From(Source\[OrderServiceOrderId\])),

name = ordernumber,

msdyn\_ExternalOrderId = Text.From(Source\[OrderServiceOrderId\]),

\#"customerid\_account@odata.bind" = "/accounts(" & Text.From(Source\[accountid\]) & ")",

\#"pricelevelid@odata.bind" = "/pricelevels(" & Text.From(Source\[pricelevelid\]) & ")",

totalamount = if Record.HasFields(Source, "OrderTotal") then Decimal.From(Record.FieldOrDefault(Source\[OrderTotal\], "Amount")) else null,

shipto\_name = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "Name") else null,

shipto\_contactname = shipto\_name,

shipto\_line1 = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "AddressLine1") else null,

shipto\_line2 = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "AddressLine2") else null,

shipto\_line3 = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "AddressLine3") else null,

shipto\_city = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "City") else null,

shipto\_stateorprovince = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "StateOrRegion") else null,

shipto\_country = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "CountryCode") else null,

shipto\_postalcode = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "PostalCode") else null,

shipto\_telephone = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "Phone") else null,

overriddencreatedon = Record.FieldOrDefault(Source, "PurchaseDate")

\]

), each \[Value\] \<\> null

)

),

orderlines = List.Transform(orderItems, each

Record.FromTable

(

Table.SelectRows

(

Record.ToTable

(

\[

isproductoverridden = true,

ispriceoverridden = true,

productdescription = \[OrderItemId\] & "-" & Record.FieldOrDefault(\_, "SellerSKU") & "-" & Record.FieldOrDefault(\_, "Title"),

quantity = \[QuantityOrdered\],

quantityshipped = Record.FieldOrDefault(\_, "QuantityShipped"),

priceperunit = if Record.HasFields(\_, "ItemPrice") then Decimal.From(Record.FieldOrDefault(\[ItemPrice\], "Amount")) else null,

manualdiscountamount = if Record.HasFields(\_, "PromotionDiscount") then Decimal.From(Record.FieldOrDefault(\[PromotionDiscount\], "Amount")) else null,

tax = if Record.HasFields(\_, "ItemTax") then Decimal.From(Record.FieldOrDefault(\[ItemTax\], "Amount")) else null,

shipto\_name = Record.FieldOrDefault(orderheader, "shipto\_name"),

shipto\_contactname = Record.FieldOrDefault(orderheader, "shipto\_contactname"),

shipto\_line1 = Record.FieldOrDefault(orderheader, "shipto\_line1"),

shipto\_line2 = Record.FieldOrDefault(orderheader, "shipto\_line2"),

shipto\_line3 = Record.FieldOrDefault(orderheader, "shipto\_line3"),

shipto\_city = Record.FieldOrDefault(orderheader, "shipto\_city"),

shipto\_stateorprovince = Record.FieldOrDefault(orderheader, "shipto\_stateorprovince"),

shipto\_country = Record.FieldOrDefault(orderheader, "shipto\_country"),

shipto\_postalcode = Record.FieldOrDefault(orderheader, "shipto\_postalcode"),

shipto\_telephone = Record.FieldOrDefault(orderheader, "shipto\_telephone"),

overriddencreatedon = Record.FieldOrDefault(orderheader, "overriddencreatedon")

\]

), each \[Value\] \<\> null

)

)

),

salesorder = Record.AddField(orderheader, "order\_details", orderlines)

in Text.FromBinary(Json.FromValue(salesorder));
  1. Selecione Guardar.

  2. Valide se o componente de transformação aparece corretamente. Deve ser apresentado um tipo de componente de Transformação de Definição de Fornecedor IOM com o nome de transformação. Se não aparecer, selecione Adicionar existente e depois selecione a transformação que criou.

Adicionar definições de eventos empresariais

Se o seu fornecedor criar ou utilizar novos eventos comerciais, adicione componentes de Definição de Evento Comercial do Fornecedor IOM à sua solução. Adicione apenas eventos empresariais que ainda não estejam na Gestão Inteligente de Encomendas.

Se o evento de negócio que pretende criar ainda não está em Gestão Inteligente de Ordens, crie o seu próprio.

  1. Selecione Novo.

  2. Selecione Definição de Evento Empresarial da Definição do Fornecedor IOM.

  3. Adicione os seguintes detalhes:

    1. Nome: o nome do seu evento empresarial.

    2. Fornecedor: o fornecedor para o qual está a criar essa definição empresarial.

    3. Entidade associada: A entidade Dataverse na Gestão Inteligente de Ordens que é alterada ou afetada quando o evento é criado.

    4. Valor de estado associado: Se quiser que o estado da sua entidade associada seja atualizado quando o evento de negócio for levantado, inclua um valor de estado neste campo.

    5. Valor de estado associado: Se quiser que o estado da sua entidade associada seja atualizado quando o evento de negócio for levantado, inclua um valor de estado neste campo.

  4. Selecione Guardar.

  5. Verifique a sua solução para verificar se o registo de Definição do Evento Empresarial do Fornecedor IOM é apresentado. Se o registo não aparecer na solução, selecione Adicionar existente e depois selecione o registo que criou.

Adicionar um conector

Se o seu fornecedor precisar de um conector que não está disponível no Power Automate, crie o seu próprio conector. Para mais informações, consulte a Lista de todos os conectores do Power Automate.

Para criar o seu próprio conector do Power Automate, siga os passos indicados em Descrição geral de conectores personalizados.

Depois de criar o conector personalizado, adicione-o à solução de fornecedor como um componente.

  1. Aceda à sua solução de fornecedor.

  2. Selecione Adicionar existente.

  3. Selecione o conector que criou.

Tipos de fluxos do Power Automate

Os fluxos do Power Automate representam qualquer ação que execute no designer de orquestração. Se quiser que o Power Automate recupere informação específica ou execute ações específicas, precisa de criar os fluxos para essas ações. Para saber mais sobre o Power Automate, consulte Introdução ao Power Automate.

Adicione os seus fluxos como componentes de Definição Lógica de Definição de Fornecedor ao seu fornecedor.

Antes de iniciar o processo de criação de fluxos, reveja os tipos de fluxos que a Gestão Inteligente de Ordens utiliza.

Processador de mensagens do fornecedor

Estes fluxos recebem e processam mensagens de um serviço externo. Criam o evento comercial adequado para notificar a orquestração do Intelligent Order Management. Um serviço externo desencadeia estes fluxos.

O exemplo seguinte mostra a estrutura para criar um tipo de fluxo do Power Automate que atua como manipulador de mensagens.

  1. Defina um acionador do Power Automate. Normalmente, este acionador é um ponto final HTTP que é um acionador de webhook (recomendado), um acionador de conector ou um acionador de inserção do Dataverse. Um serviço externo ativa o gatilho quando tem dados para enviar à Gestão Inteligente de Encomendas.

Captura de ecrã do trigger quando um pedido HTTP é recebido.

Use o seguinte Esquema JSON no seu gatilho HTTP.

{
    "type": "object",
    "properties": {
        "text": {
            "title": "ProviderActionExecutionEventId",
            "type": "string",
            "x-ms-dynamically-added": true,
            "description": "Please enter your input",
            "x-ms-content-hint": "TEXT"
        },
        "text_1": {
            "title": "EntityRecordId",
            "type": "string",
            "x-ms-dynamically-added": true,
            "description": "Please enter your input",
            "x-ms-content-hint": "TEXT"
        }
    },
    "required": [
        "text",
        "text_1"
    ]
}
  1. Inicialize o processamento de mensagens. Esta tarefa envolve dois passos.

    1. Inicialize o resultado da execução que monitoriza o processamento da mensagem.

    2. Reconheça a mensagem do fornecedor no Intelligent Order Management para poder monitorizar, repetir e apresentar o estado de processamento. Este passo é uma ação do Power Automate que é introduzida pela Gestão Inteligente de Pedidos. Esta ação é denominada Reconhecer pedido de mensagem do fornecedor no IOM. Esta ação tem os seguintes parâmetros obrigatórios.

      1. PowerAutomateWorkflowId: WorkflowId na definição de processador de mensagens. Recupere este valor usando uma função compose com workflow()['tags'].

      2. PowerAutomateRunId: O identificador único da execução do Power Automate que recebeu a mensagem. Este identificador permite ao pipeline tentar novamente o processamento e ligar os registos de execução. Recupere este valor usando uma função compose com workflow()['run']?['name'].

      3. ProviderMessageExternalRequestId: um identificador para a mensagem enviada. Se não houver identificador presente, gere um GUID. O pipeline utiliza este identificador para ajudar a impedir que o remetente envie mensagens duplicadas. O identificador depende da carga útil de origem. Por exemplo: concat(triggerOutputs()?['body']?['type']?['name'], '_', triggerOutputs()?['body']?['ID']).

Captura de ecrã do pedido de mensagem de confirmação do fornecedor.

  1. A transformação do fornecedor que definiu anteriormente recupera os dados de entrada e transforma-os. O Intelligent Order Management fornece um fluxo subordinado padrão denominado Transformador de Fornecedor do IOM que executa a transformação. Adicione os seguintes detalhes para processar o evento ou a mensagem:

    1. Nome do fornecedor: o nome do fornecedor associado ao processador de mensagens. Este valor deve ter o mesmo nome que a transformação de provedor.

    2. Nome do objeto de origem: o valor da chave de procura de origem para a transformação a ser efetuada. Este valor precisa de ser o mesmo que o nome do objeto de origem definido na transformação de provedor.

    3. Nome do objeto de destino: o valor da chave de procura de destino para a transformação a ser efetuada. Este valor precisa de ser o mesmo definido na transformação de fornecedor.

    4. Payload: fornecido ao transformar um payload JSON. O Power Automate requer que os parâmetros sejam passados como uma cadeia serializada. Forneça um Payload ou um valor de ID de Registo, não ambos.

    5. ID de Registo: fornecido ao transformar um registo do Dataverse. Forneça um Payload ou um valor de ID de Registo, mas não ambos.

Captura de ecrã da mensagem de transformação com o Power Query Online.

  1. Pode inserir dados no Dataverse utilizando pedidos HTTP ou a ação Inserir do conector do Dataverse. Se estiver a fazer mais do que uma inserção e quiser melhorar o desempenho, agrupe as inserções num changeset para que os pedidos estejam num lote de transações.

Captura de ecrã do fluxo de mensagens inseridas.

  1. Se quiser que o seu fluxo gere um evento empresarial, use o subfluxo Raise Business Event. Adicione os seguintes detalhes.

    1. BusinessEventName: nome do evento que pretende gerar.

    2. EntityRecordId: O ID do registo criado e associado ao evento.

  2. Atualize o estado de processamento de mensagens utilizando a ação Atualizar Estado do Pedido de Mensagens do Fornecedor para guardar o resultado da execução do processamento. Adicione os seguintes detalhes.

    1. ProviderMessageRequestExecutionId: o ID de saída do registo criado para monitorizar o progresso do processamento de mensagens.

    2. IsProviderMessageRequestExecutionSuccess: valor booleano para indicar se o processamento teve êxito.

Extrator de mensagens do fornecedor

Os extratores de mensagens do fornecedor são fluxos do Power Automate que extraem mensagens num intervalo definido regularmente a partir de um serviço externo.

Nota

Um processador de mensagens é um pré-requisito para um fluxo de extrator de mensagens.

O exemplo seguinte mostra a estrutura para criar um fluxo do tipo coletor de mensagens no Power Automate.

  1. Utilize um fluxo de trabalho de periodicidade para agendar um acionador.

  2. Obtenha um ponto de verificação a partir do Dataverse. Os pontos de verificação monitorizam as mensagens que o fluxo extrai com êxito do fornecedor externo. Adicione os seguintes detalhes.

    1. Nome da ação: nome do ponto de verificação.

    2. WorkflowId: Defina a seguinte função de composição para recuperar esta informação: workflow()['tags']['xrmWorkflowId'].

Captura de ecrã de Get checkpoint.

  1. Crie um pedido HTTP POST para um fornecedor externo para extrair as mensagens. Adicione os seguintes detalhes.

    1. Método: defina este campo como POST.

    2. URL: o ponto final externo do fornecedor.

    3. Corpo: O pedido JSON deve ter a seguinte fórmula: if(empty(outputs('Get_Checkpoint')?['body/Checkpoint']), 0, int(outputs('Get_Checkpoint')?['body/Checkpoint'])).

Captura de ecrã das mensagens Pull.

  1. Analisa as mensagens que o fluxo traz no passo 3. Adicione os seguintes detalhes.

    1. Conteúdo: o corpo obtido no passo 3.

    2. Esquema: a estrutura do corpo obtido no passo 3.

Captura de ecrã das mensagens de parsing.

  1. Processe as mensagens para percorrer em ciclo cada mensagem do passo 4.

  2. Analise cada mensagem dos passos anteriores. Adicione as seguintes informações.

    1. Conteúdo: item atual de Processar Mensagens.

    2. Esquema: uma única mensagem no formato JSON.

Captura de ecrã das mensagens de processo 2.

  1. Chame o processador de mensagens do fornecedor associado que configurou nos pré-requisitos. Adicione as seguintes informações.

    1. Fluxo subordinado: selecione o processador de mensagens do fornecedor.

    2. Mensagem: a mensagem analisada do passo 6.

Captura de ecrã das mensagens do Processo 3.

  1. Guarde o ponto de verificação no Dataverse. Adicione as seguintes informações.

    1. Ponto de controlo: Este valor pode ser qualquer valor de cadeia (máximo 100). Neste exemplo, este valor é o ID da última mensagem processada.

    2. WorkFlowId: Pode obter este ID adicionando a função compose a workflow()['tags']['xrmWorkflowId'].

Captura de ecrã das mensagens de Processo 4.

Ação do fornecedor

Invoque fluxos de ação do fornecedor a partir do estruturador de orquestração. Estes fluxos fazem normalmente chamadas a partir do Intelligent Order Management para serviços externos.

A principal diferença entre um manipulador de mensagens de fornecedor e uma ação de fornecedor é que, embora um manipulador de mensagens possa notificar o designer de orquestração, não pode ser desencadeado por um tile de ação no designer de orquestração. Uma ação de provedor pode ser desencadeada por um painel de ação.

O exemplo seguinte mostra a estrutura para um fluxo de ação de fornecedor no Power Automate.

  1. Comece com um acionador HTTP. O serviço de orquestração transmite a seguinte informação em tempo de execução. O seguinte esquema JSON é utilizado para o corpo:
{
    "type": "object",
    "properties": {
        "text": {
            "title": "ProviderActionExecutionEventId",
            "type": "string",
            "x-ms-dynamically-added": true,
            "description": "Please enter your input",
            "x-ms-content-hint": "TEXT"
        },
        "text_1": {
            "title": "EntityRecordId",
            "type": "string",
            "x-ms-dynamically-added": true,
            "description": "Please enter your input",
            "x-ms-content-hint": "TEXT"
        }
    },
    "required": [
        "text",
        "text_1"
    ]
}
  1. Inicialize o processamento de ações.

    1. Inicialize o resultado da execução e quaisquer outras variáveis de processamento.

    2. Reconheça o início da execução da ação utilizando a ação do Dataverse Iniciar Execução de Ação do Fornecedor. Esta etapa permite que o pipeline acompanhe, repita e mostre o estado de processamento dentro da Gestão Inteligente de Encomendas. Adicione as seguintes informações.

      1. ProviderActionExecutionEventId: A ação recebe este valor como parâmetro de entrada no passo 1.

      2. PowerAutomateRunID: a execução exclusiva da ação do Power Automate. Este valor permite que o pipeline associe os registos de execução. Obtenha esta informação ao configurar o campo para uma expressão do Power Automate worflow()['run']?['name'].

  2. Execute a ação.

    1. Se necessário, transforme os registos utilizando o fluxo subordinado Transformar Mensagem com o Power Query Online.

      1. Nome do prestador: O nome do prestador a associar à ação. O nome deve ser o mesmo que o da definição de fornecedor.

      2. Nome do objeto de origem: o nome de origem da transformação a executar. Este nome deve ser o mesmo objeto de origem definido na sua transformação do Power Automate.

      3. Nome do objeto de destino: o valor da chave de procura de destino para a transformação a ser efetuada. Este nome deve ser o mesmo definido na transformação de provedor.

      4. Payload: fornecido ao transformar um payload JSON de entrada. O Power Automate requer que os parâmetros sejam passados como uma cadeia serializada. Adicione um Payload ou um valor de ID de Registo, mas não ambos.

      5. ID de Registo: fornecido ao transformar um registo de saída do Dataverse. Adicione um Payload ou um valor de ID de Registo, mas não ambos.

      Captura de ecrã da mensagem de transformação com o Power Query Online.

    2. Executa todas as ações personalizadas que definires. Estas ações estão presentes no conector Power Automate que está a usar.

    3. Gere um evento empresarial específico para a ação. Utilize o fluxo subordinado Gerar Evento Empresarial. Adicione as seguintes informações.

      1. BusinessEventName: o nome do evento que pretende gerar.

      2. EntityRecordId: o ID do registo associado ao evento.

  3. Conclua a execução da ação e guarde os resultados. O designer de orquestração processa os resultados. Adicione as seguintes informações.

    1. ExecutionResult: valor booleano para indicar se o processamento teve êxito.

    2. ExecutionDetails: detalhes de registo opcionais para fins de teste e depuração.

    3. ProviderActionExecutionEventId: A ação recebe este valor como parâmetro de entrada que define no passo 1.

Captura de ecrã da execução completa da ação do fornecedor.

Fluxo subordinado

Um fluxo subordinado é um subfluxo que é referenciado por outros fluxos do Power Automate. É útil definir um fluxo subordinado se houver alguns passos que repete em várias áreas. Não há um modelo específico ou um processo recomendado para fluxos subordinados, pois devem ser utilizados principalmente para a conveniência de consolidação de passos semelhantes.

Os fluxos subordinados do fornecedor não podem chamar outros fluxos subordinados do fornecedor.

Criar fluxos de cloud

Quando compreenderes os tipos de fluxos que queres criar, estás pronto para criar fluxos na cloud. Para tal, siga estes passos:

  1. Abra a solução predefinida no seu ambiente Power Apps.

Importante

Não adicione estas soluções à sua solução de fornecedor.

  1. Selecione Novo e depois selecione Fluxo da Nuvem.

  2. Crie o seu fluxo do Power Automate. Utilize os modelos na secção anterior para referência.

  3. Consulte a secção seguinte para guardar os seus fluxos.

Guardar a definição do Power Automate

Depois de criar os seus fluxos, guarde-os como componentes Definição de Lógica de Provedor. Este tipo de componente fornece ao Intelligent Order Management as ações a serem implementadas durante a ativação do fornecedor.

Antes de poderes guardar os teus fluxos, certifica-te de que tens os seguintes pré-requisitos.

  • Para guardar as definições de lógica do Power Automate, precisa de enviar pedidos OData. Para enviar estes pedidos, é necessário ter uma conta no PostMan ou num serviço semelhante.

  • Precisas de gerar um token de acesso para o teu ambiente Dataverse para enviar pedidos GET e POST.

    • Configure uma conta de Azure com uma subscrição ativa. Se não tiver uma conta ativa, crie uma conta no site do Azure.

    • O PowerShell deve estar instalado. Para mais informações, consulte Instalar o PowerShell.

    • Insira o seguinte comando no PowerShell para obter um token de acesso: az sign in --allow-no-subscriptions account get-access-token --resource=<https://YourDataverseTenantURL.api.crm.dynamics.com/> --query=accessToken --output=tsv \| Set-Clipboard.

Para guardar a sua definição do Power Automate, siga estes passos:

  1. Localize o ID do fluxo de trabalho do fluxo do Power Automate que pretende guardar. Faça uma das seguintes opções.

    1. Localize o ID do fluxo de trabalho utilizando uma ação do Power Automate.

      1. Crie uma ação composta com a expressão workflow() no final do seu fluxo do Power Automate.

      Captura de ecrã da ação Compor.

      1. Execute o Power Automate.

      2. A propriedade xrmWorkflowId dos resultados de execução contém o ID do workflow.

      Captura de ecrã do ID do fluxo de trabalho.

      1. Remova esta ação para que não seja executada novamente no fluxo.
    2. Opcionalmente, pode enviar um pedido de Get OData.

      1. Aceda ao fluxo para o qual pretende guardar o ID de fluxo de trabalho. Localize o identificador exclusivo no URL. Este ID é apresentado depois de ../flows/ no URL.

      Captura de ecrã de como encontrar um identificador único.

      1. Envie um pedido OData para recuperar os metadados do fluxo de trabalho. O exemplo seguinte mostra um pedido GET.
        GET {Env url}/api/data/v9.1/workflows?$filter=workflowidunique eq '{Unique Workflow Id from the Power Automate U}'&$select=workflowid,workflowidunique

      2. Guarde a propriedade workflowid devolvida.

  2. Localize o ID da definição do fornecedor.

    1. Selecione a definição de fornecedor para a qual pretende guardar o fluxo.

    2. Copie o ID de definição do fornecedor a partir do URL. Esta parte do URL é .. /id={número de exemplo}/.

    Captura de ecrã de como encontrar o ID de definição do fornecedor.

  3. Anote o valor do conjunto de opções para o tipo do Power Automate que está a guardar.

    1. Fluxo subordinado: 192350002

    2. Ação do fornecedor: 192350001

    3. Processador de mensagens do fornecedor: 192350000

    4. Extrator de mensagens do fornecedor: 192350003

  4. Envie um pedido POST para guardar a sua definição do Power Automate. O exemplo seguinte mostra o pedido.

    POST: {Env url}/api/data/v9.1/msdyn\_SaveProviderDefinitionLogicDefinition  
    Body:  
    {

"ProviderDefinitionId": "{ProviderId previously found}",

"WorkflowId": "{Power Automate WorkflowId previously found}",

"LogicalName": "{Export prefix \_ Power Automate Export Name}",

"LogicType": {Logic Type},

"MaxRetryAttempts": {Max number of attempts},

"TimeoutMinutes": {Timeout number ex: 5}

}
  1. Verifique se o seu componente de Definição de Lógica de Definição de Fornecedor está na solução. Para fazer esta verificação, siga estes passos:

    1. Aceda à sua solução de fornecedor.

    2. Verifique se a Lógica de Definição do Provedor que você criou está na solução. Se não estiver na solução, selecione Adicionar Existente e depois adicione o componente que criou.

Guardar referências de ligação

Se o seu fornecedor utiliza conectores Power Automate para clientes, complete os seguintes passos para guardar referências de ligação à sua solução Power Automate.

  1. Envie um pedido GET para recuperar o seu ID de referência de ligação. Por exemplo:
GET {Env url}/api/data/v9.2/connectionreferences

Se quiseres filtrar mais, filtra pelo nome da referência da ligação. Por exemplo:

    {Env url}/api/data/v9.2/connectionreferences?$[connectionreferences?$filter=connectionreferencedisplayname](https://orgdb90e3a2.api.crm10.dynamics.com/api/data/v9.2/connectionreferences?$filter=connectionreferencedisplayname) eq 'Provider Example'&$select=connectionreferencelogicalname,connectionreferencedisplayname,connectionreferenceid,connectorid

  1. Valide que o ID de referência de ligação correto é recuperado pesquisando os Dados do Cliente do Power Automate.

    1. Aceda ao componente Definição Lógica da Definição de Fornecedor que guardou anteriormente.

    2. Verifique os Dados do Cliente para verificar se connectionReferenceLogicalName aparece.

  2. Localize o seu ID da Definição de Fornecedor. Este valor é o mesmo que usaste no Passo 2 para guardar as definições lógicas do Power Automate.

  3. Envia um pedido POST para guardar a tua referência de ligação. Por exemplo:

POST {Env url}/api/data/v9.1/msdyn\_SaveProviderDefinitionConnectionReference  
    Body:  
    {

"ProviderDefinitionId": "{ProviderId previously found}",

"ConnectionReferenceId": "{Connection reference id previously found}"

}
  1. Valide se o componente de Definição de Lógica de Definição de Fornecedor foi adicionado.

    1. Aceda à sua solução de provedor.

    2. Verifique se o componente de referência da Definição de Lógica de Definição de Fornecedor que criou foi adicionado. Se não foi adicionado, selecione Adicionar Existente e adicione o componente que criou.

Partilhar os seus fornecedores

Se quiser usar a definição do seu fornecedor noutro ambiente ou partilhar a sua solução, exporte a solução do seu fornecedor. Para mais informações, consulte Exportar soluções.