开发者

How to find a table name by ID in Dynamics AX

开发者 https://www.devze.com 2022-12-15 15:41 出处:网络
Each table in the A开发者_Go百科OT has an ID, how can I discover the table name given an ID?Looking at the SQL dictironary is really the correct method.

Each table in the A开发者_Go百科OT has an ID, how can I discover the table name given an ID?


Looking at the SQL dictironary is really the correct method. Search for the line with the FieldId equal to 0. Using TSQL this will tell the name of the table for tableid 505

select NAME 
  from SQLDICTIONARY
 where TABLEID = 505
   and FIELDID = 0


From X++, use the tableId2Name function.

From the GUI, choose Tools/Development tools/Application objects/Application objects and filter for a recordType of TableInternalHeader and a parentId of the table id you are looking for.

Or in the AOT, right click on Tables and choose Find. On the Name & Location tab, set Search to All nodes. On the Properties tab click Selected next to ID and fill in the table id in the Range field.


I dont'know if this is your answer, if you want to give the TableName with his ID, you can use the method: str tableId2Name(int _tableid)

For example: If YourTable has ID :123456 ; use method

       tableId2PName(123456) 

will return the str name YourTable.

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

I used the info in https://msdn.microsoft.com/en-us/library/aa498759.aspx

I hope to useful , greetings!


If you need AX system table name you can use tableId2name or DictTable.name method.

If you need SQL table name you shoud use DictTable.name method with first argument of DbBackend::Sql

Example:

print new DictTable(tableNum(DirPartyTable)).name(DbBackend::Sql);
print new DictTable(tableNum(OMOperatingUnit)).name(DbBackend::Sql);
pause;

// result:
// DIRPARTYTABLE
// DIRPARTYTABLE


Or you can try:

select  Name, AxId
from MicrosoftDynamicsAX_model.dbo.ModelElement (nolock) 
where ElementType = 44
order by AxId


In the AOT, go to the System Documentation node. In the Tables node, find SqlDictionary and open it with the table browser. Filter the column TabId with your ID.


In the AOT, go to the System Documentation node. In the Tables node, find SqlDictionary and right click and open it with the table browser. Filter the column TabId with your ID and fieldid == 0, his will give you the name of the table.


Easiest way:

  1. Create a project (not necessary but easier to delete later)
  2. Add a new view to your project
  3. Add the data source SqlSyncInfo
  4. Drag the fields ID, MessageType, SyncTable, TableName, etc to field
  5. Open the view

It provides all the table names and their respective IDs. Just filter what you want. If you know the table ID, search for that. If you know the table name, search for that.

0

精彩评论

暂无评论...
验证码 换一张
取 消