Assume I need to get AOT objects
belongs to a model
- For example table objects
- I need
Tables
andTable Extensions
- Result objects can be
treeNode
orDictTable
Question: How to get AOT objects from model in...
- X++?
- T-SQL?
- C# code?
Thanks.
For example: There is a model name
Fleet Management Extension
. I can to get objects with Visual Studio. How to get this objects from x++, t-sql, c#?
My current x++ code. It's awful.
protected set getTableNamesFromModels()
{
boolean inModel(str modelDisplayName, str objname, System.Type type)
{
var models = Microsoft.Dynamics.Ax.Xpp.MetadataSupport::GetModelsOfMetadataArtifact(objName, type);
var modelsEnumerator = models.getEnumerator();
while (modelsEnumerator.moveNext())
{
Microsoft.Dynamics.AX.Metadata.MetaModel.ModelInfo modelInfo = modelsEnumerator.Current;
if( ModelDisplayName == modelInfo.DisplayName )
{
return true;
}
}
return false;
}
set result = new set(Types::String);
var modelName = 'Fleet Management Extension';
var axTableType = new Microsoft.Dynamics.AX.Metadata.MetaModel.AxTable();
var axTableExtType = new Microsoft.Dynamics.AX.Metadata.MetaModel.AxTableExtension();
var t = Microsoft.Dynamics.Ax.Xpp.MetadataSupport::TableNames(); // Why Enumerator?
while ( t.moveNext() )
{
var tname = t.get_current();
if ( inModel(ModelName, tname, axTableType.GetType()) )
{
result.add(tname);
continue;
}
var tExt = Microsoft.Dynamics.Ax.Xpp.MetadataSupport::GetTableExtensionNames(tname); // Why collection?
var tExtEnum = tExt.GetEnumerator();
while( tExtEnum.moveNext() )
{
var tExtName = tExtEnum.Get_Current();
if ( inModel(ModelName, tExtName, axTableExtType.GetType()) )
{
result.add(tExtName);
continue;
}
}
}
return result;
}