Child Table Lookup not storing actual values
Hi
I have a lookup definition like this
CodeKey Decode
Role1 Mail1
Role1 Mail2
I am using following code which retrieves the decoded values for "Role1" and adds the decoded values to addProcessFormChildData().
public void AddProcessChildData(long pKey, tcDataProvider tcdp, String lookupName, String Role ) throws Exception {
try {
tcLookupOperationsIntf lookupIntf = (tcLookupOperationsIntf)tcUtilityFactory.getUtility(tcdp, "Thor.API.Operations.tcLookupOperationsIntf");
tcFormInstanceOperationsIntf f = (tcFormInstanceOperationsIntf)tcUtilityFactory.getUtility(tcdp, "Thor.API.Operations.tcFormInstanceOperationsIntf");
tcResultSet lookupRes = lookupIntf.getLookupValuesForEncoded(lookupName, Role);
tcResultSet childFormDef = f.getChildFormDefinition(f.getProcessFormDefinitionKey(pKey),f.getProcessFormVersion(pKey));
long childKey = childFormDef.getLongValue("Structure Utility.Child Tables.Child Key");
logger.info("Child Key::"+childKey);
Map attrChildData = new HashMap();
for(int i=0;i<lookupRes.getRowCount();i++)
{
lookupRes.goToRow(i);
String Decoded = lookupRes.getStringValue("Lookup Definition.Lookup Code Information.Decode");
logger.info("Decoded Value::"+Decoded);
attrChildData .put("UD_PF_GRPS_GROUP",Decoded);
f.addProcessFormChildData(childKey,pKey,attrChildData);
}
}catch (Exception e){
e.printStackTrace();
}
}
I have created a task and attached the above code. So on success of Create User Task, I am calling this task which calls "Add User to Group" task automatically.
But after provisioning completes, the child form contains the lookup values as Mail2(2 times) but not Mail1 and Mail2.
I have checked logs and it is printing Mail1 and Mail2 only, but the child table lookup stores last decode value only.
What am I missing??