关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复159或者20151013可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! Dynamics CRM是基于元数据(metadata)的信息系统,做一些比较通用的功能时候需要查询元数据,本篇博文先介绍一个简单的例子,查询实体主字段(Primary Attribute)的名称及其值. 我们知道新建实体的主字段的名称总是开发者前缀加上 _name,但是有些标准实体却不是,比如联系人实体(contact),用户实…
一.首先打开数据库,我这里以SQL Server 2012数据库为例. 1.选择工具—>选项 ,如图1 图 1 2. 选择表设计器和数据库设计器—>阻止保存要求重新创建表的更改(S)把前面checkbox勾选去掉,然后点击确定,如图2 图 2 二.打开数据库名对应的表,找到要修改的属性,这里相信只要大家学过基本的SQL知识都会改的.具体如图3 把200改为2000 保存下.改的字段为abc_value. 三.通过SQL根据PhysicalName 和 AttributeId 在Attribut…
实现功能:   在新建记录时,(大区,省区,城市)的值默认为当前用户的值.tips:字段均为lookup类型; function Default_region(){ var fromtype=Xrm.Page.ui.getFormType(); if(fromtype==1){ var userids=Xrm.Page.context.getUserId(); var url=Xrm.Page.context.getClientUrl(); var Odata=url+"/XRMServices…
前面两篇介绍了后台代码通过组织服务获取更新时间字段.窗体javascript通过Odata获取更新时间字段,最后篇来实验下在插件中的获取和更新时间字段是否需要时制的转化,为何说是最后篇呢,因为在CRM的开发中需要敲代码的也就这三个场景了,话不多说直接上手. 做了个简单的例子可以看到,插件中取到的也是UTC时间是需要进行8小时时制转化的. 再来看下update,从下面截图中可以看到直接将当前时间赋值是正常显示的.所以插件中的时间获取需要转化,而更新时间不需要转化.…
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复137或者20141228可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me!        博文讲述的主要是如何根据我前面定义的规则来自动化的录入积分记录,并且可以方便的看到录入订单时候用户还有多少积分.我这里还是采用工作流来实现吧.购买后什么时候给予客户积分呢?我想的是在订单完成配送后给予,不管后续可能出现的问题,比如有人不满意要求退货退款,毕竟萝卜青菜各有所爱嘛.还有就是如果订单录入或者修改了 推荐人…
ORDER_H表增强的两个字段,很早了,非AET,非EEWB,所以也加不到标准的搜索界面. GENIL_MODEL_BROWSER找到对应的查询和结果结构,append进字段:ZZZBRAND. 然后到SM30维护表数据:CRMC_REPDY(这个是动态搜索的字段对应) 因为是HEAD表的,所以这里直接对应上.原本想用IF_CRM_RF_Q1O_SEARCH增强来替代的,可以看了一下,感觉效率比较低,所以还是按标准的那种搜索来了.…
select EntityId,* from MetadataSchema.Entity where Name='dji_incidentaddress' SELECT TOP 100 [AttributeId] ,[AttributeTypeId] FROM [MetadataSchema].[Attribute] WHERE PhysicalName = 'dji_name' AND EntityId='78B02832-6167-47E0-A966-AB425A61091C' Update…
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复157或者20151005可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 前面的 插件系列博客教程 讲述了新增记录(Create).删除记录(Delete) .更新记录(Update)和更改记录状态(SetState)插件的实例,也提到了系统标准实体会有一些特殊的消息,本博文以案例实体为例讲解一些特殊的消息.为了便于讲述,我这里模拟一个场景,就是解决案例的时候记载下解决案例的人和解决案例的时间,如果案例…
这一节开始讲视图.视图在Dynamics CRM中代表着实体的数据展示列表,通过这个列表可以对数据进行一个初步预览,也可以进行一些数据的定向筛选和搜索进行精确的浏览一部分数据.同时视图也是查看详细实体数据的入口导航. 视图分为个人视图和系统视图.个人视图是用户依据自身习惯进行个人定制的视图,个人视图管理员无法干涉管理,仅创建者可以对该实体进行修改.分享和删除.系统视图包括实体创建自带的视图以及通过开发平台创建的全局视图,可供左右用户使用. 首先从系统视图开始讲解 下图就是一个客户实体视图的前端展…
AutoSave 是 Microsoft Dynamics CRM 2013 一个新特性. 但AutoSave的有效范围是[所有实体],不允许针对特定某一实体进行设置. 所以,若想针对特定实体进行设置的话,可以采用以下的方法: function preventAutoSave(econtext) { var eventArgs = econtext.getEventArgs(); if (eventArgs.getSaveMode() == 70 || eventArgs.getSaveMode…
Dynamics CRM可以很方便的通过用Odata通过AJAX查询到数据.查询分为两种:精确查找和模糊查找. 精确查找是指通过GUID匹配得到一条数据,如: http://CRMURL/org/XRMServices/2011/OrganizationData.svc/AccountSet(guid'a727cf39-0684-e311-8652-00155d396e1a') 模糊查找是通过filter的匹配得到数据 http://CRMURL/org/XRMServices/2011/XRM…
CRM中有3种查询数据的方式,分别是QueryExpression.fetchxml.linq,本篇讲述的条件IN的查询只支持前两种,linq并不支持. QueryExpression的写法如下,示例查询的是new_service实体中new_name的字段的值 var Names = new string[] { "刘庆", "王云帆" }; var filter = new FilterExpression(LogicalOperator.And) { Cond…
症状 当您在 Microsoft Dynamics CRM 2011 年大型数据集上执行 RetrieveMultiple 查询时,您会比较慢. 原因 发生此问题是因为大型数据集缓存 RetrieveMultiple 查询 Microsoft SQL 查询计划.RetrieveMultiple 优化的基本的深度,则需要读取权限"本地的深度"和"深层防御"读取权限. 解决方案 重要:此部分. 方法或任务包含一些介绍如何修改注册表的步骤.但是,如果不正确地修改了注册表,…
CRM中通过QueryExpression查询出了一个EntityCollection集,但有时会存在重复数据,QueryExpression中有个属性distinct,只要设置为true就能过滤重复数据,但这个属性针对的数据重复是所有的列都相同.但现在讨论的重复数据不是多条数据的所有列都一样,而是当某个字段或者多个字段的数据重复时我们就认为这是一条重复数据,那怎么样才能去掉这种情况下的重复呢? EntityCollection.Entities.GroupBy(item => item.G…
一.平常我们可以打开CRM2011一条已创建的记录,通过JScript方法获取实体英文名的方法是:按F12,输入contentIFrame.Xrm.Page.data.entity.getEntityName();也可以通过自定义实体里面查询实体的英文名称. 二.根据etc参数找到对应实体的英文名 etc参数值怎么找?通过打开一个记录会发现http://192.168.1.9:5555/crm2011/main.aspx?etc=1&extraqs=%3f_gridType%3d1%26etc%…
新建一个实体,需要红色框内的是否勾选的意义,可以进一步加深对CRM的理解.如图: 下面对部分的进行了自我的理解,不对的地方,还请大家指出来.互相学习. 1.CRM2011中,在活动方面加强的新特性包括有:批量编辑.自定义活动类型以及定期约会. 本文将主要说明前两项,关于定期约会的内容,将在后续文章中进行介绍. 批量编辑活动记录: 在crm2011中,可以对活动类型的记录进行批量编辑了,不过,一次批量编辑只能够针对于同一种类型的活动数据,如果选择的记录并非同一种活动类型,系统会提示“只能对同一种类…
背景: 去年以前可以按照目录WebResourceUtility批量上传web资源,昨天发现用不了了,拿到WebResourceUtility源码改了一下都不是很方便,感觉官方写的太冗余,太长了,跟我喜欢的简单粗暴思想不太符合,刚好无意阅览了一个上传资源的代码,干脆自己手写一个根据目录去上传web资源的工具. 工具: LinqPad 5 Microsoft Dynamics SDK 9.0 XrmToolBox 老规矩先上效果图: 目录包含的文件 批量创建web资源后,发布 解决方案添加现有资源…
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复114或者20140312可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 如果没有安装Ribbon Workbench,请参考博文 Dynamics CRM 客户端程序开发:常用工具介绍之Ribbon Workbench 下载安装,本博文主要使用这个工具. 一般是专门用一个解决方案用来处理命令栏Ribbon区的定制,我这里新增了一个名称为RibbonEditor的解决方案如下.还要值得注意的是一般用一个…
本节开始讲Dynamics CRM的窗体排版和设计,窗体也就是我们实际可以看到的表单界面.Dynamics CRM提供了一套独立的表单模板设计引擎,可以很方便的为开发者提供无代码开发,只需要简单的拖动和配置就可以完成一个表单的创作. 首先我们定位到实体对于的窗体功能下 上图就是窗体的操作页,首先是窗体的创建.我们新创建一个实体后系统会默认给我们创建四个窗体.根据窗体类型的不同大致可以分为四种,分别是主窗体.快速视图窗体.快速创建窗体.卡窗体. 主窗体:是为实体进行数据交互的主要窗体,多个主窗体可…
本节开始讲实体中的基础数据存储对象,也就是字段. Dynamics CRM目前总共有13种字段类型,分别为单行文本.选项集.多选选项集.两个选项.图像.整数.浮点数.十进制数.货币.多行文本.日期和时间.查找.客户.如下图: 不同字段有不同的应用场景,下面会对每种类型进行详细的讲解. 首先我们需要确定好要为哪个实体进行字段的添加,确定好后找到对应的实体,点击其对应的字段项就可以进入字段操作的界面.切换视图通过字段的可定义程度对字段进行筛选. 列表操作有新建.编辑以及删除等基本操作,其中删除和编辑…
本节开始讲解Dynamics CRM的图表功能.任何产品基本上都会有数据分析的工具,Dynamics CRM当然也不例外,作为一个专门做销售管理的软件数据分析自然也是对于销售管理者的决策有很大的作用的.Dynamics CRM自带了8种图标格式.分别是柱形图.条形图.面积图.折线图.饼图.漏斗图.标记.圆环图. 图表功能是基于单个实体的单个视图提供字段来进行数据的分析,每个图表只能分析一个实体,另外我们在创建图表前一定要想好规划需要统计哪些字段然后再对应先制作好视图后再进行图表的创建. 图表与视…
这一节开始讲一下Dynamics CRM实体的键.键的作用个我们平时创建Primary Key的概念差不多.保证数据的唯一性. 键的设置在后台实体导航下面的键选项 点击新建创建一个键,会弹出一个窗口进行键的设置. 显示名称是设置键的显示名称,名称设置键的ID.下面的列出了可以设置键的字段.一般只有文本字段可以作为键的字段. 键可以设置一个或多个字段组合设置.选择字段后点击添加就可以添加字段到列表里,点击确定完成键的设置 测试效果 添加一条记录后如果已经存在一样的邮箱+电话的时候会提示记录重复.…
Dynamics CRM在实施过程中会遇到很多多个实体关联的问题,这样可以实现多个实体的记录通过关联的字段实现数据的综合展示,在Sql Server里面叫做外键,在Dynamics CRM叫做关系.Dynamics CRM有三种实体间的关系.分别是1:N,N:1以及N:N 1:N关系 顾名思义1:N关系就是一对多关系,也可以理解为主从表关系.在CRM建立方式就是在子表建立一个与主表关联的外键字段,这个字段就是一个关联了主实体的LookUp的字段.建立好之后就完成了1:N关系的建立. 1:N关系的…
我们在CRM中看元数据信息,可以通过SDK中的metadata browser的解决方案包,但该解决方案包只是在可视化上方便了,但如果我们需要在excel中整理系统的数据字典时这个解决方案包就派不上用场了. 本文介绍一个工具,依旧是xrm toolbox中的,叫metadata document generator 导出格式可以是EXCEL也可以是WORD,导出的选项也很丰富,特别是最后一项,你可以选择你需要导出的属性字段(比如自定义字段),导出后的样式我这边就演示了,自己尝试下即可.…
CRM2016启用了webapi 而弃用了odata,作为码农的我们又开始学习新东西了. 下面是一段简单的查询代码,通过systemuser的primary key来查询一条记录 Web API查询方式 var userId = Xrm.Page.getAttribute("ownerid").getValue()[0].id; var appellation; $.ajax({ async: false, type: "GET", contentType: &qu…
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复160或者20151014可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 听人问起怎么读取到一封邮件所有的附件,有人说附件也是存储在注释实体(annotation)中,我的记忆中是一个另外一个实体,SDK中有如下的原文:An activity mime attachment represents an attachment to an email message or an email template…
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复161或者20151015可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 注释,这个实体的架构名称是Annotation,可能说成备注会稍微容易理解点吧.注释虽然不是活动实体的一种,但是也有类似活动实体一样的关于字段(ObjectId),可以关联到不同类型的实体记录,而我们自己创建的查找字段类型则只能关联到一种类型的实体记录.在创建实体的时候,实体是默认启用注释功能的,如下图所示,而且这个功能启用后是不…
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复215或者20160328可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me. 从Dynamics CRM 2015 UR1 开始,新增了乐观并发(Optimistic concurrency)处理.以前Dynamics CRM更新记录我称之为裸奔,它是不管你获取这条记录以后,别人是否做了更改,是直接Update这条记录,没有乐观并发一说.其实利用实体的RowVersi…
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…
本篇文章,介绍Microsoft Dynamics CRM 2011的组织服务中的RetrieveMultiple方法. RetreiveMultiple方法,用于获取实体的多个实例,该方法的签名如下: 1 public virtual EntityCollection RetrieveMultiple (2 QueryBase query3 ) RetreiveMultiple方法的输入参数是QueryBase类的对象.QueryBase是一个基类,有多个子类,其类树如下图所示: 由上图可见,…