<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.aras.com/community/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Conditional  Activity</title><link>https://www.aras.com/community/f/development/36593/conditional-activity</link><description>Hello Guys, 
 Can you please suggest me ? I want to Complete Activity CE Review on Condition Basis(On Work Item Part Property(Critical Value)Value NO ,Yes). 
 (1).If I select Approve on CE Review with critical Value is Yes . Then Next Activity should</description><dc:language>ja-JP</dc:language><generator>Telligent Community 12</generator><item><title>RE: Conditional  Activity</title><link>https://www.aras.com/community/thread/6887?ContentTypeID=1</link><pubDate>Thu, 17 Jun 2021 07:34:48 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:d9f845e5-6d90-494c-ab7d-b908107e321c</guid><dc:creator>Gopikrishnan</dc:creator><description>&lt;p&gt;Have you created method given in step 3 &lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 3: (Skip if this method already exist) Create below server method (VB) in ARAS Instance (Method Name should be Get Controlled Item)&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Conditional  Activity</title><link>https://www.aras.com/community/thread/6886?ContentTypeID=1</link><pubDate>Thu, 17 Jun 2021 07:18:36 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:f6a80586-0856-4349-a3f8-a4f5624adfad</guid><dc:creator>Ashok.Yadav</dc:creator><description>&lt;p&gt;Hello &lt;span&gt;Gopikrishnan,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thank you for your suggestion.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I am getting error message at line number 3.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;/*ND Check Compliance Critical for Input YES OR NO On Part Item*/&lt;br /&gt;1. Innovator inn=this.getInnovator();&lt;br /&gt;2. string activityId = this.getID();&lt;br /&gt;3.Item controlledItem = this.apply(&amp;quot;Get Controlled Item&amp;quot;);&lt;br /&gt;return inn.newError(&amp;quot;Name &amp;quot;+this.getType());&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;img src="/resized-image/__size/640x480/__key/communityserver-discussions-components-files/3/pastedimage1623914265486v1.png" alt=" " /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;Any suggestion for Error ?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thank in Advance.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Conditional  Activity</title><link>https://www.aras.com/community/thread/6882?ContentTypeID=1</link><pubDate>Wed, 16 Jun 2021 17:42:06 GMT</pubDate><guid isPermaLink="false">916d3f7e-8ddc-42f8-8d45-380822f51406:0a3971c1-9893-4f07-bc48-035ba9cb6118</guid><dc:creator>Gopikrishnan</dc:creator><description>&lt;p&gt;Hi Ashok&lt;/p&gt;
&lt;p&gt;This can be achieved by adding one more automatic activity after CE Review and before CE Evaluation and Compliance Review&lt;/p&gt;
&lt;p&gt;If you have any question on the modifications to be done in Workflow please refer my blog page&lt;/p&gt;
&lt;p&gt;&lt;a href="https://arastutorials.blogspot.com/2021/06/decidevotingpath.html"&gt;https://arastutorials.blogspot.com/2021/06/decidevotingpath.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://1.bp.blogspot.com/-K3S6MTnQq4w/YMozRxTUNEI/AAAAAAAAIVo/2UqNccb1qb4TyAEk9zkfzE9wFL9QvHSWwCLcBGAsYHQ/s693/Capture.JPG" /&gt;&lt;/p&gt;
&lt;p&gt;Steps to be followed are :&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Step 1: Create below server method (C#) in ARAS Instance&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;span&gt;Innovator innovator = this.getInnovator();&lt;br /&gt;&lt;/span&gt;&lt;span&gt;string activityId = this.getID();&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Item controlledItem = this.apply(&amp;quot;Get Controlled Item&amp;quot;);&lt;br /&gt;&lt;/span&gt;&lt;span&gt;string criticalValue = controlledItem.getProperty(&amp;quot;a_criticalvalue&amp;quot;);&lt;br /&gt;&lt;/span&gt;&lt;span&gt;string pathName = &amp;quot;Approve1&amp;quot;;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;if (criticalValue == &amp;quot;Yes&amp;quot;)&lt;br /&gt;&lt;/span&gt;&lt;span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span&gt; pathName = &amp;quot;Approve2&amp;quot;;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span&gt;var autoActivity = innovator.newItem(&amp;quot;Activity&amp;quot;, &amp;quot;edit&amp;quot;);&lt;br /&gt;&lt;/span&gt;&lt;span&gt;autoActivity.setProperty(&amp;quot;is_auto&amp;quot;, &amp;quot;1&amp;quot;);&lt;br /&gt;&lt;/span&gt;&lt;span&gt;autoActivity.setAttribute(&amp;quot;id&amp;quot;, activityId);&lt;br /&gt;&lt;/span&gt;&lt;span&gt;autoActivity.setAttribute(&amp;quot;doGetItem&amp;quot;, &amp;quot;0&amp;quot;);&lt;br /&gt;&lt;/span&gt;&lt;span&gt;autoActivity = autoActivity.apply();&lt;br /&gt;&lt;/span&gt;&lt;span&gt;if(autoActivity.isError())&lt;br /&gt;&lt;/span&gt;&lt;span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; return innovator.newError(autoActivity.getErrorString());&lt;br /&gt;&lt;/span&gt;&lt;span&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Item fetchPaths = this.newItem(&amp;quot;Workflow Process Path&amp;quot;, &amp;quot;get&amp;quot;);&lt;br /&gt;&lt;/span&gt;&lt;span&gt;fetchPaths.setProperty(&amp;quot;source_id&amp;quot;, activityId);&lt;br /&gt;&lt;/span&gt;&lt;span&gt;fetchPaths.setProperty(&amp;quot;select&amp;quot;, &amp;quot;id&amp;quot;);&lt;br /&gt;&lt;/span&gt;&lt;span&gt;fetchPaths=fetchPaths.apply();&lt;br /&gt;&lt;/span&gt;&lt;span&gt;if(fetchPaths.isError())&lt;br /&gt;&lt;/span&gt;&lt;span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; return(innovator.newError(&amp;quot;Could not get Paths for automatic SignOff&amp;quot;));&lt;br /&gt;&lt;/span&gt;&lt;span&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Item path = fetchPaths.getItemsByXPath(&amp;quot;//Item[@type='Workflow Process Path'][name='"+pathName+"']&amp;quot;).getItemByIndex(0);&lt;br /&gt;&lt;/span&gt;&lt;span&gt;path.setProperty(&amp;quot;is_default&amp;quot;, &amp;quot;1&amp;quot;);&lt;br /&gt;&lt;/span&gt;&lt;span&gt;path.setAction(&amp;quot;edit&amp;quot;);&lt;br /&gt;&lt;/span&gt;&lt;span&gt;path = path.apply();&lt;br /&gt;&lt;/span&gt;&lt;span&gt;if(path.isError())&lt;br /&gt;&lt;/span&gt;&lt;span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; return innovator.newError(autoActivity.getErrorString());&lt;br /&gt;&lt;/span&gt;&lt;span&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span&gt;return this;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Step 2: Add this method in Pre Activity of Approve Path (Activity Highlighted below)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;img alt=" " src="https://1.bp.blogspot.com/-AtARl6yuwWI/YMo0_SimiRI/AAAAAAAAIV0/2bbOhhetqj4cOF6ExFxjt_lJBclJ9dYUQCLcBGAsYHQ/s733/Capture1.JPG" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Step 3: (Skip if this method already exist) Create below server method (VB) in ARAS Instance (Method Name should be Get Controlled Item)&lt;/p&gt;
&lt;div class="separator"&gt;&lt;a href="https://1.bp.blogspot.com/-AtARl6yuwWI/YMo0_SimiRI/AAAAAAAAIV0/2bbOhhetqj4cOF6ExFxjt_lJBclJ9dYUQCLcBGAsYHQ/s733/Capture1.JPG"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;i&gt;&lt;span&gt;&amp;#39; Find the Controlled Item for a Workflow Process or Activity&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Dim inn As Innovator = Me.newInnovator()&lt;br /&gt;&lt;/span&gt;&lt;span&gt;If Me.getAttribute(&amp;quot;type&amp;quot;,&amp;quot;&amp;quot;) = &amp;quot;Method&amp;quot; And Not Me.node.selectSingleNode(&amp;quot;Item&amp;quot;) Is Nothing Then&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;Me.node = Me.node.selectSingleNode(&amp;quot;Item&amp;quot;) &amp;#39;Handle the case where this method is called from ApplyMethod&lt;br /&gt;&lt;/span&gt;&lt;span&gt;End If&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Dim qry1 As Item = Me.newItem()&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Dim qry2 As Item = Me.newItem()&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Dim qry3 As Item = Me.newItem()&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Dim wflProcId As String&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;#39; Get the Workflow Process&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Select Case Me.GetType()&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;Case &amp;quot;Workflow Process&amp;quot;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; wflProcId = Me.getID()&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;Case &amp;quot;Activity&amp;quot;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; Dim activityId As String = Me.getID()&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; If activityId.Length &amp;lt;&amp;gt; 32 Then&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;Return inn.newError(&amp;quot;Get Controlled Item: Invalid Activity id&amp;quot;)&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; End If&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; qry1 = Me.newItem(&amp;quot;Workflow Process&amp;quot;,&amp;quot;get&amp;quot;)&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; qry1.setAttribute(&amp;quot;select&amp;quot;,&amp;quot;id&amp;quot;)&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; qry2 = qry1.createRelationship(&amp;quot;Workflow Process Activity&amp;quot;,&amp;quot;get&amp;quot;)&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; qry2.setAttribute(&amp;quot;select&amp;quot;,&amp;quot;id,related_id&amp;quot;)&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; qry3 = qry2.createRelatedItem(&amp;quot;Activity&amp;quot;,&amp;quot;get&amp;quot;)&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; qry3.setAttribute(&amp;quot;select&amp;quot;,&amp;quot;id&amp;quot;)&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; qry3.setID(activityId)&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; Dim wflProc = qry1.apply()&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; If wflProc.getItemCount() &amp;lt;&amp;gt; 1 Then&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;Return inn.newError(&amp;quot;Get Controlled Item: Error getting Workflow Process: &amp;quot; &amp;amp; wflProc.getErrorDetail())&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; End If&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; wflProcId = wflProc.getID()&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;Case Else&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; Return inn.newError(&amp;quot;Get Controlled Item: Type must be Workflow Process or Activity&amp;quot;)&lt;br /&gt;&lt;/span&gt;&lt;span&gt;End Select&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;If wflProcId.Length &amp;lt;&amp;gt; 32 Then&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;Return inn.newError(&amp;quot;Get Controlled Item: Invalid Workflow Process id&amp;quot;)&lt;br /&gt;&lt;/span&gt;&lt;span&gt;End If&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;#39; Get the Workflow relationship&lt;br /&gt;&lt;/span&gt;&lt;span&gt;qry1 = Me.newItem(&amp;quot;Workflow&amp;quot;,&amp;quot;get&amp;quot;)&lt;br /&gt;&lt;/span&gt;&lt;span&gt;qry1.setAttribute(&amp;quot;select&amp;quot;,&amp;quot;id,related_id,source_id,source_type&amp;quot;)&lt;br /&gt;&lt;/span&gt;&lt;span&gt;qry2 = qry1.createRelatedItem(&amp;quot;Workflow Process&amp;quot;,&amp;quot;get&amp;quot;)&lt;br /&gt;&lt;/span&gt;&lt;span&gt;qry2.setAttribute(&amp;quot;select&amp;quot;,&amp;quot;id&amp;quot;)&lt;br /&gt;&lt;/span&gt;&lt;span&gt;qry2.setID(wflProcId)&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Dim wfl As Item = qry1.apply()&lt;br /&gt;&lt;/span&gt;&lt;span&gt;If wfl.getItemCount() &amp;lt;&amp;gt; 1 Then&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;Return inn.newError(&amp;quot;Get Controlled Item: Error retriving the Workflow relationship: &amp;quot;&amp;amp;wfl.getErrorDetail())&lt;br /&gt;&lt;/span&gt;&lt;span&gt;End If&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Dim controlledId As String = wfl.getProperty(&amp;quot;source_id&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;&lt;/span&gt;&lt;span&gt;If controlledId.Length &amp;lt;&amp;gt; 32 Then&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;Return inn.newError(&amp;quot;Get Controlled Item: Invalid Controlled Item id&amp;quot;)&lt;br /&gt;&lt;/span&gt;&lt;span&gt;End If&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;#39; Get the controlled item&lt;br /&gt;&lt;/span&gt;&lt;span&gt;qry3 = Me.newItem()&lt;br /&gt;&lt;/span&gt;&lt;span&gt;qry3.setAction(&amp;quot;get&amp;quot;)&lt;br /&gt;&lt;/span&gt;&lt;span&gt;qry3.setAttribute(&amp;quot;typeId&amp;quot;,wfl.getProperty(&amp;quot;source_type&amp;quot;,&amp;quot;&amp;quot;))&lt;br /&gt;&lt;/span&gt;&lt;span&gt;qry3.setID(controlledId)&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Dim controlledItem As Item = qry3.apply()&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Return controlledItem&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;&lt;i&gt;&lt;span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;Test and let me know if it works&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Regards,&lt;/div&gt;
&lt;div&gt;Gopikrishnan R&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>