1

プロジェクト計画をMSProject.mppからTFSに同期することにより、プロジェクトに影響を受けるプロジェクトマネージャーの名前を表す文字列であるフィールドを同期したいと思います。原則として、この文字列はTFS内のActiveDirectoryの有効なユーザーグループから取得されます。

SQL Server DBをクエリするために、ユーザーIDも取得する方法を探しています。ユーザーの名前を知っているときにADからユーザーIDを取得することはありましたか?これはオプションのようですが、最善ではありません。

プロジェクトマネージャーのフルネームを同期すると同時に、このフィールドでユーザーIDを取得する方法がある場合は、これが最善の方法です。助言がありますか?

<FIELD name="Project Manager" refname="Custom.ProjectManager" type="String" reportable="dimension">
<HELPTEXT>The name of the project manager.</HELPTEXT>
<SUGGESTEDVALUES expanditems="true" filteritems="excludegroups">
  <LISTITEM value="[global]\Project Collection Valid Users" />
</SUGGESTEDVALUES>
</FIELD>
4

2 に答える 2

1
using System.DirectoryServices.AccountManagement;

UserPrincipal user = UserPrincipal.FindByIdentity(yourDomain, IdentityType.Name, fullName);
于 2013-07-24T21:01:03.907 に答える
0

これは私が考えた回避策です。欠点は、プロジェクトマネージャーの名前が表示されるたびにUSERIDが表示されることです。

作業項目タイプのXMLファイル

    <FIELD name="Project Manager" refname="Custom.ProjectManager" type="String" reportable="dimension">
    <HELPTEXT>The name of the project manager.</HELPTEXT>
    <SUGGESTEDVALUES expanditems="true" filteritems="excludegroups">
      <LISTITEM value="(ID='DOEJ24') John Doe " />
      <LISTITEM value="(ID='DOEJ23') Jane Doe " />
      <LISTITEM value="(ID='SMIJ03') John Smith " />
      <LISTITEM value="(ID='COSG01') George Constanza " />
      <LISTITEM value="(ID='BRAT99') Tom Brady " />
    </SUGGESTEDVALUES>
    </FIELD>

C#

    var projectManager = WorkItemStore.GetWorkItem(Convert.ToInt32(id))["Project Manager"]);
    var pmUserId = projectManager.SubString(5, 6);

このようにして、プロジェクトマネージャーのユーザーID列を持つデータベースに簡単にクエリを実行できます。

于 2012-03-22T18:01:45.210 に答える