Cómo actualizar por lotes múltiples elementos de trabajo en TFS
-
06-07-2019 - |
Pregunta
Necesito actualizar el mismo campo al mismo valor para cientos de elementos de trabajo en TFS. ¿Hay alguna forma de hacerlo en un lote en lugar de actualizarlos manualmente uno por uno?
Solución
Puede hacer esto en Excel :
- Abra los elementos de trabajo en Excel, a través de:
- haga clic derecho en una consulta en Team Explorer - > abrir en Excel
- seleccione varios elementos de trabajo en un panel de resultados WIT, luego haga clic con el botón derecho - > abrir en Excel
- cargar Excel, usar Team - > Importar para cargar una consulta predefinida
- abre un archivo * .xls que ya está vinculado a TFS
- Realiza tus ediciones masivas
- Haga clic en el botón Publicar en la cinta del equipo
Documentación completa: Gestión de elementos de trabajo en Excel (página de resumen; lotes & amp; muchos enlaces dentro)
Puede realizar una edición masiva en la interfaz web también
Línea de comando de Windows :
REM make Martin Woodward fix all my bugs
tfpt query /format:id "TeamProject\public\My Work Items" |
tfpt workitem /update @ /fields:"Assigned To=Martin"
Powershell :
# make Bill & Steve happy
$tfs = tfserver -path . -all
$items = $tfs.wit.Query("
SELECT id FROM workitems
WHERE [Created By] IN ('bill gates', 'steve ballmer')") |
% {
Puede hacer esto en Excel :
- Abra los elementos de trabajo en Excel, a través de:
- haga clic derecho en una consulta en Team Explorer - > abrir en Excel
- seleccione varios elementos de trabajo en un panel de resultados WIT, luego haga clic con el botón derecho - > abrir en Excel
- cargar Excel, usar Team - > Importar para cargar una consulta predefinida
- abre un archivo * .xls que ya está vinculado a TFS
- Realiza tus ediciones masivas
- Haga clic en el botón Publicar en la cinta del equipo
Documentación completa:
Gestión de elementos de trabajo en Excel (página de resumen; lotes & amp; muchos enlaces dentro)
Puede realizar una edición masiva en la interfaz web también
Línea de comando de Windows :
REM make Martin Woodward fix all my bugs
tfpt query /format:id "TeamProject\public\My Work Items" |
tfpt workitem /update @ /fields:"Assigned To=Martin"
Powershell :
<*>.Open()
Puede hacer esto en Excel :
- Abra los elementos de trabajo en Excel, a través de:
- haga clic derecho en una consulta en Team Explorer - > abrir en Excel
- seleccione varios elementos de trabajo en un panel de resultados WIT, luego haga clic con el botón derecho - > abrir en Excel
- cargar Excel, usar Team - > Importar para cargar una consulta predefinida
- abre un archivo * .xls que ya está vinculado a TFS
- Realiza tus ediciones masivas
- Haga clic en el botón Publicar en la cinta del equipo
Documentación completa:
Gestión de elementos de trabajo en Excel (página de resumen; lotes & amp; muchos enlaces dentro)
Puede realizar una edición masiva en la interfaz web también
Línea de comando de Windows :
REM make Martin Woodward fix all my bugs
tfpt query /format:id "TeamProject\public\My Work Items" |
tfpt workitem /update @ /fields:"Assigned To=Martin"
Powershell :
<*>.Fields["priority"].value = 1
Puede hacer esto en Excel :
- Abra los elementos de trabajo en Excel, a través de:
- haga clic derecho en una consulta en Team Explorer - > abrir en Excel
- seleccione varios elementos de trabajo en un panel de resultados WIT, luego haga clic con el botón derecho - > abrir en Excel
- cargar Excel, usar Team - > Importar para cargar una consulta predefinida
- abre un archivo * .xls que ya está vinculado a TFS
- Realiza tus ediciones masivas
- Haga clic en el botón Publicar en la cinta del equipo
Documentación completa:
Gestión de elementos de trabajo en Excel (página de resumen; lotes & amp; muchos enlaces dentro)
Puede realizar una edición masiva en la interfaz web también
Línea de comando de Windows :
REM make Martin Woodward fix all my bugs
tfpt query /format:id "TeamProject\public\My Work Items" |
tfpt workitem /update @ /fields:"Assigned To=Martin"
Powershell :
<*>
}
# note: this will be much faster than tfpt since it's only one server call
$tfs.wit.BatchSave($items)
Otros consejos
$secpasswd = ConvertTo-SecureString $TfsPasswd -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ($TfsUserName, $secpasswd)
Connect-TfsTeamProjectCollection -Server $TfsServerUrl -Collection $TfsCollection -Credential $mycreds
#Get-TfsTeamProject
Connect-TfsTeamProject -Project $TfsProjectName
$workItems = Get-TfsWorkItem -Filter "[System.WorkItemType] = 'Bug' AND [System.AssignedTo] = '$TfsUserName'"
foreach ($workItem in $workItems)
{
$tpc = $workItem.Store.TeamProjectCollection
$id = $workItem.Id
$store = $tpc.GetService([type]'Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore')
$wi = $store.GetWorkItem($id)
$projectName = $wi.Project.Name
foreach($fldName in $Fields.Keys)
{
$wi.Fields[$fldName].Value = $Fields[$fldName]
}
$wi.Save()
}
Puede descargar una secuencia de comandos de detalles de cómo actualizar por lotes múltiples elementos de trabajo en TFS por PowerShell