Compartilhar via


Definir o canal personalizado

Canais aplicáveis: SMS, personalizado

Agora que você definiu as partes do seu canal personalizado, é hora de definir o canal. Esta etapa é onde você conecta todas as partes anteriores em um arquivo de metadados, que é um registro da entidade Definição de Canal (msdyn_channeldefinition).

Importante

Se você estiver configurando registros de metadados diretamente no arquivo de personalização, verifique se os GUIDs estão em letras minúsculas.

Contrato de definição de canal

Nome lógico da entidade: msdyn_channeldefinition

Nome do conjunto de entidades: msdyn_channeldefinitions

Nome do atributo da ID principal: msdyn_channeldefinitionid

  • msdyn_displayname: cadeia de caracteres – opcional. O nome de exibição do canal.
  • msdyn_description: cadeia de caracteres – opcional. Descrição do canal.
  • msdyn_channeltype: cadeia de caracteres – obrigatório. Valores com suporte: personalizado, SMS
  • msdyn_outboundendpointurltemplate: cadeia de caracteres – obrigatório. Nome da API personalizada para o fluxo de saída.
  • msdyn_hasinbound: bit – obrigatório. Valor booliano que indica se o canal oferece suporte a mensagens de entrada.
  • msdyn_hasdeliveryreceipt: bit – obrigatório. Valor booliano que indica se o canal oferece suporte ao recebimento da entrega.
  • msdyn_supportsaccount: bit – obrigatório. Valor booliano que indica se o canal oferece suporte à configuração em nível de conta. Para SMS, ele deve ser verdadeiro; caso contrário, falso.
  • msdyn_channeldefinitionexternalentity: cadeia de caracteres – obrigatório. Nome da entidade do CDS, representando uma configuração estendida da instância do canal.
  • msdyn_channeldefinitionexternalformid: GUID – obrigatório. ID do formulário a ser renderizado para exibir a configuração da tabela de instâncias do canal estendido.
  • msdyn_channeldefinitionaccountexternalentity: cadeia de caracteres – opcional. Nome da entidade do CDS, representando uma configuração estendida da instância da conta.
  • msdyn_channeldefinitionaccountexternalformid: cadeia de caracteres – opcional. ID do formulário a ser renderizado para exibir a configuração da tabela de contas de instâncias do canal estendido.
  • msdyn_messageformid: GUID – opcional. Define um formulário que representa o editor de mensagens para o canal.

Os canais são definidos no customizations.xml como componentes da solução. Coloque cada msdyn_channeldefinition em elementos ImportExportXml>msdyn_channeldefinitions. Cada elemento da parte da mensagem msdyn_channeldefinition deve incluir sua própria ID exclusiva no formulário de um GUID como o atributo XML msdyn_channeldefinitionid. Quando sua solução é importada, uma nova linha é criada na tabela msdyn_channeldefinition.

No seguinte exemplo, note que:

Exemplo de customizations.xml incluindo definição 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>

Soluções de exemplo

O exemplos a seguir incluem soluções descompactadas para o Dataverse e projetos de plug-ins. Para empacotar e importar essas soluções, primeiro crie o projeto de plug-in. O projeto copia o assembly para o projeto da solução. Em seguida, compacte a solução usando a Ferramenta Pacote de Soluções.

Como criar o projeto de plug-in e empacotar a solução

  1. Crie o projeto de plug-ins com MSBuild ou o Visual Studio.

    A criação do projeto cria um DLL na pasta PluginAssemblies dentro da pasta da solução Dataverse.

  2. Empacote a pasta não gerenciada com o Pacote de Soluções usando:

    pac solution pack --zipfile C:\tmp\SampleCustomChannelSolution.zip -f src\Solutions\Samples\SampleCustomChannel\SampleCustomChannel.Solution\unmanaged --packagetype Both