web-dev-qa-db-ja.com

Dynamics AXでIDを使用してテーブル名を見つける方法

AOTの各テーブルにはIDがありますが、IDを指定してテーブル名を見つけるにはどうすればよいですか?

13
David

SQL dictironaryを見るのが本当に正しい方法です。 FieldIdが0に等しい行を検索します。TSQLを使用すると、tableid 505のテーブル名がわかります

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

X ++から、 tableId2Name 関数を使用します。

GUIから、[ツール]、[開発ツール]、[アプリケーションオブジェクト]、[アプリケーションオブジェクト]の順に選択し、recordTypeがTableInternalHeaderであり、探しているテーブルIDのparentIdをフィルターします。

または、AOTで[テーブル]を右クリックして[検索]を選択します。 [名前と場所]タブで、[検索]を[すべてのノード]に設定します。 [プロパティ]タブで、[ID]の横にある[選択]をクリックし、[範囲]フィールドにテーブルIDを入力します。

17
Jay Hofacker

これがあなたの答えかどうかはわかりませんが、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 の情報を使用しました

お役に立てれば幸いです。

3
ulisses

必要な場合[〜#〜] 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
2
Matej

または、あなたは試すことができます:

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

AOTで、システムドキュメントノードに移動します。 [テーブル]ノードでSqlDictionaryを見つけて右クリックし、テーブルブラウザーで開きます。 IDとfieldid == 0で列TabIdをフィルタリングします。これにより、テーブルの名前がわかります。

1
Issac paul

最も簡単な方法:

  1. プロジェクトを作成します(必要ではありませんが、後で削除する方が簡単です)。
  2. プロジェクトに新しいビューを追加する
  3. データソースを追加SqlSyncInfo
  4. フィールドID、MessageType、SyncTable、TableNameなどをフィールドにドラッグします
  5. ビューを開く

すべてのテーブル名とそれぞれのIDを提供します。必要なものだけをフィルタリングします。テーブルIDがわかっている場合は、それを検索します。テーブル名がわかっている場合は、それを検索します。

1
user9932308

AOTで、システムドキュメントノードに移動します。 [テーブル]ノードでSqlDictionaryを見つけ、テーブルブラウザで開きます。列TabIdを自分のIDでフィルタリングします。

1
Jo Neetesonne