Définir le canal personnalisé
Canaux applicables : SMS, personnalisé
Maintenant que vous avez défini les parties de votre canal personnalisé, il est temps de définir le canal. Cette étape consiste à connecter toutes les parties précédentes dans un seul fichier de métadonnées, qui est un enregistrement de l’entité Définition de canal (msdyn_channeldefinition
).
Important
Si vous configurez les enregistrements de métadonnées directement dans le fichier de personnalisation, assurez-vous que les GUID sont en minuscules.
Contrat Définition de canal
Nom logique de l’entité : msdyn_channeldefinition
Nom de définition de l’entité : msdyn_channeldefinitions
Nom d’attribut d’identifiant principal : msdyn_channeldefinitionid
- msdyn_displayname : chaîne - Facultatif. Nom complet du canal.
- msdyn_description : chaîne - Facultatif. Description du canal.
- msdyn‑channeltype : chaîne - Obligatoire. Valeurs prises en charge : personnalisé, SMS.
- msdyn_outboundendpointurltemplate : chaîne – Obligatoire. Nom de l’API personnalisée pour le flux sortant.
- msdyn_hasinbound : bit - Obligatoire. Valeur booléenne indiquant si le canal prend en charge les messages entrants.
- msdyn_hasdeliveryreceipt : bit - Obligatoire. Valeur booléenne indiquant si le canal prend en charge la réception de livraison.
- msdyn_supportsaccount : bit - Obligatoire. Valeur booléenne indiquant si le canal prend en charge la configuration au niveau du compte. Pour les SMS, elle doit être true ; sinon, false.
- msdyn_channeldefinitionexternalentity : chaîne - Obligatoire. Nom de l’entité CDS, représentant une configuration étendue de l’instance de canal.
- msdyn_channeldefinitionexternalformid : GUID - Obligatoire. ID du formulaire à restituer pour afficher la configuration de la table d’instance de canal étendu.
- msdyn_channeldefinitionaccountexternalentity : chaîne - Facultatif. Nom de l’entité CDS, représentant une configuration étendue du compte de l’instance de canal.
- msdyn_channeldefinitionaccountexternalformid : chaîne - Facultatif. ID du formulaire à restituer pour afficher la configuration de la table de compte d’instance de canal étendu.
- msdyn_messageformid : GUID - Facultatif. Définit un formulaire représentant l’éditeur de message pour le canal.
Les canaux sont définis dans customizations.xml en tant que composants de la solution. Placez chaque msdyn_channeldefinition sous les éléments ImportExportXml>msdyn_channeldefinitions. Chaque élément de partie de message msdyn_channeldefinition
doit inclure son propre ID unique sous la forme d’un GUID comme attribut XML msdynchannelmessagepartid. Lorsque votre solution est importée, une nouvelle ligne est créée dans la table msdyn_channeldefinition.
Dans l’exemple suivant, notez que :
- Les attributs msdyn_channeldefinitionexternalentity et msdyn_channeldefinitionexternalformid contiennent le nom et l’ID de formulaire de l’entité que vous avez créée lorsque vous avez défini l’instance de canal.
- Les attributs msdyn_channeldefinitionaccountexternalentity et msdyn_channeldefinitionaccountexternalformid contiennent le nom et l’ID de formulaire de l’entité que vous avez créée lorsque vous avez défini le compte de l’instance de canal.
- L’attribut msdyn_messageformid contient l’ID de formulaire que vous avez créé si vous avez défini un éditeur de message personnalisé.
- L’attribut msdyn_outboundendpointurltemplate contient l’API personnalisée que vous avez créée lorsque vous avez défini des API personnalisées.
Exemple de customizations.xml incluant la définition de canal :
<ImportExportXml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<msdyn_channeldefinitions>
<msdyn_channeldefinition msdyn_channeldefinitionid="af0c2a3c-85a5-43b3-84be-2a4a171249f3">
<msdyn_channeldefinitionaccountexternalentity>cr65f_samplechannelinstanceaccount</msdyn_channeldefinitionaccountexternalentity>
<msdyn_channeldefinitionaccountexternalformid>3071133f-1208-4dc1-8eba-4d4724961029</msdyn_channeldefinitionaccountexternalformid>
<msdyn_channeldefinitionexternalentity>cr65f_samplechannelinstance</msdyn_channeldefinitionexternalentity>
<msdyn_channeldefinitionexternalformid>7d2b885a-80eb-479d-b0c3-600bc41e9789</msdyn_channeldefinitionexternalformid>
<msdyn_channeltype>Custom</msdyn_channeltype>
<msdyn_description>Metadata definition for sample custom channel</msdyn_description>
<msdyn_displayname>Sample custom channel</msdyn_displayname>
<msdyn_hasdeliveryreceipt>0</msdyn_hasdeliveryreceipt>
<msdyn_hasinbound>0</msdyn_hasinbound>
<msdyn_messageformid>69723cfe-3835-4126-ab9a-a82a5b88c21d</msdyn_messageformid>
<msdyn_outboundendpointurltemplate>/cr65f_OutboundCustomApi</msdyn_outboundendpointurltemplate>
<msdyn_specialconsentrequired>0</msdyn_specialconsentrequired>
<msdyn_supportsaccount>0</msdyn_supportsaccount>
<msdyn_supportsattachment>0</msdyn_supportsattachment>
<msdyn_supportsbinary>0</msdyn_supportsbinary>
<statecode>0</statecode>
<statuscode>1</statuscode>
</msdyn_channeldefinition>
</msdyn_channeldefinitions>
</ImportExportXml>
Exemples de solution
Les exemples suivants incluent des solutions décompressées pour Dataverse et les projets de plug-ins. Pour compresser et importer ces solutions, créez d’abord le projet de plug-in. Le projet copie l’assembly dans le projet de la solution. Ensuite, conditionnez la solution à l’aide de l’outil de packager de solutions.
Comment générer le projet de plug-in et compresser la solution
Générez le projet de plug-ins avec MSBuild ou Visual Studio.
La génération du projet crée une DLL dans le dossier PluginAssemblies, à l’intérieur du dossier de la solution Dataverse.
Compressez le dossier non géré avec Solution Packager en utilisant soit :
- CLI pac (par défaut)
- Packager de solution
pac solution pack --zipfile C:\tmp\SampleCustomChannelSolution.zip -f src\Solutions\Samples\SampleCustomChannel\SampleCustomChannel.Solution\unmanaged --packagetype Both