<?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>I recently updated a CDT, which is referenced in a process model subprocess. The</title><link>https://community.appian.com/discussions/f/process/886/i-recently-updated-a-cdt-which-is-referenced-in-a-process-model-subprocess-the</link><description>I recently updated a CDT, which is referenced in a process model subprocess. The CDT is passed by reference to the subprocess. Existing processes on my development server are now broken because they can&amp;#39;t call the subprocess with the older version of</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: I recently updated a CDT, which is referenced in a process model subprocess. The</title><link>https://community.appian.com/thread/2968?ContentTypeID=1</link><pubDate>Mon, 24 Jun 2013 19:04:59 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:2fef31c7-47de-4d87-86e7-c5534fdd53c9</guid><dc:creator>danielh366</dc:creator><description>That&amp;#39;s a great tip. I&amp;#39;ll need to think about how that would look in this particular process.&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I recently updated a CDT, which is referenced in a process model subprocess. The</title><link>https://community.appian.com/thread/2967?ContentTypeID=1</link><pubDate>Mon, 24 Jun 2013 10:00:33 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:0d452992-7f03-4d2f-b819-550bf64ce83c</guid><dc:creator>shelzle</dc:creator><description>In cases I need to share data between longer running processes my shared PV is of type text and contains the serialized data of my CDT. Serialization is done with the function externalize. An event that triggers on change of the CDT serializes the data and in the other process an event that triggers on change of the shared text PV deserializes it (function internalize) again. This seems a bit arkward at first but allows to share ANY data between the processes.&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I recently updated a CDT, which is referenced in a process model subprocess. The</title><link>https://community.appian.com/thread/2964?ContentTypeID=1</link><pubDate>Sat, 22 Jun 2013 02:28:21 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:1b09c802-5cfc-4186-9954-2b39865a9fb5</guid><dc:creator>danielh366</dc:creator><description>Because the CDT change I wanted to make was a minor one and optional, my workaround is to push the updates without the CDT&amp;#39;s to production.&lt;br /&gt;&lt;br /&gt;Afterwards I&amp;#39;m considering pushing the whole build (including the CDT&amp;#39;s) back from production to development just to make sure everything is in sync.&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I recently updated a CDT, which is referenced in a process model subprocess. The</title><link>https://community.appian.com/thread/2963?ContentTypeID=1</link><pubDate>Sat, 22 Jun 2013 02:25:39 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:a398e75f-2806-4fdc-899a-fed09a85adbe</guid><dc:creator>danielh366</dc:creator><description>I agree. I&amp;#39;m planning on taking a second look at refactoring my CDT-by-reference sub-processes as we speak. I&amp;#39;m not going to be able to address all of them, but there are some short-lived processes I can update.&lt;br /&gt;&lt;br /&gt;But this particular business process was a challenge to implement. It goes several sub-processes deep. The end-users required reports on a few of the inner sub-processes, some of which involve tasks that can take several days for the users to complete. They have their own dashboards.&lt;br /&gt;&lt;br /&gt;Fortunately the CDT&amp;#39;s I&amp;#39;m passing don&amp;#39;t require a lot of change. The reason I wanted to increase from VARCHAR 1000 to 2000 was because I needed to make that change in the database to support a necessarily long entry. I wanted to cover my bases and make the XSD match the change in the database lest the discrepancy come back to haunt me later.&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I recently updated a CDT, which is referenced in a process model subprocess. The</title><link>https://community.appian.com/thread/2962?ContentTypeID=1</link><pubDate>Sat, 22 Jun 2013 02:13:35 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:7a35f479-bf13-49f2-8a81-4df2c3edf786</guid><dc:creator>johnmac</dc:creator><description>Hi Daniel, We&amp;#39;ve done a lot of versioning of CDTs over the last few years, and have as a result gone back through our workflows and removed most passing by reference because of the sorts of issues you are experiencing.&lt;br /&gt;If you instead passs the parameter by value on input and map it on output, you don&amp;#39;t get the problem (in this case, Appian is smart enough to auto-convert most CDT changes). &lt;br /&gt;This is a shame, because you lose the benefits of by reference passing (performance / memory usage / simplicity). Given Appian can auto convert CDTs when passed by value, it would certainly be a good improvement if it also did it when passed by reference.&lt;br /&gt;There are still a few cases we use passing by reference, but only when we know the subprocess we are calling will ALWAYS return quickly (ie: has no user tasks, msg task, scheduled tasks, etc). That way their will never be running instances of them when you upgrade.&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I recently updated a CDT, which is referenced in a process model subprocess. The</title><link>https://community.appian.com/thread/2960?ContentTypeID=1</link><pubDate>Fri, 21 Jun 2013 20:07:06 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:385cdda1-039e-4f5e-844c-23d1459d5927</guid><dc:creator>danielh366</dc:creator><description>It seems to me that the by-reference CDT checking shouldn&amp;#39;t have to be so strict. It should be smart enough to read that an updated CDT is equivalent to the one it is configured to support.&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I recently updated a CDT, which is referenced in a process model subprocess. The</title><link>https://community.appian.com/thread/2959?ContentTypeID=1</link><pubDate>Fri, 21 Jun 2013 20:03:22 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:43d442ce-ea36-4cc7-9020-d6311488bfa9</guid><dc:creator>danielh366</dc:creator><description>I just tried the following:&lt;br /&gt;1. Start a process (A) with one version of CDT with VARCHAR 1000 set for a field&lt;br /&gt;2. Update the CDT to VARCHAR 2000 for that field&lt;br /&gt;3. Run a sub-process from process A to get the error&lt;br /&gt;4. Start another process (B) with the updated CDT&lt;br /&gt;5. Change the CDT back to VARCHAR 1000 for the field&lt;br /&gt;6. Run a sub-process from Process B to get the error&lt;br /&gt;7. Re-run sub-process from Process A to see what happens&lt;br /&gt;&lt;br /&gt;No dice: even with the original VARCHAR setting, Process A fails. It doesn&amp;#39;t matter if the CDT specification matches exactly.&lt;br /&gt;&lt;br /&gt;My last hope, before facing a production nightmare, is to omit the CDT&amp;#39;s from the application export, in hopes that on import to production, both the updated process models and existing processes will reference the unchanged CDT&amp;#39;s in production.&lt;br /&gt;&lt;br /&gt;We have no staging server, so I&amp;#39;ll have to try to test this out on Dev first.&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I recently updated a CDT, which is referenced in a process model subprocess. The</title><link>https://community.appian.com/thread/2952?ContentTypeID=1</link><pubDate>Fri, 21 Jun 2013 19:02:49 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:dfb80a73-33af-411b-b055-56917eba9fdb</guid><dc:creator>danielh366</dc:creator><description>This particular application relies on CDT&amp;#39;s by reference because the process contains inner loops: one Review to many Review Stages, one Stage to many Cycles.&lt;br /&gt;&lt;br /&gt;It&amp;#39;s absolutely necessary to encapsulate the stages and cycles as sub-processes, and it&amp;#39;s also necessary that the base process model be updated real time with the changes to the CDT&amp;#39;s from each cycle.&lt;br /&gt;&lt;br /&gt;When I decided to pass by reference, it seemed like the right decision because of the nature of this particular business process and because the CDT&amp;#39;s can be large and I wanted to conserve memory usage.&lt;br /&gt;&lt;br /&gt;Fortunately these CDT&amp;#39;s are pretty static. I hope I can reverse the changes by reverting the XSD&amp;#39;s or I&amp;#39;m going to have a very big problem with production processes.&lt;br /&gt;&lt;br /&gt;I wish the warning not to pass CDT&amp;#39;s by reference wasn&amp;#39;t buried in the documentation. I went to training AND read through the docs when I started developing on the platform, and still somehow missed this.&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I recently updated a CDT, which is referenced in a process model subprocess. The</title><link>https://community.appian.com/thread/2951?ContentTypeID=1</link><pubDate>Fri, 21 Jun 2013 18:48:47 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:eb1e2051-d187-4d6d-a0af-99fd07939dc7</guid><dc:creator>danielh366</dc:creator><description>I always run impact analysis, and then update. In addition to that I usually check the application dependencies to make sure there isn&amp;#39;t a dependency on a previous version of the CDT: someCdt^7 for instance.&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I recently updated a CDT, which is referenced in a process model subprocess. The</title><link>https://community.appian.com/thread/2950?ContentTypeID=1</link><pubDate>Fri, 21 Jun 2013 18:46:51 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:ebe590b2-a51c-440d-a63d-520a6195ddfe</guid><dc:creator>Mike Schmitt</dc:creator><description>Out of curiosity, did you run impact analysis on the updated CDT?  (i guess this wouldn&amp;#39;t apply if you&amp;#39;re talking about running instances, but I&amp;#39;m unclear as to whether you are or not)&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I recently updated a CDT, which is referenced in a process model subprocess. The</title><link>https://community.appian.com/thread/2948?ContentTypeID=1</link><pubDate>Fri, 21 Jun 2013 18:28:19 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:f61014b9-4491-4eb7-9f66-7b9e338ec29a</guid><dc:creator>danielh366</dc:creator><description>It&amp;#39;s odd that I haven&amp;#39;t experienced this before. Can I change the CDT XSD back to avoid problems during a push?&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I recently updated a CDT, which is referenced in a process model subprocess. The</title><link>https://community.appian.com/thread/2938?ContentTypeID=1</link><pubDate>Fri, 21 Jun 2013 16:21:30 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:06455a8d-34c4-4518-87cc-4faf5429260a</guid><dc:creator>akhilan</dc:creator><description>CDTs should not be passed by reference as they result in the issues that you are now experiencing. Appian&amp;#39;s documentation mentions this specifically. Here is the reference - &lt;a href="https://forum.appian.com/suite/wiki/72/Sub-Process_Activity"&gt;forum.appian.com/.../Sub-Process_Activity&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Check the Restrictions section in the above link.&lt;br /&gt;There are quite a few earlier posts related to this. Here is one of those reference posts - &lt;a href="https://forum.appian.com/suite/tempo/#!/news/entry/b-52733"&gt;forum.appian.com/.../&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I recently updated a CDT, which is referenced in a process model subprocess. The</title><link>https://community.appian.com/thread/2936?ContentTypeID=1</link><pubDate>Fri, 21 Jun 2013 03:31:51 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:4f646821-d1df-4760-a7c1-11ea1096b975</guid><dc:creator>danielh366</dc:creator><description>I did notice in the XSD for the updated CDT, that besides the updated VARCHAR length there was a differing &amp;lt;xsd:schema/&amp;gt; parameter.&lt;br /&gt;&lt;br /&gt;Instead of reading &amp;quot;xmlns:types1=...&amp;quot; like on the DEV server, it reads: &amp;quot;xmlns:types2=...&amp;quot; on PROD.&lt;br /&gt;&lt;br /&gt;But all the CDT&amp;#39;s seem to have similar variations.&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I recently updated a CDT, which is referenced in a process model subprocess. The</title><link>https://community.appian.com/thread/2935?ContentTypeID=1</link><pubDate>Fri, 21 Jun 2013 03:15:19 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:0e27757c-3756-452d-a36e-5aa9c2563b16</guid><dc:creator>danielh366</dc:creator><description>I tried modifying the input mapping on the sub-process node, but there is no way to map the existing process variables to the latest type of CDT expected by the sub-process node.&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I recently updated a CDT, which is referenced in a process model subprocess. The</title><link>https://community.appian.com/thread/2934?ContentTypeID=1</link><pubDate>Fri, 21 Jun 2013 03:02:47 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:71c09f69-1c5d-4274-a366-833044969441</guid><dc:creator>danielh366</dc:creator><description>I hope I don&amp;#39;t have to do that for all processes that reference the previous version of the CDT!&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I recently updated a CDT, which is referenced in a process model subprocess. The</title><link>https://community.appian.com/thread/2933?ContentTypeID=1</link><pubDate>Fri, 21 Jun 2013 03:01:22 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:680995db-5970-4520-b890-0f9b8a6dfbbd</guid><dc:creator>danielh366</dc:creator><description>The recommendation reads: &amp;quot;Modify the input mapping and start a new instance of the sub-process node.&amp;quot;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: I recently updated a CDT, which is referenced in a process model subprocess. The</title><link>https://community.appian.com/thread/2932?ContentTypeID=1</link><pubDate>Fri, 21 Jun 2013 03:00:54 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:48376387-3b9c-4a22-b56c-a8003cfc7589</guid><dc:creator>danielh366</dc:creator><description>The problem text on the generated alert reads: &amp;quot;The sub-process could not be started because the input mapping contained process parameters with incorrect types. &amp;quot;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>