Показать сообщение отдельно
Старый 21.04.2010, 17:50   #1  
Mikky is offline
Mikky
Участник
 
16 / 10 (1) +
Регистрация: 22.07.2008
Не удается построить перекрестные ссылки
Всем добрый день! Возникла проблема, связанная с построением перекрестных ссылок!
Используется AX 2009. Версия ядра 5.0.1000.52.

Под пользователем с админскими правами запускаем обновление перекрестных ссылок через меню Сервис -> Средства разработки -> Перекрестные ссылки -> Периодические операции -> Обновить.
В процессе выполнения операции появляется сообщение об ошибке и ссылки не строятся:

Цитата:
Пользователь "AAA" не имеет прав на удаление записи из таблицы "XREFTABLERELATION". Запрос отклонен
Невозможно отредактировать запись в Связи таблицы (xRefTableRelation).
Доступ запрещен: у вас недостаточно прав для изменения данных в базе данных.
Пробуем обновить перекрестные ссылки с помощью статического метода для какой-нибудь отдельной таблички, допустим для VendTrans:

X++:
static void Job56(Args _args)
{
;
   xRefTableRelation::updateTableId(TableNum(VendTrans));
}
Возникает такая же ошибка.
Свойство MaxAccessMode таблицы xRefTableRelation установлено по умолчанию = View.
Cвойство AOSAuthorization установлено по умолчанию = CreateReadUpdateDelete.
Если установить свойство AOSAuthorization в None, то проблема исчезает, ссылки строятся.
Также она исчезает, если поменять свойство MaxAccessMode в Delete.

После прочтения различной документации наподобие Microsoft Dynamics AX Writing Secure X++ Code и MSDN, где пишут примерно одно и тоже:

Цитата:
The four fundamental data access operations are create, read, update, and delete.
These operations are represented in combinations by the following AOSAuthorization enumeration values:
  • None
  • CreateDelete
  • UpdateDelete
  • CreateUpdateDelete
  • CreateReadUpdateDelete
No permission checking is done when the AOSAuthorization property is set to None.
Suppose AOSAuthorization is set to CreateDelete on a given table.In this case, create and delete operations would be allowed to execute only if the Application Object Server (AOS) can confirm that the user has the appropriate permissions.
Update and read operations would execute without checking user permissions, because they are not mentioned in the chosen AOSAuthorization value.
An exception is thrown when permission checking finds that the user lacks the necessary permission.
не удалось понять, что это за пользовательские разрешения, которые проверяет АОС, при установленном значении AOSAuthorization и где они настраиваются. Или это обычные права доступа пользователя в Аксапте, которые можно настроить к проверке только для определенных действий (create, read, update, and delete)?

Может кто-то сталкивался с похожей проблемой и может что-то посоветовать??

PS.
Либо придется менять штатные значения свойств таблицы.

Последний раз редактировалось Mikky; 21.04.2010 в 18:15.