<?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>Using Json string instead of CDT in process model (long running)</title><link>https://community.appian.com/discussions/f/best-practices/12964/using-json-string-instead-of-cdt-in-process-model-long-running</link><description>Currently in our workflow, the processes are very long lived (approximately 300,000 active at a time). So, any change we make in the CDT won&amp;#39;t get affected on the older processes. Which makes our job a little complex to write logic which is always backward</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: Using Json string instead of CDT in process model (long running)</title><link>https://community.appian.com/thread/58323?ContentTypeID=1</link><pubDate>Wed, 25 Jul 2018 09:29:14 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:0ab30f37-67e8-4326-845c-3bf98c29c0a6</guid><dc:creator>aksharc</dc:creator><description>Thank you &lt;a href="/members/harrisont606"&gt;harrisont606&lt;/a&gt;  and &lt;a href="/members/robert.shankin"&gt;Robert Shankin&lt;/a&gt; for the valuable feedback.&lt;br /&gt;
&lt;br /&gt;
My initial thought was that because JSON is going to be saved as Text type, if the structure of the data changes the process variable won&amp;#39;t need any modification. The only place I will have to change is in the Interface/Expression Rule, which will work on the older processes. But I see the points laid out and feel that the CDTs are the better way to move ahead.&lt;br /&gt;
&lt;br /&gt;
Basically, we currently have a process-centric workflow model which causes the long lived processes in the environment. And now we are moving towards record-centric approach to avoid the long lived processes.&lt;br /&gt;
&lt;br /&gt;
Again, thank you all for the suggestions and pointing us to the correct direction.&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using Json string instead of CDT in process model (long running)</title><link>https://community.appian.com/thread/58313?ContentTypeID=1</link><pubDate>Wed, 25 Jul 2018 04:05:54 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:13a61929-2d07-4c34-9078-02ab57b2cc79</guid><dc:creator>Robert Shankin</dc:creator><description>I agree with &lt;a href="/members/harrisont606"&gt;harrisont606&lt;/a&gt; &amp;amp;  : &lt;br /&gt;
This is a creative idea. &lt;br /&gt;
But, I would be concerned that you&amp;#39;re inviting too much risk if you do this.&lt;br /&gt;
&lt;br /&gt;
As you noted, you&amp;#39;re coping with a process maintenance consideration.&lt;br /&gt;
That said, one of the last thing you want to do, where maintenance is concerned, is introduce extremely novel, or unorthodox design patterns.  It&amp;#39;s likely to make maintenance more difficult in the long run. &lt;br /&gt;
If this were some sort of &amp;quot;silver bullet&amp;quot;, it would likely have become fashionable a long time ago.&lt;br /&gt;
&lt;br /&gt;
If you suspect that your CDTs are going to be subject to frequent changes, you&amp;#39;re on the right track to move towards short-lived processes.  What can you do to eliminate the occurrence of of those few processes that stay alive too long?&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using Json string instead of CDT in process model (long running)</title><link>https://community.appian.com/thread/58309?ContentTypeID=1</link><pubDate>Tue, 24 Jul 2018 23:08:56 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:c10fc854-1be7-413a-b9a3-514ef7c3701d</guid><dc:creator>aloks0189</dc:creator><description>Agreed, it&amp;#39;s not a best practice to choose json string instead of CDT. &lt;br /&gt;
&lt;br /&gt;
There are several reasons why you should opt for CDT approach while compared to json string.&lt;br /&gt;
&lt;br /&gt;
You might face some issues while working with json in Appian, when your CDT contains a date / datetime field value, while converting it to json, it&amp;#39;s format gets change than the actual, due to which you won&amp;#39;t be able to persist that dictionary into db(because the date format will be other than Appian date format), hence you need to do some manipulation to resolve that.&lt;br /&gt;
&lt;br /&gt;
Also, CDT organises your data in proper structure(list of attributes into one object).&lt;br /&gt;
&lt;br /&gt;
If process fails, it&amp;#39;s easy to debug that while working with CDT while Compared to json string.&lt;br /&gt;
&lt;br /&gt;
While using CDT, you can even have character restrictions for each attribute of the CDT (if required) whereas json string can&amp;#39;t.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you are only concerned about multiple and long living process instances, then json string won&amp;#39;t help you, instead you need to build your process light weight by following below mention steps:&lt;br /&gt;
&lt;br /&gt;
Avoid defining multiple process variables instead define less variabls, for example: applicationId , processInitiator and perform most of the db operation on-demand via interface. I know, it will be a bit difficult to debug if something goes wrong, but still this will be the better approach while compared to json string. And also this will avoid any performance issues on server, because every single instances will only have 2 - 3 process variables of type (non-cdt and non-array). Hence your each individual process will hardly contain few nodes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hope this helps.&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using Json string instead of CDT in process model (long running)</title><link>https://community.appian.com/thread/58299?ContentTypeID=1</link><pubDate>Tue, 24 Jul 2018 16:21:30 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:6de73989-08e8-4bcd-a70a-178d5c9f6e30</guid><dc:creator>harrisont606</dc:creator><description>I don&amp;#39;t think you will find anything saying this is a good practice in the Appian guidelines. &lt;br /&gt;
How will using a JSON string solve your issue? You will still have to somehow modify your old processes to have whatever values you want to store in the JSON.&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>