【问题标题】:List Published Projects From MS Project 2010 API从 MS Project 2010 API 列出已发布的项目
【发布时间】:2014-05-01 21:15:06
【问题描述】:

Project API 允许您列出项目使用

ProjectDataSet data = client.ReadProjectList();
foreach (ProjectDataSet.ProjectRow projectRow in data.Project){...}

此 API 调用存在缺陷,因为它从工作存储返回所有项目,而不是已发布存储。您似乎希望根据已发布的商店检查每个项目的 GUID,这非常慢。

int i = projectRow.PROJ_TYPE;
if (i == 0){
    ProjectDataSet publishedProjectDataSet = client.ReadProject(projectRow.PROJ_UID, DataStoreEnum.PublishedStore);
    if (publishedProjectDataSet == null) { continue; }
}

是否有人知道如何快速仅列出已发布的项目?

【问题讨论】:

  • 我们为此使用数据库查询。我知道微软不建议直接访问他们的数据库,但是编写一个简单的选择语句比使用 API 调用做所有的矫枉过正更快、更容易。

标签: c# api ms-project psi


【解决方案1】:

projectClient.ReadProjectStatus 应该可以工作。例如

 // Get list of all projects.
 SvcProject.ProjectDataSet projectDs = projectClient.ReadProjectStatus(
 Guid.Empty, SvcProject.DataStoreEnum.PublishedStore,
 string.Empty, (int)PSLibrary.Project.ProjectType.Project);

文档位于here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-27
    • 1970-01-01
    • 2020-02-06
    相关资源
    最近更新 更多