Warm tip: This article is reproduced from serverfault.com, please click

Axapta: "The record has never been selected" error after Group By clause

发布于 2021-02-10 09:08:02

I'm new in Ax 2009. I would like to update the field of a record in table A after joining with another table B on which I want to apply Group by on its ID.

I tried to run the following code but it throw me an error "Cannot edit a record in tableA. The record has never been selected":

where select forupdate tableA group by tabAid, Dimension[5]
join tableB group by tabBid, Dimension[5]
where tableA.tabAid == tableB.tabBid && tableB.Dimension[5] != "" && tableA.Dimension[5]
{
     if(tableA.Dimension[5] != lines.Dimension[5])
     {
          ttsbegin;
          tableA.Dimension[5] = tableB.Dimension[5];
          tableA.update()
          ttscommit;
     }
}

I think it should be caused by the usage of Group By clause on tableA but if i remove it, on the if check, the tableA.Dimension[5] is empty.

Please someone help me. Thank you.

Questioner
Luca Mancini
Viewed
0
Jonathan Bravetti 2021-02-10 19:58:17

Yes, the problems are the Group by clauses. Try something like this.

ttsbegin;
while select forupdate tableA where tableA.Dimension[5] != ""
join tableB where tableB.tabBid == tableA.tabAid && tableB.Dimension[5] != ""
{
     if(tableA.Dimension[5] != tableB.Dimension[5])
     {          
          tableA.Dimension[5] = tableB.Dimension[5];
          tableA.update()          
     }
}
ttscommit;

*I made the code without compiler, maybe it needs some adjustment.