Movimentar solicitação anexando arquivo via API

Preciso movimentar uma solicitação via API, inserindo valores em 2 campos e 1 QRCode no anexo da solicitação.
Vi que o método requests/{ProcessInstanceID}/move faz a movimentação, porém estou com 2 problemas:
1 - Quando chamo o método via api, mesmo o usuário sendo o responsável pela tarefa estou recebendo o erro:
“code”: “BPMProcessTaskNoLongerUnderYourResponsibilityException”,
“message”: “Esta tarefa não está mais sob sua responsabilidade!”,
“detailedMessage”: “Verifique se a atividade já não foi movimentada por outro usuário ou foi cancelada durante o processamento.”

2 - não há campo para inserir os anexos, como posso fazer isso?

Esse é o body da minha requisição:
{
“movementSequence”: 38,
“assignee”: usuario.teste,
“targetState”: 4,
“targetAssignee”: usuario.teste,
“subProcessTargetState”: 0,
“comment”: “Teste via postman”,
“asManager”: false,
“formFields”: {
“ds_link_pesquisa”: “link.com”,
“ds_link_pesquisa_titulo”: “titulo”
}
}

Olá,

Sobre o erro “BPMProcessTaskNoLongerUnderYourResponsibilityException” é necessário se certificar que o “movementSequence” seja o correto. Você pode verificar no dataset “processHistory” através da coluna “processHistoryPK.movementSequence”.
Já a respeito do anexo, a API REST por enquanto não implementa essa funcionalidade. É possível apenas através do webservice SOAP (ECMWorkflowEngineService) com o método saveAndSendTask.

1 curtida

Eu usei essa API numa widget com o usuário logado sendo o responsável pela atividade.

Não precisei enviar o movementSequence na requisição.

No assignee eu indiquei a matrícula do usuário responsável pela atividade. Mesmo se eu estivesse logado como um usuário substituindo o responsável, no assignee precisava ser a matrícula de quem estava como responsável (no caso de substituto o Fluig fez a movimentação normalmente e marcou no histórico que era substituindo).

Pelo que entendi o targetAssignee também só é obrigatório se houver uma lista de possíveis responsáveis, por exemplo, se a targetState tiver a atribuição Por Grupo ou Por Papel. No meu caso a atividade seguinte só tinha 1 possibilidade de responsável (no caso usando mecanismo customizado), por isso não precisei informar a targetAssignee.

Sinceramente até agora não entendi o motivo/necessidade de informar a movementSequence, pois com ela é só uma dificuldade a mais pra pesquisar no histórico em qual movimento está. Talvez em alguma versão do Fluig isso seja obrigatório, mas atualmente usando o Fluig 1.8.2 e no meu caso específico não precisei desse parâmetro. Assim como também não informei o subProcessTargetState, já que não tinha subprocesso.