如何以编程方式在Project Workspace中创建项目问题?

时间:2012-01-04 12:43:27

标签: sharepoint project-server psi

我希望能够自动创建项目问题。目的是根据收到的电子邮件创建新问题。

我查看了ProjectWSSInfoDataSet,它应该引用问题列表(根据http://msdn.microsoft.com/en-us/library/aa495198(office.12).aspx的“PSI方法和项目工作空间的数据集”)。实际上,ProjectWSSInfoDataSet XML架构包含PROJECT_ISSUES_URL字段,但如果它只是url那么它对我来说没什么用处。

有没有人做过类似的事情? (或者可能存在项目风险或可交付成果。)

1 个答案:

答案 0 :(得分:0)

我认为必须使用SharePoint Webservices。在指定的Web中查找列表并进行更新。

我建议SharePoint 2010 Client Object Model执行此操作:

//Use SP2010 Client Object Model to update the list
ClientContext SPContext = new ClientContext(wssUrl);

//Get list by name
string listname = "issues";

var query = SPContext.LoadQuery(SPContext.Web.Lists.Where(l => l.Title == listname));
SPContext.ExecuteQuery();

List myIssueList = query.FirstOrDefault();

//Add an item
ListItemCreationInformation nItem = new ListItemCreationInformation();
nItem.LeafName = "Blubb..";
myIssueList.AddItem(nItem);
SPContext.ExecuteQuery();

如果您不想通过Project Id获取Workspace Url,可以通过Project Server的WSSInterop Webservice执行此操作:

//Use WssInterop Webservice to get the Workspace URL
WssInteropSoapClient wssinteropSvc = new WssInteropSoapClient();

Guid prjGuid = new Guid("30937680-39FA-4685-A087-90C73376B2BE");

ProjectWSSInfoDataSet wssData = wssinteropSvc.ReadWssData(prjGuid);
string wssUrl = wssData.ProjWssInfo[0].PROJECT_WORKSPACE_URL;

我不知道代码是否会编译,但它应该像这样工作。

关心弗洛里安