Определение пользовательского канала
Применимые каналы: SMS, пользовательский
Теперь, когда вы определили части своего пользовательского канала, пришло время определить канал. На этом шаге вы соединяете все предыдущие части в один файл метаданных, который является записью сущности Определение канала (msdyn_channeldefinition
).
Внимание
Если вы настраиваете записи метаданных непосредственно в файле настройки, проследите, чтобы идентификаторы GUID были указаны в нижнем регистре.
Контракт определения канала
Логическое имя сущности: msdyn_channeldefinition
Имя набора сущностей: msdyn_channeldefinitions
Имя атрибута основного идентификатора: msdyn_channeldefinitionid
- msdyn_displayname: строка — необязательно. Отображаемое имя канала.
- msdyn_description: строка — необязательно. Описание канала.
- msdyn_channeltype: строка — обязательно. Поддерживаемые значения: пользовательский, SMS.
- msdyn_outboundendpointurltemplate: строка — обязательно. Имя пользовательского API для исходящего потока.
- msdyn_hasinbound: бит — обязательно. Логическое значение, указывающее, поддерживает ли канал входящие сообщения.
- msdyn_hasdeliveryreceipt: бит — обязательно. Логическое значение, указывающее, поддерживает ли канал квитанцию о доставке.
- msdyn_supportsaccount: бит — обязательно. Логическое значение, указывающее, поддерживает ли канал конфигурацию уровня учетной записи. Для SMS это должно быть значение true; в противном случае false.
- msdyn_channeldefinitionexternalentity: строка — обязательно. Имя сущности CDS, представляющее расширенную конфигурацию экземпляра канала.
- msdyn_channeldefinitionexternalformid: GUID — обязательно. Идентификатор формы, которая будет отображаться для отображения конфигурации таблицы расширенного экземпляра канала.
- msdyn_channeldefinitionaccountexternalentity: строка — необязательно. Имя сущности CDS, представляющее расширенную конфигурацию учетной записи экземпляра канала.
- msdyn_channeldefinitionaccountexternalformid: строка — необязательно. Идентификатор формы, которая будет отображаться для отображения конфигурации таблицы учетных записей расширенного экземпляра канала.
- msdyn_messageformid: GUID — необязательно. Определяет форму, представляющую редактор сообщений для канала.
Каналы определены в customizations.xml как компоненты решения. Поместите все msdyn_channeldefinition в элементы ImportExportXml>msdyn_channeldefinitions. Каждый элемент части сообщения msdyn_channeldefinition
должен включать свой собственный уникальный идентификатор в виде GUID в качестве XML-атрибута msdyn_channeldefinitionid. При импорте вашего решения новая строка создается в таблице msdyn_channeldefinition.
В следующем примере,обратите внимание на следующее:
- msdyn_channeldefinitionexternalentity и msdyn_channeldefinitionexternalformid содержат имя и ИД формы сущности, который вы создали при определении экземпляра канала.
- msdyn_channeldefinitionaccountexternalentity и msdyn_channeldefinitionaccountexternalformid содержат имя и ИД формы сущности, которую вы создали при определении учетной записи экземпляра канала.
- msdyn_messageformid содержит идентификатор формы, которую вы создали, если вы определили редактор пользовательских сообщений.
- msdyn_outboundendpointurltemplate содержит пользовательский API, который вы создали при определении пользовательских API.
Пример файла customizations.xml, включая определение канала:
<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>
Примеры решений
Следующие примеры ниже включают распакованные решения для Dataverse и проекты подключаемых модулей. Чтобы упаковать и импортировать эти решения, сначала создайте проект подключаемого модуля. Проект скопирует сборку в проект решения. Затем упакуйте решения, используя средство "Упаковщик решений".
Как собрать проект подключаемых модулей и упаковать решение
Создайте проект подключаемых модулей с помощью MSBuild или Visual Studio.
Сборка проекта создает библиотеку DLL в папке PluginAssemblies внутри папки решения Dataverse.
Упакуйте неуправляемую папку с помощью Solution Packager, используя один из следующих способов:
- pac CLI (предпочтительно)
- Упаковщик решений
pac solution pack --zipfile C:\tmp\SampleCustomChannelSolution.zip -f src\Solutions\Samples\SampleCustomChannel\SampleCustomChannel.Solution\unmanaged --packagetype Both