Get a list of tables related to specific configuration keys in Dynamics Axapta


 static void FindTablesFromConfigKey(Args _args)  
 {  
   // The name of the configuration key to be specified here  
   str           configKeyName  = "Prod";  
   Dictionary       dictionary   = new Dictionary();  
   ConfigurationKeyId   configKeyId   = dictionary.configurationKeyName2Id(configKeyName);  
   TableId         tableId;  
   DictConfigurationKey  dictConfigurationKey;  
   DictTable        dictTable;  
   container        keyIds;  
   int           i;  
   ;  
   if (configKeyId)  
   {  
     // Find all children of the specified configuration key  
     for (i = dictionary.configurationKeyNext(0); i; i = dictionary.configurationKeyNext(i))  
     {  
       dictConfigurationKey = new DictConfigurationKey(i);  
       while (dictConfigurationKey.parentConfigurationKeyId())  
         dictConfigurationKey = new DictConfigurationKey(dictConfigurationKey.parentConfigurationKeyId());  
       if (dictConfigurationKey.id() == configKeyId)  
         keyIds += i;  
     }  
     // Find all tables that have an appropriate configuration key  
     i = 0;  
     for (tableId = dictionary.tableNext(0);tableId;tableId = dictionary.tableNext(tableId))  
     {  
       dictTable = new DictTable(tableId);  
       if (!dictTable.isMap() && !dictTable.isTmp() && !dictTable.isView())  
       {  
         if (confind(keyIds, dictTable.configurationKeyId()))  
         {  
           i++;  
           info(dictTable.name());  
         }  
       }  
     }  
   }  
   info(strfmt("%1 tables have configuration key '%2'", i, configKeyName));  
 }