Axapta 如何在Dynamics AX中按ID查找表名

Axapta 如何在Dynamics AX中按ID查找表名,axapta,dynamics-ax-2009,Axapta,Dynamics Ax 2009,AOT中的每个表都有一个ID,如何查找给定ID的表名?从X++,使用该函数 从GUI中,选择工具/开发工具/应用程序对象/应用程序对象,并筛选TableInternalHeader的记录类型和要查找的表id的父id 或者在AOT中,右键单击表并选择“查找”。在“名称和位置”选项卡上,将“搜索”设置为“所有节点”。在属性选项卡上,单击ID旁边的选定项,并在范围字段中填写表格ID。在AOT中,转到系统文档节点。 在“表”节点中,找到SqlDictionary并使用表浏览器打开它。 使用您的ID筛选列

AOT中的每个表都有一个ID,如何查找给定ID的表名?

从X++,使用该函数

从GUI中,选择工具/开发工具/应用程序对象/应用程序对象,并筛选TableInternalHeader的记录类型和要查找的表id的父id


或者在AOT中,右键单击表并选择“查找”。在“名称和位置”选项卡上,将“搜索”设置为“所有节点”。在属性选项卡上,单击ID旁边的选定项,并在范围字段中填写表格ID。

在AOT中,转到系统文档节点。 在“表”节点中,找到SqlDictionary并使用表浏览器打开它。
使用您的ID筛选列选项卡ID。

在AOT中,转到系统文档节点。在“表”节点中,找到SqlDictionary并单击鼠标右键,然后使用表浏览器打开它。使用您的ID和fieldid==0筛选列TabId,his将为您提供表的名称。

查看SQL词典确实是正确的方法。 搜索字段ID等于0的行。 使用TSQL,这将告诉tableID505的表名

select NAME 
  from SQLDICTIONARY
 where TABLEID = 505
   and FIELDID = 0
如果需要AX系统表名,可以使用或
DictTable.name
方法

如果需要SQL表名,则应使用第一个参数为的方法

例如:

打印新的DictTable(tableNum(DirPartyTable)).name(DbBackend::Sql);
打印新的DictTable(tableNum(OMOperatingUnit)).name(DbBackend::Sql);
暂停;
//结果:
//肮脏的
//肮脏的

我不知道这是否是你的答案, 如果您想给TableName加上他的ID,可以使用 方法: str tableId2Name(int\u tableid)

例如: 如果您的表具有ID:123456; 使用方法

       tableId2PName(123456) 
将返回str名称YourTable

info(strFmt("%1" , tableId2PName(123456))); -> VideoStamp the name.
我把这些信息用在了电脑上

希望对大家有用,问候

或者您可以尝试:

select  Name, AxId
from MicrosoftDynamicsAX_model.dbo.ModelElement (nolock) 
where ElementType = 44
order by AxId
最简单的方法:

  • 创建项目(不是必需的,但以后更容易删除)
  • 将新视图添加到项目中
  • 添加数据源SqlSyncInfo
  • 将字段ID、MessageType、SyncTable、TableName等拖到字段中
  • 打开视图

  • 它提供所有表名及其各自的ID。只要过滤你想要的。如果您知道表ID,请搜索它。如果您知道表名,请搜索该表。

    这不会给出表名。它将只提供该表ID中存在的字段列表。您是一个图例。正在搜索所有均匀的模型数据库。