<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.appian.com/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>Task recall functionality</title><link>https://community.appian.com/discussions/f/process/21287/task-recall-functionality</link><description>Hi All, 
 
 We have a headless pattern: The task is initiated by User A(who belongs to Group A) and submitted to User B /Group B for approval, as per requirement User A who was initiator can recall the task and update the data if required and submit once</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: Task recall functionality</title><link>https://community.appian.com/thread/83065?ContentTypeID=1</link><pubDate>Mon, 28 Jun 2021 18:46:17 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:2fe0eda2-857d-49c0-8aca-0ffe33ad25fd</guid><dc:creator>davel001150</dc:creator><description>&lt;p&gt;The way I saw it done is with Process to Process messaging.&amp;nbsp; The process to recall sends out a message to the PI that is holding the task for B, and that process is killed.&amp;nbsp; No more task, and A can proceed to make changes, then create a brand new submit to B.&lt;/p&gt;
&lt;p&gt;Process to Process is very inefficient and slow, but this is still, I think, a very good use case for it.&amp;nbsp; It&amp;#39;s very rarely used, and performance isn&amp;#39;t critical for this type of operation.&lt;/p&gt;
&lt;p&gt;There may be a better way of doing it, but I haven&amp;#39;t been tasked with implementing it, thankfully.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Task recall functionality</title><link>https://community.appian.com/thread/83054?ContentTypeID=1</link><pubDate>Mon, 28 Jun 2021 16:26:00 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:d9e7c18a-4ef5-417b-9550-012aa299fcb3</guid><dc:creator>Chris</dc:creator><description>&lt;p&gt;Also not sure about the headless verbiage but with a simple process, A to B, it sounds like this can be done with an Edit Related Action.&amp;nbsp; If A edits, you aren&amp;#39;t really removing the task from B as it will flow right back to them for approval, the task can stay with them with the updated data.&amp;nbsp; If B has already approved, the Related Action would not be available.&amp;nbsp; You can also check on the edit form to disable/show a message in the situation that B approves while A has already accessed but not yet submitted the edit.&lt;/p&gt;
&lt;p&gt;For more complex recall scenarios, I typically give them a Recall Related Action which utilizes &lt;a href="https://docs.appian.com/suite/help/21.2/Process_Node_and_Smart_Service_Properties.html#exceptions-tab"&gt;exceptions &lt;/a&gt;on all downstream tasks to end while starting the Submit task, which the user can then access from their Tasks List.&amp;nbsp; Or, the edit can be done directly in the Related Action, then makes a call to the process which restarts the correct path(s).&amp;nbsp; I typically have a rule node or a receive message event as a side path off the start event, that waits to be told to do it&amp;#39;s processing.&amp;nbsp; The Recall/Edit function calls this side path either with OOTB process messaging, the &amp;quot;Start All Nodes&amp;quot; service of the &lt;a href="/b/appmarket/posts/process-management-services"&gt;Process Management Services&lt;/a&gt; plugin, or&amp;nbsp;by setting a process variable (Rule node scenario) in the main process with the &lt;a href="/b/appmarket/posts/get-and-set-external-process-variables"&gt;Get and Set External Process Variables&lt;/a&gt; plugin.&lt;/p&gt;
&lt;p&gt;In the side path, I also utilize a!queryEntity() to update the CDTs based on data that was just persisted to the DB from the Edit/Recall function.&amp;nbsp; So the main process will receive input from the Edit function, update it&amp;#39;s CDTs, then kill/start tasks as necessary.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Task recall functionality</title><link>https://community.appian.com/thread/82997?ContentTypeID=1</link><pubDate>Sat, 26 Jun 2021 21:18:00 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:06724109-2ba6-48ec-b8d7-fbfa776b915b</guid><dc:creator>Stefan Helzle</dc:creator><description>&lt;p&gt;What do you mean with &amp;quot;headless&amp;quot;?&lt;/p&gt;
&lt;p&gt;If any member of the assignees group accepts the task, he is the owner and any other user can not accept the task as well. This is default behavior of Appian.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>