Créer un nouveau fournisseur de prise de commande
Cette rubrique décrit les étapes requises pour créer un fournisseur de prise de commande dans Microsoft Dynamics 365 Intelligent Order Management.
Créer une nouvelle définition de fournisseur
Pour créer une nouvelle définition de fournisseur, procédez comme suit.
- Accédez à Fournisseurs > Catalogue.
- Sélectionnez Nouvelle définition de fournisseur.
- Pour Nom d’affichage, saisissez "IOMLabOrderIntakeProvider".
- Pour Nom logique, saisissez "msdyn_IOMLabOrderIntakeProvider".
- Pour Logo, sélectionnez "IOMLab.png".
- Pour Type de service, saisissez "Prise de commande".
- Pour Description, saisissez "Fournisseur de prise de commande de laboratoire IOM".
- Sélectionnez Enregistrer et fermer.
Ajouter une définition de fournisseur à la solution
Pour ajouter une définition de fournisseur à une solution, procédez comme suit.
- Accédez au Portail Power App Maker et accédez à la solution nouvellement créée IOMLabProviders.
- Sélectionnez Ajouter une > définition du fournisseur IOM existant.
- Sélectionnez IOMLabOrderIntakeProvider, puis sélectionnez Ajouter pour l’ajouter à la solution.
Ajouter une transformation à la définition du fournisseur
Pour ajouter une transformation à la définition du fournisseur, procédez comme suit.
- Accédez à Fournisseurs > Catalogue.
- Sélectionnez le nouveau IOMLabOrderIntakeProvider créé.
- Sélectionnez Modifier dans la barre de menus.
- Sélectionnez l’onglet Transformations.
- Sélectionnez +Nouvelle transformation de définition de fournisseur IOM.
- Pour Nom d’affichage, saisissez "Commande IOMLab en Commande Dataverse".
- Pour Nom logique, saisissez "msdyn_IOMLabOrderIntake_Order".
- Pour Définition du fournisseur, entrez ou sélectionnez IOMLabOrderIntakeProvider.
- Pour Nom d’objet source, saisissez "IOMLabOrderIntakeProvider".
- Pour Nom de l’objet de destination, saisissez "Commande Dataverse".
- Pour Transformation, collez le code de requête M suivant :
shared ImportMappingKey = [
account = {
[
ExternalRecordKey = [ProviderName = "IOMLabOrderIntakeProvider"],
SelectedFields = {"accountid"}
]
},
pricelevel = {
[
ExternalRecordKey = [ProviderName = "IOMLabOrderIntakeProvider"],
SelectedFields = {"pricelevelid"}
]
},
product = List.Distinct(List.Transform(Source[orderdetails], each
[
ExternalRecordKey = [sku = _[sku]],
SelectedFields = {"productid"}
])),
uom = List.Distinct(List.Transform(Source[orderdetails], each
[
ExternalRecordKey = [unit = _[unit]],
SelectedFields = {"uomid"}
]))
];
shared TransformSourceData =
let
orderProducts = Source[orderdetails],
account = IOM.MapRecord(IOM.MappingTables[account], [ProviderName = "IOMLabOrderIntakeProvider"]),
pricelevel = IOM.MapRecord(IOM.MappingTables[pricelevel], [ProviderName = "IOMLabOrderIntakeProvider"]),
orderheader = Record.FromTable
(
Table.SelectRows
(
Record.ToTable
(
[
ordernumber = Text.From(Source[ordernumber]),
name = ordernumber,
#"customerid_account@odata.bind" = "/accounts(" & Text.From(account[accountid]) & ")",
#"pricelevelid@odata.bind" = "/pricelevels(" & Text.From(pricelevel[pricelevelid]) & ")",
billto_city = Record.FieldOrDefault(Source, "billtocity"),
billto_stateorprovince = Record.FieldOrDefault(Source, "billtostateorprovince"),
billto_country = Record.FieldOrDefault(Source, "billtocountry"),
billto_postalcode = Record.FieldOrDefault(Source, "billtozip"),
shipto_city = Record.FieldOrDefault(Source, "shiptocity"),
shipto_stateorprovince = Record.FieldOrDefault(Source, "shiptostateorprovince"),
shipto_country = Record.FieldOrDefault(Source, "shiptocountry"),
shipto_postalcode = Record.FieldOrDefault(Source, "shiptozip")
]
), each [Value] <> null
)
),
orderlines = List.Transform(orderProducts, each
Record.FromTable
(
Table.SelectRows
(
Record.ToTable
(
[
ispriceoverridden = true,
#"productid@odata.bind" = "/products(" & IOM.MapRecord(IOM.MappingTables[product], [sku = Record.FieldOrDefault(_, "sku")])[productid] & ")",
#"uomid@odata.bind" = "/uoms(" & IOM.MapRecord(IOM.MappingTables[uom], [unit = Record.FieldOrDefault(_, "unit")])[uomid] & ")",
quantity = [quantity],
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")
]
), each [Value] <> null
)
)
),
salesorder = Record.AddField(orderheader, "order_details", orderlines)
in Text.FromBinary(Json.FromValue(salesorder));
- Pour Type de source de transformation, entrez "JsonPayload".
- Sélectionnez Enregistrer.
- Créez un fichier JSON, collez le code suivant et enregistrez-le.
{
"ordernumber": "IOMLabOrder001",
"shiptocity": "BELLEVUE",
"shiptostateorprovince": "WA",
"shiptocountry": "US",
"shiptozip": "98007",
"billtocity": "BELLEVUE",
"billtostateorprovince": "WA",
"billtocountry": "US",
"billtozip": "98007",
"orderdetails": [
{
"sku": "883988211855",
"unit": "each",
"quantity": 11
}
]
}
- À côté du champ Exemple de données, sélectionnez Choisir le fichier et téléchargez le fichier JSON que vous avez créé.
- Sélectionnez Enregistrer et fermer.
Ajouter une transformation de la définition du fournisseur à la solution
Pour ajouter une transformation de la définition de fournisseur à une solution, procédez comme suit.
- Accédez au Portail Power App Maker et accédez à la solution nouvellement créée IOMLabProviders.
- Sélectionnez Transformation de la > définition du fournisseur IOM existant.
- Sélectionnez Commande IOMLab en Commande Dataverse, puis sélectionnez Ajouter pour l’ajouter à la solution.
Créer un gestionnaire de messages pour le fournisseur
Pour créer un gestionnaire de messages fournisseur, procédez comme suit.
Accédez au Portail Power App Maker, accédez à Solutions, puis ouvrez la Solution par défaut.
Sélectionnez Nouveau.
Sélectionnez Flux de cloud, puis nommez-le " Laboratoire IOM - Gestionnaire de demandes de message pour la prise de commande".
Sélectionnez le type de déclencheur comme Outlook.com – Lorsqu’un nouvel e-mail arrive (V2), puis connectez-vous avec les informations d’identification de votre compte outlook.com.
Pour Dossier, sélectionnez Boîte de réception.
Pour À, sélectionnez Adresses e-mail des destinataires séparées par des points-virgules.
Pour À, sélectionnez Adresses e-mail des destinataires CC séparées par des points-virgules.
Pour À ou CC, sélectionnez Adresses e-mail des destinataires CC séparées par des points-virgules.
Pour De, sélectionnez Adresses e-mail des destinataires séparées par des points-virgules.
Pour Inclure les pièces jointes, sélectionnez Oui.
Pour Filtre d’objet, sélectionnez IOMLabOrderIntakeOrder.
Pour Importance, sélectionnez Tout.
Pour Uniquement avec pièce jointe, sélectionnez Oui.
Sélectionnez Nouvelle étape et ajoutez « Analyser JSON ».
Pour Teneur, collez le code suivant :
{ "ProviderId": "00000000-0000-0000-0000-000000000000" }
Collez directement l’exemple de code de schéma suivant :
{ "type": "object", "properties": { "ProviderId": { "type": "string" } } }
Sélectionnez Terminé.
Sélectionnez le bouton représentant des points de suspension (...), puis sélectionnez Renommer.
Renommez l’action "Propriétés système IOM".
Sélectionnez Enregistrer.
Sélectionnez Nouvelle étape, ajoutez une action Analyser JSON et renommez-le en "Initialiser les variables du fournisseur".
Pour Teneur, collez le code suivant :
{ "SourceObjectName": "IOMLabOrderIntakeProvider", "DestinationObjectName": "Dataverse Order" }
Sélectionnez Enregistrer.
Sélectionnez Nouvelle étape, ajoutez une action Initialiser la variable et renommez-la en "Initialiser le résultat de l’exécution du traitement".
Pour Nom, entrez "ExecutionResult".
Pour Type, sélectionnez Booléen.
Pour Valeur, sélectionnez true.
Sélectionnez Enregistrer.
Sélectionnez Nouvelle étape, ajoutez "étendue" et renommez-le en "Essayer".
Dans l’étendue Essayer, sélectionnez Ajouter une action.
Ajoutez "effectuer une action non liée" à partir du connecteur Dataverse et renommez-le "Acquitter le message du fournisseur dans l’IOM".
Pour Nom de l’action, saisissez "msdyn_CreateProviderMessageRequestExecution".
Pour PowerAutomateWorkflowId, entrez
workflow()['tags']['xrmWorkflowId']
comme expression.Pour PowerAutomateRunId, entrez
workflow()['run']?['name']
comme expression.Pour ProviderExternalRequestId, entrez
guid()
comme expression.Sélectionnez Enregistrer.
Sélectionnez Ajouter une action, puis ajoutez un contrôle Appliquer à chacun.
Pour Sélectionnez une sortie des étapes précédentes, sélectionnez Pièces jointes.
Sélectionnez Ajouter une action au sein de la boucle Appliquer à chacun, ajoutez Exécuter un flux enfant du connecteur Flux et renommez-le "Transformer le message avec Power Query Online".
Sélectionnez le flux enfant Transformateur de fournisseur d’IOM.
Pour Identifiant du fournisseur, sélectionnez la variable ProviderId.
Pour Nom de l’objet source, sélectionnez la variable SourceObjectName.
Pour Nom de l’objet de destination, sélectionnez la variable DestinationObjectName.
Pour Charge utile, saisissez
decodeBase64(items('Apply_to_each')?['ContentBytes'])
comme expression.Cliquez sur Enregistrer.
Après l’étape de transformation, sélectionnez Ajouter une action, ajoutez Exécuter un flux enfant à partir du connecteur Flux, et renommez-le "Créer une commande".
Pour Flux enfant, saisissez "Création de commande client IOM".
Pour Charge utile, saisissez
string(json(outputs('Transform_Message_with_Power_Query_Online')?['Body']?['result'])?[0][0])
comme expression.Sélectionnez Enregistrer.
Réduisez l’étendue Essayer en sélectionnant sa barre de titre.
Sélectionnez Nouvelle étape, ajoutez une étendue et renommez-la "Variable".
Dans l’étendue Variable, sélectionnez les points de suspension ("..."), puis sélectionnez Configurer l’exécution après.
Sélectionnez les cases a échoué et a expiré, puis sélectionnez Terminé.
Dans l’étendue Variable, sélectionnez Ajouter une action, ajoutez une action Définir la variable, et renommez-la "Définir le résultat de l’exécution comme ayant échoué".
Pour Nom, entrez "Executionresult".
Pour Valeur, sélectionnez False.
Sélectionnez Enregistrer.
Réduisez l’étendue Variable en sélectionnant sa barre de titre.
Sélectionnez Nouvelle étape, ajoutez une étendue et renommez-la "Enfin".
Dans l’étendue Enfin, sélectionnez les points de suspension ("..."), puis sélectionnez Configurer l’exécution après.
Cochez les cases est réussi, a échoué, est ignoré et a expiré, puis sélectionnez Terminé.
Dans l’étendue Enfin, sélectionnez Ajouter une action, ajoutez une action Effectuer une action non liée et renommez-la "Enregistrer le résultat de l’exécution de la demande de message du fournisseur".
Pour Nom de l’action, saisissez "msdyn_UpdateProviderMessageRequestStatus".
For ProviderMessageRequestExecutionId, saisissez
@outputs('Acknowledge_the_Provider_Message_in_IOM')?["body/ProviderMessageRequestExecutionId']
.Sélectionnez Enregistrer.
Ajouter une définition de logique de définition de fournisseur à la définition de fournisseur
Pour ajouter une définition de logique de définition de fournisseur à la définition de fournisseur, suivez cette procédure.
- Dans votre application Intelligent Order Management, accédez à Fournisseurs > Catalogue.
- Sélectionnez le nouveau IOMLabOrderIntakeProvider créé.
- Sélectionnez Modifier dans la barre de menus.
- Sélectionnez l’onglet Définitions logiques.
- Sélectionnez + Nouvelle définition de la logique de la définition du fournisseur IOM.
- Pour Afficher un nom, entrez "Gestionnaire de demande de message de prise de commande du laboratoire IOM".
- Pour Nom logique, saisissez "msdyn_LabOrderIntakeMessageRequestHandler".
- Pour Définition du fournisseur, entrez ou sélectionnez "IOMLabOrderIntakeProvider".
- Pour Type de logique, saisissez "Fournir un gestionnaire de messages".
- Pour Nom du workflow, entrez "Gestionnaire de demande de message de prise de commande du laboratoire IOM".
- Pour Minutes d’expiration, entrez "2".
- Pour Nombre maximal de tentatives, entrez "3".
- Pour Description, entrez "Gestionnaire de demande de message de prise de commande du laboratoire IOM".
- Sélectionnez Enregistrer. Cela génère une représentation JSON du flux cloud du gestionnaire de messages et remplit le champ Données client.
- Sélectionnez Enregistrer et fermer.
- Sélectionnez Connexions. Vous devriez voir à la fois les définitions de référence de connexion Microsoft Dataverse et Outlook.com répertoriées.
Note
Si vous voyez des définitions de référence de connexions autres que Microsoft Dataverse et Outlook.com, cela signifie que vous utilisez plusieurs références de connexion Dataverse dans le flux de votre gestionnaire de messages de prise de commande. Pour résoudre ce problème, accédez à votre flux et assurez-vous que toutes les actions Dataverse utilisent la même référence de connexion.
Ajouter une définition de logique de définition de fournisseur à la solution IOMLabProviders
Pour ajouter une définition de logique de définition de fournisseur à la solution IOMLabProviders, suivez cette procédure.
- Accédez au Portail Power App Maker et accédez à la solution nouvellement créée IOMLabProviders.
- Sélectionnez Définition logique de la > définition du fournisseur IOM existant.
- Sélectionnez Gestionnaire de demande de message de prise de commande du laboratoire IOM, puis sélectionnez Ajouter pour l’ajouter à la solution.
Ajouter une référence de connexion à la définition du fournisseur à la solution IOMLabProviders
Pour ajouter une référence de connexion à la définition à la solution IOMLabProviders, suivez cette procédure.
- Accédez au Portail Power App Maker et accédez à la solution nouvellement créée IOMLabProviders.
- Sélectionnez Référence de connexion de la > définition du fournisseur IOM existant.
- Sélectionnez les deux définitions de référence de connexion Microsoft Dataverse et Outlook.com, puis sélectionnez Ajouter pour les ajouter à la solution.
Prochaine étape du laboratoire de démarrage rapide : Créer un fournisseur d’exécution.