検索ルールの新規作成

<< 目次を表示 >>

ページ位置:  Enterprise Architectの操作 > モデル内の検索 >

検索ルールの新規作成

独自の検索を定義したい場合は、定義エディタ・SQLエディタ・アドイン検索のいずれかを使用します。これらの選択は検索ルールの新規作成ダイアログから行うことができます。定義した検索ルールは、プロジェクトではなく、使用中のマシンに保存されます。

 

 

利用手順:

リボン

  • ホーム > 探索 > 検索 > モデル内の検索 :
  • モデル > 要素 > 操作 > モデル内の検索 :

キーボード

  • Crtl+F  :
  • Ctrl+Alt+A  :

 

 

新しい検索ルールを定義する手順は次の通りです。

#

操作方法

1

検索ルールの新規作成ボタンを押します。検索ルールの新規作成ダイアログが表示されます。

2

名前欄に名前を入力します。

3

検索の種類を指定します。

項目

説明

定義エディタ

独自の検索条件を、Enterprise Architectが提供する条件を組み合わせて作成することができます。

SQLエディタ

SQL文を入力することで、自由な検索条件を指定することができます。なお、SQL文は、エディタボタンを押すと表示される検索ルール定義領域にある「SQL」のタブに直接入力して実行することもできます。

下記「SQLエディタ」のページをご覧ください。

アドイン検索

アドイン名とメソッド名(例:MyAddin.RunThisMethod)を指定します。

検索を実行するとこのアドインが呼ばれ、アドイン内で独自の結果を作成・返却することができます。

詳細は「アドインによる検索」のページをご覧下さい。

4

OKボタンを押します。

注意:

独自に追加した検索ルールは、プロジェクトには保存されません。作成を実行したマシンに保存され、他のプロジェクトでも利用できます。XMLファイルとして出力し、他の利用者と共有することができます。

 

 

SQLエディタ

 

検索ルールエディタタブが自由に編集できるエディタに変わり、検索の条件を自由に指定できます。SQLのSELECT文が利用できます。このエディタはEnterprise Architectの共通コードエディタであり、オートコンプリート機能が利用できます。オートコンプリートリストを表示するには、[Ctrl+スペース]キーを押します。

 

例えば、単純に指定した名前の要素を検索するためには、以下のようなSQLになります。

 

SELECT * FROM t_object WHERE NAME='<検索単語>'

 

なお、「SQL」タブを利用することで、検索ルールを定義することなくSQL文を実行し、結果を検索結果一覧に表示することができます。検索ルールとして定義する必要のないSQL実行に便利です。

 

 

Enterprise Architectでは、WHERE節の中で#xxx#という形式の独自のタグを利用することができます。このタグは、実行する人や環境が異なる状況に対応するために利用します。

 

利用可能なタグは次の通りです。大文字小文字が一致する必要があります。

タグ

説明

#Author#

オプションダイアログの「作者」の情報を示します。例えば、現在作業をしている人の情報をWHERE節に含めることができます。'で囲うなど、文字列としての扱いになるようにしてください。

#Branch#

パッケージと、そのすべての子パッケージのIDを示します。 WHERE t_object.Package_ID in (#Branch#) のように利用します。

例:

object.Package_ID in (#Branch#)

 

以下の3つの使い方が可能です。

  • in #Branch# - 選択されているパッケージが対象です。
  • in #Branch=GUID# あるいは #Branch=ID#  - 指定されたパッケージが対象です。
  • in #Branch=ID, ID, ID# - PackageIDを複数指定して、それぞれのパッケージおよび子パッケージを対象とすることもできます。

#Concat value1,value2, ...#

指定した文字列を結合します。DBMSの種類に応じて適切なキーワードに置換され実行されます。

#CurrentElementGUID#

選択されている要素のGUIDです。

#CurrentElementID#

選択されている要素のID(ElementID)です。

#Datepart <field>,column#

時間に関する情報のうち、特定の項目のみを取得します。fieldに設定できるのは以下の文字列です。

  • year
  • month
  • day
  • dayofyear
  • weekday
  • week
  • dayname

#DB=<DBName>#

DBMSの種類ごとに実行する内容を変えたい場合に利用します。 <DBNAME> には以下のいずれか1つを指定します。異なる範囲を、このタグで囲みます。

  • MYSQL
  • JET
  • ACCESS2007
  • ORACLE
  • SQLSVR
  • ASA
  • POSTGRES
  • FIREBIRD

     

例:#DB=ORACLE# t_object.ModifiedDate >= (SYSDATE - INTERVAL '<検索単語>' DAY) #DB=ORACLE#

#Left <field>, <count>#

fieldに指定された文字列の左からcount文字分を返します。

#Now#

時刻を指定する場合に利用します。また、あわせてその時間からのプラスマイナスの時間(単位は日あるいは時)を指定することができます。日付の形式は、接続しているDBMSリポジトリの種類に合わせて自動的に調整されます。

 

t_object.ModifiedDate >=#Now <検索単語>#

 

例:

t_object.ModifiedDate >= #Now -4d#   dは日

t_object.ModifiedDate >= #Now -5h#   hは時間

t_object.ModifiedDate >= #Now +3#

t_object.ModifiedDate >= #Now#

#Package#

モデルブラウザで選択されているパッケージのIDを示します。

t_object.Package_ID = #Package#

#Right <field>, <count>#

fieldに指定された文字列の右からcount文字分を返します。

<Search Term>

実際の検索時に検索単語として指定された文字列に置換されます。文字列のため、このタグの前後に引用符をつけ、文字列として扱うようにしなければなりません。何らかの比較がある場合、文字列としての比較が必要です。

#Substring <field>, <start>#

fieldに指定された文字列のstart文字目以降降を返します。最初の文字の位置を示す数値は1です。

#Substring <field>, <start>, <count>#

fieldに指定された文字列のstart文字目からcount文字分を返します。最初の文字の位置を示す数値は1です。

#UserName#

バージョン管理のユーザー名を示します。'で囲うなど、文字列としての扱いになるようにしてください。

例: t_package.PackageFlags LIKE '#WC#VCCFG=#WC#CheckedOutTo=#UserName##WC#'

(これはEnterprise Architectの既定のルールの1つ「自分がチェックアウトしたパッケージ」の内容です。)

#WC#

ワイルドカードを示します。データベースに依存しない形式でワイルドカードを利用したい場合に使用します。 'で囲うなど、文字列としての扱いになるようにしてください。

t_object.Name LIKE '#WC#Test#WC#'

 

注意:

SQL検索を定義している最中には、SQLタブには切り替えないようにして下さい。SQLタブは、一時的な検索を実行するためのものです。このタブでは、上記にて説明しているマクロは利用できません。

 

 

GUIDと種類

SQLでモデルの内容を検索・抽出する場合(例: ドキュメント生成機能や検索機能)では、そのSQLの結果には常に対象の項目のGUIDと種類を戻す必要があります。これにより、例えば検索結果からモデルブラウザ内の対象の項目の位置を表示するなどの機能が利用できます。具体的には、SELECT文には、以下の内容を含む必要があります。(大文字小文字も一致させる必要があります。)

 

 

CLASSGUIDとCLASSTYPEを含めることで、プロパティダイアログを開くことにできるようになったり、要素のアイコンが適切に表示されたりします。属性・操作など、要素以外の場合でも同様です。いかに、いくつかの例を示します。

 

 

対象が接続あるいはダイアグラムの場合には種類がありますので、以下の例のように対象となる種類を把握できるようにCLASSTABLEの情報を追加しなければなりません。

 

 

検索結果からドラッグ&ドロップで要素をダイアグラム内に配置できるようにするためには、以下のいずれかの情報もSELECT文に含まなければなりません。

 

 

設定が完了し保存すると、検索ルールとして呼び出し・利用することができるようになります。

 

 

SQLタブのツールバー

SQLタブでは、検索ルールとして定義せずに、一時的な内容を定義して実行することができます。このツールバーからはいくつかの機能を呼び出すことができます。

アイコン

操作

このボタンを押すと、入力したSQLを実行します。結果は、検索結果一覧に表示されます。

このボタンを押すと、入力内容を新しい検索ルールとして保存することができます。検索ルール名を入力して下さい。

検索ルール名を入力すると、検索ルールエディタタブに内容が移動され、編集を継続できます。

このボタンを押すと、入力内容を削除します。

 

注意:

検索ルールをSQLで定義する場合には、ツールバーのボタンは2つしか利用できません。そのうちの1つのボタン は、検索ルールとして定義した内容を削除するために利用します。

 

 

参照: