1.创建2个实体:渠道【new_flashinfosmschannel】、消息模板(配置窗体)
注意:如果想用标准消息模板,可以不用创建消息模板

标准消息模板效果:

2.导出解决方案,往XML增加一个关系【EntityRelationship】
https://learn.microsoft.com/zh-cn/dynamics365/marketing/real-time-marketing-define-custom-channel-instance

注意:导出的解决方案,需要包含实体【msdyn_channelinstance】

示例:

 <EntityRelationship Name="msdyn_ChannelInstance_extendedentityid_new_flashinfosmschannel">
<EntityRelationshipType>OneToMany</EntityRelationshipType>
<IsCustomizable>0</IsCustomizable>
<IntroducedVersion>1.0.0.0</IntroducedVersion>
<IsHierarchical>0</IsHierarchical>
<ReferencingEntityName>msdyn_ChannelInstance</ReferencingEntityName>
<ReferencedEntityName>new_flashinfosmschannel</ReferencedEntityName>
<CascadeAssign>NoCascade</CascadeAssign>
<CascadeDelete>RemoveLink</CascadeDelete>
<CascadeReparent>NoCascade</CascadeReparent>
<CascadeShare>NoCascade</CascadeShare>
<CascadeUnshare>NoCascade</CascadeUnshare>
<CascadeRollupView>NoCascade</CascadeRollupView>
<IsValidForAdvancedFind>1</IsValidForAdvancedFind>
<ReferencingAttributeName>msdyn_extendedentityId</ReferencingAttributeName>
<RelationshipDescription>
<Descriptions>
<Description description="" languagecode="1033" />
</Descriptions>
</RelationshipDescription>
<EntityRelationshipRoles>
<EntityRelationshipRole>
<NavPaneDisplayOption>UseCollectionName</NavPaneDisplayOption>
<NavPaneArea>Details</NavPaneArea>
<NavPaneOrder>10000</NavPaneOrder>
<NavigationPropertyName>msdyn_extendedentityid_new_flashinfosmschannel</NavigationPropertyName>
<RelationshipRoleType>1</RelationshipRoleType>
</EntityRelationshipRole>
<EntityRelationshipRole>
<NavigationPropertyName>msdyn_ChannelInstance_extendedentityid_new_flashinfosmschannel</NavigationPropertyName>
<RelationshipRoleType>0</RelationshipRoleType>
</EntityRelationshipRole>
</EntityRelationshipRoles>
</EntityRelationship>

3.写插件代码&注册上去&在CRM创建customer api,比如创建的new_flashinfosms_customapi

4.在代码创建自定义渠道

/// <summary>
/// 渠道定义
/// </summary>
/// <param name="service"></param>
/// <returns></returns>
public static Guid Insert_msdyn_channeldefinitions(IOrganizationService service)
{
Entity entity = new Entity("msdyn_channeldefinition");
entity.Id = Guid.NewGuid();//
entity["msdyn_name"] = "Flashinfo SMS Channel";
entity["msdyn_displayname"] = "Flashinfo SMS Channel";
entity["msdyn_description"] = "Flashinfo SMS Channel";
entity["msdyn_channeltype"] = "Custom";
entity["msdyn_outboundendpointurltemplate"] = "/new_flashinfosms_customapi";
entity["msdyn_hasinbound"] = false;
entity["msdyn_hasdeliveryreceipt"] = true;
entity["msdyn_supportsaccount"] = false;
entity["msdyn_channeldefinitionexternalentity"] = "new_flashinfosmschannel";
entity["msdyn_channeldefinitionexternalformid"] = "2054e3cb-e2fb-4d0a-bdde-cc51982da65d"; //必须小写,是实体new_flashinfosmschannel的主窗体ID
entity["msdyn_messageformid"] = "9af480f8-a1b8-422a-9e4e-62d95a952ccf"; //可以为null,代表使用标准模板效果 var id = service.Create(entity);
return id;
}
/// <summary>
/// 消息定义
/// </summary>
/// <param name="service"></param>
/// <param name="cid"></param>
public static void Insert_msdyn_channelmessageparts(IOrganizationService service, Guid cid)
{
Entity entity = new Entity("msdyn_channelmessagepart");
entity.Id = Guid.NewGuid();//
entity["msdyn_name"] = "text";// 消息部分的名称
entity["msdyn_displayname"] = "text";// 显示名称
entity["msdyn_description"] = "text";// 说明
entity["msdyn_channeldefinitionid"] = new EntityReference("msdyn_channeldefinition", cid);// 渠道定义 ID
entity["msdyn_type"] = new OptionSetValue(192350000);// 渠道类型
entity["msdyn_isrequired"] = true;// 指示是否需要此部分
entity["msdyn_maxlength"] = 1000;// 部分的最大长度
var id = service.Create(entity);
}

调用:

               var id = Insert_msdyn_channeldefinitions(adminService);
Insert_msdyn_channelmessageparts(adminService, id);

5.在自定义渠道,就能看到新增的渠道

Dynamics 365 自定义渠道的步骤的更多相关文章

  1. Dynamics 365 marketing中添加自定义渠道磁贴

    Dynamics 365 marketing中默认的渠道只有Marketing Email和Marketing Activity,想要添加其他渠道必须自定义磁贴,自定义磁贴的步骤如下: 1.创建实体 ...

  2. 自定义工作流活动报错:您无法登陆系统。原因可能是您的用户记录或您所属的业务部门在Microsoft Dynamics 365中已被禁用。

    本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复265或者20170926可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...

  3. Dynamics 365中自定义工作流活动获取的上下文分析及注意事项

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复244或者20170306可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  4. 自定义适用于手机和平板电脑的 Dynamics 365(三):显示的实体

    您可以启用 适用于手机的 Dynamics 365 和 适用于平板电脑的 Dynamics 365 的有限实体集. 若要查看是否启用了实体,或者要启用实体,请单击“设置”>“自定义”>“自 ...

  5. 自定义适用于手机和平板电脑的 Dynamics 365(二):窗体自定义项

    适用于手机的 Dynamics 365 和 适用于平板电脑的 Dynamics 365 使用窗体作为 Web 应用. 窗体在应用程序中的显示方式为移动体验进行了优化. 下图显示了从 Web 应用程序到 ...

  6. Dynamics 365 CE将自定义工作流活动程序集注册到磁盘并引用其他类库

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  7. 自定义适用于手机和平板电脑的 Dynamics 365(五):可视控件

    使用 适用于手机的 Dynamics 365 和平板电脑中的可视控件帮助移动用户更快地输入 Dynamics 365 数据并提供更丰富的可视体验. 此组自定义控件包括滑块.开关.星数评级.视频嵌入以及 ...

  8. 自定义适用于手机和平板电脑的 Dynamics 365(四):窗体脚本

    为 Web 应用程序中使用的窗体编写的脚本也应该适用于用于手机和平板电脑的 Dynamics 365,但存在一些差异. 通常,对于移动应用程序无效的方法不返回错误,但是它们也不返回任何值. 开发人员可 ...

  9. 自定义适用于手机和平板电脑的 Dynamics 365(一):主页

    当用户首次打开适用于手机和平板电脑的 Dynamics 365 时,他们将看到默认为“销售仪表板”的主页. 您可以创建新仪表板或 Web 应用程序中编辑现有仪表板,然后为移动设备启用它们,用户可以选择 ...

  10. 为Dynamics 365 USD设置打开调试面板的自定义快捷键

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

随机推荐

  1. LeetCode 周赛 346(2023/05/21)仅 68 人 AK 的最短路问题

    本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. LeetCode 单周赛第 345 场 · 体验一题多解的算法之美 单周赛 345 概览 T1. 删除子串后 ...

  2. Java网络编程----通过实现简易聊天工具来聊聊NIO

    前文我们说过了BIO,今天我们聊聊NIO.NIO 是什么?NIO官方解释它为New lO,由于其特性我们也称之为,Non-Blocking IO.这是jdk1.4之后新增的一套IO标准.为什么要用NI ...

  3. 推荐一个日历转换开源工具库,支持C#、Java、PHP等主流的语言

    日历对我们来说,最熟悉的就是阳历和农历,在中国每年都有固定的节日.节气.中国特有传统节日,有些节日是固定的,但是节气这些都需要我们经过一定规则换算出来. 所以,今天给大家推荐一个开源库,它支持阳历.阴 ...

  4. 【爬虫+数据清洗+可视化】用Python分析“淄博烧烤“的评论数据

    目录 一.背景介绍 二.爬虫代码 2.1 展示爬取结果 2.2 爬虫代码讲解 三.可视化代码 3.1 读取数据 3.2 数据清洗 3.3 可视化 3.3.1 IP属地分析-柱形图 3.3.2 评论时间 ...

  5. bugku_EasyMath

    bugku_EasyMath 题目描述 简单的数学题 from Crypto.Util.number import getPrime, bytes_to_long from secret import ...

  6. 白帽子讲web安全

    世界安全观 Web安全筒史 起初,研究计算机系统和网络的人,被称为"Hacker","Hacker"在中国按照音译,被称为"黑客" 对于现代 ...

  7. 从零玩转系列之微信支付实战PC端接口搭建

    一.前言 halo各位大佬很久没更新了最近在搞微信支付,因商户号审核了我半个月和小程序认证也找了资料并且将商户号和小程序进行关联,至此微信支付Native支付完成.此篇文章过长我将分几个阶段的文章发布 ...

  8. 图书商城项目练习①管理后台Vue2/ElementUI

    本系列文章是为学习Vue的项目练习笔记,尽量详细记录一下一个完整项目的开发过程.面向初学者,本人也是初学者,搬砖技术还不成熟.项目在技术上前端为主,包含一些后端代码,从基础的数据库(Sqlite).到 ...

  9. 了解web网络基础

    TCP/IP 协议:一种规则,规定不同计算机操作系统,硬件之间怎么通信的一种规则 像这样把互联网相关联的协议集合起来总称为TCP/IP协议. TCP/IP分层管理 按照组层次分为以下四层: 应用层:决 ...

  10. C++笔记(1)——类的基本概念知识

    C#和C++的部分面向对象方式类似,只记录不同点. 定义类与关键字: 下面是C++类的定义方式与C++关键字public和private的表达方式: class Box { private: // 私 ...