关注本人微信和易信公众号: 微软动态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. RabbitMQ in Action (1): Understanding messaging

    1. Consumers and producers Producers create messages and publish (send) them to a broker server (Rab ...

  2. 合适么?现在学ASP.NET Core入门编程……

    现在都快找不到ASP.NET的培训课程了. 知道我要开课做培训,有同学劝我:“憋讲那什么.NET,讲Java,现在这个火!”我说我Java不熟,“唉呀!C#转Java,分分钟的事!以飞哥你的经验,…… ...

  3. Python学到什么程度就可以去找工作?掌握这4点足够了!

    大家在学习Python的时候,有人会问“Python要学到什么程度才能出去找工作”,对于在Python培训机构学习Python的同学来说这都不是问题,因为按照Python课程大纲来,一般都不会有什么问 ...

  4. [Swift]LeetCode6. Z字形变换 | ZigZag Conversion

    The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like ...

  5. mybatis-generator XML Parser Error on line 38: 必须为元素类型 "table" 声明属性 "enableInsertByPrimaryKey"。

    1. 解决方法 在 table 元素中删除属性 enableInsertByPrimaryKey 即可.就是这么神奇... 2. 情景重现 使用 mybatis-generator 插件生成代码时报错 ...

  6. 面试题:反转字符串(leetcode344)

    编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 char[] 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 O(1) 的额外空间解决这一问题. 你可以 ...

  7. 9.Git分支-分支的创建与合并-02

    在 8.Git分支-分支的创建与合并-01 主要通过一个例子介绍了分支的新建,以及在工作中,git分支的新建切换以及使用,这里主要介绍分支的合并.这里的例子和8.Git分支-分支的创建与合并-01 的 ...

  8. vue组件的基本使用,以及组件之间的基本传值方式

    组件(页面上的每一个部分都是组件) 1.三部分:结构(template),样式(style),逻辑(script) 2.组件的作用:复用 3.模块包含组件 4.组件创建:     1.全局组件:Vue ...

  9. centos7中安装、配置、验证、卸载redis

    本文介绍在centos7中安装.配置.验证.卸载redis等操作,以及在使用redis中的一些注意事项. 一 安装redis 1 创建redis的安装目录 利用以下命令,切换到/usr/local路径 ...

  10. MVC中Model元数据及绑定机制

    ASP.NET MVC的Model为View Model,表示最终呈现在View上的数据,而Model元数据的一个重要的作用在于控制对象在View上的呈现方式.说得更加具体点,就是基于某种数据类型的M ...