How to Create Multivalued Picker for an IBA Using Datautlity
Version: Windchill 12.0
Use Case: I have a requirement to create a Mutlivalued picker for a IBA in part creation page. When user clicks on the picker it should open the custom JSP page in which user enters some data , this data should get populated in the picker textbox and and need to get persists when user clicks finish .
Description:
I have created Picker using PickerInputComponent and MultiValuedInputComponent using datautility and returning the MultiValuedInputComponent from getDataValue method.

I have encountered two problems with this approach .
1. Data is not getting persisted in the DB .
2. when I clicked on Plus button it is rendering one more Plus button instead of minus button as show below.

Please help me how to get the value persist in DB and and to get the Minus button.
Below is the code I used :
HashMap<Object, Object> pickerConfigMap = new HashMap<>();
ArrayList<AttributeInputComponent> listOfInputComponent = new ArrayList();
final int columnSize = 60;
pickerConfigMap.put("objectType", "customPicker");
pickerConfigMap.put("componentId", "customPicker");
pickerConfigMap.put("readOnlyPickerTextBox", "false");
pickerConfigMap.put("pickerId", componentId);
pickerConfigMap.put("width", "32");
pickerConfigMap.put("maxLength", "200");
pickerConfigMap.put("pickerCallback", "customPickerCallBack");
PickerInputComponent pickerInputComponent = new PickerInputComponent(attributeLabelName, value,
PickerRenderConfigs.getPickerConfigs(pickerConfigMap), "customPickerWizard", "customPickerSearch", columnSize);
listOfInputComponent.add(pickerInputComponent);
MultiValuedInputComponent multiValuedInputComponent = new MultiValuedInputComponent(listOfInputComponent,
pickerInputComponent);
String id = attrInputComp.getValueInputComponent().getId();
// multiValuedInputComponent.setId(id);
String str1 = pickerInputComponent.getColumnName();
// multiValuedInputComponent.setColumnName(str1);
String str = AttributeDataUtilityHelper.getColumnName(componentId, paramObject, modelContext);
// multiValuedInputComponent.setName(str1);
multiValuedInputComponent.setColumnName(str);
multiValuedInputComponent.setMultiValued(true);
multiValuedInputComponent.setApplyPrePopulate(true);
multiValuedInputComponent.setVisibleElements(1);
multiValuedInputComponent.setRenderer(new MultiValuedInputComponentRenderer());
return multiValuedInputComponent;

