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查询和删除审核历史记录,布布扣,bubuko.com

时间: 2024-12-05 05:24:41

crm查询和删除审核历史记录的相关文章

01字典树贪心查询+建立+删除(个人模版)

01字典树贪心查询+建立+删除: 1 #define maxn 2 2 typedef struct tree 3 { 4 tree *nex[maxn]; 5 int v; 6 int val; 7 }tree; 8 tree root; 9 void init() 10 { 11 for(int i=0;i<maxn;i++) 12 { 13 root.nex[i]=NULL; 14 } 15 } 16 void creat(char *str,int va) 17 { 18 int len

ORACLE查询并删除重复记录

查询及删除重复记录的SQL语句 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select   peopleId from   people group by   peopleId having count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录delete from people where

MySql学习之 bit类型的查询和删除

今天项目从SqlServer转移到了MySql,转移过程中发现了一些问题,以前没遇到过,在网上查了查,总算是解决了,但是问题的根源还弄明白,暂且记录下来: 首先有个tb_paymentmethod表,表中有几条数据如下: DAO层获取Model时这样: if (row["IsDefault"] != null && row["IsDefault"].ToString().Trim() != "") { model.IsDefaul

elasticsearch 中文API 基于查询的删除(九)

基于查询的删除API 基于查询的删除API允许开发者基于查询删除一个或者多个索引.一个或者多个类型.下面是一个例子. import static org.elasticsearch.index.query.FilterBuilders.*; import static org.elasticsearch.index.query.QueryBuilders.*; DeleteByQueryResponse response = client.prepareDeleteByQuery("test&q

oracle下session的查询与删除

oracle下session的查询与删除 1.查询当前session SQL> select username,sid,serial# from v$session where username is not null; USERNAME                              SID    SERIAL# ------------------------------ ---------- ---------- SYS                              

crm使用soap删除下拉框选项

//C# 代码: //DeleteOptionValueRequest request = new DeleteOptionValueRequest(); //request.OptionSetName = "new_year"; //request.Value = 2008; //DeleteOptionValueResponse response = (DeleteOptionValueResponse)service.Execute(request); //js例子 functi

crm使用soap删除字段

//C# 代码: //DeleteAttributeRequest request = new DeleteAttributeRequest(); //request.EntityLogicalName = "new_account_product"; //request.LogicalName = "fw_int"; //DeleteAttributeResponse response = (DeleteAttributeResponse)service.Exec

crm使用soap删除实体

//C# 代码: //DeleteEntityRequest request = new DeleteEntityRequest(); //request.LogicalName = "new_account_product"; //DeleteEntityResponse response = (DeleteEntityResponse)service.Execute(request); //例子 function demo() { //实体名称 var entityname = &

Oracle 查询并删除重复记录的SQL语句

查询及删除重复记录的SQL语句 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select   peopleId from   people group by   peopleId having count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录delete from people where