crm2011创建批量删除作业
using System;
using Microsoft.Xrm.Sdk;
using Microsoft.Crm.Sdk.Messages;
using Microsoft.Xrm.Sdk.Query;
/// <summary>
/// 创建批量删除作业
/// </summary>
public class CreateBulkDeleteRequest
{
public void Create(IOrganizationService service)
{
//构造Request对象
BulkDeleteRequest bulkDeleteRequest = new BulkDeleteRequest();
//批量删除
bulkDeleteRequest.JobName = "批量删除";
//批量作业開始时间
bulkDeleteRequest.StartDateTime = DateTime.Now;
//作业完毕之后是否发生邮件
bulkDeleteRequest.SendEmailNotification = false;
bulkDeleteRequest.ToRecipients = new Guid[] { };
bulkDeleteRequest.CCRecipients = new Guid[] { };
//设置作业执行的时间间隔
bulkDeleteRequest.RecurrencePattern = String.Empty;
//删除的记录
QueryExpression query = new QueryExpression();
//实体的名称
query.EntityName = "new_customlog";
query.Criteria.AddCondition(new ConditionExpression("statecode",ConditionOperator.Equal,0));
bulkDeleteRequest.QuerySet = new QueryExpression[] { query };
//提交作业,系统将运行
BulkDeleteResponse _bulkDeleteResponse = (BulkDeleteResponse)service.Execute(bulkDeleteRequest);
System.Console.WriteLine("作业已经提交,系统正在运行!");
CheckSuccess(_bulkDeleteResponse,service);
}
/// <summary>
/// 检測作业是否完毕
/// </summary>
private void CheckSuccess(BulkDeleteResponse _bulkDeleteResponse,IOrganizationService service)
{
QueryByAttribute bulkQuery = new QueryByAttribute();
bulkQuery.ColumnSet = new ColumnSet("statecode", "successcount", "failurecount");
bulkQuery.EntityName = "bulkdeleteoperation";
bulkQuery.Attributes.Add("asyncoperationid");
bulkQuery.Values.Add(_bulkDeleteResponse.JobId);
EntityCollection entityCollection = service.RetrieveMultiple(bulkQuery);
int secondsTicker = 60;
Entity createdBulkDeleteOperation = null;
#region
while (secondsTicker > 0)
{
if (entityCollection != null && entityCollection.Entities.Count > 0)
{
createdBulkDeleteOperation = entityCollection.Entities[0];
int statecode = ((OptionSetValue)createdBulkDeleteOperation["statecode"]).Value;
BulkDeleteOperationState optionState =
((BulkDeleteOperationState)(System.Enum.ToObject(typeof(BulkDeleteOperationState), statecode)));
if (optionState != BulkDeleteOperationState.Completed)
{
//先暂停
System.Threading.Thread.Sleep(1000);
secondsTicker--;
// 再次查询
entityCollection = service.RetrieveMultiple(bulkQuery);
System.Console.WriteLine("系统正在运行!");
}
else
{
//作业运行完成。退出循环
secondsTicker = 0;
}
}
else
{
//先暂停
System.Threading.Thread.Sleep(1000);
secondsTicker--;
// 再次查询
entityCollection = service.RetrieveMultiple(bulkQuery);
System.Console.WriteLine("系统正在运行!");
}
}
#endregion
if (createdBulkDeleteOperation != null)
{
int statecode = ((OptionSetValue)createdBulkDeleteOperation["statecode"]).Value;
BulkDeleteOperationState optionState =
((BulkDeleteOperationState)(System.Enum.ToObject(typeof(BulkDeleteOperationState), statecode)));
if (optionState == BulkDeleteOperationState.Completed)
{
int successcount = Convert.ToInt32(createdBulkDeleteOperation["successcount"]);
int failurecount = Convert.ToInt32(createdBulkDeleteOperation["failurecount"]);
System.Console.WriteLine("系统运行完成!成功记录数:{0},失败记录数:{1}", successcount, failurecount);
}
else
{
System.Console.WriteLine("系统还在运行!");
}
}
}
}
[System.Runtime.Serialization.DataContractAttribute()]
public enum BulkDeleteOperationState
{
[System.Runtime.Serialization.EnumMemberAttribute()]
Ready = 0,
[System.Runtime.Serialization.EnumMemberAttribute()]
Suspended = 1,
[System.Runtime.Serialization.EnumMemberAttribute()]
Locked = 2,
[System.Runtime.Serialization.EnumMemberAttribute()]
Completed = 3,
}
转载于:https://www.cnblogs.com/jzdwajue/p/7039425.html
crm2011创建批量删除作业相关推荐
- 【十】JDBC:使用 jmeter 批量在数据库创建 1 万多条数据;批量删除重复数据
目录 一.批量创建1万多条数据 二.批量删除重复数据 一.批量创建1万多条数据 数据库车辆信息表中准备10000多台车的数据: (1)创建线程组,循环1次: (2)连接数据池: (3)添加循环控制器, ...
- linux批量创建和删除用户
linux批量创建和删除用户 我们都知道可以用useraddxxxx可以建立用户,passwd xxx可以为用户建立密码,如果我们要批量创建好多好多呢,怎么办??接下来我们一起来看个实例,一起来做一下 ...
- linux 批量删除任务,Linux-Shell脚本学习心得之批量创建、删除用户
继上次博文,继续为大家分享脚本实例:批量创建.删除用户 说到,用户的管理,大家都不会陌生,就是创建.删除.禁用等等的管理,但,大多都是管 理员手工操作,效率不是很高,今天,就给大家说说Shell脚本是 ...
- ElasticSearch.net NEST批量创建修改删除索引完整示例
本示例采用Elasticsearch+Nest 网上查了很多资料,发现用C#调用Elasticsearch搜索引擎的功能代码很分散,功能不完整,多半是非常简单的操作,没有成型的应用示例.比如新增或修改 ...
- python 文件操作大总结 对文件的增删改查,备份, 批量修改,创建和删除 文件的备份
python 的文件操作 文件的作用 永久的保存数据 文件中的内存保存在硬盘中 硬盘中的数据都是 0 和 1, 软件将 0 和 1的组合转换成我们认识的汉字 绝对路径和相对路径 绝对路径:是从目录开始 ...
- oracle删sequ_[oracle package]sequence处理(批量创建、删除sequence,将sequence恢复至指定值)...
之前对于oracle的包不太熟悉,最近深入学习了plsql中的包.在做项目过程中,操作数据库时,存在大量重复的工作,正好写个package来巩固下所学. 一.先对写的东西碰到的问题作下说明,也方便以后 ...
- oracle创建和删除表空间,oracle 表空间创建和删除
oracle数据库:数据库对象以及表数据都存储在表空间中,创建用户时可以指定对应的表空间.这样用户可以在各自的表空间中操作数据,互不干扰. 1. 表空间创建 若不清楚表空间对应文件的路径,可以登录系统 ...
- 用Python在Windows或Linux下批量删除文件夹中指定的文件
情况说明:当在一个文件夹下面有好几十个或几百个文件需要删除,此时一一去挑选费时费力,特别是在Linux下面.因此,需要批量删除文件. 对训练样本(图像)和测试样本(图像)进行评估时候,需要查看是数据本 ...
- 在Hibernate中处理批量更新和批量删除
批量更新是指在一个事务中更新大批量数据,批量删除是指在一个事务中删除大批量数据.以下程序直接通过Hibernate API批量更新CUSTOMERS表中年龄大于零的所有记录的AGE字段: 如果CUST ...
最新文章
- 再谈无边框窗体的操作
- 如何使用robots禁止各大搜索引擎爬虫爬取网站
- IOS项目集成Weex
- uva 10692——Huge Mods
- [css] css怎么更改表单的单选框或下拉框的默认样式?
- Docker 方式安装 RabbitMQ (ribbitmq linux 部署)
- python工程控件_工程脚本插件方案 - c集成Python基础篇
- 传网易、京东6月相继赴港上市:共计筹资50亿美元
- 技巧 | 在R语言中使用高德地图的API进行地理/逆地理编码(地址与经纬度的相互转换)...
- 不想“被out”?来看看现在的开发者都在做什么
- Vue 服务端渲染(SSR)、Nuxt.js - 从入门到实践
- Python: Flask后端与webapi
- # 一点毕设小感悟(SnowNLP+可视化分析)
- installshield使用教程
- oj平台python_python OJ
- UE4_模型_Bound(边界)
- 后部发声-----学会英语的发音方法
- maven已支持支付宝开放平台SDK
- IDEA中使用Junit4进行测试的入门配置
- linux命令mv作用,每天学一个 Linux 命令(18):mv