Issue with API when setting an attribute in a process

I have one process with one has one attribute named “PaymentTransactionID”, of type String.
Using Together WF Editor, I configured a human task with the extended attribute of name VariableToProcess_UPDATE, and value “PaymentTransactionID”.

When the process is in a human task, there is a button that invokes an external Web Service to execute an automatic transaction.
When the transaction is complete, the external service uses the CMDBuild API to store a string in the above process’ attribute (/cmdbuild/services/rest/v3/processes/Payment/instances/, method: PUT)

The problem is:

  • while still in the human task, if I query the DB I can see the string properly set for the process instance;
  • when I complete the task and go to the next one, the attribute in the DB is set back to its default (empty string).

Is it an issue or there is a proper way to use the REST API with process’ attributes?
How should I configure the attribute in the process?


I have a similar issue: in my case, the problem seems related to the concurrent access of the process card that is open in CMDBuild and the attribute changed by the API.
If you close and reopen the card (e.g. to advance to the next task in the workflow), then the value of the attribute is correct (the one that was updated through the API).

I didn’t find a solution or a workaround yet, don’t know if it is an issue with the workflow engine or CMDBuild implementation.