Hi all,I have defined a process variable in a process model with CDT type. It is working fine in all environments. Now I am adding some new fields into the CDT and published the datastore. Its working fine in dev. When I moved these changes to higher environment( just moving the CDT and scripts and not the process model where the pv is defined as CDT type), its not working as expected. The newly added fields are not present in the CDT type process variable in the process history while debugging and the pv datatype shows with ^ symbol. Can anyone help with this?
Discussion posts and replies are publicly visible
Active process instances will keep the old version indicated by the ^. Instances created after the deployment will pick up the new version.
You write "its not working as expected". What exactly is your expectation?
Hi stefan,thanks for replying. Actually the cap symbol is coming in new process instances only. Thats why I am little confused on it.
Documentation says: "After updating the data type, a new version is created unless the only change is to the data type description or its visibility in data type pickers. When a new version of a data type is created, all objects (excluding running processes) immediately begin using the new version of the data type."
docs.appian.com/.../Custom_Data_Types.html
Got it, thanks stefanJust one more doubt. Could this issue might be caused since the CDT was not modified by downloading the XSD and modifying it and reuploading?
No, it does not matter how you change the CDT.
BTW, is this an existing app? For new apps I go all in on records and avoid CDTs and data stores.
Its an existing application. So thats why these CDT changes
, I was debugging the issue. I found that test datastore is still having the old cdt(showing with ^ symbol) even though the new CDT has been deployed to test. I am not able to understand this behaviour. Any insights on this?
When the documentation says "immediately begin using the new version of the data type", the actual behaviour depends a bit on the type of the dependent object. A process model will be re-deployed automatically, same for data stores. Expressions und Interfaces pick up the new type automatically.
So, when you open the process modeller on your higher environment, then, in parallel, deploy a modified CDT from the lower environment, a new version of the model is created in the background. When you now start the process, you run the old version.
Does this resonate with you?
I am not able to catch fully but you are saying that if i have opened a process model and in the parallel background, CDT has been deployed. Now if I try to start the process model, it will still run with the old CDT since I had opened it in the first place.Sorry if I misunderstood it but I am not able to understand why this issue is occuring in higher environments and not in dev. Especially that data store still having the old CDT version. We even published the datastore in higher environment, but the issue has not yet been resolved.
It is a bit difficult to analyse this from remote. What I want to say is, that depending on what exactly you are doing, you might get into a situation as you described.
E.g. a datastore can get a new version at deployment time, but that new version is not published. Typically because the automatic schema management is not enabled. Then you end up in a slightly inconsistent state. The CDT is not deployed because the data store cannot make the changes in the DB. And your processes then still use the last published version instead of the new one.