Appian Community
Site
Search
Sign In/Register
Site
Search
User
DISCUSS
LEARN
SUCCESS
SUPPORT
Documentation
AppMarket
More
Cancel
I'm looking for ...
State
Not Answered
+1
person also asked this
people also asked this
Replies
9 replies
Subscribers
9 subscribers
Views
3275 views
Users
0 members are here
Share
More
Cancel
Related Discussions
Home
»
Discussions
»
General
Constant fetching value even after deletion.
Amit Mishra
over 8 years ago
I observed a strange behavior in Appian 16.2,
A constant value is reflecting in one interface whereas I have deleted that constant permanently few days ago. I re-verified and that constant was nowhere in the environment. Also, I tried creating a new constant with same name and it was not showing any error like “Name already exists” which is surprising. Once new constant with same name created then the new value reflected in the interface.
Is this an Appian bug? or, Why is it happening?
OriginalPostID-253083
Discussion posts and replies are publicly visible
0
aloks0189
Certified Lead Developer
over 8 years ago
@amitm887 This happens because of Cache, even few days back i too face the same issue, i just switched from my current browser to Internet Explorer and as expected my interface got broken as the constant was not available anymore.
So as Appian works with cache, so i would say cache could be the probable reason behind this. So as per my understanding we cannot call it as bug
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
chetany
A Score Level 1
over 8 years ago
It is not likely a bug . The behavior you have described is applicable to expression rules also. (Create an expression rule, use it in an interface and then delete that expression rule. The interface still works.) I too have observed it on 16.2
This behavior was common in older versions of Appian (6.x). I think it was changed in some later version. It may have been reverted back. It actually makes sense.
The reason:
Imagine you have lot of process instances and interfaces using the constant/expression rule.
If the constant/expression rule is deleted and the reference from Appian system is also removed automatically, the running process instances may pause due to exception.
Hence, Appian used to keep the references to those expression rules/constants (even when they may have been deleted from the environment).
Now, if you create a new expression rule/constant with same name as the deleted one, the dependent objects will automatically pick the newer design object, and hence the dependent objects will automatically refer to new code.
It is in a way good thing - your old instances don't pause by exception, also when you create new constant/expression rule with same name, the dependent objects seamlessly work with the new design object.
Still, I am also surprised that this behavior is still there, I though that this behavior was changed in some Appian version.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
chetany
A Score Level 1
over 8 years ago
1. Its not related to the browser cache. You can delete the browser cache and it will still behave the same. You can also switch browser.
2. Its not specific to 16.2. Even 16.3 has same behavior.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
chetany
A Score Level 1
over 8 years ago
3. Restarting Appian/JBoss also does not remove the references to the deleted design objects(rules/constants). After server restart also, the reference will be there and running process instances/and dependent interfaces will continue to work.
Some may find this weird.
But, its a good decision - in respect to robustness of the system.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
kondetiv
over 8 years ago
@chetan really useful information. Thank you so much.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
Amit Mishra
over 8 years ago
Chetan, Thanks for the information but then question arise that, how long it will persist?
Not a bug,OK, but this is not a define behavior. Isn't it?
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
chetany
A Score Level 1
over 8 years ago
You can check this link:
forum.appian.com/.../Expression_Rules.html
It mentions this:
"Deleting an expression rule prevents users from further viewing or editing it. However, the last version of the rule is still available to be used in processes, record views, and reports"
Similarly for constants from documentation:
"Deleting a constant prevents users from further viewing or editing it. However, the last version of the constant is still available to be used in processes, record views, and reports."
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
davids735
over 8 years ago
It should be gone from the moment the last process that references it gets archived. If new processes that reference it get made before the old ones are archived, it could persist indefinitely. Once all instances of processes that refer to it are gone, it should be removed from Appian's cache. Fortunately for me, this is also true of subprocess models.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
chetany
A Score Level 1
over 8 years ago
@davids735, however the current behavior is not the same as what you have described Even if there are no process instances or process models referencing the deleted rule/constant, the last version of deleted expression rule/constant will exist in the system as per the current behavior.
I see your point, it's similar to garbage collection concept. Since the deleted expression rule/constant is no longer referenced in any process instance/process model or other design objects, there is no need to keep its last version in the system, it can be deleted...
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel