crm查询和删除审核历史记录
using System;
using System.Linq;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Query;
using Microsoft.Crm.Sdk.Messages;
using Microsoft.Xrm.Sdk.Messages;
using System.Collections.Generic;
/// <summary>
/// 审核历史记录
/// </summary>
public class AuditHistory
{
/// <summary>
/// 检索对特定属性所做的所有更改
/// </summary>
/// <param name="service">服务</param>
/// <param name="Target">记录对象</param>
/// <param name="attrName">字段名称</param>
/// 特别说明:字段必须开启审核
public void RetrieveAttributeHistory(IOrganizationService service, EntityReference target,string attrName)
{
RetrieveAttributeChangeHistoryRequest request = new RetrieveAttributeChangeHistoryRequest();
request.AttributeLogicalName = attrName;
request.Target = target;
request.PagingInfo = new PagingInfo() { Count = 1000,PageNumber = 1 };
RetrieveAttributeChangeHistoryResponse response = (RetrieveAttributeChangeHistoryResponse)service.Execute(request);
//结果
AuditDetailCollection auditDetailCollection = response.AuditDetailCollection;
}
/// <summary>
/// 索对特定实体所做的所有更改
/// </summary>
/// <param name="service">服务</param>
/// <param name="target">目标记录</param>
public void RetrieveEntityHistory(IOrganizationService service, EntityReference target)
{
RetrieveRecordChangeHistoryRequest request = new RetrieveRecordChangeHistoryRequest();
request.Target = target;
request.PagingInfo = new PagingInfo() { Count = 1000,PageNumber = 1 };
RetrieveRecordChangeHistoryResponse response = (RetrieveRecordChangeHistoryResponse)service.Execute(request);
//结果
AuditDetailCollection auditDetailCollection = response.AuditDetailCollection;
}
/// <summary>
/// 删除包括在给定结束日期之前创建的审核数据的全部分区
/// </summary>
/// <param name="service">服务</param>
/// <param name="endDate">结束日期</param>
public void DeleteAudit(IOrganizationService service, DateTime endDate)
{
DeleteAuditDataRequest request = new DeleteAuditDataRequest();
request.EndDate = endDate;
DeleteAuditDataResponse response = (DeleteAuditDataResponse)service.Execute(request);
}
/// <summary>
/// 删除审核记录
/// </summary>
/// <param name="service">服务</param>
/// <param name="auditDetailCollection">记录集合</param>
public void DeleteAudit(IOrganizationService service, AuditDetailCollection auditDetailCollection)
{
if (auditDetailCollection.AuditDetails != null && auditDetailCollection.AuditDetails.Count > 0)
{
ExecuteMultiple multiple = new ExecuteMultiple();
multiple.AddDelete(auditDetailCollection.AuditDetails.Select(a => a.AuditRecord));
multiple.Execute(service);
}
}
/// <summary>
/// 批量操作
/// </summary>
public class ExecuteMultiple
{
private int len = 1500;
private List<ExecuteMultipleRequest> list = new List<ExecuteMultipleRequest>();
public ExecuteMultiple()
{
New();
}
public void New()
{
ExecuteMultipleRequest multiple = new ExecuteMultipleRequest()
{
Settings = new ExecuteMultipleSettings()
{
ContinueOnError = false,
ReturnResponses = true
},
Requests = new OrganizationRequestCollection()
};
list.Add(multiple);
}
public void Add(OrganizationRequest request)
{
ExecuteMultipleRequest multiple = list.LastOrDefault();
if (multiple.Requests.Count >= len)
{
New();
multiple = list.LastOrDefault();
multiple.Requests.Add(request);
}
else
{
multiple.Requests.Add(request);
}
}
public void AddCreate(Entity en)
{
CreateRequest request = new CreateRequest() { Target = en };
Add(request);
}
public void AddUpdate(Entity en)
{
UpdateRequest request = new UpdateRequest() { Target = en };
Add(request);
}
public void AddDelete(EntityReference er)
{
DeleteRequest request = new DeleteRequest() { Target = er };
Add(request);
}
public void AddDelete(Entity en)
{
AddDelete(new EntityReference() { LogicalName = en.LogicalName, Id = en.Id });
}
public void AddDelete(EntityCollection ec)
{
if (ec != null && ec.Entities.Count > 0)
{
AddDelete(ec.Entities);
}
}
public void AddDelete(DataCollection<Entity> list)
{
if (list != null && list.Count > 0)
{
foreach (Entity en in list)
{
AddDelete(en);
}
}
}
public void AddDelete(IEnumerable<Entity> list)
{
if (list != null && list.Count() > 0)
{
foreach (Entity en in list)
{
AddDelete(en);
}
}
}
public void Execute(IOrganizationService service)
{
foreach (ExecuteMultipleRequest request in list)
{
service.Execute(request);
}
}
}
}
crm查询和删除审核历史记录的更多相关文章
- TODO:MongoDB的查询更新删除总结
TODO:MongoDB的查询更新删除总结 常用查询,条件操作符查询,< .<=.>.>=.!= 对应 MongoDB的查询操作符是$lt.$lte.$gt.$gte.$ne ...
- [SQL]查询及删除重复记录的SQL语句
一:查询及删除重复记录的SQL语句1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select ...
- MySQL查询及删除重复记录的方法
查询及删除重复记录的方法(一)1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select p ...
- Oracle 查询并删除重复记录的SQL语句
查询及删除重复记录的SQL语句 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select ...
- JBPM4入门——5.流程定义的发布、查询、删除
本博文只是简要对JBPM4进行介绍,如需更详细内容请自行google 链接: JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流 ...
- oracle_SQL 实验查询及删除重复记录 依据条件 (row)
除数据库表中的重复记录 根据条件 ① 创建表准备数据 创建表 tab_test -- Create table create table TAB_TEST ( ID NUMBER, NAME NVAR ...
- Hadoop权威指南:HDFS-目录,查询文件系统,删除文件
Hadoop权威指南:HDFS-目录,查询文件系统,删除文件 [TOC] 目录 FileSystem实例提供了创建目录的方法 public boolean mkdirs(Path f) throws ...
- SQL查询和删除重复字段的内容
--例如: id NAME VALUE 1 a pp 2 a pp 3 b iii 4 b pp 5 b pp 6 c pp 7 c pp 8 c iii --id是主键 --要求得到这样的结果 id ...
- 64、django之模型层(model)--建表、查询、删除基础
要说一个项目最重要的部分是什么那铁定数据了,也就是数据库,这篇就开始带大家走进django关于模型层model的使用,model主要就是操纵数据库不使用sql语句的情况下完成数据库的增删改查.本篇仅带 ...
随机推荐
- Selenium 多窗口元素定位处理
以下文章来自于 上海-悠悠的博客 <Selenium2+python自动化13-多窗口.句柄(handle)> 有些页面的链接打开后,会重新打开一个窗口,对于这种情况,想在新页面上操作, ...
- JAVA 批量执行测试用例
如果多个测试用例在不同的类中,又需要一次性执行完所有的测试用例,则可以使用到Junit中的批量执行测试方法. 方法一 这种方式非常简单,不需要额外多写一行代码,Eclipse 本来就支持以项目或包为单 ...
- CentOS7配置阿里云yum源和EPEL源
配置阿里云yum源(参考:http://mirrors.aliyun.com/help/centos) 1.备份 [root@bogon ~]# cd /etc/yum.repos.d/ [root@ ...
- hdu 1411(四面体的体积)
校庆神秘建筑 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- django 实现自定义认证
1.Django自带用户认证系统 Django自带用户认证系统,这个系统支持访问控制.注册用户.关联创建者和内容等:在开发用户认证功能时的时候,可以使用Django自带用户认证系统实现: A.相关表 ...
- ActiveMQ学习总结
一.消息中间件的产生的背景 1.在网络通讯中,Http请求默认采用同步请求方式,基于请求与响应模式 2.在客户端与服务器进行通讯时,客户端调用服务端接口后,必须等待服务端完成处理后返回结果给客户端才能 ...
- Django项目静态文件加载失败问题
在我们平时的开发过程中,为了方便调试程序,我们都是打开开发者模式,即Debug=True,当我们正式上线的时候肯定就需要把开发者模式关掉,用uwsgi部署上去以后,突然发现我们平时辛苦做的项目的静态文 ...
- 训练指南 UVA- 11865(有向最小生成树 + 朱刘算法 + 二分)
layout: post title: 训练指南 UVA- 11865(有向最小生成树 + 朱刘算法 + 二分) author: "luowentaoaa" catalog: tr ...
- JVM内存溢出及配置
一.Java JVM内存介绍 JVM管理两种类型的内存,堆和非堆.按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配.堆是在 Java 虚拟机启动时创 ...
- POJ 2068 Nim(博弈论)
[题目链接] http://poj.org/problem?id=2068 [题目大意] 给出两队人,交叉放置围成一圈,每个人能取的石子数有个上限,各不相同 轮流取石头,取到最后一块石头的队伍算输,问 ...