Atividade que dispara múltiplo processo

Temos um processo que em determinada atividade é necessário iniciar vários subprocessos, aguardar que eles sejam finalizados e então seguir para a etapa seguinte. Não podemos usar o ad-hoc, pois as subprocessos são customizados. Temos alguma solução para iniciar vários subprocessos e aguardar a conclusão de todos para a atividade no processo pai seguir?

Eu tenho uma demanda parecida. Porém no seu caso esses subprocessos teriam execução paralela ou serializada (um inicia após o outro finalizar) ?

Roberto, conseguiu achar uma solução? tenho a mesma necessidade e ainda não consegui entender um jeito de fazer.

Conseguiu a solução na época? Estou com essa mesma necessidade.

pode tentar usar esse evento de processo e fazer alguns ajustes.

var processId = "WFDESPESASESPECIALISTA"; var ativDest = 7; var listaColab = new java.util.ArrayList(); listaColab.add(id_sel_aprovador_nvl1); var obs = ""; var completarTarefa = true; var valoresForm = new java.util.HashMap(); var modoGestor = false;

valoresForm.put("nm_solicitante", nm_solicitante); valoresForm.put("dt_solicitacao", dt_solicitacao); valoresForm.put("hr_solicitacao", hr_solicitacao); valoresForm.put("id_solicitante", id_solicitante);

valoresForm.put("periodo_conta", periodo_conta); valoresForm.put("cod_filial", cod_filial); valoresForm.put("cod_filial_oculto", cod_filial_oculto); valoresForm.put("nm_filial", nm_filial); valoresForm.put("nm_conta", nm_conta); valoresForm.put("saldo_conta", saldo_conta); valoresForm.put("orcado_conta", orcado_conta); valoresForm.put("descricao_despesa", descricao_despesa); valoresForm.put("sel_aprovador_nvl1", sel_aprovador_nvl1); valoresForm.put("periodo_conta", periodo_conta); valoresForm.put("cod_filial", cod_filial); valoresForm.put("cod_filial_oculto", cod_filial_oculto); valoresForm.put("nm_filial", nm_filial); valoresForm.put("nm_filial_oculto", nm_filial_oculto); valoresForm.put("nm_conta", nm_conta); valoresForm.put("nm_conta_oculto", nm_conta_oculto); valoresForm.put("saldo_conta", saldo_conta); valoresForm.put("orcado_conta", orcado_conta); valoresForm.put("descricao_despesa", descricao_despesa); valoresForm.put("sel_aprovador_nvl1", sel_aprovador_nvl1); valoresForm.put("id_sel_aprovador_nvl1", id_sel_aprovador_nvl1);

//valoresForm.put("especialista", especialista); valoresForm.put("id_especialista", id_especialista);

var retorno = hAPI.startProcess(processId, parseInt(ativDest), listaColab, obs, completarTarefa, valoresForm, modoGestor);

log.info(retorno);

log.info(retorno.get("iProcess"));

}

if (tem_especialista == "nao"){

var processId = "WFAPRVSEMESP"; var ativDest = 6; var listaColab = new java.util.ArrayList(); listaColab.add(id_sel_aprovador_nvl1); var obs = ""; var completarTarefa = true; var valoresForm = new java.util.HashMap(); var modoGestor = false;

valoresForm.put("nm_solicitante", nm_solicitante); valoresForm.put("dt_solicitacao", dt_solicitacao);

var retorno = hAPI.startProcess(processId, parseInt(ativDest), listaColab, obs, completarTarefa, valoresForm, modoGestor);

log.info(retorno);

log.info(retorno.get("iProcess"));

hAPI.setCardValue("nrSolicCriada",retorno.get("iProcess"));

}

Igor como você amarraria os subprocessos ao processo principal impedido que o primeiro seja movido ou finalizado?

Ou então você pode simplesmente enviar para um Fork (Paralelo) seguidos de seus subprocessos, já que ele vai continuar só se todos os subprocessos vão parar no Join.

O problema é que eu nunca sei quantos subprocessos serão iniciados, por isso tenho que iniciá-los como sub-processo, porem preciso monitorar sua conclusão.

Se você tem um número máximo de subprocessos, pode usar a atividade inclusiva, que é um fork com condicionais para indicar se aquela thread será iniciada ou não. Se o número é completamente aleatório, aí realmente via customização é o mais viável, principalmente se precisar dos dados do formulário.