<?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>What&amp;#39;s the best practice to cancel an specific process instance?</title><link>https://community.appian.com/discussions/f/best-practices/12971/what-s-the-best-practice-to-cancel-an-specific-process-instance</link><description>whenever, we need to cancel a process instance based on a decision made in some other process. I see we have some options like Send/Receive message, Cancel Process, Set external P Vs Activity but not sure which is the best practice to use?. Can you please</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: What's the best practice to cancel an specific process instance?</title><link>https://community.appian.com/thread/58426?ContentTypeID=1</link><pubDate>Fri, 27 Jul 2018 15:22:23 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:23ab565d-6ba9-402f-864f-ffe2a22973d7</guid><dc:creator>josep</dc:creator><description>Hello Sindhu&lt;br /&gt;
&lt;br /&gt;
This is such a good question, I liked it a lot. Definitely I agree with Deepa D those are the ways to cancel the processes. personally I prefer the send message option. &lt;br /&gt;
&lt;br /&gt;
I just wanted to ask you little more about your use case. why you have to kill instances? is that happening a lot? &lt;br /&gt;
&lt;br /&gt;
One scenario I can imagine is that you have a process and you need to cancel it because the record was cancelled or expired? or maybe you have one task which doesn&amp;#39;t apply any more to the process because something else happened? &lt;br /&gt;
&lt;br /&gt;
Now let me tell you the reason I liked your question, I started thinking if you had the option not to create a process which will be killed, what if you can handle it DB oriented with some status?&lt;br /&gt;
&lt;br /&gt;
Jose&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What's the best practice to cancel an specific process instance?</title><link>https://community.appian.com/thread/58398?ContentTypeID=1</link><pubDate>Thu, 26 Jul 2018 16:58:42 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:00760bd0-b296-45f0-9ce3-74fed3d07dba</guid><dc:creator>chandu</dc:creator><description>Hi Sindhu, Please try to go with Cancel Process option. Please go through the cons mentioned above for receive message event.&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What's the best practice to cancel an specific process instance?</title><link>https://community.appian.com/thread/58388?ContentTypeID=1</link><pubDate>Thu, 26 Jul 2018 15:12:37 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:c94b006d-e75f-4959-b466-31559f922821</guid><dc:creator>sindhum950</dc:creator><description>Thanks deepad13 for the detailed differences, will try both options. Might go with Send/Recieve message option.&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What's the best practice to cancel an specific process instance?</title><link>https://community.appian.com/thread/58387?ContentTypeID=1</link><pubDate>Thu, 26 Jul 2018 15:04:27 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:45e69c6d-535a-4029-96de-9447ec2f076b</guid><dc:creator>sindhum950</dc:creator><description>thanks for the suggestion prakash, but I wanted something which will be automatic without manual intervention. Like once a process is cancelled the other process shold also be cancelled.&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What's the best practice to cancel an specific process instance?</title><link>https://community.appian.com/thread/58361?ContentTypeID=1</link><pubDate>Thu, 26 Jul 2018 06:04:27 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:d02963c7-15cb-47aa-b7a3-1f3245701a8b</guid><dc:creator>Deepa_M</dc:creator><description>&lt;p&gt;In all of the cases you would need instance Id of the process you want to terminate. Here is the pros and cons of each approach:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Cancel Process:&lt;/strong&gt; The decision logic to cancel a process instance lies within the parent process. Child process status is changed to Cancel.&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;PROS:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Requires less configuration. Bcoz one node is enough to do the job&lt;/li&gt;
&lt;li&gt;Sail component is available, so you can call it from an interface and cancel a process instance&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;CONS:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;User requires admin access of child process to cancel it&lt;/li&gt;
&lt;li&gt;Parent process might not have all decision parameters&lt;/li&gt;
&lt;li&gt;Does not show dependent/Precedent relationship&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Send/Receive Message:&lt;/strong&gt; The decision logic can be distributed between parent and child process instances. Process status is changed to completed&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;PROS:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Decision to terminate lies with child process. So doesn&amp;#39;t require additional permission&lt;/li&gt;
&lt;li&gt;Child process will have better exposure to processes current state. Hence best candidate to take termination decision. Ex. There is some change in business logic&amp;nbsp;of child process. It is easy to notice termination logic, rather then it residing in parent.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;CONS:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Receiver is always in active state, always waiting to listen from Sender, until terminated. Consumes more resources&lt;/li&gt;
&lt;li&gt;Configuration needs to be made in both processes, Sender in parent and Receiver in child&lt;/li&gt;
&lt;li&gt;Cannot be called directly from Interface. However you can place this Send message node in a process and trigger PM from interface.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Hope this helps to decide which approach you want to take as per requirement.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: What's the best practice to cancel an specific process instance?</title><link>https://community.appian.com/thread/58360?ContentTypeID=1</link><pubDate>Thu, 26 Jul 2018 04:58:14 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:52cc8b75-792b-4b0d-8270-5b588e229f7d</guid><dc:creator>prakashb9987</dc:creator><description>Create a process instance report where they could see the running instances,They could then click on the record and drill down to a dashboard that would have a quick task that would allow them to cancel the process instance by flowing to a terminate node.&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>