掲示板一覧   -   トピック一覧
   Enterprise Architect 全般
     ダイアグラムのドリルダウン機能


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
未登録ゲスト
投稿日時: 2007-2-22 17:22

Re: ダイアグラムのドリルダウン機能

引用:

確かに要素とダイアグラムの関係が一覧できると便利そうですね。

おそらく、検索ルールを追加することで実現可能ではないかと
思います。
(SQLエディタを使って作成しなければならないので
敷居は高いと思います...)


EAが管理しているどのテーブルのどのカラムかわかると良いのですが・・・

ヘルプをざっと検索してみましたが、それらしきカラムが見当たりませんでした。。。



ちなみに、「要素-要素」で相互参照している状態で、Ctrl+Jを押すと、プロパティ画面が開いてしまいますが、これはダイアグラムを開くようにはできませんか?

それができるとカナリ便利です。
ダブルクリックの挙動が実行されると推察されますので、やはりこれもアドインの領域でしょうか。
tkouno
投稿日時: 2007-2-23 9:27
EA Administrator
投稿: 3939

Re: ダイアグラムのドリルダウン機能

引用:

EAが管理しているどのテーブルのどのカラムかわかると良いのですが・・・

ヘルプをざっと検索してみましたが、それらしきカラムが見当たりませんでした。。。


こちらは、x_refテーブルになります。ただ、このテーブルは
さまざまな情報が格納されていますので、ご注意ください。
(テーブルの個々の内容については開示していません。)

このような場合に解析する簡単な方法としては、EAPファイルを
Accessでも開いておいてEnterprise Architect側で操作を行い
どのように反映されるかAccess側で確認する、という方法が
あるかと思います。

あるいは、ODBCログを取得して、Enterprise Architectが
どんなSQL文を発行しているかを解析するという方法も
あります。

かなり上級の方法ですが、他の方のご参考になるかも
しれませんので書いておきました。



引用:

ちなみに、「要素-要素」で相互参照している状態で、Ctrl+Jを押すと、プロパティ画面が開いてしまいますが、これはダイアグラムを開くようにはできませんか?

それができるとカナリ便利です。
ダブルクリックの挙動が実行されると推察されますので、やはりこれもアドインの領域でしょうか。


要素をダブルクリックしてダイアグラムを開くことはできません。
要素とダイアグラムの関係は1対1ではないからです。
要素1に対して、ダイアグラムの多重度は0..*です。
(ダイアグラムに対しても、要素は0..*です。)

なお、ダブルクリックでアドインイベントが発生していますので
この操作のときにアドインを呼び出して何かの処理を行うことは
可能ではないかと思います。

要素とダイアグラムが1対1であれば、ダイアグラムを表示したり
プロジェクトブラウザ内にカーソルを移動したりすれば
確かに便利だと思います。


未登録ゲスト
投稿日時: 2007-2-23 12:12

Re: ダイアグラムのドリルダウン機能

引用:

こちらは、x_refテーブルになります。ただ、このテーブルは
さまざまな情報が格納されていますので、ご注意ください。


ご紹介ありがとうございます。
早速SQLクエリを作成してみます。

引用:

要素とダイアグラムの関係は1対1ではないからです。
要素1に対して、ダイアグラムの多重度は0..*です。
(ダイアグラムに対しても、要素は0..*です。)


理解しました。
要素から要素を参照したとしても、参照先の要素が属しているダイアグラムは複数あるので、どのダイアグラムを開いてよいか判断できないという事ですね。

難しいかもしれませんが、「要素-ダイアグラム」の相互参照で、当該ダイアグラムが開いたときに、参照元の要素と類似する関係のある要素(事前に関係性を登録しておいても良いかもしれません)が選択状態になると便利かもしれません。

参照元の要素が、参照先のダイアグラムではどのように扱われているかが一目瞭然になるかと思います。
(もっとも、具体的方法までは考えていませんが)


多くのやり取りをさせていただき、大分理解が進みました。
お忙しい中にも係わらず、ご丁寧なご対応、ありがとうございました。
未登録ゲスト
投稿日時: 2007-2-23 12:48

Re: ダイアグラムのドリルダウン機能

自己レスです

ご回答頂きました方法で、検索が出来るようになりました。
やりたかった「無駄に作った相互参照の参照元要素を調べる」ができてカナリ便利です。

ありがとうございます。

tkouno
投稿日時: 2007-2-23 13:39
EA Administrator
投稿: 3939

Re: ダイアグラムのドリルダウン機能

ご返信ありがとうございました。
検索の件は、無事解決したということで安心しました。
(かなり難しいと思っていましたので、こんなに短時間で
新しい機能を理解して実現してしまうことにびっくりしました。)

引用:

難しいかもしれませんが、「要素-ダイアグラム」の相互参照で、当該ダイアグラムが開いたときに、参照元の要素と類似する関係のある要素(事前に関係性を登録しておいても良いかもしれません)が選択状態になると便利かもしれません。

参照元の要素が、参照先のダイアグラムではどのように扱われているかが一目瞭然になるかと思います。
(もっとも、具体的方法までは考えていませんが)


ご指摘にあるように、「関係性」とは何か?がキーになると思います。
今回の参照設定のように明示的に設定する方法もありますが、
何らかのルールで推測するという方法もあるかと思います。

このあたりは、内容によってはアドインで実現できる部分も
あるかと思います。

このような個別の情報を格納する場合には、タグ付き値を
利用する方法が一般的です。

お客様によっては、独自にEAPファイルのテーブル構造を拡張して
追加の情報を格納・利用している方もいらっしゃいます。


未登録ゲスト
投稿日時: 2007-2-23 13:54

Re: ダイアグラムのドリルダウン機能

引用:

検索の件は、無事解決したということで安心しました。

ありがとうございました。
SELECT文一発で、単なる一覧表示ですが、十分機能しました(^^

引用:

このような個別の情報を格納する場合には、タグ付き値を
利用する方法が一般的です。


なるほど、タグ付き値ですね。
これは検討してみます。多少面倒かもしれませんが、要素の作成時にタグ付き値で利用するダイアグラム等の「関連」情報を格納し、それをアドインで利用する・・・
というストーリーでしょうか。
(ストーリーだけでまだアドインは作れませんが・・・)

引用:

お客様によっては、独自にEAPファイルのテーブル構造を拡張して
追加の情報を格納・利用している方もいらっしゃいます。


なるほど。。。そういうテクニックもあるのですね。
今後、EAは愛用したいと思っていますので、一つ一つテクニックを覚えて行きたいと思います。
tkouno
投稿日時: 2007-2-26 15:31
EA Administrator
投稿: 3939

Re: ダイアグラムのドリルダウン機能

こちらの件で、実際に検索に利用したSQLの公開許可を
いただきましたので、公開いたします。

今後この検索機能を利用される方には
ご参考になるのではないかと思います。


Select
t_xref.Description,
t_object.Name as 参照元,
t_package.Name as 要素所属パッケージ,
t_Diagram.Name as 参照先
From
t_xref,t_object,t_diagram,t_package
Where Type ="reference"
and t_xref.Client = t_object.ea_guid
and t_xref.Supplier = t_diagram.ea_guid
and t_object.package_ID= t_package.Package_ID

tkouno
投稿日時: 2007-2-27 15:29
EA Administrator
投稿: 3939

Re: ダイアグラムのドリルダウン機能

おまけです。

このSQL文を次のようにすると、検索結果一覧にEnterprise Architectで利用されているアイコンが表示され、さらにダブルクリックするとプロパティダイアログが表示されます。

Select t_object.Object_Type as CLASSTYPE, t_object.ea_guid as CLASSGUID, t_xref.Description, t_object.Name as 参照元, t_package.Name as 要素所属パッケージ, t_Diagram.Name as 参照先
From t_xref,t_object,t_diagram,t_package Where Type ="reference" and t_xref.Client = t_object.ea_guid and t_xref.Supplier = t_diagram.ea_guid
and t_object.package_ID= t_package.Package_ID;


この中で、CLASSTYPEとCLASSGUIDというキーワードは特別な意味を持ちます。

« 1 (2)
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ