问题描述
在 MS-Project 中,我可以看到设置为 Current Max. Units (%):
的选项 100%
我现在想通过 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 (将#修改为@)