Definirea canalului particularizat
Canale aplicabile: SMS, personalizate
Acum că ați definit părțile canalului dvs. personalizat, este timpul să definiți canalul. Acest pas este în care conectați toate piesele anterioare într-un singur fișier de metadate, care este o înregistrare a entității Definiția canalului (msdyn_channeldefinition
).
Important
Dacă configurați înregistrările de metadate direct în fișierul de personalizare, asigurați-vă că GUID-urile sunt litere mici.
Contract de definire a canalului
Nume logic al entității: msdyn_channeldefinition
Nume set de entități: msdyn_channeldefinitions
Nume atribut ID primar: msdyn_channeldefinitionid
- msdyn_displayname: șir - Opțional. Numele afișat al canalului.
- msdyn_description: șir - Opțional. Descrierea canalului.
- msdyn_channeltype: șir - Obligatoriu. Valori acceptate: Personalizat, SMS.
- msdyn_outboundendpointurltemplate: șir – Obligatoriu. Numele API-ului personalizat pentru fluxul de ieșire.
- msdyn_hasinbound: bit - Obligatoriu. Valoare booleană care indică dacă canalul acceptă mesaje de intrare.
- msdyn_hasdeliveryreceipt: bit - Obligatoriu. Valoare booleană care indică dacă canalul acceptă primirea de livrare.
- msdyn_supportsaccount: bit - Obligatoriu. Valoare booleană care indică dacă canalul acceptă configurarea la nivel de cont. Pentru SMS, trebuie să fie adevărat; altfel, fals.
- msdyn_channeldefinitionexternalentity: șir - Obligatoriu. Numele entității CDS, reprezentând o configurație extinsă a instanței canalului.
- msdyn_channeldefinitionexternalformid: GUID - Necesar. ID-ul formularului care urmează să fie redat pentru a afișa configurația tabelului de instanțe de canal extins.
- msdyn_channeldefinitionaccountexternalentity: șir - Opțional. Numele entității CDS, reprezentând o configurație extinsă a contului instanței de canal.
- msdyn_channeldefinitionaccountexternalformid: șir - Opțional. ID-ul formularului de redat pentru a afișa configurația tabelului de conturi de instanță de canal extins.
- msdyn_messageformid: GUID - Opțional. Definește un formular reprezentând editorul de mesaje pentru canal.
Canalele sunt definite în customizations.xml ca componente ale soluției. Plasați fiecare msdyn_channeldefinition sub ImportExportXml>msdyn_channeldefinitions elemente. Fiecare element al părții mesajului msdyn_channeldefinition
trebuie să includă propriul său ID unic sub forma unui GUID ca atribut XML msdyn_channeldefinitionid. Când soluția dvs. este importată, este creat un nou rând în tabelul msdyn_channeldefinition .
În exemplul următor, rețineți că:
- msdyn_channeldefinitionexternalentity și msdyn_channeldefinitionexternalformid conțin numele și ID-ul de formular al entității pe care ați creat-o când a definit instanța canalului.
- msdyn_channeldefinitionaccountexternalentity și msdyn_channeldefinitionaccountexternalformid conțin numele și ID-ul de formular al entității pe care ați creat-o când a definit contul de instanță de canal.
- msdyn_messageformid conține ID-ul formularului pe care l-ați creat dacă ați definit un editor de mesaje personalizat.
- msdyn_outboundendpointurltemplate conține API-ul personalizat pe care l-ați creat când ați definit API-uri personalizate.
Exemplu de customizations.xml, inclusiv definiția canalului:
<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>
Soluții de probă
Următoarele exemple includ soluții dezambalate pentru proiectele Dataverse și pluginuri. Pentru a împacheta și importa aceste soluții, mai întâi creați proiectul plugin. Proiectul copiază ansamblul în proiectul de soluție. Apoi, împachetați soluția utilizând instrumentul Solution Packager.
Cum să construiți proiectul de pluginuri și să împachetați soluția
Construiți proiectul de pluginuri cu MSBuild sau Visual Studio.
Construirea proiectului creează un DLL în folderul PluginAssemblies din folderul Dataverse soluție.
Împachetați folderul negestionat cu Solution Packager utilizând fie:
- pac CLI (preferabil)
- Ambalator de soluții
pac solution pack --zipfile C:\tmp\SampleCustomChannelSolution.zip -f src\Solutions\Samples\SampleCustomChannel\SampleCustomChannel.Solution\unmanaged --packagetype Both