关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复137或者20141228可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me!

       博文讲述的主要是如何根据我前面定义的规则来自动化的录入积分记录,并且可以方便的看到录入订单时候用户还有多少积分。我这里还是采用工作流来实现吧。购买后什么时候给予客户积分呢?我想的是在订单完成配送后给予,不管后续可能出现的问题,比如有人不满意要求退货退款,毕竟萝卜青菜各有所爱嘛。还有就是如果订单录入或者修改了 推荐人 字段,就赠送推荐人积分,为了支持晒单也能积分,我在订单上增加了已晒单字段,当它变成是的时候需要出发工作流运行一下,这样就可以选择工作流的触发条件,为了方便操作,我还在命令栏增加了一个晒单的按钮。
      我这里新建一个工作流如下,我取消了默认对 在后台运行此工作流(推荐) 的选中,因为我想用实时工作流来做。当然,实时工作流和异步工作流在绝大部分情况下是可以互相转换的,什么情况下不能转换这里卖个关子,自己看SDK去。
 
我做了如下的几个工作流:
随便打开一个给大家看看,因为差不多:
我这里还需要插件来帮忙,因为工作流设置字段的值时候,除了日期时间类型,不能使用运算符,但是我的积分是要使用乘法来做的,所以需要更改下。
在进行插件开发之前,需要先安装 适用于 Windows Vista SP2、Windows 7 SP1、Windows 8、Windows 8.1、Windows Server 2008 SP2 Windows Server 2008 R2 SP1、Windows Server 2012 和 Windows Server 2012 R2 的 Microsoft .NET Framework 4.5.2 开发人员包 ,这和2013版本不同,而且目标的.Net框架要选择 4.5.2,再也不是4.0了,各位看官注意哦。安装完毕后,如果Developers' tools如果坏了,就修复下。值得一提的是2015的SDK居然没有提这个Developer‘s tools了,我很喜欢用的东西,真心伤不起啊,还好用 2013版本的依然可以。
我这里部署了IFD,所以我连接的画面稍有不同,如下:
新建的插件和工作流项目目标可能还是 4.5,最好改成4.5.2.
弄好以后给插件项目和工作流项目签名后保存就可以写代码,然后部署了,因为以前的博客有插件和工作流的相关教程,所以本博文不会详细介绍了。但是解决方案部署的时候会报如下的错误:Error registering plugins and/or workflows. Assembly bin\Debug\SuGeGeSolution.Plugins.dll could not be found.,用SDK提供的插件注册工具 PluginRegistration 也不好用,不得不吐糟一下,很郁闷!我暂时用的解决方案是将更改后的 Plugins 项目和Workflow项目下面产生的dll文件拷贝到CrmPackage的bin\Debug\目录下,然后再部署就可以了。至于插件的具体内容就不写了,也不是什么高级功能。
2014年12月29日我找到的解决方法如下,用记事本打开那个 CrmPackage.csproj 文件,将TargetFrameworkVersion 元素的只从 v4.5 改成 v4.5.2 ,然后保存,用Visual Studio再次打开就可以了。
我在订单上新增一个汇总字段(RollupField),如下,注意字段类型要选择 汇总。
然后点击旁边的编辑按钮,我的设置如下,意思非常明显,就是该联系人下面的所有有效记录的积分汇总。
 
这个字段是可以像其他字段一样拉动到表单界面的,下面是一个效果图,可以看到这个字段是只读的,同时它在字段最后部分有个刷新图标,点击一下是可以刷新,应该是会立即计算一下的。
为了能够在订单页面方便的查看到联系人剩余的积分,我新建了一个 类型为 快速视图窗体 的窗体如下:
 然后将这个窗体插入到订单页面。
 
我这里插入的快速视图窗体设置如下:
下面是一个效果图:
我再在订单上添加 已支付金额字段。

我再加入一个未支付金额字段,注意这个字段是一个计算字段哦,用来查看还有多少钱没有支付。

 
我点击编辑按钮设置如下,意义非常明显,我想知道这个单客户还欠我多少钱,适当的时候的催促下,哥又不是土豪,欠多了真的伤不起。当然,这个表达式支持部分函数,有智能提示,看一下就知道了,这个东西做的非常酷,超赞!
 
把刚才的两个字段拉到界面上,我们去看看效果,需要保存你得更改后才能看到效果的。
 

Dynamics CRM项目实例之六:积分管理,汇总字段,计算字段,快速查看视图的更多相关文章

  1. Dynamics CRM项目实例之七:站点地图修改,联系人-订单-积分管理

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复138或者20141229可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me!        前面文章发表后,不 ...

  2. Dynamics CRM项目实例之九:CRM 2015的产品中的捆绑销售

    关注本人微信和易信公众号: 微软动态CRM专家罗勇,回复140或者20150112可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me!      今天的博客主要是介绍Dy ...

  3. Dynamics CRM项目实例之八:CRM 2015的产品系列,克隆,修订

    关注本人微信和易信公众号: 微软动态CRM专家罗勇,回复139或者20150106可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me!       今天的博客主要是关于D ...

  4. 获取、增加、修改、删除sqlserver字段描述及快速查看表字段与描述

    先看添加与删除字段描述 EXEC sys.sp_addextendedproperty @name = N'MS_Description', --添加Type字段说明 @value = N'屏蔽类型对 ...

  5. Microsoft Dynamics CRM 增删改子表汇总子表的某个字段到主表的某个字段(通用插件)

    背景 经常有某个汇总子表的数量到主表的总数量,或者汇总子表的总价到主表的总价这种需求. 传统的做法: 1.就是为每个子表实体单独写成一个插件,但是这样不好复用. 2.主表的汇总字段是汇总货币类型,但是 ...

  6. Dynamics CRM 插件Plugin中获取和更新时间字段值的准确转换

    前面两篇介绍了后台代码通过组织服务获取更新时间字段.窗体javascript通过Odata获取更新时间字段,最后篇来实验下在插件中的获取和更新时间字段是否需要时制的转化,为何说是最后篇呢,因为在CRM ...

  7. Dynamics CRM项目实例之十:CRM 2015的捆绑销售在订单中的效果

    关注本人微信和易信公众号: 微软动态CRM专家罗勇,回复141或者20150122可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me!       上一篇博文我在素格格新 ...

  8. Microsoft Dynamics CRM 2011 当您在 大型数据集上执行 RetrieveMultiple 查询很慢的解决方法

    症状 当您在 Microsoft Dynamics CRM 2011 年大型数据集上执行 RetrieveMultiple 查询时,您会比较慢. 原因 发生此问题是因为大型数据集缓存 Retrieve ...

  9. Dynamics CRM使用Web Api时如果参数里面包含"&"的时候的处理方法

    当我们使用Dynamics CRM的Api的时候如果遇到查询字段的参数里面有&符号的话会影响Api的取值直接报错.原因是因为&符号在Url上面是一个关键字,这个关键字可以截断Url表示 ...

随机推荐

  1. week01-绪论

    一.作业题目 仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子.分母均为整数且分母不为零的分数).           有理数基本运算: 构造有理数T,元素e1,e2分别被 ...

  2. [编译] 4、在Linux下搭建nRF51822的开发烧写环境(makefile版)

    星期日, 09. 九月 2018 07:51下午 - beautifulzzzz 1.安装步骤 1) 从GNU Arm Embedded Toolchain官网下载最新的gcc-arm工具链,写文章时 ...

  3. [Swift]LeetCode486. 预测赢家 | Predict the Winner

    Given an array of scores that are non-negative integers. Player 1 picks one of the numbers from eith ...

  4. [Swift]LeetCode648. 单词替换 | Replace Words

    In English, we have a concept called root, which can be followed by some other words to form another ...

  5. [Swift]LeetCode976. 三角形的最大周长 | Largest Perimeter Triangle

    Given an array A of positive lengths, return the largest perimeter of a triangle with non-zero area, ...

  6. [Swift]LeetCode1005. K 次取反后最大化的数组和 | Maximize Sum Of Array After K Negations

    Given an array A of integers, we must modify the array in the following way: we choose an i and repl ...

  7. Python内置函数(40)——map

    英文文档: map(function, iterable, ...) Return an iterator that applies function to every item of iterabl ...

  8. 『追捕盗贼 Tarjan算法』

    追捕盗贼(COCI2007) Description 为了帮助警察抓住在逃的罪犯,你发明了一个新的计算机系统.警察控制的区域有N个城市,城市之间有E条双向边连接,城市编号为1到N. 警察经常想在罪犯从 ...

  9. RBAC用户特别授权的思考

    场景: 标准的RBAC,授权只应该赋予角色,再把角色指派给用户,当需要对特定用户授予权限时,就只能新建一个角色指派给这个用户.这就意味着每对一个新用户做特别授权都要创建一个特别角色. 今天脑洞大开,想 ...

  10. Android中广播接收者BroadcastReceiver详解

    1. 接收系统的广播步骤 (1)  新建一个类继承BroadcastReceiver 以监听sd卡状态的广播接收者为例 public class SdCardBroadcastReceiver ext ...