Condividi tramite


Creare un nuovo provider

Per creare un nuovo provider, segui questi passaggi. Puoi anche utilizzare questi passaggi per apportare aggiunte ai provider esistenti.

Definire l'architettura del provider

Prima di creare un provider, è importante determinare cosa vuoi che faccia il provider e per cosa vuoi usarlo. I provider hanno più componenti e potresti non aver bisogno di tutti.

Usa la seguente tabella per determinare di quali componenti avrai bisogno.

Condizione Componente necessario
Il servizio per il quale desideri creare un provider non ha un connettore in Power Automate.
Per ulteriori informazioni, vedi Elenco di tutti i connettori Power Automate.
Creare un connettore cliente o usare un connettore generico.
Il provider scambierà dati tra un servizio esterno e Microsoft Dataverse. Il provider avrà bisogno di una trasformazione di provider. Aggiungere un componente di trasformazione di provider per ogni trasformazione.
Il provider eseguirà la logica dalla progettazione orchestrazioni. Creare un flusso Power Automate distinto per rappresentare ogni azione.
Il provider deve elaborare i messaggi da un servizio esterno. Creare un flusso Gestore di messaggi Power Automate.
Il provider eseguirà il pull dei messaggi da un servizio esterno a intervalli regolari. Creare un flusso Puller di messaggi di Power Automate.
Il provider genererà eventi aziendali che non sono attualmente definiti in Intelligent Order Management. Creare una nuova definizione di evento aziendale e aggiungere eventi esistenti.

Una volta che hai una buona comprensione delle soluzioni, puoi procedere all'implementazione del provider.

Creare una soluzione di provider

Devi completare le seguenti attività in questa sezione per creare una soluzione di provider.

  • Configurare un provider personalizzato.

  • Aggiungere una definizione di provider.

  • Aggiungere i componenti alla soluzione.

Configurare un provider personalizzato

Crea una soluzione in Power Apps che conterrà i componenti del provider. Per creare una nuova soluzione in Power Apps, segui i passaggi in Creare una soluzione in Power Apps.

Aggiungere una definizione di provider

Una definizione di provider contiene dettagli sul provider. La definizione determina come apparirà il provider nel catalogo di provider.

  1. Nella soluzione di provider che hai creato, seleziona Nuovo.

  2. Seleziona Definizione provider IOM.

  3. Aggiungi i seguenti dettagli:

    1. Nome visualizzato: il nome che vuoi assegnare al provider, ad esempio "Provider di prova".

    2. Nome logico: la chiave di esportazione per il provider.

    3. Descrizione: testo per descrivere la funzione del provider.

  4. Seleziona Salva.

  5. Se vuoi aggiungere un logo, carica l'immagine.

  6. Verifica che la definizione del provider sia visualizzata nella soluzione. Deve essere visualizzato un record con il tipo di componente Definizione provider IOM. Se non viene visualizzato, seleziona Aggiungi esistente, quindi seleziona il record appena creato.

  7. Verifica che il provider sia visualizzato nel catalogo di provider. Se imposti il campo Attivo su , la definizione del provider verrà visualizzata nel catalogo di provider. Apri Intelligent Order Management. Vai a Provider > Catalogo. Verifica che sia visualizzata la definizione del provider.

Aggiungere componenti alla soluzione

Dopo aver creato la definizione del provider, aggiungi i componenti del provider alla soluzione.

  1. Accedi alla soluzione.

  2. Selezionare Aggiungi esistente.

  3. Seleziona il tipo di componente di Intelligent Order Management, quindi seleziona il record appena creato.

Creare una trasformazione di provider

Se il provider richiede una trasformazione, devi aggiungere un componente di trasformazione di provider alla soluzione. È possibile che sia necessario creare più trasformazioni.

  1. Nella soluzione di provider, seleziona Nuovo.

  2. Seleziona Trasformazione definizione provider IOM.

  3. Aggiungi i seguenti dettagli:

    1. Nome visualizzato: il nome della trasformazione di provider, ad esempio "Trasforma ordini cliente".

    2. Nome logico: l'identificatore univoco del provider. Questo valore sarà la chiave di importazione ed esportazione dei dati. Deve iniziare con il prefisso dell'editore. Ad esempio, Microsoft utilizza il prefisso editore msdyn_. Esempi di nome logico sono: msdyn_flexe_fulfillmentorderproduct_orderline e msdyn_flexe_fulfillmentorder_order.

    3. Tipo di origine: questo campo indica il tipo di dati ricevuti. Sono disponibili due opzioni: JsonDocument o Entità Dataverse. Se i dati sono già in Dataverse, seleziona Entità Dataverse. In caso contrario, seleziona JsonDocument. Queste informazioni verranno utilizzate nell'elemento Power Automate definito per cercare la trasformazione.

    4. Nome oggetto origine: il nome dei dati che stai trasformando. Se stai trasformando un record Dataverse, assicurati che il Nome oggetto origine è lo stesso nome della tabella Dataverse.

    5. Nome oggetto destinazione: la destinazione del record che si desidera trasformare.

    6. Trasformazione: MQuery di Power Query Online che verrà usato per trasformare i dati di input. Per informazioni su Power Query e MQuery, vedi Che cos'è Power Query? e Riferimento al linguaggio di formule M di Power Query. Di seguito è riportato un esempio di MQuery che trasforma un ordine cliente da un servizio di ordini esterno a un ordine cliente in 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. Seleziona Salva.

  2. Verifica che il componente di trasformazione appaia correttamente. Deve essere visualizzato un tipo di componente di Trasformazione definizione provider IOM con il nome della trasformazione. Se non viene visualizzato, seleziona Aggiungi esistente, quindi seleziona la trasformazione appena creata.

Aggiungere definizioni di eventi aziendali

Se il provider creerà o utilizzerà nuovi eventi aziendali, devi aggiungere i componenti Definizione provider IOM Definizione di evento aziendale alla soluzione. Devi solo aggiungere eventi aziendali che non sono già in Intelligent Order Management.

Se l'evento aziendale che desideri creare non è già in Intelligent Order Management, puoi crearne uno.

  1. Selezionare Nuovo.

  2. Seleziona Definizione provider IOM Definizione di evento aziendale.

  3. Aggiungi i seguenti dettagli:

    1. Nome: il nome dell'evento aziendale.

    2. Provider: il provider per cui stai creando questa definizione aziendale.

    3. Entità associata: l'entità Dataverse in Intelligent Order Management che viene modificata o interessata quando viene creato l'evento.

    4. Valore stato associato: se desideri che lo stato dell'entità associata venga aggiornato quando viene generato l'evento aziendale, includi un valore di stato in questo campo.

    5. Valore condizione associato: se desideri che la condizione dell'entità associata venga aggiornata quando viene generato l'evento aziendale, includi un valore di condizione in questo campo.

  4. Selezionare Salva.

  5. Controlla la soluzione per verificare che il record Definizione di evento aziendale del provider IOM sia visualizzato. Se il record non viene visualizzato nella soluzione, seleziona Aggiungi esistente, quindi seleziona il record appena creato.

Aggiungi un connettore

Se il provider ha bisogno di un connettore che non è disponibile in Power Automate, devi creare il tuo connettore. Per ulteriori informazioni, vedi Elenco di tutti i connettori Power Automate.

Per creare il connettore Power Automate, segui i passaggi in Panoramica dei connettori personalizzati.

Dopo aver creato il connettore personalizzato, aggiungilo alla soluzione di provider come componente.

  1. Accedi alla soluzione di provider.

  2. Seleziona Aggiungi esistente.

  3. Seleziona il connettore creato.

Tipi di flussi di Power Automate

Qualsiasi azione eseguita nella progettazione orchestrazioni è rappresentata da flussi di Power Automate. Se vuoi che Power Automate recuperi informazioni specifiche o esegua azioni specifiche, devi creare i flussi per tali azioni. Per ulteriori informazioni su Power Automate, vedi Introduzione a Power Automate.

Aggiungi i flussi al provider come componenti Definizione logica di Definizione provider.

Prima di iniziare il processo di creazione di flussi, esamina i tipi di flussi utilizzati in Intelligent Order Management.

Gestore di messaggi di provider

Questi flussi ricevono ed elaborano messaggi da un servizio esterno e generano l'evento aziendale appropriato per notificare l'orchestrazione di Intelligent Order Management. Questi flussi sono attivati da un servizio esterno.

Quanto segue è una struttura di esempio per la creazione di un tipo di gestore di messaggi del flusso di Power Automate.

  1. Definisci un trigger Power Automate. In genere si tratta di un endpoint HTTP che è un trigger webhook (consigliato), un trigger del connettore o un trigger di inserimento di Dataverse. Il trigger viene generato quando un servizio esterno dispone di dati da inviare a Intelligent Order Management. Screenshot del trigger per la ricezione di una richiesta HTTP.

Lo schema JSON da utilizzare nel trigger HTTP è definito di seguito.

{
    "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. Inizializza l'elaborazione del messaggio. Questa attività comporta due passaggi.

    1. Inizializzare il risultato dell'esecuzione che verrà utilizzato per tenere traccia dell'elaborazione del messaggio.

    2. Confermare il messaggio del provider in Intelligent Order Management in modo da monitorare, riprovare e visualizzare lo stato di elaborazione. Questa è un'azione Power Automate introdotta da Intelligent Order Management. Questa azione è denominata Conferma richiesta del messaggio del provider in IOM. Questa azione ha i seguenti parametri obbligatori.

      1. PowerAutomateWorkflowId: WorkflowId sulla definizione del gestore di messaggi. Puoi recuperarlo avendo una funzione di composizione con workflow()["tags"].

      2. PowerAutomateRunId: l'identificatore univoco per l'esecuzione di Power Automate che ha ricevuto il messaggio e consente alla pipeline di ritentare l'elaborazione e collegare i log di esecuzione. Puoi recuperarlo avendo una funzione di composizione con workflow()["run"]?["name"].

      3. ProviderMessageExternalRequestId: un identificatore per il messaggio inviato. Se non è presente alcun identificatore, è possibile generare un GUID. Questo identificatore viene utilizzato dalla pipeline per impedire al mittente di inviare messaggi duplicati. L'identificatore dipende dal payload di origine. Ad esempio: concat(triggerOutputs()?["body"]?["type"]?["name"], "_", triggerOutputs()?["body"]?["id"]).

Screenshot della schermata Conferma la richiesta del messaggio di provider.

  1. La trasformazione del provider definita in precedenza recupererà i dati di input e li trasformerà. Intelligent Order Management fornisce un flusso figlio predefinito denominato Trasformatore provider IOM che eseguirà la trasformazione. Aggiungi i seguenti dettagli per elaborare l'evento o il messaggio:

    1. Nome provider: il nome del provider associato al gestore del messaggio. Questo valore deve essere lo stesso nome della trasformazione del provider.

    2. Nome oggetto origine: il valore della chiave di ricerca dell'origine per l'esecuzione della trasformazione. Questo valore deve essere uguale al nome dell'oggetto di origine definito nella trasformazione del provider.

    3. Nome oggetto destinazione: il valore della chiave di ricerca della destinazione per l'esecuzione della trasformazione. Questo valore deve essere uguale al valore definito nella trasformazione del provider.

    4. Payload: fornito durante la trasformazione di un payload JSON. Power Automate richiede che i parametri vengano passati come stringa serializzata. Fornisci un valore Payload o ID record, non entrambi.

    5. ID record: fornito quando si trasforma un record Dataverse. Fornisci un valore Payload o ID record, non entrambi.
      Screenshot per trasformare il messaggio con Power Query Online.

  2. Puoi inserire i dati in Dataverse utilizzando le richieste HTTP o l'azione Inserisci del connettore Dataverse. Se stai eseguendo più di un inserimento e desideri migliorare le prestazioni, esegui il wrapping degli inserimenti in un set di modifiche di modo che le richieste siano in un batch di transazioni.
    Screenshot del flusso di messaggi di inserimento.

  3. Se vuoi che il flusso crei un evento aziendale, puoi utilizzare il flusso figlio Genera evento aziendale. Aggiungi i seguenti dettagli.

    1. BusinessEventName: nome dell'evento che desideri generare.

    2. EntityRecordId: l'ID del record appena creato e associato all'evento.

  4. Aggiorna lo stato di elaborazione del messaggio utilizzando l'azione Aggiorna stato della richiesta del messaggio del provider per salvare il risultato dell'esecuzione dell'elaborazione. Aggiungi i seguenti dettagli.

    1. ProviderMessageRequestExecutionId: l'ID di output del record creato per monitorare l'avanzamento dell'elaborazione del messaggio.

    2. IsProviderMessageRequestExecutionSuccess: valore booleano per indicare se l'elaborazione è andata a buon fine.

Puller di messaggi di provider

I puller di messaggi di provider sono flussi di Power Automate che prelevano messaggi a intervalli regolari definiti da un servizio esterno.

Nota

Un gestore di messaggi è un prerequisito per un flusso di puller di messaggi.

Quanto segue è una struttura di esempio per la creazione di un tipo di puller di messaggi del flusso di Power Automate.

  1. Utilizza un flusso di lavoro di ricorrenza per pianificare un trigger.

  2. Ottieni un checkpoint da Dataverse. I checkpoint monitorano i messaggi estratti con successo dal provider esterno. Aggiungi i seguenti dettagli.

    1. Nome azione: nome del checkpoint.

    2. WorkflowId: imposta la seguente funzione di composizione per recuperare queste informazioni: workflow()["tags"]["xrmWorkflowId"].
      Screenshot di Ottieni checkpoint.

  3. Crea una richiesta POST HTTP a un provider esterno per estrarre i messaggi. Aggiungi i seguenti dettagli.

    1. Metodo: imposta questo campo su POST.

    2. URL: l'endpoint del provider esterno.

    3. Corpo: la richiesta JSON deve avere la seguente formula: if(empty(outputs("Get_Checkpoint")?["body/Checkpoint"]), 0, int(outputs("Get_Checkpoint")?["body/Checkpoint"])).
      Screenshot di Estrai messaggi.

  4. Analizza i messaggi estratti nel passaggio 3. Aggiungi i seguenti dettagli.

    1. Contenuto: il corpo recuperato dal passaggio 3.

    2. Schema: la struttura del corpo recuperata nel passaggio 3.
      Screenshot di Analizza messaggi.

  5. Elabora i messaggi per eseguire il loop di ogni messaggio del passaggio 4.

  6. Analizza ogni messaggio dei passaggi precedenti. Aggiungi le seguenti informazioni.

    1. Contenuto: elemento corrente di Elabora messaggi.

    2. Schema: un singolo messaggio in formato JSON.
      Screenshot 2 di Elabora messaggi.

  7. Chiama il gestore di messaggi del provider associato configurato nei prerequisiti. Aggiungi le seguenti informazioni.

    1. Flusso figlio: seleziona il gestore di messaggi del provider.

    2. Messaggio: Il messaggio analizzato nel passaggio 6.
      Screenshot 3 di Elabora messaggi.

  8. Salva il checkpoint in Dataverse. Aggiungi le seguenti informazioni.

    1. Checkpoint: può essere qualsiasi valore di stringa (massimo 100). In questo esempio, questo è l'ID dell'ultimo messaggio elaborato.

    2. WorkFlowId: puoi recuperare questo ID aggiungendo una funzione di composizione impostata su workflow()["tags"]["xrmWorkflowId"].
      Screenshot 4 di Elabora messaggi.

Azione provider

I flussi di azione del provider vengono richiamati da progettazione orchestrazioni. Questi flussi in genere effettuano chiamate da Intelligent Order Management a servizi esterni.

La differenza fondamentale tra un gestore di messaggi di provider e un'azione di provider è che sebbene un gestore di messaggi può inviare una notifica a progettazione orchestrazioni, non può essere attivato, a differenza di un'azione di provider, da un riquadro azione nella progettazione orchestrazioni.

Quanto segue è una struttura di esempio per un flusso Power Automate di azioni di provider.

  1. Inizia con un trigger HTTP. Le seguenti informazioni verranno passate al runtime dal servizio di orchestrazione. Lo schema JSON seguente verrà utilizzato per il 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. Inizializza l'elaborazione dell'azione.

    1. Inizializza il risultato dell'esecuzione e qualsiasi altra variabile di elaborazione.

    2. Conferma l'inizio dell'esecuzione dell'azione utilizzando l'azione Dataverse Avvia esecuzione dell'azione di provider. Ciò consentirà alla pipeline di monitorare, riprovare e visualizzare lo stato di elaborazione in Intelligent Order Management. Aggiungi le seguenti informazioni.

      1. ProviderActionExecutionEventId: questo valore è stato passato all'azione come parametro di input nel passaggio 1.

      2. PowerAutomateRunID: l'unica esecuzione dell'azione di Power Automate. Ciò consente alla pipeline di collegare i log di esecuzione. Ottieni queste informazioni impostando il campo sull'espressione worflow()["run"]?["name"] di Power Automate.

  2. Esegui l'azione.

    1. Se necessario, trasforma i record utilizzando il flusso figlio Trasforma messaggio con Power Query Online.

      1. Nome provider: il nome del provider da associare all'azione. Il nome deve essere quello della definizione del provider.

      2. Nome oggetto origine: il nome di origine della trasformazione da eseguire. Questo nome deve essere lo stesso oggetto di origine definito nella trasformazione di Power Automate.

      3. Nome oggetto destinazione: il valore della chiave di ricerca della destinazione per l'esecuzione della trasformazione. Questo nome deve essere uguale al valore definito nella trasformazione del provider.

      4. Payload: fornito durante la trasformazione di un payload JSON in entrata. Power Automate richiede che i parametri vengano passati come stringa serializzata. Aggiungi un valore Payload o ID record, non entrambi.

      5. ID record: fornito quando si trasforma un record Dataverse in uscita. Aggiungi un valore Payload o ID record, non entrambi.
        Screenshot per trasformare il messaggio con Power Query Online.

    2. Esegui tutte le azioni personalizzate che hai definito. Queste sono le azioni presenti nel connettore Power Automate che stai utilizzando.

    3. Genera un evento aziendale specifico per l'azione. Usa il flusso figlio Genera evento aziendale. Aggiungi le seguenti informazioni.

      1. BusinessEventName: il nome dell'evento che desideri generare.

      2. EntityRecordId: l'ID del record associato all'evento.

  3. Completa l'esecuzione dell'azione e salva i risultati. I risultati saranno elaborati dalla progettazione orchestrazioni. Aggiungi le seguenti informazioni.

    1. ExecutionResult: valore booleano per indicare se l'elaborazione è andata a buon fine.

    2. ExecutionDetails: i dettagli del log facoltativo per scopi di test e debug.

    3. ProviderActionExecutionEventId: questo valore è stato passato all'azione come parametro di input definito nel passaggio 1.
      Screenshot di Completa esecuzione dell'azione di provider.

Flusso figlio

Un flusso figlio è un flusso secondario a cui si fa riferimento in altri flussi Power Automate. È utile definire un flusso figlio se vi sono alcuni passaggi che ripeti in più aree. Non esiste un modello specifico o un processo consigliato per i flussi figlio poiché sono pensati principalmente per consolidare passaggi simili.

I flussi figlio del provider non possono chiamare altri flussi figlio del provider.

Creare flussi cloud

Quando comprendi i tipi di flussi che desideri creare, sei pronto per creare flussi cloud. A questo proposito, attieniti alla seguente procedura:

  1. Apri la soluzione predefinita nell'ambiente Power Apps.

Importante

Non aggiungere queste soluzioni alla soluzione di provider.

  1. Seleziona Nuovo, quindi seleziona Flusso cloud.

  2. Genera il flusso Power Automate. Utilizza i modelli nella sezione precedente come riferimento.

  3. Fai riferimento alla sezione seguente per salvare i flussi.

Salvare la definizione di Power Automate

Dopo aver creato i flussi, è necessario salvarli come componenti Definizione logica di Definizione provider. Questo tipo di componente fornisce a Intelligent Order Management le azioni da distribuire durante l'attivazione del provider.

Devi disporre dei seguenti prerequisiti prima di poter salvare i flussi.

  • Per salvare le definizioni logiche di Power Automate , devi generare richieste OData. Per fare ciò, hai bisogno di un account con PostMan o un servizio simile.

  • Dovrai generare un token di accesso all'ambiente Dataverse per generare richieste GET e POST.

    • Crea un account Azure con una sottoscrizione attiva. Se non hai un account attivo, devi creare un account nel sito Web di Azure.

    • PowerShell deve essere installato. Per ulteriori informazioni, vedi Installare PowerShell.

    • Immetti il seguente comando in PowerShell per ottenere un token di accesso: az login --allow-no-subscriptions account get-access-token --resource=https://YourDataverseTenantURL.api.crm.dynamics.com/ --query=accessToken --output=tsv | Set-Clipboard.

Per salvare la definizione di Power Automate, procedi come segue.

  1. Trova l'ID flusso di lavoro del flusso Power Automate che intendi salvare. Effettuare una delle seguenti operazioni.

    1. Trova l'ID flusso di lavoro utilizzando un'azione di Power Automate.

      1. Crea un'azione di composizione con l'espressione workflow() alla fine del flusso Power Automate.
        Screenshot dell'azione di composizione.

      2. Esegui Power Automate.

      3. La proprietà xrmWorkflowId nei risultati dell'esecuzione conterrà l'ID flusso di lavoro.
        Screenshot dell'ID flusso di lavoro.

      4. Elimina questa azione dal flusso in modo che non venga eseguita di nuovo.

    2. Facoltativamente, puoi generare una richiesta Get OData.

      1. Vai al flusso per cui intendi salvare l'ID flusso di lavoro. Trova l'identificatore univoco nell'URL. Questo è l'ID che appare dopo ../flows/ nell'URL.
        Come trovare un identificatore univoco.

      2. Genera una richiesta OData per recuperare i metadati del flusso di lavoro. Quanto segue è una richiesta GET di esempio:
        GET {Env url}/api/data/v9.1/workflows?$filter=workflowidunique eq '{Unique Workflow Id from the Power Automate U}'&$select=workflowid,workflowidunique

      3. Salva la proprietà workflowid restituita.

  2. Trova l'ID definizione del provider.

    1. Seleziona la definizione del provider in cui intendi salvare il flusso.

    2. Copia l'ID definizione del provider dall'URL. Questa è la parte dell'URL ../id={example number}/.
      Come trovare l'ID definizione del provider.

  3. Prendi nota del valore del set di opzioni per il tipo di Power Automate che stai salvando.

    1. Flusso figlio: 192350002

    2. Azione di provider: 192350001

    3. Gestore di messaggi di provider: 192350000

    4. Puller di messaggi di provider: 192350000

  4. Genera una richiesta POST per salvare la definizione di Power Automate. Quanto segue è una richiesta di esempio.

    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. Conferma che il componente Definizione logica di Definizione provider è stato aggiunto. A questo proposito, attieniti alla seguente procedura:

    1. Accedi alla soluzione di provider.

    2. Verifica che il componente Definizione logica di Definizione provider è stato aggiunto. Se non è stato aggiunto, seleziona Aggiungi esistente, quindi aggiungi il componente creato.

Salvare i riferimenti di connessione

Se il tuo provider utilizza connettori cliente Power Automate, è necessario completare i seguenti passaggi per salvare i riferimenti di connessione nella soluzione Power Automate.

  1. Genera una richiesta GET per recuperare l'ID riferimento di connessione. Ad esempio:
GET {Env url}/api/data/v9.2/connectionreferences

Se desideri filtrarlo ulteriormente, puoi filtrare in base al nome di riferimento di connessione. Ad esempio:

    {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. Verifica che l'ID riferimento di connessione corretto sia stato recuperato cercando i dati client di Power Automate.

    1. Accedi al componente Definizione logica di Definizione provider salvato precedentemente.

    2. Controlla i dati client per verificare che connectionReferenceLogicalName sia visualizzato.

  2. Trova l'ID definizione di provider. Questo è lo stesso valore che hai usato nel passaggio 2 per salvare le definizioni di logica di Power Automate.

  3. Genera una richiesta post per salvare il riferimento di connessione. Ad esempio:

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

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

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

}
  1. Conferma che il componente Definizione logica di Definizione provider è stato aggiunto.

    1. Accedi alla soluzione di provider.

    2. Verifica che il componente Definizione logica di Definizione provider sia stato aggiunto. Se non è stato aggiunto, seleziona Aggiungi esistente, quindi aggiungi il componente appena creato.

Condividere i provider

Se desideri utilizzare la definizione di provider in un altro ambiente o condividere la soluzione, puoi esportare la soluzione di provider. Per ulteriori informazioni, vedi Esportare soluzioni.