AOTの各テーブルにはIDがありますが、IDを指定してテーブル名を見つけるにはどうすればよいですか?
SQL dictironaryを見るのが本当に正しい方法です。 FieldIdが0に等しい行を検索します。TSQLを使用すると、tableid 505のテーブル名がわかります
select NAME
from SQLDICTIONARY
where TABLEID = 505
and FIELDID = 0
X ++から、 tableId2Name 関数を使用します。
GUIから、[ツール]、[開発ツール]、[アプリケーションオブジェクト]、[アプリケーションオブジェクト]の順に選択し、recordTypeがTableInternalHeaderであり、探しているテーブルIDのparentIdをフィルターします。
または、AOTで[テーブル]を右クリックして[検索]を選択します。 [名前と場所]タブで、[検索]を[すべてのノード]に設定します。 [プロパティ]タブで、[ID]の横にある[選択]をクリックし、[範囲]フィールドにテーブルIDを入力します。
これがあなたの答えかどうかはわかりませんが、TableNameに彼のIDを指定する場合は、次のメソッドを使用できます。str tableId2Name(int _tableid)
例:YourTableのIDが123456の場合。使用方法
tableId2PName(123456)
str名YourTableを返します。
info(strFmt("%1" , tableId2PName(123456))); -> VideoStamp the name.
https://msdn.Microsoft.com/en-us/library/aa498759.aspx の情報を使用しました
お役に立てれば幸いです。
必要な場合[〜#〜] ax [〜#〜]システムテーブル名 tableId2name
を使用できますまたはDictTable.name
メソッド。
[〜#〜] sql [〜#〜]テーブル名が必要な場合は、 DictTable.name
メソッドを使用してください最初の引数 DbBackend::Sql
例:
print new DictTable(tableNum(DirPartyTable)).name(DbBackend::Sql);
print new DictTable(tableNum(OMOperatingUnit)).name(DbBackend::Sql);
pause;
// result:
// DIRPARTYTABLE
// DIRPARTYTABLE
または、あなたは試すことができます:
select Name, AxId
from MicrosoftDynamicsAX_model.dbo.ModelElement (nolock)
where ElementType = 44
order by AxId
AOTで、システムドキュメントノードに移動します。 [テーブル]ノードでSqlDictionaryを見つけて右クリックし、テーブルブラウザーで開きます。 IDとfieldid == 0で列TabIdをフィルタリングします。これにより、テーブルの名前がわかります。
最も簡単な方法:
すべてのテーブル名とそれぞれのIDを提供します。必要なものだけをフィルタリングします。テーブルIDがわかっている場合は、それを検索します。テーブル名がわかっている場合は、それを検索します。
AOTで、システムドキュメントノードに移動します。 [テーブル]ノードでSqlDictionaryを見つけ、テーブルブラウザで開きます。列TabIdを自分のIDでフィルタリングします。