<?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>We have been taught that we should use byreference() function to pass pvs from p</title><link>https://community.appian.com/discussions/f/process/1292/we-have-been-taught-that-we-should-use-byreference-function-to-pass-pvs-from-p</link><description>We have been taught that we should use byreference() function to pass pvs from process to process. This saves memory. As it relates to a CDT, we are being instructed not to pass a CDT to a sub process as a byreference() function. 1. Why is this? 2. If</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: We have been taught that we should use byreference() function to pass pvs from p</title><link>https://community.appian.com/thread/4479?ContentTypeID=1</link><pubDate>Wed, 02 Oct 2013 21:48:12 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:76bce3c1-bb51-4128-b286-6a5664335e76</guid><dc:creator>nathan.schmitz</dc:creator><description>Once you pass a CDT by reference in a long running instance, you&amp;#39;ll never be able to update that CDT without breaking your existing instances.  There are some workarounds but they often require significant effort to implement.&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: We have been taught that we should use byreference() function to pass pvs from p</title><link>https://community.appian.com/thread/4477?ContentTypeID=1</link><pubDate>Wed, 02 Oct 2013 20:10:32 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:8c4bc5f9-d5b5-4b97-af76-c6df684a506b</guid><dc:creator>Mike Cichy</dc:creator><description>Keith, it is not that you *could* have an issue, you *will* have an issue. None of your existing instances calling subprocesses are going to work and there is no way to back out of it. You would have to delete all existing instances and start new ones. We cannot stress more what the impact of this is.&lt;br /&gt;As for passing CDTs by value, as long as the new CDT has supported changed (additional fields, removed restrictions) then your subprocesses are going to work fine with old CDTs cast into their new version in subprocess.&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: We have been taught that we should use byreference() function to pass pvs from p</title><link>https://community.appian.com/thread/4476?ContentTypeID=1</link><pubDate>Wed, 02 Oct 2013 19:22:33 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:43155ca9-0096-4a49-8f27-a8827f591ec3</guid><dc:creator>Keith</dc:creator><description>Are you saying that the memory savings is now not as important?    We have what is called a parent process that then calls the worker task process where all the tasks live and this sub will archive in 30 days.   When a process is started the calling to the sub process is rather immediate.   With this use case, I do not think a byreference call to this sub process is an issue.   I agree, if we have another sub process call later that uses a CDT that has been changed,  we could have an issue.&lt;br /&gt;Even if you do not byreference, passing a CDT to a sub process will cause an issue if the CDT in the sub process does not match the same CDT version of the calling process.   How do you deal with this scenario???   It seems your still doomed to have an error for longer running processes that call a sub process.&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: We have been taught that we should use byreference() function to pass pvs from p</title><link>https://community.appian.com/thread/4475?ContentTypeID=1</link><pubDate>Wed, 02 Oct 2013 18:44:57 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:33c86b01-35a4-431f-9f27-89417ba43f29</guid><dc:creator>nathan.schmitz</dc:creator><description>Passing CDTs byreference() will cause errors to occur when the version of the CDT is different between the two processes.  Thus if you pass CDTs by reference in long running processes, and you update the CDT, the inflight processes will throw an error when it triggers a new sub process that attempts to use the newest version of the CDT.&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>