Please note : This help page is not for the latest version of Enterprise Architect. The latest help can be found here.
Contents |
Prev | Next |
Create Search Definitions
If you want to define your own searches, you can do so using the SQL Editor, Query Builder or an Add-In, through the 'New Search' dialog. User-defined searches are stored in the user application data for the machine being used, and not in the project repository.
Access
Ribbon |
Start > Explore > Search > Search in Model : or Design > Element > Manage > Search Model : |
Keyboard Shortcuts |
Crtl+F : or : |
Create a new search definition
Field/Button |
Action |
See also |
---|---|---|
Name |
Type a name for the search. |
|
Query Builder |
Click on this radio button to create your search through the internal search editor. |
|
SQL Editor |
Click on this radio button to create your search by directly writing SQL statements. (For advanced users.) |
|
Add-In Search |
Click on this radio button to define the search as a function of an Add-In. |
|
Add-In Name and Method |
(Available if you have selected the 'Add-In Search' radio button) Type in:
|
Add-In Search |
OK |
Click on this button to create the new search and close the dialog. The search builder panel opens underneath the toolbar. For:
The Search Builder also provides an 'SQL Scratch Pad' tab, which you can use to create and test SQL statements before copying them across to the 'Query Builder' tab. SQL statements on the 'SQL Scratch Pad' are not attached to any search and are not the focus of any operations initiated from the 'Find in Project' toolbar. |
Define & Modify Searches |
Cancel |
Click on this button to abort the search creation and close the dialog. |
Create SQL Search
You can create SQL statements using the SQL Editor through the 'Query Builder' tab. The SQL editor is based on the common Code Editor, and provides an Intelli-sense autocompletion list populated from the Enterprise Architect repository structure.
To display the autocompletion list, position the cursor after a command and press
.A simple search might be to locate an object from a table, given a search term that the user enters in the 'Search Term' field, such as:
SELECT * FROM t_object WHERE NAME='<Search Term>'
In the WHERE statements you can also use #xxx# macros as string replacers, so that the same search can be used by different people in different environments. These macros are all case-sensitive. They include:
Macro |
Description |
See also |
---|---|---|
#Author# |
Takes the user name from the 'Author' field in the 'Preferences' dialog 'General' page, so the defined search can be performed on objects created by that user (this value can be manually re-set in the 'Preferences' dialog). |
|
#Branch# |
Gets the IDs of the child Packages of the currently-selected Package, working recursively down to the lowest level of sub-Package. For example:
|
|
#Concat value1, value2 ...# |
Provides a method of concatenating two or more SQL terms into one string, independent of the database type. |
|
#Datepart <field>, column# |
Provides a method of querying one part of the Date, independent of the database type. The value of <field> can be one of:
|
|
#CurentElementGUID# |
Gets the ea_guid for the currently-selected element. For example:
|
|
#CurrentElementID# |
Gets the Object_ID for the currently selected element. For example:
|
|
#DB=<DBNAME># |
<DBNAME> can be one of:
This only uses the section of code between two matching #DB=<DBNAME># macros if the current database type matches the specified DBNAME; it can be used where a section of the SQL might require special handling depending upon the current database type. For example: #DB=ORACLE# t_object.ModifiedDate >= (SYSDATE - INTERVAL '<Search Term>' DAY) #DB=ORACLE# |
|
#Now# |
Inserts the current date plus or minus a specified number of hours or days; the default is days (the date format is adjusted to suit the database in use) as in:
For example:
|
|
#Package# |
Gets the Package_ID for the currently-selected Package. For example: t_object.Package_ID = #Package# |
|
#UserName# |
Gets the name of the person logged into version control. This example is from the built in search 'My Checked Out Packages'.
|
|
#WC# |
Gets the appropriate wild card for the current database, so the search can be performed on models on different databases. For example: t_object.Name LIKE '#WC#Test#WC#' |
The GUID and Type
For all functions in which you use a custom SQL statement (including Document Reporting and Model Views) the statement must return the guid and type of the object found so that the system can search for the selected item in the Project Browser. The SELECT statement is case-sensitive and should be typed as shown:
- SELECT ea_guid AS CLASSGUID, Object_Type AS CLASSTYPE, Name FROM t_object
You can extend the usability of your SQL searches using the aliases CLASSGUID and CLASSTYPE, so that you can display the 'Properties' dialog, Tagged Values and icon for elements, connectors, attributes or operations, as well as selecting them in the Project Browser. Some simple examples for using these aliased fields are:
- SELECT ea_guid AS CLASSGUID, Object_Type AS CLASSTYPE, Name FROM t_object
- SELECT ea_guid AS CLASSGUID, 'Operation' AS CLASSTYPE, Name FROM t_operation
- SELECT ea_guid AS CLASSGUID, 'Attribute' AS CLASSTYPE, Name FROM t_attribute
For connectors you must also include the alias CLASSTABLE, for example:
- SELECT ea_guid AS CLASSGUID, Connector_Type AS CLASSTYPE, "t_connector" as CLASSTABLE, Name FROM t_connector
You can enable your search users to drag and drop elements from the search results onto a diagram, by including one of these in your search SELECT statement:
- (t_object.Object_ID and t_object.Object_Type) or
- t_object. ea_guid AS CLASSGUID
When you have defined the SELECT statement, click on the in the 'Query Builder' toolbar to save this search; the search is then available from the 'Search' drop-down list.
SQL Scratch Pad Toolbar buttons
The 'SQL Scratch Pad' tab provides a small number of facilities through its toolbar.
Icon |
Description |
---|---|
Click on this icon to test the search you have defined. The results display in the main panel of the 'Find in Project' view. |
|
Click on this icon to save the current SQL search as a new search. A prompt displays for the new search name. When you click on the , the system switches to the 'Query Builder' tab, copies the SQL Statement to the tab, and puts the search name into the 'Search' field. |
|
Click on this icon to clear the 'SQL Scratch Pad' of the current search definition. |
Notes
Learn more