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. 大三ACM第一次开会

    现在是2020.9.12,单说时间的话可能感知不太强,那么换个时间, 现在是大三上.按照设想,我应该已经退役. 会上,老李的语气不再激昂,满含着无奈与沧桑.面对围在桌前的大三们,终究还是提出了那个问题 ...

  2. 上下文管理者(ServletContext)

    作用1.获取全局初始化参数2.资源共享(servlet通信) 能让上下文呢的Servlet相互关联起来3.获取资源文件 生命周期创建服务器启动的时候会为每个项目创建一个servletContext上下 ...

  3. Java中的金钱陷阱

    前言 有多少小伙伴是被标题 骗 吸引进来的呢,我可不是标题党,今天的文章呢确实跟"金钱"有关系. 但是我们说的不是过度追求金钱而掉入陷阱,而是要说一说在Java程序中,各种跟金钱运 ...

  4. 尚医通day09-【用户平台搭建详细步骤】(内附源码)

    页面预览 首页 医院详情 第01章-服务器端渲染和客户端渲染 1.搜索引擎优化 1.1.什么是搜索引擎优化 SEO 是网站为了获得更多的流量,对网站的结构及内容进行调整和优化,以便搜索引擎 (百度,g ...

  5. Linux多线程(8.3 线程同步与互斥)

    3. 线程的同步与互斥 为什么需要同步与互斥 ​ 一个进程运行时,数据存储在内存中.如果一个数据要进行运算,必须先将数据拷贝到寄存器中.比如要对栈上的一个int i进行"++"操作 ...

  6. 每日一题 力扣 1377 https://leetcode.cn/problems/frog-position-after-t-seconds/

    力扣 1377 https://leetcode.cn/problems/frog-position-after-t-seconds/ 这道题目用dp去做,构建邻接矩阵,做的时候需要注意题目条件,如果 ...

  7. hexo博客git报错

    一.意外的标记异常 1.异常内容: xxx:blog xxxx$ hexo g INFO Start processing FATAL Something's wrong. Maybe you can ...

  8. 解决php中通过exec调用python脚本报ModuleNotFoundError错误

    背景 出于某些原因,我们有时会在PHP中通过exec来调用Python代码,有可能是某些功能只能用Python实现(或用Python实现比较方便),有可能是出于性能考虑(Python可以执行耗时任务) ...

  9. Harbor 容器镜像仓库

    Harbor仓库概述 Docker官⽅提供了Registry镜像仓库,但是Registry的功能相对简陋.Harbor是VMware公司提供的⼀款镜像仓库,提供了权限控制.分布式发布.强⼤的安全扫描与 ...

  10. 2022-1-10 WPF基础知识点温习

    一.window Icon :允许自定义窗口图标 ResizeMode:调整控制大小,默认为CanResize. CanMinimize允许用户最小化窗口. NoResize没有格式.  ShowIn ...