🚀 Welcome to MDriven Learn –  MDriven is now on Discord!  Don’t miss the latest Release Notes.
Parsed/Searching
This page was created by PageReplicator on 2025-09-01. Last edited by PageReplicator on 2025-09-01.

Template:Notice




We created a Seeker that translates OCL to SQL for searching in databases of any size using <a href="/Documentation:OCLps" title="Documentation:OCLps" data-bs-title="Documentation:OCLps">OCLps</a>. We look at derivations, constraints, and validation rules. We need <a href="/Documentation:OCLps" title="Documentation:OCLps" data-bs-title="Documentation:OCLps">OCLps</a> to seek the database without instantiating the objects in memory in the prototyper.

selfVM.Search

Triggers search functionality using search expressions in your <a href="/Documentation:ViewModel" title="Documentation:ViewModel" data-bs-title="Documentation:ViewModel">ViewModel</a> and populates the vSeekerResult. Create a ViewModel and right click on it, select Add Nested ViewModel class and choose Add Search Expressions:

<a href="/File:Documentation_Searching_1729490219452.png" class="image" data-bs-title="File:Documentation_Searching_1729490219452.png" data-bs-filetimestamp="20241021055701"><img alt="Documentation Searching 1729490219452.png" src="/images/thumb/9/94/Documentation_Searching_1729490219452.png/846px-Documentation_Searching_1729490219452.png" decoding="async" width="846" height="437" class="thumbimage" srcset="/images/thumb/9/94/Documentation_Searching_1729490219452.png/1269px-Documentation_Searching_1729490219452.png 1.5x, /images/9/94/Documentation_Searching_1729490219452.png 2x" /></a>
<a href="/File:Documentation_Searching_1729490219452.png" class="internal" title="Enlarge"></a>


Search Expression: The criteria OCLps a subset of SQL, its main purpose is to be easily transformed to SQL and executed as SQL in the database.

Contract.allinstances->select(a|a.Name.sqllikecaseinsensitive(vSeekParam+'%') or a.Description.sqlLikeCaseInsensitive(vSeekParam +'%') or a.State.sqlLikeCaseInsensitive(vSeekParam+'%'))

vSeekParam is a variable, thus you can create multiple variables and several search criteria as represented by the orange section of the ViewModal class:

<a href="/File:Documentation_Searching_1729492243556.png" class="image" data-bs-title="File:Documentation_Searching_1729492243556.png" data-bs-filetimestamp="20241021063045"><img alt="Documentation Searching 1729492243556.png" src="/images/8/85/Documentation_Searching_1729492243556.png" decoding="async" width="676" height="276" class="thumbimage" /></a>
<a href="/File:Documentation_Searching_1729492243556.png" class="internal" title="Enlarge"></a>


Search Results - vSeekerResult: This is used to display the result of the search expression in our ViewModel

<a href="/File:Documentation_Searching_1729492574785.png" class="image" data-bs-title="File:Documentation_Searching_1729492574785.png" data-bs-filetimestamp="20241021063616"><img alt="Documentation Searching 1729492574785.png" src="/images/thumb/5/52/Documentation_Searching_1729492574785.png/849px-Documentation_Searching_1729492574785.png" decoding="async" width="849" height="360" class="thumbimage" srcset="/images/thumb/5/52/Documentation_Searching_1729492574785.png/1274px-Documentation_Searching_1729492574785.png 1.5x, /images/5/52/Documentation_Searching_1729492574785.png 2x" /></a>
<a href="/File:Documentation_Searching_1729492574785.png" class="internal" title="Enlarge"></a>


See also:

  • <a href="/Documentation:Search_result_pages" title="Documentation:Search result pages" data-bs-title="Documentation:Search_result_pages">Search result pages</a>