Visual Studio Team Services& Microsoft SCSM集成

时间:2016-12-09 16:19:17

标签: azure-devops

我的团队正在计划使用TFS作为我们的ALM工具。我们正在评估内部部署和托管选项。 TFS实施的一个要求是能够与我们的内部部署票务系统Microsoft SCSM集成。我发现了几种与内部部署TFS集成的方法。但是,就托管选项(VS Team Services)而言,我还没能找到任何信息。是否可以将内部部署SCSM与VS Team Services集成?提前谢谢!

1 个答案:

答案 0 :(得分:0)

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

步骤:

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

    #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 Management Server(例如C:\ Program Files \ Microsoft System Center 2012 R2 \ Service Manager)
    3. 打开Service Manager控制台
    4. 转到管理工作区=>管理包=>导入
    5. 选择TFS.Integrations.xml =>导入
    6. 转到工作项=>事件管理=>创建事件,创建事件后,它将使用以前的PowerShell脚本创建任务工作项
    7. 转到管理=>工作流程=>状态
    8. 选择相应的工作流程(CreateTFSTaskFromNewIncident)并检查结果。
    9. 这些文章可以帮到你。 (12