上一节我们讨论到创建HTML Web Resource. 但是纯HTML的页面不能满足我们的需求, 所以今天我们来做在HTML Web Resource中获取form elements Please Note: CRM 9.X 之后微软推荐开发人员使用formContext 来获取attributes, 效率更高. HTML Web Resource还只能使用Xrm.Page 来获取attributes 首先, 我们做了一个简易的功能,获取account中name的值. 我们复制下面的代码到创建…
这个系列是帮助大家了解dynamics CRM (customer engagement CE) 的client-side 开发. Client-side Events 1. Form OnLoad 2. Form OnSave 3. Attribute OnChange 4. Lookup PreSearch 5. Grid Events a. OnRecordSelect b. OnSave c. OnChange 6. Business Process Events etc. 首先我们先创…
HTML Web Resource是我们经常使用的一个功能. 第一步, 我们先创建好一个HTML. 接下来,我们要在web resource中创建新的html web resource. 我们在text editor中把我们的HTML 复制进去. 下一步我们要把做好的web resource 添加到form 当中.…
如果我们想用script来直接在form上做一些修改, 我们需要用到client api 来做交互. 我们可以用以下来理解: Form <---> Client API <---> Script Client API Objects Model 1. Execution Context 2. formContext formContext是获取form的权限. formContext 有两个object. 1. Data object (formContext.data.entit…
Xrm.WebApi 是我们做前端开发不可不缺少的内容. Xrm.WebApi 分为online和offline online: 可以实现和服务器的CRUD交互 offline: 多用于mobile client 微软的Xrm.WebApi 官方资料:https://docs.microsoft.com/en-us/powerapps/developer/model-driven-apps/clientapi/reference/xrm-webapi Create: create来说其实很简单,…
我们这次要使用account, 让我们首先重建一个JavaScript. 建议每个entity都创建专属的js // Converting functions to Namespace Notation var Sdk = window.Sdk || {}; ( function () { this.formOnLoad = function (executionContext) { }; this.MailPhoneOnChange = function (executionContext)…
form 和 field 的notification在开发当中会经常使用到 // Converting functions to Namespace Notation var Sdk = window.Sdk || {}; ( function () { this.formOnLoad = function (executionContext) { }; this.MailPhoneOnChange = function (executionContext) { var formContext…
Execution Context 在代码执行的时候定义了event  context. 当form或者grid发生event时候传递了execution context. 可以在event handler中使用execution context执行各种tasks. e.g. 确定formContext, gridContext或者save event. function DisplayHelloWorld(executionContext) { var formContext = execut…
我们在开发的时候会写很多functions. 但是这些functions 管理起来很麻烦. 微软内部建议我们使用namespace notation的形式管理我们的代码 // Converting functions to Namespace Notation var Sdk = window.Sdk || {}; ( function () { this.formOnLoad = function (executionContext) { var formContext = execution…
在我们的system setting里面, 我们可以设置打开/关闭 auto save的功能. 我们可以用js来控制auto-save this.formOnSave = function (executionContext) { var eventArgs = executionContext.getEventArgs(); if (eventArgs.getSaveMode() == 70 || eventArgs.getSaveMode() == 2) { eventArgs.preven…
大家可以用下面的方式来获取attribute的值 formContext.getAttribute("address1_shippingmethodcode").getText() 可以用setDisabled 来disable相关联的值 formContext.getControl("address1_freighttermscode").setDisabled(true); // Converting functions to Namespace Notatio…
我们用以下的代码可以获取到look up 的信息. 大家可以查看微软文档来查看更多关于 lookup object的信息 https://docs.microsoft.com/en-us/powerapps/developer/model-driven-apps/clientapi/reference/xrm-utility/lookupobjects 我们可以使用 下面代码来展示信息: formContext.ui.setFormNotification("Guid of the Accoun…
用户可以用以下代码来获取 form type 更多的信息可以查阅https://docs.microsoft.com/en-us/powerapps/developer/model-driven-apps/clientapi/reference/formcontext-ui/getformtype this.formOnLoad = function (executionContext) { var formContext = executionContext.getFormContext();…
代码管理是一个无法避免的问题. 前面我也建议了大家每一个entity都应该拥有自身的js. 但是如果我们有一些global的function, 我们应该怎样去部署到每一个entity中呢? 我这里使用了globalHelper.js 来置放全局使用的functions 我们只需要在entity的js当中call 这个globalHelper.js 就可以使用了. 记住globalHelper.js 也是需要添加到当前entity中. // JavaScript source code var H…
Chapter 1. Microsoft Dynamics CRM 4.0 SDK Overview(SDK概述) You are probably reading this book because your organization recently purchased Microsoft Dynamics CRM or because your organization is evaluating it. As a developer, you want to know what this…
1: 安装windows server 2008 R2 中文版 (过程略) 安装完成后设置机器名和IP地址, 本过程机器名 crm5dev,192.168.0.110 dns: 192.168.0.110(本机) Administrator/neu@crm123 2: 通过服务器管理器添加域服务,配置域服务器域名为crm5.lab. 注意:使用高级模式安装. 说明:服务器是windows server 2003 那么就选windows server 2003 服务器是windows server…
这里是作为开发贴的总结. 现在plugin和workflow系列已经终结. 希望这些教程能给想入坑的小伙伴一些帮忙. CRM中文教材不多, 我会不断努力为大家提供更优质的教程. Plugin 开发系列 创建一个dynamics 365 CRM online plugin (一) - Hello World Plugin 创建一个dynamics 365 CRM online plugin (二) - fields检查 创建一个dynamics 365 CRM online plugin (三)…
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复162或者20151016可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 注释在CRM中的显示是比较特别,我们可以自定义一个页面来显示注释吗?如果可以,可以做成通用的吗?这篇博文将会带你制作一个通用的注释显示页面,并为每条注释生成了超级链接,点击可以在弹出页面中查看或者编辑注释. 首先要新建一个类型为 HTML Page 类型的Web资源,操作步骤如下.我这里使用了Developer Toolkit进行…
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复215或者20160328可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me. 从Dynamics CRM 2015 UR1 开始,新增了乐观并发(Optimistic concurrency)处理.以前Dynamics CRM更新记录我称之为裸奔,它是不管你获取这条记录以后,别人是否做了更改,是直接Update这条记录,没有乐观并发一说.其实利用实体的RowVersi…
症状 当您在 Microsoft Dynamics CRM 2011 年大型数据集上执行 RetrieveMultiple 查询时,您会比较慢. 原因 发生此问题是因为大型数据集缓存 RetrieveMultiple 查询 Microsoft SQL 查询计划.RetrieveMultiple 优化的基本的深度,则需要读取权限"本地的深度"和"深层防御"读取权限. 解决方案 重要:此部分. 方法或任务包含一些介绍如何修改注册表的步骤.但是,如果不正确地修改了注册表,…
CRM中的附件是以流的形式保存在了数据库中,这样做的一个坏处是一旦系统运行时间久,附件上传的多了势必会导致数据库极速扩大,即影响系统的运行效率也对后期的迁移维护带来了不必要的麻烦.所以很多的客户都会要求把附件存储在物理硬盘上,针对这种需求就只能自定义开发了. 我曾一个项目里给客户做过一个简单的自定义上传的web resource,主要用来存储客户的产品图片,当时做的比较槽本着能用就可以的态度,客户也没有太多的要求. 具体的效果就是下面图中这样,图片放在了一个ftp文件服务器上,上传后就会在框中显…
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复216或者20160329可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me. 从Dynamics CRM 2015 UR1 开始,新增了ExecuteTransactionRequest,主要是用来处理以前面临的窘境:执行多个消息,有些消息成功,有些消息失败,系统是让成功的成功,让失败的失败.当然从Dynamics CRM 2013起也不是无计可施,我的博文:Dyna…
原创地址:http://www.cnblogs.com/jfzhu/p/4012833.html 转载请注明出处 前面演示过如何安装Dynamics CRM 2013,参见<Step by step Dynamics CRM 2013安装 >. 本文演示如何使用Microsoft Dynamics CRM Deployment Manager来创建一个新组织. 演示环境使用的是CRM 2013,服务器架构如下图所示,系统中已经有了一个组织Philips,其数据库在计算机Eindhoven-SQ…
Workflow: Use this process to model and automate real world business processes. These processes can be configured to run in the background or in real time and can optionally require user input. Workflow processes can start automatically based on spec…
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),欢迎关注我的微信公众号 MSFTDynamics365erLuoYong ,回复234或者20161105可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! 以前没有注意到,Web API提供了深度创建的功能,这个功能我简单理解就…
在 Dynamics CRM 的开发中,我们时不时需要创建 Entity 对象,而对于如何创建 Entity 对象,在 C# plugin 和 JS 的写法存在些许差异. 一.C# Plugin 创建 Entity 对象: 在 C# plugin 中,只要 new 一个对应类型的 Entity 对象,就可以操作该对象的属性设置初值,在之前的博客中已经写了在 C# plugin 中各个类型的字段是怎样赋值的,在这里就不作具体的代码展示了. Account account = new Account…
上个帖子中, 我们创建了个发email的workflow. 但是我们邮件当中的tax 值是 hard code, 这在开发当中是不容许的. 那今天我们来把这个build in workflow用 input parameter 来加持一下. 我们需要创建一个contact 并且把值存进去 Key Name Value SalesTax 10 我们要定义Key Name, 这样才能通过name来读取value. 首先,我们打开solution 然后我们创建一个新的entitiy, 并且只需要在se…
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复168或者20151104可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 以前的博文 微软Dynamics CRM 2013介绍系列之二十三:操作(Action)的开发与配置 简单介绍了Dynamics CRM 2013起新增一种新的流程类型--操作,英文是action,没有做实验证实,操作中所有的步骤是否是同一个事务?是否存在可选的选项?如果不是的话,Microsoft Dynamics CRM On…
Dynamics CRM 客户端的插件调试 一直以来,Dynamics CRM插件在大家的印象中都是不便于调试的,根据官方文档(http://technet.microsoft.com/zh-cn/library/gg328574.aspx),调试插件分为两步: 注册插件 在要运行插件的 Microsoft Dynamics CRM 服务器上,将调试程序附加到进程 这步骤不仅繁琐,而且在调试出错需要修改代码,还必须在修改代码后重新注册插件,然后继续第二个步骤,这样不仅繁琐低效,而且因为调试占用进…
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复233或者20161104可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me . 不是在Web资源中调用Web API怎么进行认证呢?如果不认证就会返回 HTTP/1.1 401 Unauthorized ,反正我的IFD环境是这样.有时候真的想用Fiddler等工具来模拟调用看看效果,然后再写代码?怎么办?我这里提供一个不是很聪明的办法,那就是通过OAuth认证后拿到…