Import values and append to a multilist
I have thousands of parts that have a field on PAGE_TWO that is a multilist. There are already values in that field. Now I want to use the Import tool from the web client to append another value to that field. I have tried it with one part in a csv file, but it just replaces what is currently there with my new value. Is the Import tool capable of appending without wiping out the existing values in a multilist attribute?
You cannot do that. There is no way to get Import to add data to the end of an existing value (or set of values). It assumes that the data has the complete value for each attribute that has a value in the data file.
What I would suggest is to export what the current values are for the parts you need to update, write a macro (or edit the exported data file) to add the value(s) that are needed to the multilist attribute, and to then run that file through Import. That way you will have all the list values that you need.
Agree with Kevin here, OOTB Import doesn’t support appending values and writing a Macro by concatenating existing values with expected values will do the work.
Also, you can develop simple SDK based utility to read the excel file and append the values to Agile Object. Which you can reuse in future as well. Let me know if you need any help with that.
Hi again, thanks for your response. I have not used the SDK yet. I need to learn more about it. But I have another question. When I use the Import utility from the web client, it does allow me to replace a multilist. I have many part numbers that are lower case. When I try to import, I get an error. If my part number is ‘Abc123xyz’, it looks for part ‘ABC123XYZ’ and then tells me it does not exist. I’m not sure why the import tool is converting to upper case. The multilist attribute I am updating contains values from the list ‘User Groups’, which has plenty of mixed case values. The Import ‘Preferences’ has a setting called Case Validation Action. I tried setting it to ‘Convert’ and also ‘Reject’, but either option results with the same errors.
You can do the following to be on safer side:
1. Iterate the list in question.
2. Give a if condition like compare the listValue.toUpper with your InputList.toUpper and then try to set listValue.toUpper since it’s a match. In this case the comparison will be caps neutral and value will be set as configured in Agile.