Process execution history

Hello Team,

can we show to users the history of their process execution with states : Pending, in execution, finished … in tasklist portal ?

Example :
a table with : ProcessName - ProcessId-State-User

Thank you

Sure, you can query the engine’s rest api for the history of a specific process instance and then display that data in anyway you like to an end user.

Thank you Niall for your answear.

In this case, can we show the data in camunda portal for all the day, i mean a permanent table with dynamically updated values

Thank you

Certainly, you could periodically call the engine and then update your front end accordingly.

Yes, but i don’t have an external front-end application, i would to use the tasklist application as user GUI.

I see, well task list doesn’t offer that out of the box - it’s more of a cockpit feature.
The way tasklist is designed it really only cares to give a view of the processes from the perspective of a single task. Cockpit has a higher level view and can see the perspective of a process instance or a process definition.

I agree with you but i can’t change or add a widget on camunda cockpit.

The solution is to create another frontend application for reporting.

You can if you like actually, cockpit does have a plugin mechanism

This might be easier because you have lot more choice and freedom about how you’d like it to look.

Probably not exactly what you’re looking for, but for reference you can get process instance history listing:

/rest/history/process-instance?sortBy=startTime&sortOrder=desc&maxResults=

And task history for instance details looks like this in groovy:

    List<HistoricActivityInstance> activityInstances = historyService.createHistoricActivityInstanceQuery()
        .processInstanceId(processInstanceId)
        .orderPartiallyByOccurrence()
        .asc()
        .list()
        .findAll {
            ![
                'exclusiveGateway', 'noneEndEvent'

            ].contains(it.activityType)
        }

    [
        activityInstances: activityInstances.collect { ai ->
            [
                activityInstance: ai,
                variables: historyService.createHistoricDetailQuery()
                    .processInstanceId(processInstanceId)
                    .variableUpdates()
                    .activityInstanceId(ai.id)
                    .list()
                    .collect { HistoricDetailVariableInstanceUpdateEntity var ->
                        "{name: ${var.name}, type: ${var.typeName}, value: ${var.value}}".toString()
                    }
            ]
        }
    ]
1 Like