none
CRM中实体统计 RRS feed

  • 问题

  • 在CRM中有两个实体,他们之间只有用户相同,可以实现用一个实体中的字段去统计相同用户的另一个实体的个数吗?请教各位前辈。

    比如说我有一个实验记录实体,里面有一个实验流程个数字段,还有一个实体是实验流程,我可以用实验记录实体中的实验流程个数字段去统计我今天建的实验流程的个数吗?

    2011年2月18日 7:51

答案

  • 可以的。

    首先,做如下假定:

         实验记录: 实体名称为ExpRecord,负责人字段名称为OwnerId,实验流程数量字段名称为ProcessCount;

         实验流程: 实体名称为ExpProcess,负责人字段为OwnerId,与实验流程的关联字段名称为ExpRecordId,创建时间字段名称为CreatedOn

    统计的方法可以是Javascript脚本,或者是Plugin,使用自定义工作流活动有些麻烦,不过也是可以的。我说一下Javascript脚本以及Plugin两种方式吧。

    Javascript脚本方式:

        在ExpProcess表单的OnSave事件中编写脚本,根据ExpProcess.OwnerId以及ExpProcess.CreatedOn两个字段获取当前用户负责的今天的所有的实验流程实体的实例,然后汇总一下有多少条ExpProrcess记录。接着根据ExpProcess.ExpRecordId,获取实验记录实例,将汇总的记录值作为ProcessCount的值,然后更新该实验记录实例即可。关于使用Javascript获取多条记录的脚本样例,可以在SDK中,查找“CrmService.RetrieveMultiple Method Using JScript“即可看到样例代码。

    Plugin方式:

        在ExpProcess实体的PostCreate消息上编写Plugin,处理的逻辑与JavaScript脚本处理类似。就不多说了,关于编写PlugIn的代码样例,可以在SDK中查找到。


    daemon lin
    • 已标记为答案 shixiaoying 2011年2月20日 12:52
    2011年2月19日 7:04

全部回复

  • 可以的。

    首先,做如下假定:

         实验记录: 实体名称为ExpRecord,负责人字段名称为OwnerId,实验流程数量字段名称为ProcessCount;

         实验流程: 实体名称为ExpProcess,负责人字段为OwnerId,与实验流程的关联字段名称为ExpRecordId,创建时间字段名称为CreatedOn

    统计的方法可以是Javascript脚本,或者是Plugin,使用自定义工作流活动有些麻烦,不过也是可以的。我说一下Javascript脚本以及Plugin两种方式吧。

    Javascript脚本方式:

        在ExpProcess表单的OnSave事件中编写脚本,根据ExpProcess.OwnerId以及ExpProcess.CreatedOn两个字段获取当前用户负责的今天的所有的实验流程实体的实例,然后汇总一下有多少条ExpProrcess记录。接着根据ExpProcess.ExpRecordId,获取实验记录实例,将汇总的记录值作为ProcessCount的值,然后更新该实验记录实例即可。关于使用Javascript获取多条记录的脚本样例,可以在SDK中,查找“CrmService.RetrieveMultiple Method Using JScript“即可看到样例代码。

    Plugin方式:

        在ExpProcess实体的PostCreate消息上编写Plugin,处理的逻辑与JavaScript脚本处理类似。就不多说了,关于编写PlugIn的代码样例,可以在SDK中查找到。


    daemon lin
    • 已标记为答案 shixiaoying 2011年2月20日 12:52
    2011年2月19日 7:04
  • daemon lin,您好,谢谢您了。
    2011年2月20日 12:52
  • 我按照对您上述的理解做出来统计的效果了。

    但我还有一个问题,这两个实体之间在完成统计之前是不是一定要创建关联呢?这个关联只能通过lookup实现吗?可以在原来两个没有任何关系的表单内,不做任何变化的实现统计吗?

    2011年2月23日 1:54