Créer un fournisseur
Pour créer un fournisseurn, procédez comme suit. Vous pouvez également utiliser cette procédure pour effectuer des ajouts aux fournisseurs existants.
Définir l'architecture du fournisseur
Avant de créer un fournisseur, il est important de comprendre ce que vous voulez que le fournisseur fasse et à quoi vous voulez l'utiliser. Les fournisseurs ont plusieurs composants et vous n'aurez peut-être pas besoin de tous les composants.
Utilisez le tableau suivant pour déterminer les composants dont vous aurez besoin.
Condition | Composant nécessaire |
---|---|
Le service pour lequel vous souhaitez créer un fournisseur n’a pas de connecteur dans Power Automate. Pour plus d’informations, consultez Liste de tous Power Automate connecteurs. |
Créez un connecteur client ou utilisez un connecteur générique. |
Votre fournisseur échangera des données entre un service externe et Microsoft Dataverse. | Votre fournisseur aura besoin d'une transformation de fournisseur. Ajoutez un composant de transformation de fournisseur pour chaque transformation. |
Votre fournisseur exécutera la logique du concepteur d'orchestration. | Créez un flux Power Automate séparé pour représenter chacune des actions. |
Votre fournisseur doit traiter les messages d'un service externe. | Créez un flux de gestionnaire de messages Power Automate. |
Votre fournisseur récupérera les messages d'un service externe à intervalles réguliers. | Créez un flux de récupérateur de messages Power Automate. |
Votre fournisseur déclenchera des événements commerciaux qui ne sont pas actuellement définis dans Intelligent Order Management. | Créez une nouvelle définition d'événement commercial et ajoutez des événements existants. |
Lorsque vous avez une bonne compréhension des solutions, vous pouvez procéder à la mise en œuvre de votre fournisseur.
Créer une solution de fournisseur
Vous devez effectuer les tâches suivantes dans cette section pour créer une solution de fournisseur.
Configurez un fournisseur personnalisé.
Ajoutez une définition de fournisseur.
Ajoutez les composants à votre solution.
Configurer un fournisseur personnalisé
Créez une solution dans Power Apps qui contiendra les composants de votre fournisseur. Pour créer une solution dans Power Apps, suivez les étapes de Créer une solution dans Power Apps.
Ajouter une définition de fournisseur
Une définition de fournisseur contient des détails sur votre fournisseur. La définition détermine comment votre fournisseur apparaîtra dans le catalogue des fournisseurs.
Dans la solution de fournisseur que vous avez créée, sélectionnez Nouveau.
Sélectionnez IOMDéfinition de fournisseur.
Ajoutez les informations suivantes :
Nom d’affichage : nom que vous souhaitez donner à votre fournisseur, par exemple, "Fournisseur de tests".
Nom logique : clé d’exportation pour votre fournisseur.
Description : texte pour décrire ce que fait votre fournisseur.
Sélectionnez Enregistrer.
Si vous souhaitez ajouter un logo, téléchargez l'image.
Vérifiez que votre définition de fournisseur apparaît dans la solution. Un enregistrement avec le type de composant Définition du fournisseur IOM doit être affiché. S’il ne s’affiche pas, sélectionnez Ajouter existant, puis sélectionnez l’enregistrement que vous venez de créer.
Vérifiez que votre fournisseur apparaît dans le catalogue de fournisseurs. Si vous définissez le champ Est actif sur Oui, votre définition de fournisseur apparaîtra dans le catalogue des fournisseurs. Ouvrez Intelligent Order Management. Accédez à Fournisseurs > Catalogue. Vérifiez que votre définition de fournisseur est affichée.
Ajouter les composants à la solution
Après avoir créé votre définition de fournisseur, ajoutez les composants du fournisseur à la solution.
Accédez à votre solution.
Sélectionnez Ajouter existant.
Sélectionnez le type de composant Intelligent Order Management, puis sélectionnez l'enregistrement que vous venez de créer.
Créer une transformation de fournisseur
Si votre fournisseur nécessite une transformation, vous devez ajouter un composant de transformation de fournisseur à votre solution. Vous devrez peut-être créer plusieurs transformations.
Dans votre solution de fournisseur, sélectionnez Nouveau.
Sélectionnez Transformation de définition de fournisseur IOM.
Ajoutez les informations suivantes :
Nom d’affichage : nom de votre transformation de fournisseur, par exemple, "Transformer les commandes client".
Nom logique : identifiant unique de votre fournisseur. Cette valeur sera la clé d'importation et d'exportation des données. Il doit commencer par le préfixe de l’éditeur. Par exemple, Microsoft utilise le préfixe d’éditeur msdyn_. Exemples de nom logique : msdyn_flexe_fulfillmentorderproduct_orderline et msdyn_flexe_fulfillmentorder_order.
Type de source : ce champ indique quel type de données est reçu. Il y a deux options : JsonDocument ou Entité Dataverse. Si vos données sont déjà dans Dataverse, sélectionnez Entité Dataverse. Sinon, sélectionnez JsonDocument. Ces informations seront utilisées dans l'élément Power Automate que vous définissez pour rechercher la transformation.
Nom de l’objet source : nom des données que vous transformez. Si vous transformez un enregistrement Dataverse, assurez-vous que le Nom de l’objet source est le même que dans la table Dataverse.
Nom de l’objet de destination : destination de l’enregistrement que vous souhaitez transformer.
Transformation : Power Query Online MQuery qui sera utilisé pour transformer les données d’entrée. Pour plus d’informations sur Power Query et MQuery, veuillez consulter Qu’est-ce que Power Query ? et la référence du langage due formule Power Query M. Voici un exemple de MQuery qui transforme une commande client d’un service de commande externe en une commande client dans 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));
Sélectionnez Enregistrer.
Validez que votre composant de transformation s'affiche correctement. Un type de composant de Transformation de définition du fournisseur IOM avec un nom de transformation doit être affiché. S’il ne s’affiche pas, sélectionnez Ajouter existant, puis sélectionnez la transformation que vous venez de créer.
Ajouter des définitions d'événements commerciaux
Si votre fournisseur crée ou utilise de nouveaux événements commerciaux, vous devez ajouter des composants Définition de fournisseur IOM Définition d’événement commercial à votre solution. Il vous suffit d'ajouter des événements commerciaux qui ne sont pas déjà dans Intelligent Order Management.
Si l'événement commercial que vous souhaitez créer n'est pas déjà dans Intelligent Order Management, vous pouvez créer le vôtre.
Sélectionnez Nouveau.
Sélectionnez Définition de fournisseur IOM Définition d’événement commercial.
Ajoutez les informations suivantes :
Nom : nom de votre événement professionnel.
Fournisseur : fournisseur pour lequel vous créez cette définition commerciale.
Entité associée : entité Dataverse dans Intelligent Order Management qui est modifiée ou affectée lors de la création de l’événement.
Valeur d’état associée : si vous souhaitez que l’état de votre entité associée soit mis à jour lorsque l’événement commercial est déclenché, incluez une valeur d’état dans ce champ.
Valeur de statut associée : si vous souhaitez que le statut de votre entité associée soit mis à jour lorsque l’événement commercial est déclenché, incluez une valeur de statut dans ce champ.
Sélectionnez Enregistrer.
Vérifiez votre solution pour vérifier que l’enregistrement Définition de l’événement commercial du fournisseur IOM s’affiche. Si l’enregistrement n’apparaît pas dans la solution, sélectionnez Ajouter existant, puis sélectionnez l’enregistrement que vous venez de créer.
Ajouter un connecteur
Si votre fournisseur a besoin d'un connecteur qui n'est pas disponible dans Power Automate, vous devez créer votre propre connecteur. Pour plus d’informations, consultez Liste de tous les connecteurs Power Automate.
Pour créer votre propre connecteur Power Automate, suivez les étapes de Présentation des connecteurs personnalisés.
Après avoir créé votre connecteur personnalisé, ajoutez-le à votre solution de fournisseur en tant que composant.
Accédez à votre solution de fournisseur.
Sélectionnez Ajouter existant.
Sélectionnez le connecteur que vous avez créé.
Types de flux Power Automate
Toute action exécutée dans le concepteur d'orchestration est représentée par des flux Power Automate. Si vous souhaitez que Power Automate récupère des informations spécifiques ou exécute des actions spécifiques, vous devrez créer les flux pour ces actions. Pour en savoir plus sur Power Automate, consultez Vue d’ensemble de Power Automate.
Ajoutez vos flux en tant que composants Définition de logique de définition du fournisseur à votre fournisseur.
Avant de commencer le processus de création de flux, passez en revue les types de flux qui sont utilisés dans Intelligent Order Management.
Gestionnaire de messages du fournisseur
Ces flux reçoivent et traitent les messages d'un service externe et déclenchent l'événement commercial approprié pour notifier l'orchestration Intelligent Order Management. Ces flux sont déclenchés par un service externe.
Voici un exemple de structure pour créer un type de gestionnaire de messages de flux Power Automate.
- Définissez un déclencheur Power Automate. Il s'agit généralement d'un point de terminaison HTTP qui est un déclencheur de webhook (recommandé), un déclencheur de connecteur ou un déclencheur d'insertion Dataverse. Le déclencheur est déclenché lorsqu'un service externe a des données à envoyer à Intelligent Order Management.
Le schéma JSON à utiliser dans votre déclencheur HTTP est défini ci-dessous.
{
"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"
]
}
Initialisez le traitement du message. Cette tâche comporte deux étapes.
Initialisez le résultat d'exécution qui sera utilisé pour suivre le traitement du message.
Accepter le message du fournisseur dans Intelligent Order Management afin de pouvoir suivre, réessayer et afficher l'état du traitement. C'est une action Power Automate introduite par Intelligent Order Management. Cette action s’appelle Accepter la requête de message du fournisseur dans IOM. Cette action a les paramètres requis suivants.
PowerAutomateWorkflowId : WorkflowId sur la définition du gestionnaire de messages. Vous pouvez le récupérer en ayant une fonction de composition avec workflow()[’tags’].
PowerAutomateRunId : identifiant unique de l’exécution Power Automate qui a reçu le message et permet au pipeline de réessayer le traitement et de lier les journaux d’exécution. Vous pouvez le récupérer en ayant une fonction de composition avec workflow()[’run’]?[’name’].
ProviderMessageExternalRequestId : identifiant du message envoyé. Si aucun identifiant n'est présent, un GUID peut être généré. Cet identifiant est utilisé par le pipeline pour empêcher l'expéditeur d'envoyer des messages en double. L’identifiant dépend de la charge utile source. Par exemple : concat(triggerOutputs()?[’body’]?[’type’]?[’name’], ’_’, triggerOutputs()?[’body’]?[’id’]).
La transformation de fournisseur que vous avez définie précédemment récupérera les données d'entrée et les transformera. Intelligent Order Management fournit un flux enfant prêt à l’emploi appelé Transformateur de fournisseur IOM qui exécutera la transformation. Ajoutez les détails suivants pour traiter l'événement ou le message :
Nom du fournisseur : nom du fournisseur lié au gestionnaire de messages. Cette valeur doit être identique au nom de votre transformation de fournisseur.
Nom de l’objet source : valeur de la clé de recherche source pour la transformation à effectuer. Cette valeur doit être identique au nom de l'objet source défini dans votre transformation de fournisseur.
Nom de l’objet de destination : valeur de la clé de recherche de destination pour la transformation à effectuer. Cette valeur doit être identique à la valeur définie dans la transformation de fournisseur.
Charge utile : fournie lors de la transformation d’une charge utile JSON. Power Automate nécessite que les paramètres soient transmis sous forme de chaîne sérialisée. Fournissez une valeur Charge utile ou ID d’enregistrement, pas les deux.
ID d’enregistrement : fourni lors de la transformation d’un enregistrement Dataverse. Fournissez une valeur Charge utile ou ID d’enregistrement, pas les deux.
Vous pouvez insérer des données dans Dataverse en utilisant des requêtes HTTP ou l’action Insérer de connecteur Dataverse. Si vous effectuez plusieurs insertions et que vous souhaitez améliorer les performances, encapsulez les insertions dans un ensemble de modifications afin que les requêtes soient dans un lot de transactions.
Si vous souhaitez que votre flux déclenche un événement commercial, vous pouvez utiliser le flux enfant Évènement commercial. Ajoutez les informations suivantes.
BusinessEventName : nom de l’événement que vous souhaitez déclencher.
EntityRecordId : ID de l’enregistrement qui vient d’être créé et associé à l’événement.
Mettez à jour l’état de traitement des messages à l’aide de l’action Mettre à jour le statut de la requête de message du fournisseur pour enregistrer le résultat de l’exécution du traitement. Ajoutez les informations suivantes.
ProviderMessageRequestExecutionId : ID de sortie de l’enregistrement créé pour suivre la progression du traitement du message.
IsProviderMessageRequestExecutionSuccess : valeur booléenne pour indiquer si le traitement a réussi.
Extracteur de messages du fournisseur
Les extracteurs de messages du fournisseur sont des flux Power Automate qui extraient les messages à un intervalle défini régulièrement d’un service externe.
Note
Un gestionnaire de messages est un prérequis pour un flux d’extraction de messages.
Voici un exemple de structure pour créer un type d'extracteur de messages de flux Power Automate.
Utilisez un workflow de récurrence pour planifier un déclencheur.
Obtenez un point de contrôle de Dataverse. Les points de contrôle suivent quels messages ont été extraits avec succès du fournisseur externe. Ajoutez les informations suivantes.
Nom de l’action : nom du point de contrôle.
WorkflowId : définissez la fonction de composition suivante pour récupérer ces informations : workflow()[’tags’][’xrmWorkflowId’].
Créez une requête HTTP POST sur un fournisseur externe pour extraire les messages. Ajoutez les informations suivantes.
Méthode : définissez ce champ sur POST.
URL : point de terminaison du fournisseur externe.
Corps : La requête JSON doit avoir la formule suivante : if(empty(outputs(’Get_Checkpoint’)?[’body/Checkpoint’]), 0, int(outputs(’Get_Checkpoint’)?[’body/Checkpoint’])).
Analysez les messages extraits à l’étape 3. Ajoutez les informations suivantes.
Contenu : corps récupéré à l’étape 3.
Schéma : structure du corps récupérée à l’étape 3.
Traitez les messages pour parcourir chaque message à partir de l'étape 4.
Analysez chaque message des étapes précédentes. Ajoutez les informations suivantes.
Contenu : élément actuel de Traiter les messages.
Schéma : Un seul message au format JSON.
Appelez le gestionnaire de messages du fournisseur associé que vous avez configuré dans les prérequis. Ajoutez les informations suivantes.
Flux enfant : sélectionnez le gestionnaire de messages de votre fournisseur.
Message : message analysé de l’étape 6.
Enregistrer le point de contrôle dans Dataverse. Ajoutez les informations suivantes.
Point de contrôle : cela peut être n’importe quelle valeur de chaîne (max 100). Dans cet exemple, il s'agit de l'ID du dernier message traité.
WorkFlowId : vous pouvez récupérer cet ID en ajoutant une fonction de composition définie sur workflow()[’tags’][’xrmWorkflowId’].
Action de fournisseur
Les flux d’action du fournisseur sont appelés à partir du concepteur d’orchestration. Ces flux effectuent généralement des appels depuis Intelligent Order Management vers des services externes.
La principale différence entre un gestionnaire de messages de fournisseur et une action de fournisseur est que, bien qu'un gestionnaire de messages puisse notifier le concepteur d'orchestration, il ne peut pas être déclenché par une vignette d'action dans le concepteur d'orchestration, contrairement à une action de fournisseur.
Voici un exemple de structure pour un flux Power Automate d’action de fournisseur.
- Commencez avec un déclencheur HTTP. Les informations suivantes seront transmises au moment de l’exécution par le service d’orchestration. Le schéma JSON suivant sera utilisé pour le corps :
{
"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"
]
}
Initialisez le traitement de l’action.
Initialisez le résultat de l’exécution et toute autre variable de traitement.
Acceptez le début de l’exécution de l’action en utilisant l’action Dataverse Démarrer l’exécution de l’action du fournisseur. Cela permettra au pipeline de suivre, de réessayer et d'afficher l'état du traitement dans Intelligent Order Management. Ajoutez les informations suivantes.
ProviderActionExecutionEventId : cette valeur a été transmise à l’action en tant que paramètre d’entrée à l’étape 1.
PowerAutomateRunID : exécution unique de l’action Power Automate. Cela permet au pipeline de lier les journaux d'exécution. Obtenez ces informations en définissant le champ sur un workflow() d’expression Power Automate [’run’]?[’name’].
Effectuez l’action.
Si nécessaire, transformez les enregistrements à l’aide du flux enfant Transformer le message avec Power Query Online.
Nom du fournisseur : nom du fournisseur à lier à l’action. Le nom doit être identique au nom de votre définition de fournisseur.
Nom de l’objet source : nom source de la transformation à effectuer. Ce nom doit être identique à l'objet source défini dans votre transformation Power Automate.
Nom de l’objet de destination : valeur de la clé de recherche de destination pour la transformation à effectuer. Ce nom doit être identique à la valeur définie dans la transformation de fournisseur.
Charge utile : fournie lors de la transformation d’une charge utile JSON entrante. Power Automate nécessite que les paramètres soient transmis sous forme de chaîne sérialisée. Ajoutez une valeur Charge utile ou ID d’enregistrement, mais pas les deux.
ID d’enregistrement : fourni lors de la transformation d’un enregistrement Dataverse sortant. Ajoutez une valeur Charge utile ou ID d’enregistrement, mais pas les deux.
Exécutez toutes les actions personnalisées que vous avez définies. Ce sont des actions présentes sur le connecteur Power Automate que vous utilisez.
Déclenchez un événement commercial spécifique à l'action. Utilisez le flux enfant Évènement commercial. Ajoutez les informations suivantes.
BusinessEventName : nom de l’événement que vous souhaitez déclencher.
EntityRecordId : ID de l’enregistrement associé à l’événement.
Terminez l'exécution de l'action et enregistrez les résultats. Les résultats seront traités par le concepteur d'orchestration. Ajoutez les informations suivantes.
ExecutionResult : valeur booléenne pour indiquer si le traitement a réussi.
ExecutionDetails : détails de journal facultatifs à des fins de test et de débogage.
ProviderActionExecutionEventId : cette valeur a été transmise à l’action en tant que paramètre d’entrée défini à l’étape 1.
Flux enfant
Un flux enfant est un sous-flux référencé dans d'autres flux Power Automate. Il est utile de définir un flux enfant si vous répétez certaines étapes dans plusieurs domaines. Il n'y a pas de modèle spécifique ou de processus recommandé pour les flux enfants, car ils sont principalement destinés à être utilisés pour faciliter la consolidation d'étapes similaires.
Les flux enfants de fournisseur ne peuvent pas appeler d'autres flux enfants de fournisseur.
Créer des flux de cloud
Lorsque vous comprenez les types de flux que vous souhaitez créer, vous êtes prêt à créer des flux de cloud. Pour ce faire, procédez comme suit :
- Ouvrez la solution par défaut dans votre environnement Power Apps.
Important
N’ajoutez pas ces solutions à votre solution de fournisseur.
Sélectionnez Nouveau, puis sélectionnez Flux de cloud.
Créez votre flux Power Automate. Utilisez les modèles de la section précédente pour référence.
Reportez-vous à la section suivante pour enregistrer vos flux.
Enregistrer une définition Power Automate
Après avoir créé vos flux, vous devez les enregistrer en tant que composants Définition de logique de définition du fournisseur. Ce type de composant fournit à Intelligent Order Management les actions à déployer lors de l'activation du fournisseur.
Vous devez avoir les prérequis suivants avant de pouvoir enregistrer vos flux.
Pour enregistrer vos définitions logiques Power Automate, vous devrez émettre des requêtes OData. Pour ce faire, vous avez besoin d'un compte avec PostMan ou un service similaire.
Vous devrez générer un jeton d'accès à votre environnement Dataverse pour émettre des requêtes GET et POST.
Configurez un compte Azure avec un abonnement actif. Si vous n’avez pas de compte actif, vous devez configurer un compte sur le Site Web Azure.
PowerShell doit être installé. Pour plus d’informations, consultez Installation de PowerShell.
Entrez la commande suivante dans PowerShell pour obtenir un jeton d’accès : az login --allow-no-subscriptions account get-access-token --resource=https://YourDataverseTenantURL.api.crm.dynamics.com/ --query=accessToken --output=tsv | Set-Clipboard.
Pour enregistrer votre définition Power Automate, procédez comme suit.
Trouver l'ID de workflow du flux Power Automate que vous souhaitez enregistrer. Effectuez l’une des opérations suivantes.
Recherchez l'ID du workflow à l'aide d'une action Power Automate.
Créez une action de composition avec l'expression de workflow() à la fin de votre action Power Automate.
Exécutez Power Automate.
La propriété xrmWorkflowId des résultats d’exécution contiendra l’ID de workflow.
Supprimez cette action du flux afin qu'elle ne s'exécute plus.
Vous pouvez éventuellement émettre une requête Get OData.
Accédez au flux pour lequel vous souhaitez enregistrer l'ID de workflow. Recherchez l'identifiant unique dans l'URL. Il s'agit de l'ID qui apparaît après ../flows/ dans l'URL.
Émettez une requête OData pour récupérer les métadonnées du workflow. Vous trouverez ci-dessous un exemple de requête GET.
GET {Env url}/api/data/v9.1/workflows?$filter=workflowidunique eq ’{Identifiant de workflow unique de Power Automate U}’&$select=workflowid,workflowiduniqueEnregistrez la propriété workflowid retournée.
Recherchez l'ID de définition de fournisseur.
Sélectionnez la définition de fournisseur dans laquelle vous souhaitez enregistrer le flux.
Copiez l'ID de définition de fournisseur à partir de l'URL. C’est la partie de l’URL ../id={exemple de numéro}/.
Notez la valeur du jeu d'options pour le type de Power Automate que vous enregistrez.
Flux enfant : 192350002
Action de fournisseur : 192350001
Gestionnaire de messages du fournisseur : 192350000
Extracteur de messages du fournisseur : 192350003
Envoyez une requête POST pour enregistrer votre définition Power Automate. Vous trouverez ci-dessous un exemple de requête.
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}
}
Vérifiez que votre composant Définition de logique de définition du fournisseur a été ajouté. Pour ce faire, procédez comme suit :
Accédez à votre solution de fournisseur.
Vérifiez que la définition de logique de définition du fournisseur créée a été ajoutée. Si elle n’a pas été ajoutée, sélectionnez Ajouter existant, puis ajoutez le composant que vous avez créé.
Enregistrer les références de connexion
Si votre fournisseur utilise des connecteurs Power Automate client, vous devez effectuer les étapes suivantes pour enregistrer les références de connexion dans votre solution Power Automate.
- Envoyez une requête GET pour récupérer votre ID de référence de connexion. Par exemple :
GET {Env url}/api/data/v9.2/connectionreferences
Si vous souhaitez les filtrer davantage, vous pouvez filtrer par nom de référence de connexion. Par exemple :
{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
Vérifiez que l'ID de référence de connexion correct a été récupéré en recherchant vos données client Power Automate.
Accédez au composant Définition de logique de définition du fournisseur enregistré précédemment.
Vérifiez les données client pour vérifier que l’élément connectionReferenceLogicalName apparaît.
Recherchez votre ID de définition de fournisseur. Il s'agit de la même valeur que celle que vous avez utilisée à l'étape 2 pour enregistrer vos définitions logiques Power Automate.
Envoyez une requête POST pour enregistrer votre référence de connexion. Par exemple :
POST {Env url}/api/data/v9.1/msdyn\_SaveProviderDefinitionConnectionReference
Body:
{
"ProviderDefinitionId": "{ProviderId previously found}",
"ConnectionReferenceId": "{Connection reference id previously found}"
}
Vérifiez que votre composant Définition de logique de définition du fournisseur a été ajouté.
Accédez à votre solution de fournisseur.
Vérifiez que le composant de référence de définition de logique de définition du fournisseur créé a été ajouté. S’il n’a pas été ajouté, sélectionnez Ajouter existant et ajoutez le composant que vous venez de créer.
Partager vos fournisseurs
Si vous souhaitez utiliser votre définition de fournisseur sur un autre environnement ou partager votre solution, vous pouvez exporter votre solution de fournisseur. Pour plus d’informations, consultez Exporter des solutions.