如何确定 PSI 中的资源工作可用性
How to determine resource work availability in PSI
我正在通过 Microsoft.SharePoint.Client 上下文使用 MS Project Server 2013 的 PSI 界面。
我需要获取特定日期特定资源可用的数量或小时数。
例如,Resource1 的当前最大单位为 100%。我设置了8h工作日,也就是说Resource1每个工作日都有8h。我将 Resource1 计划工作 2 小时设置为今天。所以我需要获得今天的最大可用时间:8 小时 - 2 小时 = 6 小时。
//open project context
ProjectContext projContext;
projContext = new ProjectContext(pwaPath);
//load enterprise resource
projContext.Load(projContext.EnterpriseResources);
projContext.ExecuteQuery();
//get first resource
EnterpriseResource resource = projContext.EnterpriseResources[0];
//what should I do next?
是否存在无需手动计算即可获得此估算值的方法?
DateTime dtStart = DateTime.Parse("09.04.2015");
DateTime dtEnd = DateTime.Parse("12.28.2016");
var plan = checkoutProj.GetResourcePlan(dtStart, dtEnd, TimeScale.Days);
projContext.Load(plan.Assignments);
projContext.ExecuteQuery();
DateTime dttest = DateTime.Parse("8.28.2016");
var assgn = plan.Assignments[0].Intervals.GetByStart(dttest);
projContext.Load(plan.Assignments[0].Intervals);
projContext.Load(plan.Assignments[1].Intervals);
projContext.Load(assgn);
projContext.ExecuteQuery();
assgn.Duration 为您提供特定日期的工作量。
我正在通过 Microsoft.SharePoint.Client 上下文使用 MS Project Server 2013 的 PSI 界面。
我需要获取特定日期特定资源可用的数量或小时数。
例如,Resource1 的当前最大单位为 100%。我设置了8h工作日,也就是说Resource1每个工作日都有8h。我将 Resource1 计划工作 2 小时设置为今天。所以我需要获得今天的最大可用时间:8 小时 - 2 小时 = 6 小时。
//open project context
ProjectContext projContext;
projContext = new ProjectContext(pwaPath);
//load enterprise resource
projContext.Load(projContext.EnterpriseResources);
projContext.ExecuteQuery();
//get first resource
EnterpriseResource resource = projContext.EnterpriseResources[0];
//what should I do next?
是否存在无需手动计算即可获得此估算值的方法?
DateTime dtStart = DateTime.Parse("09.04.2015");
DateTime dtEnd = DateTime.Parse("12.28.2016");
var plan = checkoutProj.GetResourcePlan(dtStart, dtEnd, TimeScale.Days);
projContext.Load(plan.Assignments);
projContext.ExecuteQuery();
DateTime dttest = DateTime.Parse("8.28.2016");
var assgn = plan.Assignments[0].Intervals.GetByStart(dttest);
projContext.Load(plan.Assignments[0].Intervals);
projContext.Load(plan.Assignments[1].Intervals);
projContext.Load(assgn);
projContext.ExecuteQuery();
assgn.Duration 为您提供特定日期的工作量。