사용자 지정 채널 정의

적용 가능한 채널: SMS, 사용자 지정

맞춤 채널의 일부를 정의했으므로 이제 채널을 정의할 차례입니다. 이 단계에서는 채널 정의 엔터티(msdyn_channeldefinition)의 레코드인 하나의 메타데이터 파일에서 모든 이전 조각을 연결합니다.

중요

사용자 지정 파일에서 직접 메타데이터 레코드를 구성하는 경우 GUID가 소문자인지 확인하십시오.

채널 정의 계약

엔터티 논리적 이름: msdyn_channeldefinition

엔터티 설정 이름: msdyn_channeldefinitions

기본 ID 특성 이름: msdyn_channeldefinitionid

  • msdyn_displayname: 문자열 - 선택 사항. 채널의 표시 이름입니다.
  • msdyn_description: 문자열 - 선택 사항. 채널에 대한 설명입니다.
  • msdyn_channeltype: 문자열 - 필수. 지원되는 값: Custom, SMS.
  • msdyn_outboundendpointurltemplate: 문자열 - 필수. 아웃바운드 흐름에 대한 사용자 지정 API의 이름입니다.
  • msdyn_hasinbound: 비트 - 필수. 채널이 인바운드 메시지를 지원하는지 여부를 나타내는 부울 값입니다.
  • msdyn_hasdeliveryreceipt: 비트 - 필수. 채널이 배달 수신을 지원하는지 여부를 나타내는 부울 값입니다.
  • msdyn_supportsaccount: 비트 - 필수. 채널이 계정 수준 구성을 지원하는지 여부를 나타내는 부울 값입니다. SMS의 경우 true여야 하며 그렇지 않으면 false입니다.
  • msdyn_channeldefinitionexternalentity: 문자열 - 필수. 채널 인스턴스의 확장된 구성을 나타내는 CDS 엔터티의 이름입니다.
  • msdyn_channeldefinitionexternalformid: GUID - 필수. 확장 채널 인스턴스 테이블의 구성을 표시하기 위해 렌더링할 양식의 ID입니다.
  • msdyn_channeldefinitionaccountexternalentity: 문자열 - 선택 사항. 채널 인스턴스 계정의 확장 구성을 나타내는 CDS 엔터티의 이름입니다.
  • msdyn_channeldefinitionaccountexternalformid: 문자열 - 선택 사항. 확장 채널 인스턴스 계정 테이블의 구성을 표시하기 위해 렌더링할 양식의 ID입니다.
  • msdyn_messageformid: GUID - 선택 사항. 채널의 메시지 편집기를 나타내는 형식을 정의합니다.

채널은 customizations.xml에서 솔루션 구성 요소로 정의됩니다. ImportExportXml>msdyn_channeldefinitions 요소 아래에 모든 msdyn_channeldefinition을 배치합니다. 각 메시지 부분 요소 msdyn_channeldefinition에는 XML 특성 msdyn_channeldefinitionid로 GUID 형식의 고유 ID가 포함되어야 합니다. 솔루션을 가져오면 msdyn_channeldefinition 테이블에 새 행이 생성됩니다.

다음 예에서 다음 사항에 유의하십시오.

  • msdyn_channeldefinitionexternalentitymsdyn_channeldefinitionexternalformid에는 채널 인스턴스를 정의할 때 생성한 엔터티의 이름과 양식 ID가 포함되어 있습니다.
  • msdyn_channeldefinitionaccountexternalentitymsdyn_channeldefinitionaccountexternalformid에는 채널 인스턴스 계정을 정의할 때 생성한 엔터티의 이름과 양식 ID가 포함되어 있습니다.
  • msdyn_messageformid에는 사용자 지정 메시지 편집기를 정의한 경우 생성한 양식 ID가 포함됩니다.
  • 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 및 플러그인 프로젝트에 대한 압축이 풀린 솔루션이 포함되어 있습니다. 이러한 솔루션을 패키징하고 가져오려면 먼저 플러그인 프로젝트를 빌드하십시오. 프로젝트에서 어셈블리를 솔루션 프로젝트에 복사합니다. 그런 다음 솔루션 패키지 도구를 사용하여 솔루션을 패키징합니다.

플러그인 프로젝트를 빌드하고 솔루션을 패키징하는 방법

  1. MSBuild 또는 Visual Studio를 사용하여 플러그인 프로젝트를 빌드합니다.

    프로젝트를 빌드하면 Dataverse 솔루션 폴더 내의 PluginAssemblies 폴더에 DLL을 생성합니다.

  2. 다음 중 하나를 사용하여 솔루션 패키저로 관리되지 않는 폴더를 압축합니다.

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