ログイン
検索
メインメニュー
開発者ブログ
ChangeVisionメンバーズ分布マップ
フォーラム一覧   -   トピック一覧
   astah*の使い方
     モデルのうちの一つのER図に属するエンティティだけをリストしたい
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
bourbon
投稿日時: 2016-7-27 19:15
新米
登録日: 2016-7-27
居住地:
投稿: 2
モデルのうちの一つのER図に属するエンティティだけをリストしたい
質問させてください。
astah professional で、一つのモデルの中に複数のER図を書いています。数百のエンティティが数十のER図に重複して掲載されています。
ここである一つのER図を選び、そこに掲載されているエンティティのみをリストする必要が出てきました。
エンティティ定義の抽出機能ではできないように見えるのですが、何か方法はないでしょうか?
ご存知の方いらっしゃいましたら、お願いいたします。
joba
投稿日時: 2016-7-28 13:28
開発者
登録日: 2006-4-27
居住地: Fukui
投稿: 597
Re: モデルのうちの一つのER図に属するエンティティだけをリストしたい
bourbonさん

ご質問ありがとうございます。
スクリプトプラグインを使うことで、可能です。
こちらのページより、スクリプトプラグインをastah*にインストールしてください。

下記のスクリプトを実行すると、対象図に描画されたエンティティのリストを表示させることができます。

var IERDiagram = Java.type('com.change_vision.jude.api.inf.model.IERDiagram');
var IEREntity = Java.type('com.change_vision.jude.api.inf.model.IEREntity');

function isEntityPresentation(presentation) {
    return presentation.type === 'EREntity';
}

var diagrams = astah.findElements(IERDiagram.class);

Java.from(diagrams).forEach(function(diagram) {
    print('=== ERD: ' + diagram.name + ' ===');

    Java.from(diagram.presentations).filter(isEntityPresentation)
        .forEach(function(entityPresentation) {
            var entity = entityPresentation.model;
            print(' - ENTITY: ' + entity.logicalName);  //physicalName
        });
var IERDiagram = Java.type('com.change_vision.jude.api.inf.model.IERDiagram');
var IEREntity = Java.type('com.change_vision.jude.api.inf.model.IEREntity');

function isEntityPresentation(presentation) {
    return presentation.type === 'EREntity';
}

var diagrams = astah.findElements(IERDiagram.class);

Java.from(diagrams).forEach(function(diagram) {
    print('=== ERD: ' + diagram.name + ' ===');

    Java.from(diagram.presentations).filter(isEntityPresentation)
        .forEach(function(entityPresentation) {
            var entity = entityPresentation.model;
            print(' - ENTITY: ' + entity.logicalName);  //physicalName
        });
});
bourbon
投稿日時: 2016-7-28 18:53
新米
登録日: 2016-7-27
居住地:
投稿: 2
Re: モデルのうちの一つのER図に属するエンティティだけをリストしたい
jobaさん、早速の返信ありがとうございます。

とても助かりました。

御恩返しとして、動作レポートを書いておきます。

スクリプトは以下の通り:
var IERDiagram = Java.type('com.change_vision.jude.api.inf.model.IERDiagram');
var IEREntity = Java.type('com.change_vision.jude.api.inf.model.IEREntity');

function isEntityPresentation(presentation) {
return presentation.type === 'EREntity';
}

var diagrams = astah.findElements(IERDiagram.class);

Java.from(diagrams).forEach(function(diagram) {
print('=== ERD: ' + diagram.name + ' ===');

Java.from(diagram.presentations).filter(isEntityPresentation)
.forEach(function(entityPresentation) {
var entity = entityPresentation.model;
print(' - ENTITY: ' + entity.logicalName); //physicalName
});
});
----
#お書きいただいたものは、pasteミスをされていたようです

動作したastahのバージョンは 7.0.0

#6.9.0では動きませんでした。
#どうやら、astahが使用しているjavaのバージョンのせいと思われます。

ありがとうございました!!
joba
投稿日時: 2016-7-29 13:44
開発者
登録日: 2006-4-27
居住地: Fukui
投稿: 597
Re: モデルのうちの一つのER図に属するエンティティだけをリストしたい
bourbonさん、ご返信ありがとうございます!

Pasteミス失礼しました。7.0では無事ご利用いただけだとの事で何よりです。ご報告ありがとうございました。

引用:
#6.9.0では動きませんでした。
#どうやら、astahが使用しているjavaのバージョンのせいと思われます。


bourbonさんのおっしゃる通りです。6.9はJRE7、7.0はJRE8を使っています。
スクリプトプラグインをインストールすると、[sample_scripts]フォルダにサンプルスクリプトが含まれていますが、6.9.0の場合は[sample_scripts] - [java7]内のスクリプトを、7.0の場合は[sample_scripts]フォルダ直下のスクリプトをお試しください。
(ご参照: How to run your script on Astah)
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を