azure-devops-migration-tools icon indicating copy to clipboard operation
azure-devops-migration-tools copied to clipboard

Migration doesn't set boardlane (swimlane)

Open roofiq opened this issue 2 years ago • 8 comments

Hello,

Seems like there is no option to configure System.BoardLane which is called swimlane in Kanban world.

After setting up this config section - FieldValueMapConfig in configuration I was able to map the state. But seems like there is no option to set board lane currently, it goes to default one after creating work item. I'm running on 12v.

Could you please confirm above? Is there an option to work it out without updating work items via Az DevOps API? Thanks! Rafal

roofiq avatar Aug 16 '22 15:08 roofiq

@ktdixit any idea about this issue? :) All work items are migrated to default swimlane.

roofiq avatar Aug 19 '22 15:08 roofiq

@roofiq check this option in your config file. Usually this is set to “null”. Try changing to “true”

"NodeStructureEnricherEnabled": true,

ktdixit avatar Aug 19 '22 16:08 ktdixit

hey @ktdixit, thanks again for supporting me :) I've set this flag to true, but still work items are moved to default boardlane.

Here is my config:

    {
      "$type": "WorkItemMigrationConfig",
      "Enabled": true,
      "ReplayRevisions": true,
      "PrefixProjectToNodes": false,
      "UpdateCreatedDate": true,
      "UpdateCreatedBy": true,
      "WIQLQueryBit": "AND [System.State] NOT IN ('Removed') AND [System.WorkItemType] NOT IN ('Test Suite', 'Test Plan','Shared Steps','Shared Parameter','Feedback Request')",//[Microsoft.VSTS.Common.ClosedDate] = '' 
      "WIQLOrderBit": "[System.ChangedDate] desc",
      "LinkMigration": true,
      "AttachmentMigration": true,
      "AttachmentWorkingPath": "c:\\temp\\WorkItemAttachmentWorkingFolder\\",
      "FixHtmlAttachmentLinks": false,
      "SkipToFinalRevisedWorkItemType": true,
      "WorkItemCreateRetryLimit": 5,
      "FilterWorkItemsThatAlreadyExistInTarget": true,
      "PauseAfterEachWorkItem": false,
      "AttachmentMaxSize": 480000000,
      "AttachRevisionHistory": false,
      "LinkMigrationSaveEachAsAdded": false,
      "GenerateMigrationComment": true,
      "WorkItemIDs": [],
      "MaxRevisions": 0,
      "NodeStructureEnricherEnabled": true,
      "UseCommonNodeStructureEnricherConfig": false,
      "NodeBasePaths": [
        // if empty array - migrates all areas/iterations
        // "Product\\Area\\Path1",
        // "Product\\Area\\Path2"
      ],
      "AreaMaps": {},
      "IterationMaps": {},
      "MaxGracefulFailures": 0
    }

Do you have some other clue what we could adjust to make it work? Would be great because otherwise I would need to create some custom script to move it to source swimlane.

Thanks!

roofiq avatar Aug 21 '22 07:08 roofiq

@ktdixit, I was thinking, maybe I would need to define yet another FieldToFieldMap? Currently I have just a default one:

    {
      "$type": "FieldtoFieldMapConfig",
      "WorkItemTypeName": "*",
      "sourceField": "Microsoft.VSTS.Common.BacklogPriority",
      "targetField": "Microsoft.VSTS.Common.StackRank",
      "defaultValue": null
    }

roofiq avatar Aug 22 '22 09:08 roofiq

@roofiq I have the default FieldtoFieldMapConfig only. You can verify on "$type": "FieldValueMapConfig", on System.State value mappings Lets see the comments from others too in the group.

ktdixit avatar Aug 22 '22 10:08 ktdixit

@ktdixit for this one I have below:

    {
      "$type": "FieldValueMapConfig",
      "WorkItemTypeName": "*",
      "sourceField": "System.State",
      "targetField": "System.State",
      "defaultValue": "New",
      "valueMapping": {
        "New": "New",
        "To do": "To do",
        "Analysis": "Analysis",
        "Waiting for Approval": "Waiting for Approval",
        "On Hold": "On Hold",
        "Active": "Active",
        "Verification": "Verification",
        "Done": "Done"
      }
    }

I've tried to add additional one with System.BoardLane value but getting below error:

[13:14:56 ERR] Field map fault
Microsoft.TeamFoundation.WorkItemTracking.Client.ValidationException: TF26194: The value for the field 'Board 
Lane' cannot be changed.
   at Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItem.SetFieldValueExternal(FieldDefinition fd, Object value)
   at MigrationTools.FieldMaps.AzureDevops.ObjectModel.FieldValueMap.InternalExecute(WorkItemData source, WorkItemData target) in D:\a\1\s\src\MigrationTools.Clients.AzureDevops.ObjectModel\FieldMaps\FieldValueMap.cs:line 45
   at MigrationTools.FieldMaps.AzureDevops.ObjectModel.FieldMapBase.Execute(WorkItemData source, WorkItemData 
target) in D:\a\1\s\src\MigrationTools.Clients.AzureDevops.ObjectModel\FieldMaps\FieldMapBase.cs:line 31 

roofiq avatar Aug 22 '22 11:08 roofiq

@roofiq @ktdixit I'm facing the same problem. do you have any fix for this. boardlane field is empty after migration. Also Pre and Post Migration the boardLane is read-only mode, was this expected.

dparthi21 avatar Sep 12 '22 09:09 dparthi21

Hey @dparthi21, nothing. I had to develop custom script, that gets work item boardlane from source and set it to target work item. Hopefully @ktdixit will come with some magic solution, would be great! :D

roofiq avatar Sep 13 '22 13:09 roofiq

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 10 days

github-actions[bot] avatar Oct 14 '22 00:10 github-actions[bot]