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…
如果我们想用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…
这个系列是帮助大家了解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. 首先我们先创…
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来说其实很简单,…
上一节我们讨论到创建HTML Web Resource. 但是纯HTML的页面不能满足我们的需求, 所以今天我们来做在HTML Web Resource中获取form elements Please Note: CRM 9.X 之后微软推荐开发人员使用formContext 来获取attributes, 效率更高. HTML Web Resource还只能使用Xrm.Page 来获取attributes 首先, 我们做了一个简易的功能,获取account中name的值. 我们复制下面的代码到创建…
我们这次要使用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…
HTML Web Resource是我们经常使用的一个功能. 第一步, 我们先创建好一个HTML. 接下来,我们要在web resource中创建新的html web resource. 我们在text editor中把我们的HTML 复制进去. 下一步我们要把做好的web resource 添加到form 当中.…
我们在开发的时候会写很多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…
这里是作为开发贴的总结. 现在plugin和workflow系列已经终结. 希望这些教程能给想入坑的小伙伴一些帮忙. CRM中文教材不多, 我会不断努力为大家提供更优质的教程. Plugin 开发系列 创建一个dynamics 365 CRM online plugin (一) - Hello World Plugin 创建一个dynamics 365 CRM online plugin (二) - fields检查 创建一个dynamics 365 CRM online plugin (三)…
原创地址:http://www.cnblogs.com/jfzhu/p/4018153.html 转载请注明出处 (一)检查Customizations 从2011升级到2013有一些legacy feature是不再支持的了: CRM 4.0 plugin-ins CRM 4.0 client-side scripting CRM 4.0 custom workflow activities 2007 web service endpoint ISV folder support for cu…
Dynamics CRM 2011支持三种查询语句 FetchXml QueryExpression LINQ 查询 功能 保存 FetchXml 支持QueryExpression的所有功能,额外支持聚合和分组 UserQuery,SavedQuery QueryExpresion 不支持聚合和分组 不支持 LINQ 通过QueryExpression实现 不支持…
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),欢迎关注我的微信公众号 MSFTDynamics365erLuoYong ,回复234或者20161105可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! 以前没有注意到,Web API提供了深度创建的功能,这个功能我简单理解就…
原创地址: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 CRM 的开发中,我们时不时需要创建 Entity 对象,而对于如何创建 Entity 对象,在 C# plugin 和 JS 的写法存在些许差异. 一.C# Plugin 创建 Entity 对象: 在 C# plugin 中,只要 new 一个对应类型的 Entity 对象,就可以操作该对象的属性设置初值,在之前的博客中已经写了在 C# plugin 中各个类型的字段是怎样赋值的,在这里就不作具体的代码展示了. Account account = new Account…
1. executionContext. executionContext定义代码在其中执行的上下文. 并且适用在再form或者grid中的event handler. 比如formContext 或者 gridContext, 或者是save event中. 有两种方式去定义,适用execution context: 1. 适用UI来定义event handlers. 适用Pass execution context as first parameter 在handler properties…
Dynamics CRM 客户端的插件调试 一直以来,Dynamics CRM插件在大家的印象中都是不便于调试的,根据官方文档(http://technet.microsoft.com/zh-cn/library/gg328574.aspx),调试插件分为两步: 注册插件 在要运行插件的 Microsoft Dynamics CRM 服务器上,将调试程序附加到进程 这步骤不仅繁琐,而且在调试出错需要修改代码,还必须在修改代码后重新注册插件,然后继续第二个步骤,这样不仅繁琐低效,而且因为调试占用进…
背景 最近接触到Microsoft Dynamics CRM的开发.前端js是必不可少的部分,奈何没有一个语法提示,点不出来后续的语句. 在vscode上面搜索插件的时候发现,有一个大神写的插件https://github.com/jlattimer/CRMVSCodeJSSnippets,但是vs2017不能通用 于是写代码转换了一下,下面是效果图. VS2017代码片段下载 https://download.csdn.net/download/wc513500/10573710 用法 PS:…
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复168或者20151104可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 以前的博文 微软Dynamics CRM 2013介绍系列之二十三:操作(Action)的开发与配置 简单介绍了Dynamics CRM 2013起新增一种新的流程类型--操作,英文是action,没有做实验证实,操作中所有的步骤是否是同一个事务?是否存在可选的选项?如果不是的话,Microsoft Dynamics CRM On…
摘要: 本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复271或者20180602可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me . Dynamics CRM的组织服务(Organization Service) 将会逐渐的退出历史舞台,取而代之的是Web API. 很多时候会有需求,特别是集成或者开发App,通过代码连接到Dynamics CRM的Web API,不要弹出窗口要求用户输入用户名和密码. 如何做,本文…
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复216或者20160329可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me. 从Dynamics CRM 2015 UR1 开始,新增了ExecuteTransactionRequest,主要是用来处理以前面临的窘境:执行多个消息,有些消息成功,有些消息失败,系统是让成功的成功,让失败的失败.当然从Dynamics CRM 2013起也不是无计可施,我的博文:Dyna…
在 Dynamics CRM 开发中,我们可以使用 JavaScript 在前端对 Entity Form 进行数据操作,与此同时,我们也可以使用 C# 写后台插件,其中就包括了 Plug-in Class 和 Workflow Class,如下图所示,这里也简单阐述下两者在使用上的区别: 图1 Plug-in Class 和 Workflow Class 一.调用范围: Plug-in Class 是在对 Entity 的创建(Create)和更新(Update)时进行调用,而 Workflo…
原创地址:http://www.cnblogs.com/jfzhu/p/3445820.html 转载请注明出处 一 硬件要求 1. CRM Server 下表对硬件的要求是假定Microsoft SQL Server,Microsoft SQL Server Reporting Services, SharePoint, Microsoft Exchange Server安装在其他服务器上的. Component *Minimum *Recommended Processor x64 arch…
啊~~~~七夕 ▼ 你比巴西少一xi 你比山西多四xi 对有情人来说今天就是情人节,对单身汪来说,今天就是个星期四. but,软件也是要秀恩爱的! ♥ 晒晒我家亲爱的CRM,它的全名叫Microsoft Dynamics CRM,我们相识在过去的某一天,我们俩的缘分绝对是杠杠的…… Microsoft Dynamics CRM提供了一个绝佳的客户关系管理平台,使您能够创建各种以客户为中心的解决方案.更重要的是,通过将K2的企业业务流程功能与Microsoft Dynamics CRM相结合,构建…