关注本人微信和易信公众号: 微软动态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. App功能测试

    App功能测试 1.  运行 1)App安装完成后的试运行,可正常打开软件. 2)App打开测试,是否有加载状态进度提示. 3)App页面间的切换是否流畅,逻辑是否正确. 4)注册 同表单编辑页面 用 ...

  2. [Java]LeetCode116. 填充同一层的兄弟节点 | Populating Next Right Pointers in Each Node

    Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *nex ...

  3. [Swift]LeetCode245.最短单词距离 III $ Shortest Word Distance III

    This is a follow up of Shortest Word Distance. The only difference is now word1 could be the same as ...

  4. [Swift]LeetCode639. 解码方法 2 | Decode Ways II

    A message containing letters from A-Z is being encoded to numbers using the following mapping way: ' ...

  5. [Swift]LeetCode932. 漂亮数组 | Beautiful Array

    For some fixed N, an array A is beautiful if it is a permutation of the integers 1, 2, ..., N, such ...

  6. MySQL数据库导入或者同步大量数据时数据丢失解决方案

    相信大家都经常遇到这样的情况,我们在编码的过程中经常需要在调试代码的时候切换到本地的数据库上做修改调试,如果当测试数据库的数据在几十万或者上百万数据的时候,我们无论是通过恢复备份/导入SQL的方式来把 ...

  7. HBase之CF持久化系列(续3——完结篇)

    相信大家在看了该系列的前两篇文章就已经对其中的持久化有比较深入的了解.相对而言,本节内容只是对前两节的一个巩固.与持久化相对应的是打开文件并将其内容读入到内存变量中.而在本节,我就来介绍这一点. 本节 ...

  8. python网络-多进程(21)

    一.什么是进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实 ...

  9. Python爬虫入门教程 35-100 知乎网全站用户爬虫 scrapy

    爬前叨叨 全站爬虫有时候做起来其实比较容易,因为规则相对容易建立起来,只需要做好反爬就可以了,今天咱们爬取知乎.继续使用scrapy当然对于这个小需求来说,使用scrapy确实用了牛刀,不过毕竟本博客 ...

  10. 从零开始学习PYTHON3讲义(七)条件分支和哥德巴赫猜想

    <从零开始PYTHON3>第七讲 人生是由无数个选择组成,每个选择都有不同的限定条件.现在来说人生有点早是吧:)不过事实的确是这样的. 程序也充满着选择,满足不同的条件,则运行不同的运算. ...