Каждая таблица в AOT имеет идентификатор, как я могу узнать имя таблицы с идентификатором?
Как найти имя таблицы по ID в Dynamics AX
Ответ 1
Взгляд на SQL dictironary - действительно правильный метод. Найдите строку с полем FieldId равным 0. Используя TSQL, это будет указывать имя таблицы для tableid 505
select NAME
from SQLDICTIONARY
where TABLEID = 505
and FIELDID = 0
Ответ 2
Из X ++ используйте функцию tableId2Name.
В графическом интерфейсе выберите Инструменты/Средства разработки/Объекты приложения/Объекты приложения и фильтр для типа recordType TableInternalHeader и parentId идентификатора таблицы, который вы ищете.
Или в AOT, щелкните правой кнопкой мыши на таблицах и выберите "Найти". На вкладке "Имя и местоположение" установите "Искать во все узлы". На вкладке "Свойства" нажмите "Выделено" рядом с идентификатором и введите идентификатор таблицы в поле "Диапазон".
Ответ 3
Я не знаю, если это ваш ответ, если вы хотите дать TableName своим идентификатором, вы можете использовать метод: str tableId2Name (int _tableid)
Например: Если у YourTable есть ID: 123456; метод использования
tableId2PName(123456)
вернет имя str YourTable.
info(strFmt("%1" , tableId2PName(123456))); -> VideoStamp the name.
Я использовал информацию в https://msdn.microsoft.com/en-us/library/aa498759.aspx
Я надеюсь на полезные, приветствия!
Ответ 4
В AOT перейдите к Системной документации node. В таблицах node найдите SqlDictionary и откройте его в браузере таблицы. Отфильтруйте столбец TabId с вашим идентификатором.
Ответ 5
В AOT перейдите к Системной документации node. В таблицах node найдите SqlDictionary и щелкните правой кнопкой мыши и откройте его в браузере таблицы. Отфильтруйте столбец TabId с вашим идентификатором и fieldid == 0, его имя даст вам имя таблицы.
Ответ 6
Если вам нужно имя системной таблицы AX, вы можете использовать метод tableId2name
или DictTable.name
.
Если вам нужно имя таблицы SQL, вы используете метод DictTable.name
с первым аргументом DbBackend::Sql
Пример:
print new DictTable(tableNum(DirPartyTable)).name(DbBackend::Sql);
print new DictTable(tableNum(OMOperatingUnit)).name(DbBackend::Sql);
pause;
// result:
// DIRPARTYTABLE
// DIRPARTYTABLE
Ответ 7
Или вы можете попробовать:
select Name, AxId
from MicrosoftDynamicsAX_model.dbo.ModelElement (nolock)
where ElementType = 44
order by AxId