AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.09.2021, 08:47   #1  
oleggy is offline
oleggy
Участник
 
276 / 36 (2) +++
Регистрация: 03.12.2019
Адрес: Россия
как обойти ошибку - запись не выбиралась для обновления
Привет всем.
При выполнении такого джоба:
X++:
static void job123(Args _args)
{
	...
	void updateFieldValue(Common _common, FieldId _fieldId, anytype _value)
	{
		...
		try
		{
			ttsBegin;
			_common.selectForUpdate(true);
			_common.(_fieldId) = _value;
			_common.doUpdate();
			ttsCommit;
		}
		catch
		{
			ttsAbort;
		}
		...
	}
	...
	;
	
	...
	updateFieldValue(APMParameters::find(), fieldnum(APMParameters, Field1), valueField1);
	...
}

генерируется ошибка:

Цитата:
Невозможно отредактировать запись в Параметры (APMParameters).
Операция не может быть завершена, так как запись не выбиралась для обновления. Используйте TTSBEGIN/TTSCOMMIT наряду с выражением FORUPDATE.
Попытка изменения записи в таблице "APMParameters", которая не выбрана для изменения (RecId = 5637144576). [W-0108]

(S)\Classes\xRecord\doUpdate
(C)\Jobs\job123 - line 77

Мне получилось ее обойти так:
X++:
static void job123(Args _args)
{
	...
	void updateFieldValue(Common _common, FieldId _fieldId, anytype _value)
	{
		...
		try
		{
			//ttsBegin; // <-- убираем
			_common.selectForUpdate(true);
			_common.(_fieldId) = _value;
			_common.doUpdate();
			//ttsCommit; // <-- убираем
		}
		catch
		{
			ttsAbort;
		}
		...
	}
	...
	;
	
	...
	ttsBegin; // <-- добавляем
	updateFieldValue(APMParameters::find(), fieldnum(APMParameters, Field1), valueField1);
	ttsCommit; // <-- добавляем
	...
}


Вопросы:
1. возможно как то обойти данную ошибку но оставив ttsBegin/ttsCommit в методе updateFieldValue ?

2. Заметил что такая ошибка генерируется только для изменения данных у этой таблицы - APMParameters.
Если такое же выполнять для других таблиц, например: RassetParameters, CompanyInfo таких ошибок нет.
Не подскажете почему для одних таблиц нет ошибки а для APMParameters ошибка при вызове doUpdate()?

Последний раз редактировалось oleggy; 02.09.2021 в 08:52.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
DAX2009 странный баг, в любой форме отображается только 1-я запись oleggy DAX: Администрирование 4 24.06.2021 21:30
Невозможно выбрать запись, ...База данных SQL обнаружила ошибку actNaturally DAX: Администрирование 4 11.12.2014 12:56
axforum blogs: Ошибка обновления Организации при установке UpdateRollup Blog bot DAX Blogs 0 11.04.2013 20:11
Не корректно сохраняет запись в inventTable Starling DAX: Программирование 8 31.03.2008 15:30
Ошибка при импорте демоданных (Axapta 3.0 CIS SP1) KocDm DAX: Администрирование 2 11.08.2005 12:04

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:06.