Partilhar via


Criar um novo provedor

Para criar um novo provedor, siga os seguintes passos. Também pode usar estes passos para fazer adições a provedores existentes.

Definir arquitetura do provedor

Antes de criar um provedor, é importante compreender o que pretende que o provedor faça e para o que o quer usar. Os provedores têm vários componentes e talvez não precise de todos.

Use a tabela seguinte para determinar os componentes de que necessita.

Condição Componente necessário
O serviço para o qual deseja criar um provedor não tem um conector no Power Automate.
Para mais informações, consulte a Lista de todos os conectores Power Automate.
Crie um conector de cliente ou use um conector genérico.
O seu provedor vai trocar dados entre um serviço externo e o Microsoft Dataverse. O seu provedor vai precisar de uma transformação de provedor. Adicione um componente de transformação de provedor a cada transformação.
O seu provedor vai executar a lógica a partir do estruturador de orquestração. Crie um fluxo Power Automate separado para representar cada uma das ações.
O seu provedor precisa de processar mensagens de um serviço externo. Crie um fluxo Processador de Mensagens do Power Automate .
O seu provedor vai solicitar mensagens de um serviço externo num intervalo regular. Crie um fluxo Extrator de Mensagens do Power Automate .
O seu provedor vai gerar eventos empresariais que não estão atualmente definidos no Intelligent Order Management. Crie uma nova definição de evento empresarial e adicione eventos existentes.

Quando compreende bem as soluções, pode prosseguir com a implementação do seu provedor.

Criar uma solução de provedor

Precisa de concluir as tarefas seguintes nesta seção para criar uma solução de provedor.

  • Defina um provedor personalizado.

  • Adicione uma definição de provedor.

  • Adicione os componentes à sua solução.

Definir um provedor personalizado

Crie uma solução no Power Apps que irá conter os componentes do seu provedor. Para criar uma nova solução no Power Apps, siga os passos em Criar uma solução no Power Apps.

Adicionar uma definição de provedor

Uma definição de provedor contém detalhes sobre o seu provedor. A definição determina a forma como o seu provedor vai aparecer no Catálogo do Provedor.

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

  2. Selecione IOMDefinição de Provedor.

  3. Adicione os seguintes detalhes:

    1. Nome para exibição: o nome que você deseja dar ao seu provedor, por exemplo, "Provedor de teste".

    2. Nome lógico: a chave de exportação do seu provedor.

    3. Descrição: texto para descrever o que seu provedor faz.

  4. Selecione Guardar.

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

  6. Valide se a definição do provedor aparece na solução. Deve ser apresentado um registo com o tipo de componente Definição de Provedor IOM. Se não for apresentado, selecione Adicionar existente e, em seguida, selecione o registo que acabou de criar.

  7. Valide se o seu provedor aparece no Catálogo do Provedor. Se definir o campo Está Ativo como Sim, a sua definição de provedor irá aparecer no Catálogo do Provedor. Abra o Intelligent Order Management. Aceda a Provedores > Catálogo. Verifique se a sua definição de provedor é apresentada.

Adicionar componentes à solução

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

  1. Aceda à sua solução.

  2. Selecione Adicionar existente.

  3. Selecione o tipo de componente do Intelligent Order Management e, em seguida, selecione o registo que acabou de criar.

Criar uma transformação de provedor

Se o seu provedor exigir uma transformação, vai precisar de adicionar um componente de transformação de provedor à sua solução. Talvez seja necessário criar várias transformações.

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

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

  3. Adicione os seguintes detalhes:

    1. Nome para exibição: o nome da transformação do seu provedor, por exemplo, "Transformar ordens de venda".

    2. Nome lógico: O identificador exclusivo do seu provedor. Este valor será 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 fonte: isto campo indica que tipo de dados são recebidos. Existem duas opções: JsonDocument ou Entidade do Dataverse. Se os dados já estiverem no Dataverse, selecione Entidade do Dataverse. Caso contrário, selecione JsonDocument. Estas informações serão usadas no elemento do Power Automate que definir para procurar a transformação.

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

    5. Nome do objeto de destino: o destino do registro que você deseja transformar.

    6. Transformação: O Power Query MQuery Online que será utilizado para transformar os dados de entrada. Para informações sobre o Power Query e a 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 Transofrmação de Definição de Provedor IOM com o nome de transformação. Se não for apresentado, selecione Adicionar existente e, em seguida, selecione o registo que acabou de criar.

Adicionar definições de eventos empresariais

Se o seu provedor for criar ou usar novos eventos empresariais, deve adicionar componentes de Definição de Evento Empresarial da Definição do Provedor IOM à sua solução. Só precisa de adicionar eventos empresariais que ainda não estão no Intelligent Order Management.

Se o evento empresarial que pretende criar ainda não estiver no Intelligent Order Management, pode criar o seu.

  1. Selecione Nova.

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

  3. Adicione os seguintes detalhes:

    1. Nome: o nome do seu evento de negócios.

    2. Provedor: o provedor para o qual você está a criar esta definição de negócio.

    3. Entidade associada: A Dataverse entidade no Intelligent Order Management que é alterada ou afetada quando o evento é criado.

    4. Valor de estado associado: se desejar que o estado da entidade associada seja atualizado quando o evento de negócios for gerado, inclua um valor de estado neste campo.

    5. Valor de estatuto associado: se você quiser que o estatuto de sua entidade associada seja atualizado quando o evento de negócios for gerado, inclua um valor de estatuto neste campo.

  4. Selecione Guardar.

  5. Verifique a sua solução para verificar se o registo de Definição do Evento Empresarial do Provedor IOM é apresentado. Se o registo não aparecer na solução, selecione Adicionar existente e, em seguida, selecione o registo que acabou de criar.

Adicionar um conector

Se o seu provedor precisar de um conector que não esteja disponível no Power Automate, vai precisar de criar o seu próprio conector. Para mais informações, consulte a Lista de todos os conectores Power Automate.

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

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

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

  2. Selecione Adicionar existente.

  3. Selecione o conector que criou.

Tipos de fluxos do Power Automate

Qualquer ação executada no estruturador de orquestração é representada por fluxos do Power Automate. Se quiser que o Power Automate recupere informações específicas ou execute ações específicas, será necessário criar os fluxos para essas ações. Para saber mais sobre Power Automate, consulte Introdução ao Power Automate.

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

Antes de iniciar o processo de criação de fluxos, reveja os tipos de fluxos utilizados no Intelligent Order Management.

Processador de mensagens do provedor

Estes fluxos recebem e processam mensagens de um serviço externo e geram o evento empresarial apropriado para notificar a orquestração do Intelligent Order Management. Estes fluxos são acionados por um serviço externo.

A seguir está um exemplo de estrutura para criar um tipo de processador de mensagens do fluxo do Power Automate.

  1. Defina um acionador do Power Automate. Normalmente, é um ponto final HTTP que é um acionador de webhook (recomendado), um acionador de conector ou um acionador de inserção do Dataverse. O acionador é gerado quando um serviço externo tem dados para enviar ao Intelligent Order Management. Captura de ecrã do acionador para quando é recebido um pedido HTTP.

O Esquema JSON a utilizar no seu acionador HTTP está definido abaixo.

{
    "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. Inicie o processamento de mensagens. Há dois passos envolvidos nesta tarefa.

    1. Inicie o resultado da execução que será utilizado para monitorizar o processamento da mensagem.

    2. Reconheça a mensagem do provedor no Intelligent Order Management para poder monitorizar, repetir e apresentar o estado de processamento. Esta é uma ação do Power Automate que o Intelligent Order Management apresenta. Esta ação é chamada de Reconhecer pedido de mensagem do Provedor no IOM. Esta ação tem os seguintes parâmetros obrigatórios.

      1. PowerAutomateWorkflowId: WorkflowId na definição do manipulador de mensagens. Pode obter isto com uma função composta com workflow()['tags'].

      2. PowerAutomateRunId: O identificador exclusivo para a Power Automate execução que recebeu a mensagem e permite que o pipeline tente novamente o processamento e vincule os registos de execução. Pode obter isto com uma função composta com workflow()['run']?['name'].

      3. ProviderMessageExternalRequestId: um identificador para a mensagem enviada. Se nenhum identificador estiver presente, pode ser gerado um GUID. Este identificador é utilizado pelo pipeline para ajudar a prevenir que o remetente envie mensagens duplicadas. O identificador depende do payload da origem. Por exemplo: concat(triggerOutputs()?['body']?['type']?['name'], '_', triggerOutputs()?['body']?['id']).

Captura de ecrã do ecrã Reconhecer pedido de mensagem do provedor.

  1. A transformação do provedor que definiu anteriormente vai recuperar e transformar os dados de entrada. O Intelligent Order Management fornece um fluxo subordinado de base chamado Transformador do Provedor IOM que vai executar a transformação. Adicione os seguintes detalhes para processar o evento ou a mensagem:

    1. Nome do provedor: o nome do provedor vinculado ao manipulador 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 pesquisa de origem para a transformação a ser executada. 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 pesquisa de destino para a transformação a ser executada. Este valor precisa de ser o mesmo definido na transformação de provedor.

    4. Carga útil: Fornecida ao transformar uma carga 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 do registro: fornecido ao transformar um Dataverse registro. Forneça um Payload ou um valor de ID de Registo, não ambos.
      Captura de ecrã para transformar mensagem com o Power Query Online.

  2. Pode inserir dados no Dataverse usando pedidos HTTP ou a ação Inserir conector do Dataverse. Se estiver a fazer mais de uma inserção e quiser melhorar o desempenho, envolva as inserções num conjunto de alterações para que os pedidos estejam num lote de transações.
    Captura de ecrã do fluxo de mensagens de inserção.

  3. Se quiser que o seu fluxo gere um evento empresarial, pode usar o fluxo subordinado Gerar Evento Empresarial. Adicione os seguintes detalhes.

    1. BusinessEventName: Nome do evento que você deseja gerar.

    2. EntityRecordId: A ID do registro recém-criado e associado ao evento.

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

    1. ProviderMessageRequestExecutionId: A ID de saída do registro criado para acompanhar o progresso do processamento da mensagem.

    2. IsProviderMessageRequestExecutionSuccess: booleano valor para indicar se o processamento foi bem-sucedido.

Extrator de mensagens do provedor

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

Nota

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

De seguida, apresenta-se um exemplo de estrutura para criar um tipo de extrator de mensagens do fluxo do Power Automate.

  1. Use um fluxo de trabalho com 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 foram extraídas com sucesso do provedor 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 essas informações: workflow()['tags']['xrmWorkflowId'].
      captura de ecrã de Obter ponto de verificação.

  3. Crie um pedido publicar HTTP para um provedor externo para solicitar as mensagens. Adicione os seguintes detalhes.

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

    2. URL: O ponto de extremidade do provedor externo.

    3. Corpo: A solicitação JSON deve ter a seguinte fórmula: if(empty(outputs('Get_Checkpoint')?[' body/Checkpoint']), 0, int(outputs('Get_Checkpoint')?[' corpo/Ponto de verificação'])).
      Captura de ecrã de Obter mensagens.

  4. Analise as mensagens obtidas no passo 3. Adicione os seguintes detalhes.

    1. Conteúdo: O corpo recuperado do passo 3.

    2. Esquema: A estrutura do corpo recuperada no passo 3.
      Captura de ecrã de Analisar mensagens.

  5. Processe as mensagens para fazer um ciclo em cada mensagem a partir do passo 4.

  6. Analise cada mensagem dos passos anteriores. Adicione a seguinte informação.

    1. Conteúdo: Item atual de Processar mensagens.

    2. Esquema: Uma única mensagem no formato JSON.
      Captura de ecrã de Processar mensagens 2.

  7. Chame o processador de mensagens do provedor associado que configurou nos pré-requisitos. Adicione a seguinte informação.

    1. fluxo subordinado: Selecione o manipulador de mensagens do provedor.

    2. Mensagem: A mensagem analisada a partir do passo 6.
      Captura de ecrã de Processar mensagens 3.

  8. Guarde o ponto de verificação no Dataverse. Adicione a seguinte informação.

    1. Ponto de verificação: pode ser qualquer valor de cadeia de caracteres (máx. 100). Neste exemplo, esta é o ID da última mensagem processada.

    2. WorkFlowId: Você pode recuperar essa ID adicionando uma função de composição definida como workflow()['tags']['xrmWorkflowId'].
      Captura de ecrã de Processar mensagens 4.

Ação do fornecedor

Os fluxos de ação do provedor são invocados 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 processador de mensagens do provedor e uma ação de provedor é que, embora um processador de mensagens posse notificar o estruturador de orquestração, não pode ser acionado por um mosaico de ação no estruturador de orquestração, enquanto que uma ação de provedor pode.

De seguida, apresenta-se um exemplo de estrutura para um fluxo de ação de provedor do Power Automate.

  1. Comece com um acionador HTTP. As informações seguintes serão passadas em runtime pelo serviço de orquestração. O esquema JSON a seguir será 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. Inicie o processamento de ações.

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

    2. Reconheça o início da execução da ação usando a ação do Dataverse Iniciar Execução de Ação do Provedor. Isto permite que o pipeline monitorize, volte a tentar e apresente o estado de processamento no Intelligent Order Management. Adicione a seguinte informação.

      1. ProviderActionExecutionEventId: Isto valor foi passado para a ação como um parâmetro de entrada no passo 1.

      2. PowerAutomateRunID: A execução exclusiva da Power Automate ação. Isto permite que o pipeline vincule os registos de execução. Obtenha esta informação definindo o campo como uma expressão worflow()['run']?[' nome'] do Power Automate.

  2. Execute a ação.

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

      1. Nome do provedor: o nome do provedor a ser vinculado à ação. O nome deve ser o mesmo que na sua definição de provedor.

      2. Nome do objeto de origem: o nome de origem da transformação a ser executada. Esse 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 pesquisa de destino para a transformação a ser executada. Este nome deve ser o mesmo definido na transformação de provedor.

      4. Carga útil: fornecida ao transformar uma carga 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, não ambos.

      5. ID do registro: fornecido ao transformar um registro de saída Dataverse . Adicione um Payload ou um valor de ID de Registo, não ambos.
        Captura de ecrã para transformar mensagem com o Power Query Online.

    2. Execute todas as ações personalizadas que definiu. Estas são ações que estão presentes no conector do Power Automate que está a usar.

    3. Gere um evento empresarial específico para a ação. Use o fluxo subordinado Gerar Evento Empresarial. Adicione a seguinte informação.

      1. BusinessEventName: O nome do evento que você deseja gerar.

      2. EntityRecordId: A ID do registro associado ao evento.

  3. Conclua a execução da ação e guarde os resultados. Os resultados serão processados pelo estruturador de orquestração. Adicione a seguinte informação.

    1. ExecutionResult: booleano valor para indicar se o processamento foi bem-sucedido.

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

    3. ProviderActionExecutionEventId: esse valor foi passado para a ação como um parâmetro de entrada definido no passo 1.
      Captura de ecrã de Execução completa da ação do provedor.

Fluxo subordinado

Um fluxo subordinadoo é um subfluxo que é referenciado noutros 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 etapas semelhantes.

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

Criar fluxos de cloud

Quando compreende os tipos de fluxos que deseja criar, está pronto para criar fluxos de cloud. Para isso, 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 provedor.

  1. Selecione Novo e, em seguida, selecione Fluxo de Cloud.

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

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

Guardar definição do Power Automate

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

Deve reunir os seguintes pré-requisitos antes de poder guardar os seus fluxos.

  • Para guardar as suas lógicas do Power Automate, precisa de emitir pedidos OData. Para o fazer, precisa de uma conta no PostMan ou num serviço semelhante.

  • Vai precisar de gerar um token de acesso ao seu ambiente Dataverse para emitir pedidos OBTER e PUBLICAR.

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

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

    • Introduza o seguinte comando no PowerShell para obter um token de acesso: az login --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, faça o seguinte.

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

    1. Localize o ID do fluxo de trabalho usando 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.

      2. Execute o Power Automate.

      3. A propriedade xrmWorkflowId dos resultados da execução irá conter o ID do fluxo de trabalho.
        Captura de ecrã do ID do fluxo de trabalho.

      4. Elimine esta ação do fluxo para que não seja executada novamente.

    2. Opcionalmente, pode emitir um pedido Obter OData.

      1. Aceda ao fluxo para o qual pretende guardar o ID de fluxo de trabalho. Localize o identificador exclusivo no URL. Esta é o ID que aparece depois de .. /flows/ no URL.
        Como localizar o identificador exclusivo.

      2. Emita um pedido OData para obter os metadados do fluxo de trabalho. Segue-se um exemplo de pedido OBTER.
        OBTER {Env url}/api/data/v9.1/workflows?$filter=workflowidunique eq '{ID de Fluxo de Trabalho Exclusivo do Power Automate U}'&$select=workflowid,workflowidunique

      3. Guarde a propriedade workflowid devolvida.

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

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

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

  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 provedor: 192350001

    3. Manipulador de mensagens do provedor: 192350000

    4. extrator de mensagens do fornecedor: 192350003

  4. Emita um pedido PUBLICAR para guardar a sua definição do Power Automate. Segue-se um pedido de exemplo.

    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. Valide se o componente de Definição Lógica da Definição de Provedor foi adicionado. Para isso, siga estes passos:

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

    2. Verifique se a Definição Lógica da Definição do Provedor que criou foi adicionada. Se não tiver sido adicionada, selecione Adicionar Existente e, em seguida, adicione o componente que criou.

Guardar referências de ligação

Se o seu provedor usar conectores de cliente do Power Automate, deve concluir os passos seguintes para guardar as referências de ligação à sua solução Power Automate.

  1. Emita um pedido OBTER para obter a suo ID de referência de ligação. Por exemplo:
GET {Env url}/api/data/v9.2/connectionreferences

Se quiser filtrar ainda mais, pode filtrar por nome de referência de 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 se o ID de referência de ligação correta foi obtida, pesquisando pelos seus Dados de Cliente do Power Automate.

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

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

  2. Localize a suo ID da Definição do Provedor. Esta tem o mesmo valor que usou no Pass 2 para guardar suas definições lógicas do Power Automate.

  3. Emita um pedido PUBLICAR para guardar a sua 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 Lógica da Definição de Provedor foi adicionado.

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

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

Partilhar os seus provedores

Se quiser usar a sua definição de provedor noutro ambiente ou partilhar a sua solução, pode exportar a sua solução de provedor. Para mais informações, consulte Exportar soluções.