<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="RSS_xslt_style.asp" version="1.0" ?>
<rss version="2.0" xmlns:WebWizForums="http://syndication.webwiz.co.uk/rss_namespace/">
 <channel>
  <title>DevForce Community Forum : Example of TriggerTargetNavigator</title>
  <link>http://www.ideablade.com/forum/</link>
  <description>This is an XML content feed of; DevForce Community Forum : DevForce Classic : Example of TriggerTargetNavigator</description>
  <pubDate>Wed, 10 Jun 2026 18:11:25 -700</pubDate>
  <lastBuildDate>Fri, 03 Aug 2007 12:05:58 -700</lastBuildDate>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Web Wiz Forums 9.69</generator>
  <ttl>360</ttl>
  <WebWizForums:feedURL>www.ideablade.com/forum/RSS_post_feed.asp?TID=354</WebWizForums:feedURL>
  <image>
   <title>DevForce Community Forum</title>
   <url>http://www.ideablade.com/forum/forum_images/IdeaBlade_logo_tm.png</url>
   <link>http://www.ideablade.com/forum/</link>
  </image>
  <item>
   <title>Example of TriggerTargetNavigator : The TriggerTargetNavigator represents...</title>
   <link>http://www.ideablade.com/forum/forum_posts.asp?TID=354&amp;PID=866#866</link>
   <description>
    <![CDATA[<strong>Author:</strong> <a href="http://www.ideablade.com/forum/member_profile.asp?PF=51" rel="nofollow">eileenv</a><br /><strong>Subject:</strong> 354<br /><strong>Posted:</strong> 03-Aug-2007 at 12:05pm<br /><br /><P =Ms&#111;normal><FONT face=Arial color=navy size=2><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">The TriggerTargetNavigator represents a delegate for navigating from the trigger object to the object being verified. The navigator can either be a path (PropertyDescriptor) or a custom method capable of bridging the two object types.<?:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></FONT></P><P =Ms&#111;normal><FONT face=Arial color=navy size=2><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p></o:p></SPAN></FONT></P><P =Ms&#111;normal><FONT face=Arial color=navy size=2><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Here’s an example taken from the sample app accompanying the Verification Tutorial videos on the website, where the navigator is a path:<o:p></o:p></SPAN></FONT></P><P =Ms&#111;normal><FONT face=Arial color=navy size=2><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p></o:p></SPAN></FONT></P><P =Ms&#111;normal><FONT face="Courier New"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=gray><SPAN style="COLOR: gray"><FONT face=Verdana color=#000000><table width="99%"><tr><td><pre class="BBcode"></P><DIV></FONT>///&lt;summary&gt;</SPAN></FONT><FONT color=green><SPAN style="COLOR: green">Get the OrderDateAfterHired Verifier.</SPAN></FONT><FONT color=gray><SPAN style="COLOR: gray">&lt;/summary&gt;</DIV><DIV></SPAN></FONT></SPAN></FONT><FONT face="Courier New"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=blue><SPAN style="COLOR: blue">private</SPAN></FONT> <FONT color=blue><SPAN style="COLOR: blue">static</SPAN></FONT> <FONT color=#2b91af><SPAN style="COLOR: #2b91af">Verifier</SPAN></FONT> GetOrderDateAfterHiredVerifier() {</SPAN></FONT></DIV><DIV><FONT face="Courier New"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp; </SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=blue><SPAN style="COLOR: blue">string</SPAN></FONT> description = <FONT color=#a31515><SPAN style="COLOR: #a31515">"OrderDate must be after the sales rep's HireDate."</SPAN></FONT>;</SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp; </SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=#2b91af><SPAN style="COLOR: #2b91af">DelegateVerifier</SPAN></FONT>&lt;<FONT color=#2b91af><SPAN style="COLOR: #2b91af">Order</SPAN></FONT>&gt; v =</SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp; </SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=blue><SPAN style="COLOR: blue">new</SPAN></FONT> <FONT color=#2b91af><SPAN style="COLOR: #2b91af">DelegateVerifier</SPAN></FONT>&lt;<FONT color=#2b91af><SPAN style="COLOR: #2b91af">Order</SPAN></FONT>&gt;(description, OrderDateAfterHiredCondition);</SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp; </SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">v.ExecutionModes = <FONT color=#2b91af><SPAN style="COLOR: #2b91af">VerifierExecutionModes</SPAN></FONT>.InstanceAndOnPostsetTriggers;</SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp; </SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">v.AddTrigger(<FONT color=#2b91af><SPAN style="COLOR: #2b91af">EntityPropertyDescriptors</SPAN></FONT>.Order.OrderDate);</SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp; </SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">v.AddTrigger(<FONT color=blue><SPAN style="COLOR: blue">new</SPAN></FONT> <FONT color=#2b91af><SPAN style="COLOR: #2b91af">TriggerLink</SPAN></FONT>(</SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp; </SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=#2b91af><SPAN style="COLOR: #2b91af">EntityPropertyDescriptors</SPAN></FONT>.Employee.HireDate, <FONT color=green><SPAN style="COLOR: green">// Triggered by Employee.HireDate</SPAN></FONT></SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp; <FONT color=#2b91af><SPAN style="COLOR: #2b91af">EntityPropertyDescriptors</SPAN></FONT>.Employee.Orders, <FONT color=green><SPAN style="COLOR: green">// Path from trigger (Employee) to Order</SPAN></FONT></SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp; <FONT color=blue><SPAN style="COLOR: blue">true</SPAN></FONT>)); <FONT color=green><SPAN style="COLOR: green">// True = that path returns multiple orders</SPAN></FONT></SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=green><SPAN style="COLOR: green">&nbsp; </SPAN></FONT></SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=blue><SPAN style="COLOR: blue">return</SPAN></FONT> v;</SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"></SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">}</SPAN></FONT><FONT face=Arial color=navy size=2><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">&nbsp;<FONT color=#000000><FONT face=Verdana></pre></td></tr></table><o:p></o:p></FONT></FONT></SPAN></FONT></DIV><P =Ms&#111;normal><FONT face=Arial color=navy size=2><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Here’s an example where the navigator is a custom method:<o:p></o:p></SPAN></FONT></P><P =Ms&#111;normal><FONT face=Arial color=navy size=2><SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=gray><SPAN style="COLOR: gray"><FONT face=Verdana color=#000000><table width="99%"><tr><td><pre class="BBcode"></FONT></SPAN></FONT></SPAN></o:p></SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=blue><SPAN style="COLOR: blue">private</SPAN></FONT> <FONT color=blue><SPAN style="COLOR: blue">static </SPAN></FONT><FONT color=#2b91af><SPAN style="COLOR: #2b91af">Verifier</SPAN></FONT> GetOrderDateDiscontinuedProductVerifier() {</P><DIV></SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=blue><SPAN style="COLOR: blue">&nbsp; string</SPAN></FONT> description = <FONT color=#a31515><SPAN style="COLOR: #a31515">"No orders allowed for discontinued products after 1/1/1998"</SPAN></FONT>;</SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp; </SPAN></FONT><FONT face="Courier New" color=#2b91af size=2><SPAN style="FONT-SIZE: 10pt; COLOR: #2b91af; FONT-FAMILY: 'Courier New'">DelegateVerifier</SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&lt;<FONT color=#2b91af><SPAN style="COLOR: #2b91af">Order</SPAN></FONT>&gt; v =</SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp; </SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=blue><SPAN style="COLOR: blue">new</SPAN></FONT> <FONT color=#2b91af><SPAN style="COLOR: #2b91af">DelegateVerifier</SPAN></FONT>&lt;<FONT color=#2b91af><SPAN style="COLOR: #2b91af">Order</SPAN></FONT>&gt;(description, GetOrderDateDiscontinuedProductCondition);</SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp; </SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">v.ExecutionModes = <FONT color=#2b91af><SPAN style="COLOR: #2b91af">VerifierExecutionModes</SPAN></FONT>.All;</SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp; </SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">v.AddTrigger(<FONT color=#2b91af><SPAN style="COLOR: #2b91af">EntityPropertyDescriptors</SPAN></FONT>.Order.OrderDate);</SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp; </SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">v.AddTrigger(<FONT color=blue><SPAN style="COLOR: blue">new</SPAN></FONT> <FONT color=#2b91af><SPAN style="COLOR: #2b91af">TriggerLink</SPAN></FONT>(</SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp; </SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=#2b91af><SPAN style="COLOR: #2b91af">EntityPropertyDescriptors</SPAN></FONT>.Product.Discontinued, <FONT color=green><SPAN style="COLOR: green">// Triggered by Product.Discontinued</SPAN></FONT></SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=green><SPAN style="COLOR: green"></SPAN></FONT></SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp; GetOrdersAssociatedWithProduct, <FONT color=green><SPAN style="COLOR: green">// Method bridging orders and products</SPAN></FONT></SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=green><SPAN style="COLOR: green">&nbsp;&nbsp;&nbsp; </SPAN></FONT></SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=blue><SPAN style="COLOR: blue">true</SPAN></FONT>); <FONT color=green><SPAN style="COLOR: green">// True = that method returns multiple orders</SPAN></FONT></SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=green><SPAN style="COLOR: green">&nbsp; </SPAN></FONT></SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=blue><SPAN style="COLOR: blue">return</SPAN></FONT> v;</SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"></SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">}</SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"></SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=blue><SPAN style="COLOR: blue">private</SPAN></FONT> <FONT color=blue><SPAN style="COLOR: blue">static</SPAN></FONT> <FONT color=#2b91af><SPAN style="COLOR: #2b91af">EntityList</SPAN></FONT>&lt;<FONT color=#2b91af><SPAN style="COLOR: #2b91af">Order</SPAN></FONT>&gt; GetOrdersAssociatedWithProduct(<FONT color=#2b91af><SPAN style="COLOR: #2b91af">Object</SPAN></FONT> pProduct) {</DIV><DIV></SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=#2b91af><SPAN style="COLOR: #2b91af">&nbsp; Product</SPAN></FONT> aProduct = (<FONT color=#2b91af><SPAN style="COLOR: #2b91af">Product</SPAN></FONT>)pProduct;</SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp; </SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=#2b91af><SPAN style="COLOR: #2b91af">OrderDetail</SPAN></FONT>&#091;&#093; details = aProduct.GetChildren&lt;<FONT color=#2b91af><SPAN style="COLOR: #2b91af">OrderDetail</SPAN></FONT>&gt;(</SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp; </SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=#2b91af><SPAN style="COLOR: #2b91af">EntityRelations</SPAN></FONT>.Product_OrderDetail,</SPAN></FONT></DIV><DIV><FONT face="Courier New" color=#2b91af size=2><SPAN style="FONT-SIZE: 10pt; COLOR: #2b91af; FONT-FAMILY: 'Courier New'"><FONT color=#000000>&nbsp;&nbsp;&nbsp; </FONT>QueryStrategy</SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">.Normal);</SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp; </SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=#2b91af><SPAN style="COLOR: #2b91af">EntityList</SPAN></FONT>&lt;<FONT color=#2b91af><SPAN style="COLOR: #2b91af">Order</SPAN></FONT>&gt; orders = aProduct.PersistenceManager.GetParents&lt;<FONT color=#2b91af><SPAN style="COLOR: #2b91af">Order</SPAN></FONT>&gt;(</SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp;&nbsp;&nbsp; </SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">details, <FONT color=#2b91af><SPAN style="COLOR: #2b91af">EntityRelations</SPAN></FONT>.Order_OrderDetail, <FONT color=#2b91af><SPAN style="COLOR: #2b91af">QueryStrategy</SPAN></FONT>.Normal);</SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&nbsp; </SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><FONT color=blue><SPAN style="COLOR: blue">return</SPAN></FONT> orders;</SPAN></FONT></DIV><DIV><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"></SPAN></FONT><FONT face="Courier New" size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">}</DIV><DIV></DIV><FONT face=Verdana></pre></td></tr></table></FONT></SPAN></FONT>]]>
   </description>
   <pubDate>Fri, 03 Aug 2007 12:05:58 -700</pubDate>
   <guid isPermaLink="true">http://www.ideablade.com/forum/forum_posts.asp?TID=354&amp;PID=866#866</guid>
  </item> 
  <item>
   <title>Example of TriggerTargetNavigator : Do you have an example of how...</title>
   <link>http://www.ideablade.com/forum/forum_posts.asp?TID=354&amp;PID=865#865</link>
   <description>
    <![CDATA[<strong>Author:</strong> <a href="http://www.ideablade.com/forum/member_profile.asp?PF=20" rel="nofollow">Customer</a><br /><strong>Subject:</strong> 354<br /><strong>Posted:</strong> 03-Aug-2007 at 11:53am<br /><br />Do you have an example of how the TriggerTargetNavigator is used? I'm trying to implement cross object verification but can't seem to get it to work.]]>
   </description>
   <pubDate>Fri, 03 Aug 2007 11:53:54 -700</pubDate>
   <guid isPermaLink="true">http://www.ideablade.com/forum/forum_posts.asp?TID=354&amp;PID=865#865</guid>
  </item> 
 </channel>
</rss>