<?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>Handle node exception and continue  process execution</title><link>https://community.appian.com/discussions/f/process/19696/handle-node-exception-and-continue-process-execution</link><description>Hi, 
 Is there any way to handle exception and continue process execution? In other words if error occurs i need to go to different route (route 2 on print screen). It is not possible to query db to check if error will occur or not. 
 
 Simplifies process</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: Handle node exception and continue  process execution</title><link>https://community.appian.com/thread/78068?ContentTypeID=1</link><pubDate>Tue, 24 Nov 2020 10:47:51 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:9e2857f1-7995-4a53-b6f8-d82600f1f3ab</guid><dc:creator>Furman</dc:creator><description>&lt;p&gt;Yes you are right&amp;nbsp;&lt;a href="/members/peter.lewis"&gt;Peter Lewis&lt;/a&gt; I tried to use Pessimistic locking and I tried to use separate table for storing locks but it did not worked as expected.&lt;/p&gt;
&lt;p&gt;Solution that finally worked for me was to setup Process Display Name to variable so I can then use Process Report to get list of active process models. Based on Process Display Name queryProcessAnalytics function returns me this name in c0 which I can use to identify how many people are trying to run same process for same record. Based on that I can wait 2-3 seconds and recheck and write to db if there is only me who run this process.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Handle node exception and continue  process execution</title><link>https://community.appian.com/thread/78065?ContentTypeID=1</link><pubDate>Tue, 24 Nov 2020 09:26:20 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:a1909263-ed9e-40ec-828a-3cfb6f11c0cd</guid><dc:creator>Furman</dc:creator><description>&lt;p&gt;There is one solution that I have tested and might be useful. Everything depends on your needs but you can have separate process that will only have one node &amp;#39;write to database&amp;#39; and then from main process you will call this sub process but &lt;strong&gt;Asynchronously&lt;/strong&gt; so even if there is error on sub process your main process will continue. To check results of your sub process in main process you can use query db to check whether db is updated or not. Drawback of such solution is that you will have multiple nodes with error on app monitoring&lt;/p&gt;
&lt;h3&gt;&lt;/h3&gt;
&lt;h3 id="asynchronous-subprocesses"&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://docs.appian.com/suite/help/20.3/Sub-Process_Activity.html#:~:text=Asynchronous%20Subprocesses,back%20to%20the%20parent%20process." rel="noopener noreferrer" target="_blank"&gt;Asynchronous Subprocesses&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Handle node exception and continue  process execution</title><link>https://community.appian.com/thread/78062?ContentTypeID=1</link><pubDate>Mon, 23 Nov 2020 21:29:28 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:124b310a-a8cc-487c-b3da-f12c2a32e44f</guid><dc:creator>Chris</dc:creator><description>&lt;p&gt;I would just like to add a note here on the older Query DB&amp;#39;s functionality for the &amp;quot;Continue on Error&amp;quot; parameter.&amp;nbsp; This was an extremely convenient setting&amp;nbsp;for us in similar situations in the past, before switching primarily to the Write to Data Store service for design convenience.&amp;nbsp; It would be HUGE to see the Write to DS service upgraded with a similar setting for &amp;quot;Continue on Error&amp;quot; (I can see this beneficial for other services as well), where we can decide to throw the exception and pause, or, record the error and create custom error handling.&lt;/p&gt;
&lt;p&gt;Agree that the Write to DS node is very sound, however the error is typically with the underlying database.&amp;nbsp; For example, we have many processes that interact with our Oracle Financials environment for retrieving, and writing data.&amp;nbsp; We do not control that environment, and they have standard maintenance periods and the occasional unplanned outage.&amp;nbsp; Say we have 1000 process instances running which hit the Oracle DB during the outage.&amp;nbsp; With Write to DS, they all fail and require manual restarts.&amp;nbsp; When we used Query DB, we would have each failed call continue on error, log it, and wait at a Receive Message event.&amp;nbsp; Once the DB was back online, we could resume all processes with one click, sending messages to the waiting nodes.&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Handle node exception and continue  process execution</title><link>https://community.appian.com/thread/78044?ContentTypeID=1</link><pubDate>Mon, 23 Nov 2020 14:21:10 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:d728134d-f641-4d9e-8919-6f9271adb655</guid><dc:creator>Peter Lewis</dc:creator><description>&lt;p&gt;One common example of this - suppose you have a process that sends out a survey, where each user receives a task. However, the task deadline is 7 days after the survey is started. A good use for an exception is to trigger the exception after 7 days to skip the task if the user did not complete it. This will ensure the process does not wait indefinitely for the user to complete their task.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Handle node exception and continue  process execution</title><link>https://community.appian.com/thread/78034?ContentTypeID=1</link><pubDate>Mon, 23 Nov 2020 08:06:14 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:38f3f40e-5e00-45c5-8e7b-6ee7e6ec2b19</guid><dc:creator>Stefan Helzle</dc:creator><description>&lt;p&gt;The term &amp;quot;exception&amp;quot; does not mean a technical exception, like in Java, in this case. This is about a functional or business exception which results in a different flow in process.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Handle node exception and continue  process execution</title><link>https://community.appian.com/thread/78033?ContentTypeID=1</link><pubDate>Mon, 23 Nov 2020 05:58:56 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:b31d17c7-e29e-4631-994d-d6d786bd9e42</guid><dc:creator>rp_balaji</dc:creator><description>&lt;p&gt;Hi Robert,&lt;/p&gt;
&lt;p&gt;From the above conversation I could understand&amp;nbsp;we can&amp;#39;t proceed to an exception flow when the node is paused or broken due to a technical error, so in this case may I know in what scenarios we can use the exception path defined for a node (ideally a smart service or user input task or script task). Much appreciate if you can provide an use case please.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Handle node exception and continue  process execution</title><link>https://community.appian.com/thread/77030?ContentTypeID=1</link><pubDate>Thu, 08 Oct 2020 13:01:35 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:609ccca4-f9ab-4252-82ea-ecc9c8e28cc6</guid><dc:creator>Peter Lewis</dc:creator><description>&lt;p&gt;So from what you described, it sounds like you&amp;#39;re trying to set up Optimistic Locking. Basically optimistic locking assumes that collisions are rare, so it just fails to write whenever two users attempt to update the same dataset. However, if you expect that simultaneous editing is common, I think you should consider using Pessimistic Locking.&lt;/p&gt;
&lt;p&gt;Pessimistic locking pairs what you already have with functionality on your form to check if the data is already being edited. Then, you could use logic on the form to display a message or prevent users from completing the form at all. This should make the error case much less likely and probably make this design paradigm unnecessary.&lt;/p&gt;
&lt;p&gt;There&amp;#39;s lots of other posts about Optimistic / Pessimistic locking, but &lt;a href="/discussions/f/data/18489/how-can-we-implement-locking-in-appian-how-many-types-of-locking-are-supported/72806#72806"&gt;here&amp;#39;s&lt;/a&gt; one that I think explains it pretty well.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Handle node exception and continue  process execution</title><link>https://community.appian.com/thread/77013?ContentTypeID=1</link><pubDate>Thu, 08 Oct 2020 07:08:12 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:bd65df6d-e227-4118-b728-45e4b5d6cdf3</guid><dc:creator>Furman</dc:creator><description>&lt;p&gt;&lt;a href="/members/robert.shankin"&gt;Robert Shankin&lt;/a&gt; let me provide more background related to what I want to achieve.&lt;/p&gt;
&lt;p&gt;Problem:&lt;/p&gt;
&lt;p&gt;Imagine CDT with 2 fields (id, name1, name2).&amp;nbsp; We faced situation that if two users started editing entry of this CDT and user1 change value for field name1, user2 change&amp;nbsp;value for name2 field and then both click on submit button at the same time then write to data store entity updated entry in table and override values provided by one users with values provided by another user.&lt;/p&gt;
&lt;p&gt;Initially I&amp;#39;ve tried to solve this problem by adding, just before write to data store entity,&amp;nbsp; another node that was responsible to get latest version of CDT entry from db. This has not resolved the problem.&lt;/p&gt;
&lt;p&gt;In real case scenario CDT has round 15 fields and updating them take 3-5 minutes.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;New solution:&lt;/p&gt;
&lt;p&gt;Based on other Appian Community topics I thought about setting up locks. Steps that I want to fallow:&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp;Create&amp;nbsp;&amp;nbsp;CDT with column on which unique constraint (text column) is added.&lt;/p&gt;
&lt;p&gt;2. When user1 click on submit button then lock should be added by write to data store entity.&lt;/p&gt;
&lt;p&gt;3. When second user click on submit button then write to data store entity will throw an error.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;4. If error occurs i want to handle it and force process model to wait 1 minute and then get latest values for main CDT from db.&lt;/p&gt;
&lt;p&gt;5. When write to data store is finished for user1 then lock is removed from db.&lt;/p&gt;
&lt;p&gt;6. Before second write to data store for user2 locked is added by user2&lt;/p&gt;
&lt;p&gt;I also though about using this solution on interfaces. When user click on item (for edit) user is informed that another user started editing this and and changes might be lost.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m open for any comments and suggesting who to address the problem in other way or how setup process model to avoid problem at all.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Handle node exception and continue  process execution</title><link>https://community.appian.com/thread/76986?ContentTypeID=1</link><pubDate>Wed, 07 Oct 2020 15:01:29 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:c69bfe13-aeea-44a6-91cb-6f718d7b47ad</guid><dc:creator>Robert Shankin</dc:creator><description>&lt;p&gt;Can we talk about why the heightened concern regarding write to data store (w2ds) failures?&lt;br /&gt;This is a long established product feature that&amp;#39;s essentially reliable.&lt;/p&gt;
&lt;p&gt;Are you experiencing a high frequency of failures in this node?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Handle node exception and continue  process execution</title><link>https://community.appian.com/thread/76985?ContentTypeID=1</link><pubDate>Wed, 07 Oct 2020 14:59:39 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:0207eb33-9aa0-4fe3-af10-c901e7b4b957</guid><dc:creator>Robert Shankin</dc:creator><description>&lt;p&gt;Endorsed!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Handle node exception and continue  process execution</title><link>https://community.appian.com/thread/76974?ContentTypeID=1</link><pubDate>Wed, 07 Oct 2020 09:35:22 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:d4efb115-b183-4d06-9f21-0b625d34af8d</guid><dc:creator>sandeepd</dc:creator><description>&lt;p&gt;&lt;a href="/members/jakubf0001"&gt;Furman&lt;/a&gt;Unfortunately we do not have any good solution for this.&lt;br /&gt;Kindly configure some rule or logic after start node&amp;nbsp; to capture details.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;br /&gt;Sandeep&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Handle node exception and continue  process execution</title><link>https://community.appian.com/thread/76973?ContentTypeID=1</link><pubDate>Wed, 07 Oct 2020 09:30:13 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:8371c6d4-4134-470d-ad38-1e358a0caa1e</guid><dc:creator>Furman</dc:creator><description>&lt;p&gt;&lt;a href="/members/sandeepd0003"&gt;sandeepd&lt;/a&gt; I don&amp;#39;t need any email. I need to do other steps when write to data store failed. I need to make sure within one process whether it was completed or not.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Handle node exception and continue  process execution</title><link>https://community.appian.com/thread/76972?ContentTypeID=1</link><pubDate>Wed, 07 Oct 2020 09:27:05 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:2cf0dbaa-e837-4848-a65d-784a68121cc9</guid><dc:creator>sandeepd</dc:creator><description>&lt;p&gt;&lt;a href="/members/jakubf0001"&gt;Furman&lt;/a&gt;, Email alert Notification from Appian or after timer, add email Node, where you can customize the details and send.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Sandeep Deshmukh&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Handle node exception and continue  process execution</title><link>https://community.appian.com/thread/76971?ContentTypeID=1</link><pubDate>Wed, 07 Oct 2020 08:51:39 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:cffa6169-ac28-45a5-9f03-54b1d1ad4cae</guid><dc:creator>Furman</dc:creator><description>&lt;p&gt;Hi &lt;a href="/members/sandeepd0003"&gt;sandeepd&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Thanks for your response. One more question: what is the recommended way to check whether write to data store failed? query db?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Handle node exception and continue  process execution</title><link>https://community.appian.com/thread/76970?ContentTypeID=1</link><pubDate>Wed, 07 Oct 2020 08:34:27 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:a0d80a67-6b04-4b94-bfb3-12f7bf56ea19</guid><dc:creator>sandeepd</dc:creator><description>&lt;p&gt;Hi &lt;a href="/members/jakubf0001"&gt;Furman&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Please see below one of the approach that I can suggest. You can add delay after start node. If Write to DB breaks, after some time timer will start and trigger the flow.&lt;/p&gt;
&lt;p&gt;&lt;img src="/resized-image/__size/320x240/__key/communityserver-discussions-components-files/14/pastedimage1602059403348v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;br /&gt;Sandeep&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>