Как найти имя таблицы по идентификатору в Dynamics AX - PullRequest
13 голосов
/ 08 января 2010

У каждой таблицы в AOT есть идентификатор, как я могу узнать имя таблицы по идентификатору?

Ответы [ 8 ]

22 голосов
/ 11 октября 2012

Глядя на SQL Dtironary действительно правильный метод. Найдите строку с FieldId, равным 0. Используя TSQL, мы сообщим имя таблицы для tableid 505

.
select NAME 
  from SQLDICTIONARY
 where TABLEID = 505
   and FIELDID = 0
17 голосов
/ 08 января 2010

В X ++ используйте функцию tableId2Name .

В графическом интерфейсе выберите Инструменты / Инструменты разработки / Объекты приложения / Объекты приложения и фильтр для recordType TableInternalHeader и parentId нужного идентификатора таблицы.

Или в AOT, щелкните правой кнопкой мыши на Tables и выберите Find. На вкладке «Имя и местоположение» установите Поиск для всех узлов. На вкладке «Свойства» нажмите «Выбрано» рядом с идентификатором и введите идентификатор таблицы в поле «Диапазон».

3 голосов
/ 13 апреля 2015

Я не знаю, если это ваш ответ, если вы хотите дать TableName с его идентификатором, вы можете использовать метод: str tableId2Name (int _tableid)

Например: Если у YourTable есть ID: 123456; использовать метод

       tableId2PName(123456) 

вернет имя строки YourTable.

info(strFmt("%1" , tableId2PName(123456))); -> VideoStamp the name.

Я использовал информацию в https://msdn.microsoft.com/en-us/library/aa498759.aspx

Надеюсь на полезное, привет!

2 голосов
/ 22 февраля 2016

Или вы можете попробовать:

select  Name, AxId
from MicrosoftDynamicsAX_model.dbo.ModelElement (nolock) 
where ElementType = 44
order by AxId
2 голосов
/ 28 апреля 2014

Если вам нужно 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
1 голос
/ 12 июня 2018

Самый простой способ:

  1. Создать проект (не обязательно, но позже его легче удалить)
  2. Добавить новый вид в ваш проект
  3. Добавить источник данных SqlSyncInfo
  4. Перетащите идентификатор поля, MessageType, SyncTable, TableName и т. Д. В поле
  5. Открыть представление

Предоставляет все имена таблиц и соответствующие им идентификаторы. Просто отфильтруйте то, что вы хотите. Если вы знаете идентификатор таблицы, найдите ее. Если вы знаете имя таблицы, найдите ее.

1 голос
/ 28 августа 2012

В AOT перейдите на узел Системная документация. В узле Таблицы найдите SqlDictionary и щелкните правой кнопкой мыши и откройте его с помощью браузера таблиц. Отфильтруйте столбец TabId с вашим идентификатором и fieldid == 0, он даст вам имя таблицы.

1 голос
/ 12 ноября 2010

В AOT перейдите на узел Системная документация. В узле Таблицы найдите SqlDictionary и откройте его с помощью браузера таблиц. Отфильтруйте столбец TabId по вашему идентификатору.

...