Situation explanation
- CustTable (root)
- CustGroup (a table outer joined to CustTable and addlink in init method)
- CustGroupFinTagSourceView (a view outer joined to CustTable and addlink in init method)
Situation from form VS perspective

GIF Demo
1. Refresh works as expected - does not lose selected record position when joined view DS is disabled, but table DS is not
2. Joined view ds enabled breaks this
3. task workaround enabled fixes, but maybe there is more elegant way achieving this?
Task method workaround
public int task(int _p1)
{
#Task
int ret;
CustAccount custAccountBeforeRefresh;
boolean gridLosesRecordOnRefreshWorkaroundNeeded;
// workaroundForRefreshEnabled =>
gridLosesRecordOnRefreshWorkaroundNeeded = _p1 == #taskRefresh && workaroundForRefreshEnabled;
if (gridLosesRecordOnRefreshWorkaroundNeeded)
{
custAccountBeforeRefresh = CustTable.AccountNum;
}
// workaroundForRefreshEnabled <=
ret = super(_p1);
// workaroundForRefreshEnabled =>
if (gridLosesRecordOnRefreshWorkaroundNeeded)
{
CustTable_DS.positionToRecord(CustTable::find(custAccountBeforeRefresh));
}
// workaroundForRefreshEnabled <=
return ret;
}

Report
All responses (
Answers (