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
Replies
11 replies
Subscribers
5 subscribers
Views
4132 views
Users
0 members are here
Share
More
Cancel
Related Discussions
Home
»
Discussions
»
Process
Does Appian support Nested Multiple CDTs
nimishan
over 7 years ago
We are using "Set External P Vs Activity" plug-in. We are getting an error as "Nested multiples are not supported, while we are trying to set an object which has nested CDT in it. Is there anyway this plug-in can handle multiple nested CDTs.
e.g. Refer attached document for details
OriginalPostID-251896
NestedCDT.tif
Discussion posts and replies are publicly visible
0
chetany
A Score Level 1
over 7 years ago
Nested Multiple CDTs are supported by Appian - you can create such CDTs. But, it seems the plugin you mentioned is not able to handle it.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
nimishan
over 7 years ago
so, do you mean to say "Set External P Vs Activity" is not supporting nested CDT's?
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
rodgraham
Certified Lead Developer
over 7 years ago
Seems to be what the error is reporting. What's the use case for using the plugin there may be other ways of achieving what you want
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
nimishan
over 7 years ago
which other plug-in I can use to set the PV(object)?
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
rodgraham
Certified Lead Developer
over 7 years ago
It depends on what you're trying to do there's many ways to set a pv in a process. You've potentially got sending a message to the model you want to update or use IFM manager plugin. Do you have running instances already that need updating? I'm assuming the process model you're trying to update is not connected to the one you're updating from i.e it's not the parent process to a sub process
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
Arun Theja Muthyalu
Certified Lead Developer
over 7 years ago
Can you let us know what you are trying to achieve with the plugin you have mentioned? BTW, Appian do support nested CDTs and best practices suggest not to contain more than 1 level of nested CDTs.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
chetany
A Score Level 1
over 7 years ago
agree with @rodgraham. Send/receive message or IFM manager plugin could be used. Yet another possible solution is this (assuming that the CDT PV you are setting gets its value from queryentity/queryrule). Instead of passing the whole CDT to the plugin, just set a Boolean flag. Have a listener in the target process. The listener should then query the DB whenever the flag is true, after it queries the DB and sets the value of CDT, it should reset the flag.
This could also be done via Send/Receive message.
In fact if you use Send/Receive message, you will reduce dependency on the third-party plugin.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
sikhivahans
over 7 years ago
@nimishan If Set PV doesn't work, opt for IFM Manager. Also, this is much easy when compared to Set PV and the only additional thing you need to do here is, convert the value(that you would like to assign to target PV) to text which can be achieved using externalise() function and assign the resultant text to the desired nested cdt PV in the target process. This should help you in updating the nested cdt PV with the desired value and should solve your issue.
If it's an in-flight modification, I would suggest opting for either IFM or Set PV Get PV but not any other.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
chetany
A Score Level 1
over 7 years ago
@nimishan, decide on what approach you find suitable. Approach given by @sikhivahans is also good.
A few points to note:
1. Set PV is synchronous - the smart service will not proceed unless the "Set/Get PV" updates the PV in the target process. So, you should use this if you do not want to proceed further execution unless the value in target process is updated.
2. IFM - I am not sure if it is synchronous or not.
Send/Receive message is asynchronous, use this if you don't want to wait for the PV to get updated in the target process. If you intend to use Send/Receive message, make sure that you target the process instance using the process id. Its performance friendly. And good thing is it can reduce any dependency on plugins. Its a good thing to rely on in-built methods as long as you can.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
0
sikhivahans
over 7 years ago
Correct, if it's all about in-flights, its worth depending on IFM/Set PV(no need to worry even though these are plugins, as this will be a onetime activity to update/fix certain things) and if it's a design issue, then it might be worth considering options such as messaging.
Cancel
Vote Up
0
Vote Down
Sign in to reply
Verify Answer
Cancel
>