Criar um provedor
Para criar um provedor, conclua as etapas a seguir. Você também pode usar essas etapas para fazer adições a provedores existentes.
Definir a arquitetura do provedor
Antes de criar um provedor, é importante compreender o que você deseja que o provedor faça e para que deseja usá-lo. Os provedores têm vários componentes e talvez você não precise de todos os componentes.
Use a tabela a seguir para determinar quais componentes serão necessários.
Condição | Componente necessário |
---|---|
O serviço para o qual você deseja criar um provedor não tem um conector no Power Automate. Para obter mais informações, consulte a Lista de todos os conectores do Power Automate. |
Crie um conector de cliente ou use um conector genérico. |
Seu provedor vai trocar dados entre um serviço externo e o Microsoft Dataverse. | Seu provedor precisará de uma transformação de provedor. Adicione um componente de transformação de provedor para cada transformação. |
Seu provedor executará a lógica do Designer de Orquestração. | Crie um fluxo separado do Power Automate para representar cada uma das ações. |
Seu provedor precisa processar mensagens de um serviço externo. | Crie um fluxo de manipulador de mensagens do Power Automate. |
Seu provedor extrairá mensagens de um serviço externo em um intervalo regular. | Crie um fluxo de extrator de mensagens do Power Automate. |
Seu provedor acionará eventos de negócios que não estão definidos no momento no Intelligent Order Management. | Crie uma nova definição de evento de negócios e adicione eventos existentes. |
Quando você tem uma boa compreensão das soluções, pode continuar a implementar seu provedor.
Criar uma solução de provedor
Você precisa concluir as seguintes tarefas desta seção para criar uma solução de provedor.
Configure um provedor personalizado.
Adicione uma definição de provedor.
Adicione os componentes à sua solução.
Configurar um provedor personalizado
Crie uma solução no Power Apps contendo os componentes do seu provedor. Para criar uma nova solução no Power Apps, siga as etapas 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 como seu provedor será exibido no catálogo do provedor.
Na solução de provedor criada, selecione Novo.
Selecione Definição de Provedordo IOM.
Adicione os seguintes detalhes:
Nome de exibição: o nome que você deseja dar ao seu provedor, por exemplo, "Provedor de teste".
Nome lógico: a chave de exportação do seu provedor.
Descrição: texto para descrever o que seu provedor faz.
Selecione Salvar.
Se quiser adicionar um logotipo, carregue a imagem.
Valide se a definição de provedor aparece na solução. Deve ser exibido um registro com a Definição de Provedor do IOM do tipo de componente. Se não for exibido, selecione Adicionar existente e selecione o registro que você acabou de criar.
Valide se seu provedor aparece no catálogo do provedor. Se você definir o campo É ativo como Sim, a definição do seu provedor será mostrada no catálogo do provedor. Abra o Intelligent Order Management. Acesse Provedores > Catálogo. Verifique se a definição do provedor é exibida.
Adicionar componentes à solução
Depois de criar a definição do provedor, adicione os componentes do provedor à solução.
Acesse sua solução.
Selecione Adicionar existente.
Selecione o tipo de componente do Intelligent Order Management e, em seguida, selecione o registro que você acabou de criar.
Criar uma transformação de provedor
Se o seu provedor exigir uma transformação, você precisará adicionar um componente de transformação do provedor à sua solução. Talvez seja necessário criar várias transformações.
Na sua solução de provedor, selecione Novo.
Selecione Transformação da Definição de Provedor do IOM.
Adicione os seguintes detalhes:
Nome de exibição: o nome da transformação do seu provedor, por exemplo, "Transformar ordens de venda".
Nome lógico: O identificador exclusivo do seu provedor. Esse valor será a chave de importação e exportação dos dados. Ele 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.
Tipo de fonte: este campo indica que tipo de dados foi recebido. Há duas opções: JsonDocument ou Entidade do Dataverse. Se os dados já estiverem no Dataverse, selecione Entidade do Dataverse. Caso contrário, selecione JsonDocument. Essa informação será usada no elemento do Power Automate definido para pesquisar a transformação.
Nome do objeto de origem: o nome dos dados que você está transformando. Se você estiver transformando um registro do Dataverse, verifique se o Nome do Objeto da Fonte é o mesmo nome da tabela do Dataverse.
Nome do objeto de destino: o destino do registro que você deseja transformar.
Transformação: O Power Query MQuery Online que será usado para transformar os dados de entrada. Para obter informações sobre o Power Query e o MQuery, consulte O que é Power Query? e Referência de linguagem da fórmula M do Power Query. Este é um exemplo de um MQuery que transforma uma ordem de venda de um serviço de ordem externo em uma 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));
Selecione Salvar.
Verifique se o componente de transformação aparece corretamente. Deve ser exibido um tipo de componente de Transformação da Definição de Provedor do IOM com o nome da transformação. Se não for exibido, selecione Adicionar existente e selecione a transformação que você acabou de criar.
Adicionar definições de evento de negócios
Se seu provedor for criar ou usar novos eventos de negócios, você deverá adicionar componentes de Definição de Evento de Negócios da Definição de Provedor do IOM à sua solução. Você só precisa adicionar eventos de negócios que ainda não estejam no Intelligent Order Management.
Se o evento de negócios que você deseja criar ainda não estiver no Intelligent Order Management, você poderá criar o seu próprio.
Selecione Novo.
Selecione Definição de Evento de Negócios da Definição de Provedor do IOM.
Adicione os seguintes detalhes:
Nome: o nome do seu evento de negócios.
Provedor: o provedor para o qual você está criando esta definição de negócios.
Entidade associada: a Dataverse entidade no Intelligent Order Management que é alterada ou afetada quando o evento é criado.
Valor de estado associado: se quiser que o estado da entidade associada seja atualizado quando o evento de negócios for acionado, inclua um valor de estado neste campo.
Valor de status associado: se você quiser que o status da entidade associada seja atualizado quando o evento de negócios for acionado, inclua um valor de status neste campo.
Selecione Salvar.
Verifique sua solução para confirmar se o registro de Definição do Evento de Negócios do Provedor do IOM é exibido. Se o registro não aparecer na solução, selecione Adicionar existente e selecione o registro que você acabou de criar.
Adicionar um conector
Se o seu provedor precisar de um conector que não está disponível no Power Automate, você precisará criar seu próprio conector. Para obter mais informações, consulte a Lista com todos os conectores do Power Automate.
Para criar seu próprio conector do Power Automate, siga as etapas na Visão geral dos conectores personalizados.
Depois de criar o conector personalizado, adicione-o à sua solução de provedor como um componente.
Acesse sua solução de provedor.
Selecione Adicionar existente.
Selecione o conector que você criou.
Tipos de fluxos do Power Automate
Qualquer ação executada no Designer 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, você precisará criar os fluxos para essas ações. Para saber mais sobre o Power Automate, consulte Introdução ao Power Automate.
Adicione seus fluxos como componentes de Definição de Lógica da Definição do Provedor ao seu provedor.
Antes de iniciar o processo de criação de fluxo, revise os tipos de fluxos usados no Intelligent Order Management.
Manipulador de mensagens do provedor
Esses fluxos recebem e processam mensagens de um serviço externo e acionam o evento de negócios adequado para notificar a orquestração do Intelligent Order Management. Esses fluxos são disparados por um serviço externo.
A seguir, há um exemplo de estrutura para criar um tipo de manipulador de mensagens de fluxo do Power Automate.
- Defina uma gatilho do Power Automate. Em geral, é um ponto de extremidade HTTP que é um gatilho de webhook (recomendado), gatilho de conector ou um gatilho de inserção do Dataverse. O gatilho é acionado quando um serviço externo tem dados para enviar ao Intelligent Order Management.
O esquema JSON a ser usado no seu gatilho 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"
]
}
Inicialize o processamento de mensagens. Há duas etapas envolvidas nessa tarefa.
Inicialize o resultado da execução que será usado para rastrear o processamento da mensagem.
Confirme a mensagem do provedor no Intelligent Order Management para que você possa rastrear, repetir e exibir o estado de processamento. Essa é uma ação do Power Automate que o Intelligent Order Management introduz. Esta ação é chamada de Solicitação de mensagem do Provedor de confirmação no IOM. Essa ação tem os seguintes parâmetros obrigatórios.
PowerAutomateWorkflowId: WorkflowId na definição do manipulador de mensagens. É possível recuperar isso tendo uma função de composição com workflow()['tags'].
PowerAutomateRunId: O identificador exclusivo da Power Automate execução que recebeu a mensagem e permite que o pipeline repita o processamento e vincular os logs de execução. É possível recuperar isso tendo uma função de composição com workflow()['run']?['name'].
ProviderMessageExternalRequestId: Um identificador para a mensagem enviada. Se nenhum identificador estiver presente, um GUID poderá ser gerado. Esse identificador é usado pelo pipeline para ajudar a impedir que o remetente envie mensagens duplicadas. O identificador depende da conteúdo da fonte. Por exemplo: concat(triggerOutputs()?['body']?['type']?['name'], '_', triggerOutputs()?['body']?['id']).
A transformação do provedor definida anteriormente recuperará os dados de entrada e os transformará. O Intelligent Order Management fornece um fluxo filho imediato, chamado Transformador do Provedor do IOM, que executará a transformação. Adicione os seguintes detalhes para processar o evento ou a mensagem:
Nome do provedor: o nome do provedor vinculado ao manipulador de mensagens. Esse valor deve ser o mesmo nome da transformação do provedor.
Nome do objeto de origem: o valor da chave de pesquisa da fonte para que a transformação seja executada. Esse valor precisa ser o mesmo do nome do objeto da fonte definido na transformação do provedor.
Nome do objeto de destino: o valor da chave de pesquisa de destino para que a transformação seja executada. Esse valor precisa ser o mesmo valor definido na transformação do provedor.
Conteúdo: fornecido ao transformar um conteúdo JSON. O Power Automate requer que os parâmetros sejam transmitidos como uma cadeia de caracteres serializada. Forneça um Conteúdo ou um valor de ID de Registro, não ambos.
ID de registro: fornecido durante a transformação de um Dataverse registro. Forneça um Conteúdo ou um valor de ID de Registro, não ambos.
Você pode inserir dados no Dataverse usando solicitações HTTP ou a ação Inserir do conector do Dataverse. Se você estiver fazendo mais de uma inserção e quiser melhorar o desempenho, empacote as inserções em um conjunto de alterações para que as solicitações estejam em um lote de transações.
Se você quiser que seu fluxo acione um evento de negócios, você pode usar o fluxo filho Acionar Evento de Negócios. Adicione os detalhes a seguir.
BusinessEventName: nome do evento que você quer acionar.
EntityRecordId: A ID do registro recém-criado e associado ao evento.
Atualize o estado de processamento de mensagens usando a ação Atualizar Status da Solicitação de Mensagem do Provedor para salvar o resultado da execução do processamento. Adicione os detalhes a seguir.
ProviderMessageRequestExecutionId: O ID de saída do registro criado para rastrear o progresso do processamento da mensagem.
Valor IsProviderMessageRequestExecutionSuccess: booliano 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 em um intervalo definido regularmente de um serviço externo.
Observação
Um manipulador de mensagens é um pré-requisito para um fluxo do extrator de mensagens.
A seguir, há um exemplo de estrutura para criar um tipo de extrator de mensagens de fluxo do Power Automate.
Use um fluxo de trabalho de recorrência para agendar um gatilho.
Obtenha um ponto de verificação do Dataverse. Os pontos de verificação acompanham quais mensagens foram extraídas com êxito do provedor externo. Adicione os detalhes a seguir.
Nome da ação: nome do ponto de verificação.
WorkflowId: Defina a seguinte função de composição para recuperar essas informações: workflow()['tags']['xrmWorkflowId'].
Crie uma solicitação POST HTTP para um provedor externo para extrair as mensagens. Adicione os detalhes a seguir.
Método: Defina este campo como POST.
URL: O ponto de extremidade do provedor externo.
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'])).
Analise as mensagens extraídas na etapa 3. Adicione os detalhes a seguir.
Conteúdo: O corpo recuperado de etapa 3.
Esquema: A estrutura do corpo recuperada em etapa 3.
Processe as mensagens para percorrer cada mensagem da etapa 4.
Analise cada mensagem das etapas anteriores. Adicione as informações a seguir.
Conteúdo: Item atual de Process Messages.
Esquema: Uma única mensagem no formato JSON.
Chame o manipulador de mensagens do provedor associado configurado nos pré-requisitos. Adicione as informações a seguir.
fluxo filho: Select o manipulador de mensagens do provedor.
Mensagem: a mensagem analisada a partir do etapa 6.
Salve o ponto de verificação no Dataverse. Adicione as informações a seguir.
Ponto de verificação: pode ser qualquer valor de cadeia de caracteres (máximo de 100). Neste exemplo, é a ID da última mensagem processada.
WorkFlowId: Você pode recuperar essa ID adicionando uma função de composição definida como workflow()['tags']['xrmWorkflowId'].
Ação do provedor
Os fluxos de ação do provedor são invocados no Designer de Orquestração. Esses fluxos normalmente fazem chamadas do Intelligent Order Management para serviços externos.
A principal diferença entre um manipulador de mensagens do provedor e uma ação do provedor é que, embora um manipulador de mensagens possa notificar o Designer de Orquestração, ele não pode ser disparado por um bloco de ação no Designer de Orquestração, enquanto uma ação do provedor pode.
A seguir, um exemplo de estrutura de um fluxo do Power Automate de ações do provedor.
- Comece com um gatilho HTTP. As informações a seguir serão transmitidas no tempo de execução pelo serviço de orquestração. O seguinte esquema JSON será usado no 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"
]
}
Inicialize o processamento de ações.
Inicialize o resultado da execução e qualquer outra variável de processamento.
Confirme o início da execução da ação usando a ação Iniciar Execução da Ação do Provedor do Dataverse. Isso permitirá que o pipeline rastreie, repita e exiba o estado de processamento no Intelligent Order Management. Adicione as informações a seguir.
ProviderActionExecutionEventId: Esse valor foi transmitido para a ação como um parâmetro de entrada no etapa 1.
PowerAutomateRunID: A execução exclusiva da Power Automate ação. Isso permite que o pipeline vincule os logs de execução. Obtenha essas informações definindo o campo como uma expressão worflow()['run']?['name'] do Power Automate.
Execute a ação.
Se necessário, transforme os registros usando o fluxo filho Transformar Mensagem com o Power Query Online.
Nome do provedor: o nome do provedor a ser vinculado à ação. O nome deve ser o mesmo nome da definição do seu provedor.
Nome do objeto de origem: o nome da fonte para que a transformação seja executada. Esse nome deve ser o mesmo objeto de fonte definido na sua transformação do Power Automate.
Nome do objeto de destino: o valor da chave de pesquisa de destino para que a transformação seja executada. Esse nome precisa ser o mesmo valor definido na transformação do provedor.
Conteúdo: fornecido ao transformar um conteúdo JSON de entrada. O Power Automate requer que os parâmetros sejam transmitidos como uma cadeia de caracteres serializada. Adicione um Conteúdo ou um valor de ID de Registro, mas não ambos.
ID de Registro: fornecido ao transformar um registro de saída Dataverse . Adicione um Conteúdo ou um valor de ID de Registro, mas não ambos.
Execute qualquer ação personalizada que você tenha definido. Elas são ações que estão presentes no conector do Power Automate que você está usando.
Acione um evento de negócios específico da ação. Use o fluxo filho Acionar Evento de Negócios. Adicione as informações a seguir.
BusinessEventName: O nome do evento que você deseja levantar.
EntityRecordId: A ID do registro associado ao evento.
Conclua a execução da ação e salve os resultados. Os resultados serão processados pelo Designer de Orquestração. Adicione as informações a seguir.
ExecutionResult: booliano valor para indicar se o processamento foi bem-sucedido.
ExecutionDetails: Detalhes de log opcionais para fins de teste e depuração.
ProviderActionExecutionEventId: esse valor foi transmitido para a ação como um parâmetro de entrada definido no etapa 1.
Fluxo filho
Um fluxo filho é um subfluxo referenciado em outros fluxos do Power Automate. É útil definir um fluxo filho se houver algumas etapas a serem repetidas em várias áreas. Não há um modelo específico ou um processo recomendado para fluxos filhos, pois o objetivo principal é que eles sejam usados de forma conveniente para a consolidação de etapas semelhantes.
Os fluxos filhos do provedor não podem chamar outros fluxos filhos do provedor.
Criar fluxos da nuvem
Quando você entende os tipos de fluxos que deseja criar, está pronto para criar fluxos da nuvem. Para fazer isso, siga estas etapas:
- Abra a solução padrão no seu ambiente do Power Apps.
Importante
Não adicione essas soluções à sua solução de provedor.
Selecione Novo e, em seguida, selecione Fluxo da Nuvem.
Crie seu fluxo do Power Automate. Use os modelos na seção anterior como referência.
Consulte a seção a seguir para salvar os fluxos.
Salvar a definição do Power Automate
Depois de criar os fluxos, você precisa salvá-los como componentes de Definição de Lógica da Definição do Provedor. Esse tipo de componente fornece ao Intelligent Order Management as ações a serem implantadas durante a ativação do provedor.
Você precisa ter os pré-requisitos a seguir antes de poder salvar seus fluxos.
Para salvar suas definições de lógica do Power Automate, será necessário emitir solicitações OData. Para isso, você precisa de uma conta com PostMan ou um serviço semelhante.
Você precisará gerar um token de acesso ao seu ambiente do Dataverse para emitir solicitações GET e POST.
Configure uma conta do Azure com uma subscrição ativa. Se você não tiver uma conta ativa, precisará configurar uma conta no Site do Azure.
O PowerShell deve ser instalado. Para obter mais informações, consulte Instalar o PowerShell.
Digite o comando a seguir 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 salvar sua definição do Power Automate, faça o seguinte.
Localize o ID do fluxo de trabalho do fluxo do Power Automate que deseja salvar. Execute um dos procedimentos a seguir.
Localize o ID do fluxo de trabalho usando uma ação do Power Automate.
Crie uma ação de composição com a expressão workflow() no final do fluxo do Power Automate.
Execute o Power Automate.
A propriedade xrmWorkflowId dos resultados da execução conterá o ID do fluxo de trabalho.
Exclua essa ação do fluxo para que ela não seja executada novamente.
Como opção, você pode emitir uma solicitação Get do OData.
Acesse o fluxo para o qual você deseja salvar o ID do fluxo de trabalho. Localize o identificador exclusivo no URL. Esse é o ID que aparece depois de ../flows/ no URL.
Emita uma solicitação do OData para recuperar os metadados do fluxo de trabalho. Este é um exemplo de solicitação GET.
GET {Env url}/api/data/v9.1/workflows?$filter=workflowidunique eq '{Unique Workflow Id from the Power Automate U}'&$select=workflowid,workflowiduniqueSalve a propriedade workflowid retornada.
Localize o ID da definição do provedor.
Selecione a definição do provedor para a qual você deseja salvar o fluxo.
Copie o ID da definição do provedor no URL. Esta é a parte do URL ../id={example number}/.
Anote o valor definido da opção para o tipo de Power Automate que você está salvando.
fluxo filho: 192350002
Ação do provedor: 192350001
Manipulador de mensagens do provedor: 192350000
extrator de mensagens do provedor: 192350003
Emita uma solicitação POST para salvar sua definição do Power Automate. Este é um exemplo de solicitação.
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}
}
Valide se o componente de definição de lógica da definição do provedor foi adicionado. Para fazer isso, siga estas etapas:
Acesse sua solução de provedor.
Verifique se a definição de lógica da definição do provedor criada foi adicionada. Se não tiver sido adicionada, selecione Adicionar existente e adicione o componente criado.
Salvar referências de conexão
Se o seu provedor usa conectores de clientes do Power Automate, você deve concluir as seguintes etapas para salvar referências de conexão na sua solução do Power Automate.
- Emita uma solicitação GET para recuperar seu ID de referência de conexão. Por exemplo:
GET {Env url}/api/data/v9.2/connectionreferences
Se quiser filtrá-lo ainda mais, você poderá filtrar por nome de referência de conexã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
Verifique se o ID da referência de conexão correto foi recuperado pesquisando os dados do cliente do Power Automate.
Acesse o componente de definição de lógica da definição do provedor salvo anteriormente.
Verifique os dados do cliente para confirmar se connectionReferenceLogicalName aparece.
Localize o ID da definição do seu provedor. Esse é o mesmo valor usado na etapa 2 para salvar as definições de lógica do Power Automate.
Emita uma solicitação POST para salvar sua referência de conexão. Por exemplo:
POST {Env url}/api/data/v9.1/msdyn\_SaveProviderDefinitionConnectionReference
Body:
{
"ProviderDefinitionId": "{ProviderId previously found}",
"ConnectionReferenceId": "{Connection reference id previously found}"
}
Valide se o componente de definição de lógica da definição do provedor foi adicionado.
Acesse sua solução de provedor.
Verifique se o componente de referência da definição de lógica da definição do provedor criado foi adicionado. Se não tiver sido adicionado, selecione Adicionar existente e adicione o componente recém-criado.
Compartilhar seus provedores
Se você quiser usar a definição de provedor em outro ambiente ou compartilhar sua solução, você pode exportar sua solução de provedor. Para obter mais informações, consulte Exportar soluções.