Project Server调用PSI关闭任务以进行更新锁定任务


/// <summary>
        /// 锁定和解锁项目任务
        /// </summary>
        /// <param name="projectuid">项目UID</param>
        /// <param name="islock">是否锁定</param>
        /// <returns></returns>
        public bool CloseProjectTask(Guid projectuid, bool islock)
        {
            try
            {
                QueueSystemUtils queuesystemutils = new QueueSystemUtils();

                ProjectDataSet dst = GetProjectByUid(projectuid);
                StatusingWebSvc.ProjectDataSet statusing_pro_dst = new StatusingWebSvc.ProjectDataSet();
                foreach (ProjectWebSvc.ProjectDataSet.TaskRow taskrow in dst.Task)
                {
                    if (taskrow.TASK_LOCKDOWN_BY_MANAGER != islock)
                    {
                        taskrow.TASK_LOCKDOWN_BY_MANAGER = islock;
                        statusing_pro_dst.Task.ImportRow(taskrow);
                    }
                }
                if (statusing_pro_dst.Task.Count > 0)
                {
                    int temp = 0;
                    int total_update_count = 0;
                    int totalcount = statusing_pro_dst.Task.Count;
                    StatusingWebSvc.ProjectDataSet statusing_pro_dst_update = new StatusingWebSvc.ProjectDataSet();
                    foreach (StatusingWebSvc.ProjectDataSet.TaskRow item in statusing_pro_dst.Task)
                    {
                        temp++;
                        total_update_count++;
                        statusing_pro_dst_update.Task.ImportRow(item);
                        if (total_update_count >= 400 || temp >= totalcount)
                        {
                            Guid jobuid = Guid.NewGuid();
                            StatusingClient.QueueLockDownTasks(jobuid, projectuid, statusing_pro_dst_update);
                            queuesystemutils.WaitForQueue(jobuid);
                            total_update_count = 0;
                            statusing_pro_dst_update = new StatusingWebSvc.ProjectDataSet();
                        }

                    }
                }
                return true;
            }
            catch (Exception ex)
            {
                new LogHelper().WriteLine(ex.ToString());
                return false;
            }
        }

注意:如果计划任务数量超过500条,会出现错误,必须分批去处理任务,调用QueueLockDownTasks来关闭项目任务已更新,锁定和解锁项目计划任务

时间: 2024-08-06 05:40:17

Project Server调用PSI关闭任务以进行更新锁定任务的相关文章

Sql Server 调用DLL

原文:Sql Server 调用DLL 背景 在处理数据或者分析数据时,我们常常需要加入一定的逻辑,该些处理逻辑有些sql是可以支持,有些逻辑SQL则无能为力,在这种情况下,大多数人都会编写相关的程序来处理成自己想要的数据,但每次处理相同逻辑时,都需要运行一次程序非常麻烦. 案例 IE地址栏上的地址在记入日志表中时,其数据是通过编码的,如果我们想要看到明文,则需要相应的解码,可以用SQL语句来实现,如: 摘自:http://blog.csdn.net/ruijc/article/details/

从 Project Professional 中登录 Project Server

您必须使用 Project Server 2007 或 Project Server 2010 帐户才能登录到 Project Server2010.当您具备有效帐户后,只需启动 Project Professional 2010 并在"登录"对话框中输入用户名和密码即可. 注释    尝试连接到 Project Server 时,如果收到"Project Server 不可用"消息,请与您的服务器管理员进行核实,确定自己是否属于有权从 Project 登录的 Pr

Team Foundation Server (TFS)与Project Server集成,使用DNS(友好地址)地址注册PWA

问题描述: 当Team Foundation Server(TFS 2010/2012/2013)与Project Server高可用性的环境集成时,必然会使用Project Server (PWA)的DNS地址注册PWA站点(RegisterPWA),而不是使用Project Server的计算机名注册,这样就会出现如下图所示的问题: 下图是执行注册PWA命令时出错的截屏 注册命令:tfsadmin project server /RegisterPWA /tfs:http://tfs2013

Project Server 2013新手入门 (一)为PWA添加用户并分享网站

之前做过Project server 2013的很多测试,一直没发上来.现在终于想着能写点自己会的东西,都比较简单,我也是新手. 之前测试的文档我会陆续的发上来,供新人参考,有不懂的,大家也可一起讨论. 我这里就不先写什么安装操作的文档啦,如果以后有需要,我再做.接下来的几篇稿子,我都写project PWA搭建好之后的一 些实际测试.那么,接下来我就开始分享我知道的东西. 一.为PWA新建用户 我们都知道微软的产品基本都是基于微软特有的AD活动目录的,这些产品像Exchange,Lync,Sh

Project Server 2013新手入门 (二)为PWA用户分配权限

上一篇文章我们讲到怎么为project server 2013 的PWA网站添加用户,那么用户添加好了,我们怎么给这些用户设置相应的权限,来对应我们项目管理中不同的角色(项目经理,资源经理.员工.负责人等),以便他们在项目整个过程中行使的权利和责任体现在我们的Project Server PWA的项目管理中心. 为用户分配PWA的全局权限(关于这个全局权限,我会在以后的文章中介绍) 执行完以上步骤之后,我们将在Project Server 2013 "服务器设置"下管理用户. 1)返回

Project Server 2013新手入门 (三)检查用户的有效权限

上篇文章里讲的怎么给PWA的用户来设置权限,那我们把用户的权限分配好了,怎么知道我们分配的权限对不对呢,或者说怎么去查看一个用户在PWA中的权限呢.下面的内容我将介绍怎么操作. 当我们配置完应该去检查一下用户的有效权限,这样可一方便我们管理用户. 1.同样是在"管理用户"页面,选中我们要查看的用户名称,点击"检查有效权限". 注意:我们也可以点击"停用用户"来阻止离职员工或者部分员工对PWA的使用,此时用户状态显示为"非活动"

Project Server 2013新手入门 (四)添加资源到资源中心

我们都知道项目管理中,会设计到很多资源的分配和管理内容,那么在Project Server中我们怎么将资源添加到资源中心进行管理. 添加资源到资源中心 1.自动被添加 在Project Server 2013主页,在"快速导航栏"--单击"资源",进入到"资源中心",我们会在"工时资源"列表看到之前创建的用户(选中可将用户作为资源分配) 2.手工添加 1)在上图页面,选择"新建"可以方便的将资源添加到&qu

SharePoint 2013 安装和配置 Project Server 2013

如何在SharePoint Server 2013 服务器场中安装 Project Server 2013 并创建 Project Server Service 应用程序. 第一步:安装 Project Server 2013 安装会吧  就不多啰嗦了.  第二部 :运行 SharePoint 产品和技术配置向导 依次单击"开始"."所有程序"."Microsoft SharePoint 2013 产品"和"SharePoint 201

postgreSQL远程连接出现:Error connecting to server :致命错误 SSL关闭的pg_hba.conf记录

异常截图: 解决方案: [[email protected] ~]# vi /var/lib/pgsql/data/pg_hba.conf # TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only local all all ident # IPv4 local connections: host all all 127.0.0.1/32 ident hos