기사 디렉토리
1. 공정 변수 개념
휴가 사유, 일수 및 기타 정보와 같은 비즈니스 데이터를 전송하려면 프로세스 변수를 사용하십시오.
2. 공정 변수 설정
2.1. 프로세스 인스턴스가 시작될 때 설정
프로세스 인스턴스를 시작할 때 프로세스 변수를 추가 할 수 있습니다. 이것은 공정 변수를 추가 할 수있는 기회입니다.
/**
* 设置流程变量方式一:在启动流程实例时设置
*/
@Test
public void test1() {
String processDefinitionKey = "HelloWorldKsy";
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("key1", "value1");
variables.put("key2", 200);
ProcessInstance pi = pe.getRuntimeService().startProcessInstanceByKey(processDefinitionKey, variables);
System.out.println(pi.getId());
}
기술:
1) 在启动流程实例时,通过重载startProcessInstanceByKey的方法可以加载流程变量。
2) 第二个参数要求是Map<String ,Object>类型,意味着可以添加多个流程变量。
3) 当这段代码执行完以后,会在数据库表act_ru_variable中添加两行记录。
2.2. 작업 처리시 설정
작업을 처리 할 때 때로는 작업이 완료된 후 일부 정보가 시스템에 전송되어야합니다. 이때 TaskService 클래스를 사용하여 프로세스 인스턴스를 추가 할 수 있습니다.
/**
* 设置流程变量方式二:在办理任务时设置
*/
@Test
public void test3() {
String taskId = "50006";
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("user", new User(1,"小王"));
pe.getTaskService().complete(taskId, variables);
}
3. 프로세스 변수가 지원하는 유형
JDK는 데이터 형식 (단 String
,, Integer
, ...)List
지정 엔티티 클래스 (인터페이스 시퀀스를 달성하기 위해 필요한 ) 웹 사이트에 나와있는 프로세스 변수의 타입 같이 다음 바와 같이 도면에서 알 수는, 상기의 대부분을 포함 패키지 유형 날짜, 문자열 및 Serializable 인터페이스를 구현하는 클래스 유형.Map
Serializable
4. 프로세스 변수 얻기
RuntimeService 메서드를 사용하여
프로세스 변수는 runTimeService 메소드를 통해 얻을 수 있습니다. 참고 : 이러한 프로세스 변수는 act_ru_variable 테이블에서 읽습니다.
/**
* 获取流程变量方式一:使用RuntimeService的方法获取
*/
@Test
public void test6() {
String executionId = "2501";
Map<String, Object> variables = pe.getRuntimeService().getVariables(executionId);
// System.out.println(variables);
Set<String> set = variables.keySet();// key2 key1 user
for (String key : set) {
Object value = variables.get(key);
System.out.println(key + " = " + value);
}
Object value = pe.getRuntimeService().getVariable(executionId, "user");
System.out.println(value);
}