Axapta: запись никогда не выбиралась из-за ошибки после предложения Group By

Я новичок в Axe 2009. Я хотел бы обновить поле записи в таблице A после объединения с другой таблицей B, к которой я хочу применить Group by по ее идентификатору.

Я попытался запустить следующий код, но он выдает ошибку Невозможно изменить запись в таблице A. Запись так и не была выбрана:

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;
     }
}

Я думаю, что это должно быть вызвано использованием предложения Group By в таблице A, но если я удалю его, при проверке if таблицаA.Dimension[5] будет пустой.

Пожалуйста, помогите мне. Спасибо.


person Luca Mancini    schedule 10.02.2021    source источник


Ответы (1)


Да, проблема в пунктах Group by. Попробуйте что-нибудь вроде этого.

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;

*Я сделал код без компилятора, возможно, он нуждается в некоторой корректировке.

person Jonathan Bravetti    schedule 10.02.2021