2010-01-08 88 views

Respuesta

15

Desde X ++, use la función tableId2Name.

Desde la GUI, seleccione Herramientas/Herramientas de desarrollo/Objetos de aplicación/Objetos de aplicación y filtro para un tipo de registro de TableInternalHeader y un parentId de la Id de tabla que está buscando.

O en el AOT, haga clic derecho en Tablas y seleccione Buscar. En la ficha Ubicación del nombre &, establezca Buscar en Todos los nodos. En la pestaña Propiedades, haga clic en Seleccionado al lado de ID y complete la identificación de la tabla en el campo Rango.

+0

¿Puedo hacer que desde el AOT? – David

1

En el AOT, vaya al nodo Documentación del sistema. En el nodo Tables, busque SqlDictionary y ábralo con el explorador de tablas. Filtre la columna TabId con su ID.

+0

Esto no le dará el nombre de la tabla. Solo le dará una lista de los campos que existen dentro de esa ID de tabla. –

1

En el AOT, vaya al nodo Documentación del sistema. En el nodo Tablas, encuentre SqlDictionary y haga clic con el botón derecho y ábralo con el explorador de tablas. Filtre la columna TabId con su ID y fieldid == 0, le dará el nombre de la tabla.

19

Ver el SQL dictironary es realmente el método correcto. Búsqueda de la línea con el fieldID igual a 0. El uso de TSQL esto le dirá el nombre de la mesa para tableid 505

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

usted es una leyenda. Estaba buscando por todas partes, incluso el modelo db. –

1

Si necesita AX nombre de tabla del sistema puede utilizar tableId2name o DictTable.name método .

Si necesita SQL nombre de la tabla que deberían poner utiliza DictTable.name método con el primer argumento de DbBackend::Sql

Ejemplo:

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

// result: 
// DIRPARTYTABLE 
// DIRPARTYTABLE 
2

I dont'know si esta es su respuesta, si quieres proporcione TableName con su ID, puede usar el método: str tableId2Name (int _tableid)

Por ejemplo: Si su tabla tiene ID: 123456; Método

 tableId2PName(123456) 

uso devolverá el nombre str YourTable.

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

he utilizado la información en https://msdn.microsoft.com/en-us/library/aa498759.aspx

espero útil, saludos!

1

O puede probar:

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

Nota: esta solución funcionará para Ax2012; no Ax2009. – JohnLBevan

Cuestiones relacionadas