Dynamics CRM
文章平均质量分 70
介绍Dynamics CRM的各种技术
Stone-hdj
专注于Dynamics 365,Power Platform, Azure等微软相关技术
展开
-
Dynamics 365: 从0到1了解如何创建Custom API(3) - Custom API的调试之插件调试
从0到1了解如何创建Custom API(3) - Custom API的调试之插件调试原创 2024-05-07 17:43:05 · 411 阅读 · 0 评论 -
Dynamics 365: 从0到1了解如何创建Custom API(2) - Custom API与插件关联
这次我们主要写一个插件,与我们之前创建的Custom API进行关联。原创 2024-05-05 16:23:55 · 474 阅读 · 0 评论 -
Dynamics 365: 从0到1了解如何创建Custom API(1) - 在Power Apps中创建
今天介绍一下如果创建Custom API,我们首先需要知道它和action有什么区别,什么时候使用Custom API或者Action?原创 2024-05-04 21:51:20 · 1135 阅读 · 0 评论 -
Dynamics 365: 给D365设置一个黑色主题
在领英上看到一个好玩的东西,给D365可以设置暗黑的主题,但是这个目前我试了一下,仍然需要适配,很多地方显示的还是白色的,比如dashbaord里。1. 设置你的D365为New Look新外观。原创 2024-04-16 09:15:00 · 302 阅读 · 0 评论 -
如何下载Plugin Registration Tool
今天给大家演示一下如何使用Power Platform CLI来下载Plugin Registration Tool.原创 2024-04-15 20:56:05 · 670 阅读 · 0 评论 -
Dynamics 365: 详解插件的执行深度(PluginExecutionContext.Depth)
Depth这个属性会告诉你插件它在一个调用堆栈中有多深,是第几次被调用。1. 首先我们写一个Account实体插件并用到RetrieveMultiple事件,就是当我们每次点进Accont的一个视图的时候都会调用这个RetrieveMultiple事件,但里面只是记了一条log而已:2. 当我们每次点进Accont的一个视图的时候都会触发这个事件,我们通过Plug-in Trace Log可以看出,在这次的事务中它只执行了一次,因为Depth为1.3. 我们将代码进行如下修改,判断一下Depth的值,原创 2022-06-11 22:11:50 · 1316 阅读 · 1 评论 -
Dynamics 365: 查找哪些记录使用Access Team这种方式分享给了某一个User
当使用Access Team的方式分享给用户A了一些记录,那么我们如何去查找,都有哪些记录是使用这种方式分享给了用户A?如果是使用高级查找的方式去找,应该是这样的,我们以Account实体为例: 红框的部分是你需要替换的。以下是它的FetchXML:......原创 2022-06-07 12:52:11 · 476 阅读 · 0 评论 -
Dynamics 365: Access Team Templates的用法
做D365开发这么长时间竟然没用过Access Team Templates, 前几天有人问我,直接就给我问懵了。之后赶紧去查阅了资料,做了一些练习并且总结了一下:对于实体级的控制我们可以用Security Role来限制,对于字段级有字段级安全的设置。那么对于Access Team Template我们就可以简单的理解为它是对记录级的一种权限控制;下面就来聊聊这个Access Team Templates的使用步骤以及它的注意事项:...原创 2022-06-05 12:23:40 · 477 阅读 · 0 评论 -
Dynamics 365: 如何解除实体只能创建2个Access Team Templates的限制
无论是Dynamics 365的on-premise还是online版本默认的都是每个实体只能创建两个 Access Team 模板,如果想要突破这个限制,对于On-premise的话我们可以直接修改数据库,如果是online版的我们可以提一个ticket给微软,让微软那边直接帮助我们增加额度的限制。接下来,我来说一下如果是On-premise的话,如何解除两个的限制。严格意义上来说,不算是解除限制,我们只是改变这个限制由两个到两个以上而已。注意:当我们更新完成后,如果想让数量限制生效,我们需要在Setti原创 2022-06-06 15:31:29 · 464 阅读 · 0 评论 -
Dynamics 365: 如何获取批量请求中ExecuteMultipleRequest的阈值
当我们执行ExecuteMultipleRequest 进行批量请求超过最大值时,会报如下的错:但是我们的代码不能通过部署 web 服务来直接查询批量阈值的大小,除非它在具有部署管理员角色的帐户下运行。但部署管理员正好通常不是干这个用的。幸运的是,还有一种方法可以使用:当ExecuteMultipleRequest 请求数量超过组织允许的最大值时,ExecuteMultipleRequest 将抛出一个异常。异常中会返回最大值的大小。你的代码可以检查该值,并将ExecuteMultipleR原创 2022-05-24 23:05:43 · 723 阅读 · 0 评论 -
Dynamics 365: 如何从Azure中获取连接到D365 Online所需要的认证信息
上篇博客中我们需要用到OAuth认证需要的信息来获取token,然后再使用token去获取我们想要的记录。下面来说一下,如何获取client_id,client_secret,resource,username,passwordresourceresource就是我们D365的地址username,passwordusername就是我们创建的application user. 对于如何创建Application User,我们可以直接在Power Platform admin ...原创 2022-05-23 15:32:50 · 1134 阅读 · 0 评论 -
Dynamics 365: 详解虚实体(Virtual Entity) 从0到1
从Dynamics 365 for Customer Engagement 9.0开始,虚实体通过在Dynamics 365 Customer Engagement中无缝地将数据表示为实体,实现了外部系统中的数据集成。它无需数据复制,通常也无需自定义编码。虚实体有如下的限制,但除了下面的这些限制外,它和其它的那些自定义实体没有区别:数据是只读的。虚实体特性不支持在 Dynamics 365中 CE所做的更改在推回到外部系统 只支持实体的组织级权限。不支持字段级安全 对于外部数据,需要抽象建模.原创 2022-05-23 15:34:36 · 1888 阅读 · 0 评论 -
Dynamics CRM: [问题已解决]Cannot open Sql Encryption Symmetric Key because Symmetric Key password...
CannotopenSqlEncryptionSymmetricKeybecauseSymmetricKeypassworddoesnotexistinConfigDB.上面这个报错是我在对user实体数据进行更新时出现的。这是一个Dynamics CRM/365 On-premise在版本升级或者重新部署之后可能会遇到的问题,是由于encryption key没有从原始系统拷贝过来并激活造成的。Data Encryption在一个新环境部署时是默认被激活的,所...原创 2022-05-18 11:23:30 · 539 阅读 · 0 评论 -
Dynamics CRM: 使用setFilterXml来过滤需要在表单的Subgrid控件中进行展示的记录
我们通常在一个表单中插入subgrid用来显示另外一个实体的记录,而显示的内容我们是通过定义不同的视图来进行控制的。今天这篇博文我们使用另外一种方法来实现灵活的在subgrid上来显示自定义的记录,这就需要用到我们今天的主角setFilterXml。Note: 需要事先说明一下,这个setFilterXml并没有出现在微软的官方文档中,所以不确定有哪些版本支持,哪些版本不支持,我试过的是Dynamics 365 9.0 On-premises和Dynamcis 365 9.2 online这个两个版本。原创 2022-05-26 23:46:24 · 681 阅读 · 0 评论 -
Dynamics CRM: 邮箱配置(三) - 配置Email Server Profiles和Mailboxes
介绍Email Server Profiles是配置邮箱的第一步,我们需要先配置邮箱的服务器,然后才能去指定邮箱接收邮件。这可能和我们平时在手机端使用outlook或者gmail这种APP不同,在outlook,gmail这种App中我们一般输入常用的邮箱域名(@qq,@163,@hotmail, @gmail,@outlook)它会自动的将你的邮箱服务器,端口这些信息默认填入。而我们在Dynamics CRM中需要先配置邮箱服务器信息,也就是Email Server Profiles..原创 2022-05-05 20:49:58 · 3361 阅读 · 0 评论 -
Dynamics CRM: 为用户和团队共享记录
在C#中,为用户和团队共享记录可能会用到下面这三个类:GrantAccessRequest 共享一条记录为之前没有share过这条记录的用户或团队 ModifyAccessRequest 修改共享权限,为之前已经share给用户或团队的记录 RevokeAccessRequest 取消用户或团队对一条记录的共享权限 GrantAccessRequest 变量accountRef为需要共享的记录变量teamRef为要共享的团队...原创 2022-05-08 22:21:26 · 1172 阅读 · 2 评论 -
Dynamics CRM: XrmToolBox插件推荐
XrmToolBox我们可以把它理解为是Dynamics CRM的一个工具集, 里面有着各种各样的插件可以供我们安装使用,如果你是Dynamics CRM/365的developer,但是你还不知道这个工具的话,赶紧下载吧~!XrmToolBox的官网:Home · XrmToolBoxhttps://www.xrmtoolbox.com/下面我跟大家推荐一些我平时使用的插件,其实除了我下面列出的这些以外还有很多插件也都是很好用的,但需要大家自己慢慢去发掘了~Auto Number Man...原创 2022-05-04 11:54:58 · 2178 阅读 · 2 评论 -
Dynamics CRM: 如何设置Form的顺序
我们知道Dynamics CRM的实体有多种form类型,Main Form, Quick Create Form, Quick View Form, Card Form等,不同的form有不同的用处。如果我们的一个实体有多个Main Form, 如下图我们可以设置他们在表单记录中选择器中的显示顺序,具体步骤如下:如果是Power Apps的界面,我们可以在solution中添加相应的实体,并在它的上方找到Form settings选择Form order, 然后选择Form的类.原创 2022-05-03 23:21:57 · 472 阅读 · 0 评论 -
Dynamics CRM: 如何通过高级查找来搜索用Connection关联起来的实体记录
我们想要找出test1里和EntityA这个实体关联的记录都有哪些最后搜索的结果是这四条可能有人会问为什么搜出来的不是六条呢?因为有一条虽然它的Connection Role是EntityA,但是Connected To字段是空的,也就是说并没有和任何EntityA实体中的记录进行关联 如最上面的图,789这个记录有两条,为什么搜索出来是一条?是因为你搜的是EntityA这个实体里的记原创 2022-05-03 22:35:58 · 537 阅读 · 0 评论 -
Dynamics CRM: 与多对多关系很像的Connection
什么是Connection?Connection是Dynamics 365提供的一种开箱即用的来连接多条记录,而无需为两个实体创建自定义关系。Connection可以被用在相同实体的记录中,也可以用在不同实体的记录中。Connection的用途?它可以允许我们连接多种不同的实体类型,而不需要添加Lookup字段来绑定两个实体间的关系,比如我有一个活动的实体,我需要为这场活动添加主办人,添加参与人,还有其他的这场活动需要场地,费用等。很显然场地,费用这些是属于不同的实体,如果使用lookup字段的原创 2022-05-03 20:31:36 · 573 阅读 · 0 评论 -
Dynamics CRM: 关系Relationships(2) - N:N 多对多
实现N:N,也就是多对多有两种方式,一种是OOB开箱即用的方式,一种是需要创建一个中间实体对两边的实体进行映射的方法:使用系统自带的开箱即用的方式首先我们创建两个实体,一个EntityA, 一个EntityB,然后“New Many-to-Many Relationship”创建一个与EntityB多对多的关系:创建完成后我们在EntityA和EntityB中的‘N:N Relationships’中都可以看到:然后我们对这两个实体的Main form做一些修改:我们在Eni.原创 2022-05-03 00:45:31 · 707 阅读 · 0 评论 -
Dynamics CRM: 关系Relationships(1) - 1:N, N:1
1:N和N:1可以理解为一种正反的关系,而实现这种关系最快捷的方式就就是为实体创建一个lookup字段(如下图),目标记录类型(Target Record Type)是要lookup的那个的实体。在下面的这个例子中,Account实体扮演的是N,而Guest Profile也就是contact实体扮演的就是1;所以你在account实体的N:1 Relationships中可以找到这个关系而在Guest Profile(Contact)实体中,它就是存在于 1:N Relationships原创 2022-05-02 21:39:55 · 669 阅读 · 0 评论 -
Dynamics CRM: 如何为实体创建一个自动编号属性
微软为Dynamics CRM v9.0后的版本提供了一个新的功能来支持任意实体添加自动编号属性, 它可以实现对实体里的记录添加一个我们自定义的编号,比如IR-Email-10001这种。但是目前,只可以通过编程或者我下面介绍的工具这两种方式来添加该属性,没有用于添加此类型属性的用户界面。这里介绍一个工具Auto Number Manager可以实现这个功能, 从XrmToolBox可以得到。Note:如果有一条已经被编号的记录(例如:IR-Email-10001)被删除了,那么创建原创 2022-04-13 22:43:57 · 724 阅读 · 0 评论 -
Dynamics CRM: 在Form的导航中添加Process Sessions以便于查看workflow的运行历史
首先需要说明的就是,我用的是Dynamics 365 9.0 OP版本, 所以接下来的设置只对经典页面起作用, 对UCI页面是不起作用的, 有兴趣的小伙伴可以在更高版本试下, 看看9.1版本是否在UCI页面已经支持了.我们想要的是下面这种,能够显示出Process Sessions但可能你点进去一个记录看到却是这样的, 在实体名称的后面并没有显示出这条记录的名称下面我们就来说一下如何来设置:1. Settings -> Customizations -> Cus..原创 2022-02-08 16:48:31 · 826 阅读 · 0 评论 -
Dynamics CRM: Form中的Non-Event Dependencies的作用
在我们的Dynamics CRM表单中,我们可以使用一些办法来确保JavaScript脚本使用的字段不会从表单中删除, 这里就可以用到Non-Event Dependencies.比如我们有一个函数用来显示某一个字段的值并打印出来, 像下面这样:function displayWebsite(){ alert("The website entered is: " + Xrm.Page.getAttribute("websiteurl").getValue());}我们把它添加到表单的原创 2022-02-08 01:57:08 · 501 阅读 · 0 评论 -
Dynamics CRM: 如何监控和管理Workflow process,并查看它们的运行历史
Workflow分为两种: background workflow(异步工作流), real-time workflow(同步工作流).这两种工作流在状态跟踪以及log的查看方式上是有区别的: Background workflow 通过Setting -> System Jobs通过进入workflow本身,选择Process Sessions通过打开一条需要查看执行的workflow状态的记录中, 点击记录名称旁边的向下箭头, Process Sessions -&g原创 2022-02-07 18:06:47 · 769 阅读 · 0 评论 -
Dynamics CRM: 查询字符串参数(Query String Parameters)的使用方法
查询字符串参数(Query String Parameters)通常被用来传递自定义参数给表单上下文, 使用这些参数来设置某些字段的值, 或者试做一些判断的用处, 下面我就来说下它的用法:1. 创建Query String Parametersa. Settings -> Customizations -> Customize the Systemb. Entities -> <实体名> -> Forms -> <表单名>...原创 2022-01-19 21:54:06 · 2596 阅读 · 0 评论 -
Dynamics CRM: 深度解析本地部署(On-premise)服务器中Sandbox, Asynchronous服务对插件Plug-in和工作流Workflow的影响
其实我自己平时调试插件很少使用远程调试的这种方式, 因为他会把整个服务都占上, 如果此系统只有你一个人使用还好, 如果还有其他人的话,可能导致其他人使用系统直接卡死的情况发生.但我们如果真的选择远程调试的这种方式, 有些时候我们需要附加Microsoft.Crm.Sandbox.WorkerProcess.exe这个进程, 而这个进程又和我之前说的Sandbox服务的Microsoft.Crm.Sandbox.HostService.exe很像, 所以我就突然有一种想法, 想看看这个Sandbox服务对原创 2022-01-15 13:48:56 · 1085 阅读 · 0 评论 -
Dynamics CRM: 本地部署的服务器中, Sandbox, Unzip, VSS, Asynchronous还有Monitor服务的作用
本地部署的Dynamics 365(OP)的服务器中都会有下面的这六个服务:Dynamics 365 Sandbox ProcMicrosoft.Crm.VSSWriterService.exeessing Service Dynamics 365 Unzip Service Dynamics 365 VSS Writer Microsoft Dynamics 365 Asynchronous Processing Service Microsoft Dynamics 365 Asynchron原创 2022-01-14 22:42:44 · 795 阅读 · 1 评论 -
Dynamics CRM: 批量导入数据来更新记录的注意事项
关于批量更新数据, 我们可以自己写程序来批量更新记录, 也可以通过导入数据文件来进行批量更新.批量导入数据不仅仅可以更新数据也可以创建数据,但他们之间还是有一些区别的, 今天来说一说在数据导入时的注意事项:无论是创建还是更新数据, 我们都会导出一个模板, 然后在里面添加数据来创建,或者修改数据来更新, 其中导出的文档里面都会有三列隐藏的列:(Do Not Modify) <实体名> (Do Not Modify) Row Checksum (Do Not Modify) Modi原创 2022-01-08 23:48:32 · 1232 阅读 · 0 评论 -
Dynamics CRM: 遇到“The plug-in execution failed because no Sandbox Hosts are currently available.“
如果我们在操作一个动作, 这个动作触发插件时遇到下面的错误信息:The plug-in execution failed because no Sandbox Hosts are currently available. Please check that you have a Sandbox server configured and that it is running. System.ServiceModel.EndpointNotFoundException: There was no end原创 2022-01-06 12:15:59 · 1172 阅读 · 0 评论 -
Dynamics CRM: 表单(Form)中的显示字段变成只读的几种情况
有的时候,当我们打开一条记录, 我们会发现这条记录或者记录中的某个字段变成了不可编辑的状态, 但让表单中显示的字段变成只读的情况有很多, 你可以使用JS代码中的setDisabled, 也可以使用系统的配置来完成, 接下来我就来总结一下都有哪几种情况可以让字段变成只读:在表单中的字段属性里有一个字段行为的设置, 我们以Account实体为例设置完成后, 打开一条记录, 该字段的旁边会显示一个小锁头的图标, 并且该字段变成不可编辑在JS代码中使用setDisabled方法设置了该字段Di原创 2022-01-05 23:04:30 · 1292 阅读 · 0 评论 -
Dynamics CRM:表单中移除一个控件时,提示“The field you are trying to remove is required by the system or business“
但你在一个Form中需要移除一个控件时, 像下面这样提示你"The field you are trying to remove is required by the system or business."解决方法:双击进入字段属性 -> Details -> Edit然后将Field Requirement的值改为Optional就OK了, 这样你就可以顺利在Form中移除这个字段了...原创 2022-01-05 11:35:47 · 268 阅读 · 0 评论 -
Dynamics CRM: 对于实体Form中的Tab和Section控件的一些说明
因为显示在form中的Label比较长, 所以想要让label, 也就是显示名在这个控件中占的位置能宽一点, 所以我就尝试设置了控件所在section的'Field Label Width'这个属性, 发现不管如何设置,label的宽度一直没有改变.后来我又尝试将这个section所在的tab的属性变一下再试试, 下面的Column 1 Width和Column 2 Width我分别变成了10%和90%, 但是发现还是没有变化.后来发现我做的这些改动只在经典页面生效了, UCI界面是不好使的原创 2022-01-05 11:10:36 · 394 阅读 · 0 评论 -
Dynamics CRM: 理解Status, Statecode, Status Reason, Statuscode
上面说的这四个: status, statuscode, status reason, statuscode, 其实就是两个字段, 这两个字段在我们每一个实体里都有, 无论是系统自带的实体还是我们自定义的实体.字段名 显示名 备注 statecode Status 对于自定义的实体,它的值为Active, Inactive 如果是系统自带的实体: 1. 对于case实体它的值是Active, Resolved, Canceled 2. 对于Op原创 2021-12-31 12:23:17 · 1561 阅读 · 0 评论 -
Dynamics CRM: Dashboard(仪表板)中设置的实体显示不出来的问题
今天发现一个问题, 我们的系统是双语言,英语和中文, 通常我们用英文界面多一些,没有特别关注中文的界面,尤其是开发环境的。今天再开发环境一看发现,dashboard的中文环境,只有第一个组能中的实体能显示出来其他的都不能显示。我们找到相应的APP(应用程序), 然后选择在应用程序设计器中打开,如下图然后点击站点地图右边的笔形图标打开最后发现红框中的组名都是一样的对于相同的组名, 只会显示其中的第一个组,如下图所以如果想让Dashboard中的组,包括组下面的实体能...原创 2021-12-25 00:22:02 · 678 阅读 · 0 评论 -
Dynamics CRM: 邮箱配置(二) - 对于Dynamics CRM中收不到邮件的可能原因之一
最近遇到了一个问题, 就是使用POP3在Dynamics CRM中收邮件, 但是发现有两封发件人邮箱相同的邮件,在CRM中都没有收到。之后公司的管理员查看发现这两份邮件都是最开始进入了垃圾箱, 而不是收件箱。是后来公司的业务人员将这两封邮件手动的从垃圾箱移动到了收件箱, 但是即使邮件最终在收件箱了,但CRM还是没有收到。最后做了一些研究和测试, 总结了以下几点,供大家参考:1. 如果想让Dynamics CRM能够在配置后正常的收到邮件,需要保证邮件是进入了收件箱,而不是垃圾箱。可以登陆邮箱的.原创 2021-12-21 22:12:46 · 679 阅读 · 0 评论 -
Dynamics CRM: 邮箱配置(一) - Exchange和POP3/SMTP的区别
Dynamics 365邮箱配置Exchange Server, Exchange Online(Hybrid)使用的都是微软的邮件服务组件, 它不算协议, 邮件的收发只是它其中的功能之一。Exchange Server是通常企业可以使用它来部署自己的邮件服务;而Exchange Online也是提供邮件服务的原创 2021-12-21 22:00:15 · 1913 阅读 · 0 评论 -
Dynamics CRM: 在Workflow中创建邮件的内容中如果包含了地址链接需要注意的事项
最近遇到了一个问题就是我在我的workflow里有一步是创建邮件记录里面的内容包含了一个链接:注意: 如果这个变量是你从word或者其他地方复制粘贴的可能会导致获取不到变量的值, 收到邮件后点击链接没反应的情况. 这个时候你需要将邮件内容里面绿框的变量在右边的Look for中重新获取并重新填入邮件内容里, 虽然看着粘贴过来的和又一次重新获取的看起来是一摸一样的, 但最后出来的效果是完全不一样的....原创 2021-12-20 10:19:55 · 355 阅读 · 0 评论 -
Dynamics CRM: 权限问题之Audit History的查看权限问题
最近遇到的权限问题有些多, 我接着上次的来说:Dynamics CRM: 权限问题之SecLib::AccessCheckEx2 failed_Stone-hdj的博客-CSDN博客因为最近发现我给一个user Audit history的权限了,但是却显示访问被拒绝后来查了半天才找到原因, 原来是1. 因为有一条case的记录, 我将这条记录share给了其他team, 而这个team所在的BU和现在查看这条记录的user所在的BU不是在同一BU2. 并且我给这个访问受限...原创 2021-12-13 14:20:22 · 693 阅读 · 0 评论