Pude resolver el problema con la recomendación de Eduardo.
Adjunto
- crear un serviço en panel de control con el nombre WorkflowEngineService y haciendo referencia al servicio
(Ex.: http://localhost:8080/webdesk/WorkflowEngineService?wsdl )
Luego implementé en el evento del proceso afterstateleave la llamada al servicio, que lo que hace es recorrer un pai filho y le envía a cada uno una solicitud.
if (ativAtual == 14 && proximatarea == 19 ){
hAPI.setCardValue("c_estado", "Capacitación Ejecutada");
var processo = getValue("WKNumProces");
var campos = hAPI.getCardData(processo);
var contador = campos.keySet().iterator();
var count = 0;
while (contador.hasNext()) {
var id = contador.next();
if (id.match(/cusuarioparticipante__/)) { // aqui você pode colocar qualquer campo do seu Pai x Filho
var campo = campos.get(id);
var seq = id.split("");
var asistio = campos.get("c_asistencia" + seq[1]);
var user="";
if (asistio == 'SI'){
user = campos.get("cusuarioparticipante__" + seq[1]);
// Consulta o Dataset para ver si el empleado tiene usuario de fluig
var filtrousuario = DatasetFactory.createConstraint("login", user, user, ConstraintType.MUST);
var filtros = new Array( filtrousuario );
var dsusuarioactivo = DatasetFactory.getDataset("colleague", null, filtros, null);
if (dsusuarioactivo != null && dsusuarioactivo.rowsCount > 0 && dsusuarioactivo.getValue(0, "active") == true )
{
log.info("[AVISO] Usuario Activo para Enviar Formulario de Satisfacción Curso: " + dsusuarioactivo.getValue(0, "login"));
log.info("########## inicio webservice workflow");
var workflow = ServiceManager.getService("WorkflowEngineService");
var serviceHelper = workflow.getBean();
var serviceLocator = serviceHelper.instantiate("com.totvs.technology.ecm.workflow.ws.ECMWorkflowEngineServiceService");
var service = serviceLocator.getWorkflowEngineServicePort();
log.info("########## carregou serviço workflow");
log.info("########## Carrega Colaboradores do segundo processo");
var stringArray = service.getAvailableUsersStart("barbieri", "catafran2204", 1, "ProcesoEvaluaciondeSatisfacciondeCapacitaciones", 11, 0);
var field1 = serviceHelper.instantiate("com.totvs.technology.ecm.workflow.ws.KeyValueDto");
field1.setKey("c_titulo_capa");
field1.setValue(hAPI.getCardValue("c_titulo_capa"));
var field2 = serviceHelper.instantiate("com.totvs.technology.ecm.workflow.ws.KeyValueDto");
field2.setKey("c_capayperiodo");
field2.setValue(hAPI.getCardValue("c_capayperiodo"));
var field3 = serviceHelper.instantiate("com.totvs.technology.ecm.workflow.ws.KeyValueDto");
field3.setKey("c_unid_capa");
field3.setValue(hAPI.getCardValue("c_unid_capa"));
var field4 = serviceHelper.instantiate("com.totvs.technology.ecm.workflow.ws.KeyValueDto");
field4.setKey("c_lugar_capa");
field4.setValue(hAPI.getCardValue("c_lugar_capa"));
var field5 = serviceHelper.instantiate("com.totvs.technology.ecm.workflow.ws.KeyValueDto");
field5.setKey("d_fechaestdesde");
field5.setValue(hAPI.getCardValue("d_fechaestdesde"));
var field6 = serviceHelper.instantiate("com.totvs.technology.ecm.workflow.ws.KeyValueDto");
field6.setKey("d_fechaesthasta");
field6.setValue(hAPI.getCardValue("d_fechaesthasta"));
var resultArr = serviceHelper.instantiate("com.totvs.technology.ecm.workflow.ws.KeyValueDtoArray");
resultArr.getItem().add(field1);
resultArr.getItem().add(field2);
resultArr.getItem().add(field3);
resultArr.getItem().add(field4);
resultArr.getItem().add(field5);
resultArr.getItem().add(field6);
log.info("########## Inicia StartProcess");
var userArray = serviceHelper.instantiate("net.java.dev.jaxb.array.StringArray");
userArray.getItem().add(user);
var processAttachmentDtoArray = serviceHelper.instantiate("com.totvs.technology.ecm.workflow.ws.ProcessAttachmentDtoArray");
var appointment = serviceHelper.instantiate("com.totvs.technology.ecm.workflow.ws.ProcessTaskAppointmentDtoArray");
var ret = service.startProcessClassic("barbieri", "catafran2204", 1, "ProcesoEvaluaciondeSatisfacciondeCapacitaciones", 11, userArray , "Webservice desde proceso de Gestor de Capacitaciones", user, false, processAttachmentDtoArray,resultArr, appointment, false);
/
} }
count++;
}
}
}
Estoy trabajando en el tratamiento de errores, pero funciona. No encontré ningún ejemplo similar que funcione.