Dear community,
currently, I am facing a requirement in the project I am working on.
The requirement says that at any time the admin user needs to know (1) who has done (2) what action (3) with what values at what time(4).
So first, I set History Level to Full to log everything. Then, I had a look in the Cockpit history tab in Camunda Enterprise Edition and see which user has completed what task. However, I am not able to see the variables the user has changed while completing the task. Have a look at the following picture.
Now I had a look in the database. The first table I recognized was the table ACT_HI_OP_LOG . This table provides more or less the data I am able to see in the cockpit (picture). I guess the cockpit loads the data exactly from this table.
Another interesting table is ACT_HI_VARINST . In this table every modification on variables is persisted. So in this table I see my changes that were maded on my variables. However, in this table the operater is not persisted. So, I can see the variable modifications but not the actor who modified the variables.
Further interesting tables are ACT_HI_DETAIL , ACT_HI_ACTINST. In the table ACT_HI_DETAIL I can see the variables modifications, too. But I can not see the actor like in ACT_HI_VARINST.
To get the information who changed which variable, I guess, I need to connect the tables ACT_HI_VARINST and ACT_HI_OP_LOG . But again, I am facing a problem. As far as I can see, those two tables have nothing in common that is convenient for me. Both tables are referencing the execution and process instance. But each execution/process instance has multiple variable changes and lots of user operation logs. So I cannot connect the variable changes and the user operations logs by using the table execution. I can connect them when I use the process instance id and the time. But I think this is kind of ugly. For the same process instance there should be a user operation (ModifyVariable/Complete) and a new Variable Instance at the same timestamp. However, it is not the same millisecond so it is not precise. The likelihood is high that the match is correct, nevertheless there is no evidence.
I have analysed the connections but I haven’t found any connection between the operation log table and the Variable Instance table.
Can you provide me with information to solve this problem? Is it solvable at all?
Btw: We are using Camunda Cockpit/Core 7.6. I know this version is outdated. We are planning to update soon.
I apreciate all kinds of support.