There are a few ways to refresh a caller form. You may notice in AX2012 sometimes calling research(true) causes the record to jump to the starting position.
The right way is to reread the references data sources before calling the research(true). Below is some sample code I use.
Code:
public void refreshCaller()
{
Common common;
FormDataSource callingFormDataSource;
common = element.args().record();
if (common)
{
callingFormDataSource = common.dataSource();
if (callingFormDataSource)
{
callingFormDataSource.reread();
callingFormDataSource.rereadReferenceDataSources();
callingFormDataSource.research(true);
}
}
}