Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
mbitos de Visibilidad
Toda entidad que puede tener variables se les conoce como mbitos de
variable.
El estado en tiempo de ejecucin de una instancia de proceso se representa como
un rbol de ejecuciones.
Una variable que se define en un mbito padre puede ser accedido en todo mbito
hijo a menos que un mbito hijo defina una variable del mismo nombre.
execution.setVariable("diff", diff);
execution.setVariable("diff", typedDiff);
2. Delegacin de cdigo
Delegacin de cdigo permite ejecutar cdigo java externo, scripts o evaluar expresiones
cuando ciertos eventos ocurren durante la ejecucin del cdigo.
Formas de cdigo de delegacin:
Java Delegate (adjuntados a tareas de servicio).
Mapeo de variables delegadas (adjuntadas a call activity).
Listener de ejecucin.
Listener de tareas.
Para implementar una clase que pueda ser usada durante el proceso de ejecucin.
Paso 1. Implementar la siguiente interface
JavaDelegate
Ejemplo: execution.getVariable("input")
execution.setVariable("input", var);
org.camunda.bpm.engine.bpm.delegate.ActivityExecution
<serviceTask id="javaService"
camunda:class="org.camunda.bpm.examples.bpmn.servicetask.ToUpperCaseFi
eldInjected">
<extensionElements>
</extensionElements>
</serviceTask>
Valores Dinmicos
Emplean expresiones que pueden ser: variables del proceso, CDI o Spring beans.
Ejemplo:
camunda:class="org.camunda.bpm.examples.bpmn.servicetask.ReverseString
sFieldInjected">
<extensionElements>
<camunda:field name="text1">
<camunda:expression>${genderBean.getGenderString(gender)}</camunda:exp
ression>
</camunda:field>
<camunda:field name="text2">
</camunda:field>
</extensionElements>
</serviceTask>
Clase Java
execution.setVariable("var1", new
StringBuffer(value1).reverse().toString());
execution.setVariable("var2", new
StringBuffer(value2).reverse().toString());
}
}
<camunda:field name="text1"
expression="${genderBean.getGenderString(gender)}" />
Completar
BpmPlatform.getProcessEngineService().getProcessEngine("default"
)
TaskService taskService =
execution.getProcessEngineServices().taskService();
execution.getId()
runtimeService.getVariable(<process_id,<key>);
ProcessInstance pi =
runtimeService.startProcessInstanceByKey("forkJoin");
pi.getId();
pi.getProcessInstanceId();
//Grupo
List<Task> tasks =
taskService.createTaskQuery().taskCandidateGroup("management").singleR
esult();
taskService.complete(task.getId,<variables>)