【问题标题】:Visual Studio Team Services & Microsoft SCSM integrationVisual Studio Team Services 和 Microsoft SCSM 集成
【发布时间】:2016-12-09 16:19:17
【问题描述】:

我的团队正计划使用 TFS 作为我们的 ALM 工具。我们正在评估本地和托管选项。 TFS 实施的要求之一是能够与我们的本地票务系统 Microsoft SCSM 集成。我找到了几种方法来执行与本地 TFS 的集成。但是,就托管选项(VS Team Services)而言,我无法找到任何信息。本地 SCSM 与 VS Team Services 的集成是否可行?提前致谢!

【问题讨论】:

    标签: azure-devops


    【解决方案1】:

    SCSM 可以通过 API 和 PowerShell(例如REST API)与 Visual Studio Team Services 集成,这类似于与 TFS 集成。

    步骤:

    1. 安装 Visual Studio Team Explorer/Visual Studio
    2. 安装 Service Manager 创作工具
    3. 打开 Authoring Tool 并选择 File=>New 以创建新的管理包(例如 TFS.Integrations.xml)
    4. 打开管理包资源管理器窗口
    5. 右键单击工作流=>创建
    6. 输入工作流程的名称(例如 CreateTFSTaskFromNewIncident)
    7. 在“触发条件”选项卡上,选择“仅当数据库对象满足指定条件时运行”。
    8. 使用浏览按钮选择事件类。确保更改事件是创建所选类的对象时。然后点击附加条件按钮。
    9. 对于其他标准,选择分类类别并将其设置为等于软件问题。这可确保只有新软件问题事件才会在 TFS 中创建任务。
    10. 点击创建并关闭
    11. 来自脚本活动 |常规脚本活动,将 Windows PowerShell 脚本活动拖到工作区上。在详细信息窗口中,将活动的名称更改为 CreateTFSTaskFromNewIncident。然后,在详细信息窗口中,选择脚本参数,然后单击椭圆按钮。这将打开配置脚本活动。单击脚本属性选项卡。在这里,我可以从触发工作流的事件中获取值,并在我们的 PowerShell 中使用这些值。
    12. 添加所需的参数
    13. 简单的 PowerShell 脚本

    代码:

    #Load TFS PowerShell Snap-in
    if ((Get-PSSnapIn -Name Microsoft.TeamFoundation.PowerShell -ErrorAction SilentlyContinue) -eq $null)
    {
        Add-PSSnapin Microsoft.TeamFoundation.PowerShell
    }
    
    $Tfs2015AssembliesPath="C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer"
    Add-Type -Path "$Tfs2015AssembliesPath\Microsoft.TeamFoundation.Client.dll"
    Add-Type -Path "$Tfs2015AssembliesPath\Microsoft.TeamFoundation.Common.dll"
    Add-Type -Path "$Tfs2015AssembliesPath\Microsoft.TeamFoundation.Build.Client.dll"
    Add-Type -Path "$Tfs2015AssembliesPath\Microsoft.TeamFoundation.Build.Common.dll"
    Add-Type -Path "$Tfs2015AssembliesPath\Microsoft.TeamFoundation.Git.Client.dll"
    Add-Type -Path "$Tfs2015AssembliesPath\Microsoft.TeamFoundation.SourceControl.WebApi.dll"
    #Add-Type -Path "$Tfs2015AssembliesPath\Microsoft.TeamFoundation.TestManagement.Client.dll"
    Add-Type -Path "$Tfs2015AssembliesPath\Microsoft.TeamFoundation.VersionControl.Client.dll"
    Add-Type -Path "$Tfs2015AssembliesPath\Microsoft.TeamFoundation.WorkItemTracking.Client.dll"
    
    #TFS Server Collection
    [string] $tfsCollectionUrl = "[collection url]"
    
    #Get Team Project Collection
    $teamProjectCollection = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($tfsCollectionUrl)
    
    #Get Work Item Store object
    $ws = $teamProjectCollection.GetService([type]"Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore")
    
    #Get Team Project
    $proj = $ws.Projects["project name"]
    
    #Get the Work Item Type to create
    $wit = $proj.WorkItemTypes["Task"]
    
    #Create a new work item of that type
    $workitem = $wit.NewWorkItem()
    
    #Set work item properties
    $workItem.Title = "title"
    $workItem.Description = "des"
    $workitem.AreaPath = "XXX"
    $workitem.IterationPath = "XXX"
    
    #Save work item
    $workItem.Save()
    
    1. 点击保存,然后生成必要的DLL和XML文件(在windows资源管理器中查看)
    2. 将 DLL 文件复制到 Service Manger 管理服务器(例如 C:\Program Files\Microsoft System Center 2012 R2\Service Manager)
    3. 打开服务管理器控制台
    4. 转到管理工作区=>管理包=>导入
    5. 选择 TFS.Integrations.xml=>导入
    6. 转到工作项=>事件管理=>创建事件,创建事件后,它将使用以前的 PowerShell 脚本创建任务工作项
    7. 转到管理=>工作流=>状态
    8. 选择对应的工作流(CreateTFSTaskFromNewIncident)并查看结果。

    这些文章可以帮助您。 (1, 2)

    【讨论】:

    • 不要把链接放到站外资源,把实际内容放在答案中。链接往往会随着时间的推移而消失。如果有人在 5 年后看这个答案,答案应该仍然是正确的。说“看这里”和“这里”的答案表示一个不再存在的网站是没有用的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    相关资源
    最近更新 更多