سؤال

أحتاج إلى تحديث نفس الحقل لنفس القيمة لمئات العمل في TFS. هل هناك أي طريقة للقيام بذلك في دفعة بدلاً من تحديثها يدويًا واحدًا تلو الآخر؟

هل كانت مفيدة؟

المحلول

يمكنك القيام بذلك في Excel:

  1. افتح عناصر العمل في Excel ، عبر:
    • انقر بزر الماوس الأيمن على استعلام في فريق Explorer -> افتح في Excel
    • Multi -Sقل بعض عناصر العمل في جزء من نتائج الذكاء ، ثم انقر بزر الماوس الأيمن -> افتح في Excel
    • تحميل Excel ، استخدم Team -> استيراد لتحميل استعلام محدد مسبقًا
    • افتح ملف *.xls الذي يرتبط بالفعل بـ TFS
  2. قم بإجراء تعديلاتك بالجملة
  3. انقر على زر النشر على شريط الفريق

enter image description here

الوثائق الكاملة:إدارة عناصر العمل في Excel (صفحة نظرة عامة ؛ الكثير والكثير من الروابط في الداخل)

يمكنك تحرير الجزء الأكبر في واجهة الويب أيضًا

سطر الأوامر 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')") | 
    % {
        $_.Open()
        $_.Fields["priority"].value = 1
        $_
    }
# note: this will be much faster than tfpt since it's only one server call
$tfs.wit.BatchSave($items)   

نصائح أخرى

$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()
}

يمكنك تنزيل البرنامج النصي التفصيلي من كيفية تحديث عناصر عمل متعددة في TFS بواسطة PowerShell

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top