Definere den brugerdefinerede kanal
Relevante kanaler: SMS, tilpasset
Nu, hvor du har defineret delene på den brugerdefinerede kanal, er det tid til at definere kanalen. Dette trin er det sted, hvor du tilknytter alle tidligere elementer i én metadatafil, som er en post for objektet Kanaldefinition (msdyn_channeldefinition
).
Vigtigt
Hvis du konfigurerer metadataposter direkte i tilpasningsfilen, skal du kontrollere, at GUID'erne har små bogstaver.
Kontrakt til kanaldefinition
Objektets logiske navn: msdyn_channeldefinition
Navn på objektsæt: msdyn_channeldefinitions
Navn på attribut for primært id: msdyn_channeldefinitionid
- msdyn_displayname:: streng – valgfrit. Vist navn på kanalen.
- msdyn_description:: streng – valgfrit. Beskrivelse af kanalen.
- msdyn_channeltype: streng – påkrævet. Understøttede værdier: Tilpasset, SMS.
- msdyn_outboundendpointurltemplate: streng – påkrævet. Navnet på den brugerdefinerede API for det udgående flow.
- msdyn_hasinbound:: bit - påkrævet. Boolesk værdi, der angiver, om kanalen understøtter indgående meddelelser.
- msdyn_hasdeliveryreceipt:: bit - påkrævet. Boolesk værdi, der angiver, om kanalen understøtter kvittering for levering.
- msdyn_supportsaccount:: bit - påkrævet. Boolesk værdi, der angiver, om kanalen understøtter konfiguration på kontoniveau. I forbindelse med SMS skal den være sand. Ellers falsk.
- msdyn_channeldefinitionexternalentity:: streng - påkrævet. Navn på CDS-objektet, der repræsenterer en udvidet konfiguration af kanalforekomsten.
- msdyn_channeldefinitionexternalformid:: GUID - påkrævet. Id for den formular, der skal gengives for at få vist konfigurationen af tabellen med den udvidede kanalforekomst.
- msdyn_channeldefinitionaccountexternalentity:: streng – valgfrit. Navn på CDS-objektet, der repræsenterer en udvidet konfiguration af kanalforekomstkontoen.
- msdyn_channeldefinitionaccountexternalformid:: streng – valgfrit. Id for den formular, der skal gengives for at få vist konfigurationen af tabellen med den udvidede kanalforekomstkonto.
- msdyn_messageformid:: GUID - valgfrit. Definerer en formular, der repræsenterer meddelelseseditoren for kanalen.
Kanaler defineres i customizations.xml som løsningskomponenter. Placer enhver msdyn_channeldefinition under ImportExportXml>msdyn_channeldefinitions-elementer. Hvert element i meddelelsesdelen msdyn_channeldefinition
skal inkludere sit eget entydige id i form af et GUID som XML-attribut msdyn_channeldefinitionid. Ved importen af løsningen oprettes en ny række i msdyn_channeldefinition-tabellen.
I følgende eksempel skal du bemærke, at:
- msdyn_channeldefinitionexternalentity og msdyn_channeldefinitionexternalformid indeholder navnet på og formular-id for det objekt, du oprettede, da du definerede kanalforekomsten.
- msdyn_channeldefinitionaccountexternalentity og msdyn_channeldefinitionaccountexternalformid indeholder navnet på og formular-id for det objekt, du oprettede, da du definerede kanalforekomstens firmakonto.
- msdyn_messageformid indeholder det formular-id, du har oprettet, hvis du har oprettet en brugerdefineret meddelelseseditor.
- msdyn_outboundendpointurltemplate indeholder det tilpassede API, du oprettede, da du oprettede brugerdefinerede API'er.
Eksempel på customizations.xml, herunder kanaldefinition:
<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>
Eksempel på løsninger
Eksemplerne nedenfor omfatter ikke-pakkede løsninger til Dataverse og projekter med plug-ins. Hvis du vil pakke og importere disse løsninger, skal du først bygge plug-in-projektet. Assemblyen kopieres til løsningsprojektet. Pak derefter løsningen ved hjælp af værktøjet Løsningspakker.
Sådan kan du opbygge plugin-projektet og pakke løsningen
Opret plug-in-projektet med MSBuild eller Visual Studio.
Når du bygger projektet, oprettes der en DLL i mappen PluginAssemblies i Dataverse-løsningsmappen.
Pak den ikke-administrerede mappe sammen med Solution Packager ved hjælp af en af følgende:
- pac CLI (foretrukket)
- Løsningspakker
pac solution pack --zipfile C:\tmp\SampleCustomChannelSolution.zip -f src\Solutions\Samples\SampleCustomChannel\SampleCustomChannel.Solution\unmanaged --packagetype Both