Definir el canal personalizado
Canales aplicables: SMS, Personalizado
Ahora que ha definido las partes de su canal personalizado, es hora de definir el canal. Este paso es donde conecta todas las piezas anteriores en un archivo de metadatos, que es un registro de la entidad Channel Definition (msdyn_channeldefinition
).
Importante
Si está configurando registros de metadatos directamente en el archivo de personalización, asegúrese de que los GUID estén en minúsculas.
Contrato de definición de canal
Nombre lógico de la entidad: msdyn_channeldefinition
Nombre establecido de la entidad: msdyn_channeldefinitions
Nombre del atributo de ID principal: msdyn_channeldefinitionid
- msdyn_displayname: cadena - Opcional. Nombre para mostrar del canal.
- msdyn_description: cadena - Opcional. Descripción del canal.
- msdyn_channeltype: cadena - Requerido. Valores admitidos: personalizado, SMS.
- msdyn_outboundendpointurltemplate: cadena: obligatorio. Nombre de la API personalizada para el flujo de salida.
- msdyn_hasinbound: bit - Requerido. Valor booleano que indica si el canal admite mensajes entrantes.
- msdyn_hasdeliveryreceipt: bit - Requerido. Valor booleano que indica si el canal admite receipción de entrega.
- msdyn_supportsaccount: bit - Requerido. Valor booleano que indica si el canal admite configuración de nivel de cuenta. Para SMS, debe ser verdadero; en caso contrario, falso.
- msdyn_channeldefinitionexternalentity: cadena - Requerido. Nombre de la entidad CDS, que representa una configuración extendida de la instancia del canal.
- msdyn_channeldefinitionexternalformid: GUID - Requerido. Id. del formulario que se representará para mostrar la configuración de la tabla de instancias del canal ampliado.
- msdyn_channeldefinitionaccountexternalentity: cadena - Opcional. Nombre de la entidad CDS, que representa una configuración extendida de la cuenta de instancia del canal.
- msdyn_channeldefinitionaccountexternalformid: cadena - Opcional. Id. del formulario que se representará para mostrar la configuración de la tabla de cuenta de instancias del canal ampliado.
- msdyn_messageformid: GUID - Opcional. Define un formulario que representa el editor de mensajes para el canal.
Los canales se definen en customizations.xml como componentes de la solución. Coloque cada msdyn_channeldefinition bajo los elementos ImportExportXml>msdyn_channeldefinitions. Cada elemento de la parte del mensaje msdyn_channeldefinition
debe incluir su propio ID único en forma de GUID como atributo XML msdyn_channeldefinitionid. Cuando se importa la solución, se crea una nueva fila para cada parte del mensaje en la tabla msdyn_channeldefinition.
En el ejemplo siguiente, tenga en cuenta esto:
- msdyn_channeldefinitionexternalentity y msdyn_channeldefinitionexternalformid contienen el nombre y el ID de formulario de la entidad que creó al definir la instancia de canal.
- msdyn_channeldefinitionaccountexternalentity y msdyn_channeldefinitionaccountexternalformid contienen el nombre y el ID de formulario de la entidad que creó al definir la instancia de canal.
- msdyn_messageformid contiene el ID del formulario que creó si definió un editor de mensajes personalizado.
- msdyn_outboundendpointurltemplate contiene la API personalizada que creó al definir las API personalizadas.
Ejemplo de customizations.xml incluida la definición 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>
Soluciones de muestra
Los ejemplos siguientes incluyen soluciones sin envasar para Dataverse y proyectos de complementos. Para empaquetar e importar estas soluciones, primero cree el proyecto del complemento. A continuación, el proyecto copia el ensamblaje en el proyecto de solución. Luego, empaque la solución usando la herramienta Empaquetador de soluciones.
Cómo crear el proyecto de complementos y empaquetar la solución
Compile el proyecto de complementos con MSBuild o Visual Studio.
La compilación del proyecto crea una DLL en la carpeta PluginAssemblies dentro de la carpeta de solución Dataverse.
Empaque la carpeta no administrada con Solution Packager usando cualquiera de los siguientes:
- pac CLI (preferido)
- Empaquetador de soluciones
pac solution pack --zipfile C:\tmp\SampleCustomChannelSolution.zip -f src\Solutions\Samples\SampleCustomChannel\SampleCustomChannel.Solution\unmanaged --packagetype Both