VB-Script Suche

Über das EA Repository kann man auch direkt SQL Suchen absetzen. Dazu muss man natürlich das EA DB-Schema kennen. Dieser Blogbeitrag zeigt die relevanten Datenbanktabellen.

Die Abfrage ist denkbar einfach:

sql = “SELECT ea_guid FROM t_object”
xmlResultString = Repository.SQLQuery(sql)

Als Ergebnis wird allerdings ein XML-String zurückgegeben.

 

Der Aufbau des XML-Strings ist Folgender:

<ReportViewData UID=”MySearchID” >
<!–

//The UID attribute enables XML type searches to persist column information. That is, if you run the search, group by column or adjust column widths, then close the window and run the search again, the format/organization changes are retained.To avoid persisting column arrangements, leave the attribute value blank or remove it altogether.
// Use this section to declare all possible fields – columns that appear in Enterprise Architect’s search window – that are used below in <Rows/>.

// The order of the columns of information to be appended here must match the order that the search run in Enterprise Architect would normally display.
// Furthermore, if you append results onto a custom SQL Search, then the order used in your Custom SQL must match the order used below.

–>

<Fields>
<Field name=””/>
<Field name=””/>
<Field name=””/>
<Field name=””/>
</Fields>

<Rows>

<Row>
<Field name=”” value=””/>
<Field name=”” value=””/>
<Field name=”” value=””/>
<Field name=”” value=””/>
</Row>

<Row>
<Field name=”” value=””/>
<Field name=”” value=””/>
<Field name=”” value=””/>
<Field name=”” value=””/>
</Row>

<Row>
<Field name=”” value=””/>
<Field name=”” value=””/>
<Field name=”” value=””/>
<Field name=”” value=””/>
</Row>

</Rows>

</ReportViewData>

Um nun die einzelnen Daten aus dem XML-String lesen zu können, lädt man den String in einen XML-DOM. Mittels XPath können dann die einzelnen Knoten des DOM-Baumes abgerufen werden.

Im Beispielscript sind zwei Varianten angeführt:

set node = xmlDOM.selectSingleNode( “//Data//Row//ea_guid” )

holt den ersten Knoten aus dem Pfad Data/Row/ea_guid.
Mittels folgender Abfrage bekommt man nicht nur den ersten Eintrag, sondern alle ea_guid Einträge.

set nodeList = xmlDOM.selectNodes( “//Data//Row//ea_guid” )

Das VBScript SQL Search kann auch als txt File heruntergeladen werden.
VB Script für SQL Suche

Posted in Model Search
Tags: , , , , , ,