我怎样才能设置'最大资源的 MS 项目中的单位 (%)'

问题描述

在 MS-Project 中,我可以看到设置为 Current Max. Units (%): 的选项 100%

Field Current Max.Units (%)

我现在想通过 CSOM 修改此值并将其设置为 90%。此外,我更新了我的 NuGet 包并使用 Microsoft.SharePointOnline.CSOM 库的最新版本 (16.1.21312.12000)。

我试过的代码是:

// Get the resource
EnterpriseResource resource = GetMyResource();
projectContext.Load(resource);
projectContext.ExecuteQuery();

// load the Engagements
projectContext.Load(resource.Engagements,t => t.IncludeWithDefaultProperties());
projectContext.ExecuteQuery();

// try access first engagement
var firstEngagement = resource.Engagements.FirstOrDefault();
projectContext.Load(firstEngagement); // Fails: Value cannot be null. Parameter name: clientObject
projectContext.ExecuteQuery();
                            
// Modify engagement
firstEngagement.ApprovedMaxUnits = 90; // This Could be the "Current Max. Units (%)"
resource.Engagements.Update();
projectContext.ExecuteQuery();

// Add new engagement,and update
var engagement = new EngagementCreationinformation
{
    MaxUnits = 90,// This looks like the "Current Max. Units (%)"
};
resource.Engagements.Add(engagement); // .Add() not available
resource.Engagements.Update();
projectContext.ExecuteQuery();

这里我在检索第一个 Engagement 时收到错误 Value cannot be null. Parameter name: clientObject

然后我想创建一个新的约定,因为它没有找到。但是 resource.Engagements 属性没有文档中描述的 .Add().AddChild()https://docs.microsoft.com/en-us/dotnet/api/microsoft.projectserver.client.resourceengagementcollection?view=sharepoint-csom#methods

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)