Appian Community
Site
Search
Sign In/Register
Site
Search
User
DISCUSS
LEARN
SUCCESS
SUPPORT
Documentation
AppMarket
More
Cancel
I'm looking for ...
State
Suggested Answer
Replies
8 replies
Answers
1 answer
Subscribers
7 subscribers
Views
4738 views
Users
0 members are here
Share
More
Cancel
Related Discussions
Home
»
Discussions
»
General
Is there a way we can update a CDT on all running process instances?
Brandon
over 9 years ago
Is there a way we can update a CDT on all running process instances?
We are able to add/change fields within a CDT and using the dependency checker to update all relevant process models, but the running instances remain unchanged, which defeats the purpose as this particular CDT is used on thousands of active processes.
thanks
OriginalPostID-147707
OriginalPostID-147707
Discussion posts and replies are publicly visible
0
Tim
Certified Lead Developer
over 9 years ago
Check out the Process Upgrade plugin which should achieve what you're requiring:
forum.appian.com/.../summary
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Reject Answer
Cancel
0
Eduardo Fuentes
Appian Employee
over 9 years ago
Just keep in mind that as explained here: ttps://forum.appian.com/suite/help/7.9/Process_Upgrade.html#Requirements_for_Upgrade
"For example, if the target model has a PV (`pv!person`) of type Person^2 and the source model has the same PV but of type Person, the process will not upgrade because the CDT types are different."
Therefore a possible solution is to add add a process variable of the new type leaving the existing one pointing to version ^X of the CDT then remap nodes to point to the new variable which will be indeed of the updated verison.
For backwards compatibility in processes Appian doesn't let you update Person^2 to Person since there can be places where the mappings to fields won't match.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
sairakeshn
over 9 years ago
Just an FYI, If your objective of updating CDT on all running instances is to make sure that existing processes don't break anywhere, you don't necessarily have to update CDT. The existing instances will only break at the places where you have passed a CDT by reference into any of the sub process.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
Brandon
over 9 years ago
thanks for that. that is exactly my issue now. the processes still throw errors because we have the CDT passed by reference through a number of sub processes. Any idea how we can resolve this?
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
sairakeshn
over 9 years ago
Passing CDT by reference is not one of the recommended best practice. There are very few use cases for passing CDT by reference. Instead of passing CDT by reference, pass it by value (create a new variable of same CDT type in output section) and do the process upgrade. You should do this before changin the CDT and doing impact analysis.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
janakik
over 8 years ago
Hi Eduardo
1. I have added new task inputs to a task and published PM.
2. Upgraded the active processes to the current version of PM using Process Upgrade plugin.
3. I could see the new task inputs added for the active instances.
However when i open the task from tempo i see an error "Could not find variable 'ac!'". (ACP value is getting from a rule).
Here i cannot use ACP as a new parameter because it will impact the existing instances so am directly passing value to ACP from the rule.
Why does the task throws an error even though the task is updated with new input?
Thanks!
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
Eduardo Fuentes
Appian Employee
over 8 years ago
Maybe a set of screenshots will help me understand the root cause of your issue.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
janakik
over 8 years ago
Thanks. We got the issue resolved.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel