0

PSI 経由でフィルター処理されたプロジェクトのリストを取得するにはどうすればよいですか? Project Web サービスと ReadProjectStatus メソッドを使用してみましたが、フィルタリング機能はありません。

内部 PWA Web サービスには ProjectGetProjectCenterProjectsForGridJson メソッドもありますが、これは実際には文書化されていないため、使用できません...

これを達成する方法はありますか?そのようなフィルタリングを行うネイティブな方法はありますか?

ありがとう !

4

1 に答える 1

0

フィルター クエリを使用できます。

private static Guid EnsureEnterpriseProject(string ProjectName)
    {

        SvcProject.ProjectDataSet ProjectDs = new SvcProject.ProjectDataSet();

        PSLibrary.Filter ProjectFilter = new Microsoft.Office.Project.Server.Library.Filter();
        ProjectFilter.FilterTableName = ProjectDs.Project.TableName;
        ProjectFilter.Fields.Add(new PSLibrary.Filter.Field(ProjectFilter.Project.TableName, ProjectFilter.Project.[Give column Name].ColumnName, PSLibrary.Filter.SortOrderTypeEnum.None));
        ProjectFilter.Fields.Add(new PSLibrary.Filter.Field(ProjectFilter.Project.TableName, ProjectFilter.Project.[Give column Name].ColumnName, PSLibrary.Filter.SortOrderTypeEnum.None));
        ProjectFilter.Fields.Add(new PSLibrary.Filter.Field(ProjectFilter.Project.TableName, ProjectFilter.Project.[Give column Name].ColumnName, PSLibrary.Filter.SortOrderTypeEnum.None));
        ProjectFilter.Fields.Add(new PSLibrary.Filter.Field(ProjectFilter.Project.TableName, ProjectFilter.Project.[Give column Name].ColumnName, PSLibrary.Filter.SortOrderTypeEnum.None));

        PSLibrary.Filter.FieldOperator existingProject = new PSLibrary.Filter.FieldOperator(PSLibrary.Filter.FieldOperationType.Equal, ProjectDs.Project.[Give Column Name].ColumnName, ProjectName);
        projecteFilter.Criteria = existingProject;
        string filterXml = ProjectFilter.GetXml();
        ProjectDs = ServiceContext.Current.PSI.ProjectService.ReadProject(filterXml, false);
        if (ProjectDs.Project.Count >= 1)
        {
            //Get the desired value from the dataset.
        }
        return Valuegotfromdataset;
    }
于 2015-03-13T12:59:53.937 に答える